lkml.org 
[lkml]   [2016]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH net-next 01/15] rxrpc: Preset timestamp on Tx sk_buffs
    From
    Date
    Set the timestamp on sk_buffs holding packets to be transmitted before
    queueing them because the moment the packet is on the queue it can be seen
    by the retransmission algorithm - which may see a completely random
    timestamp.

    If the retransmission algorithm sees such a timestamp, it may retransmit
    the packet and, in future, tell the congestion management algorithm that
    the retransmit timer expired.

    Signed-off-by: David Howells <dhowells@redhat.com>
    ---

    net/rxrpc/sendmsg.c | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c
    index ca7c3be60ad2..ca3811bfbd17 100644
    --- a/net/rxrpc/sendmsg.c
    +++ b/net/rxrpc/sendmsg.c
    @@ -99,6 +99,11 @@ static void rxrpc_queue_packet(struct rxrpc_call *call, struct sk_buff *skb,

    ASSERTCMP(seq, ==, call->tx_top + 1);

    + /* We have to set the timestamp before queueing as the retransmit
    + * algorithm can see the packet as soon as we queue it.
    + */
    + skb->tstamp = ktime_get_real();
    +
    ix = seq & RXRPC_RXTX_BUFF_MASK;
    rxrpc_get_skb(skb, rxrpc_skb_tx_got);
    call->rxtx_annotations[ix] = RXRPC_TX_ANNO_UNACK;
    \
     
     \ /
      Last update: 2016-09-23 17:20    [W:4.111 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site