From: Soheil Hassas Yeganeh <soheil.k...@gmail.com> Date: Tue, 23 Aug 2016 18:22:33 -0400
> From: Soheil Hassas Yeganeh <soh...@google.com> > > Instead of using sock_tx_timestamp, use skb_tx_timestamp to record > software transmit timestamp of a packet. > > sock_tx_timestamp resets and overrides the tx_flags of the skb. > The function is intended to be called from within the protocol > layer when creating the skb, not from a device driver. This is > inconsistent with other drivers and will cause issues for TCP. > > In TCP, we intend to sample the timestamps for the last byte > for each sendmsg/sendpage. For that reason, tcp_sendmsg calls > tcp_tx_timestamp only with the last skb that it generates. > For example, if a 128KB message is split into two 64KB packets > we want to sample the SND timestamp of the last packet. The current > code in the tun driver, however, will result in sampling the SND > timestamp for both packets. > > Also, when the last packet is split into smaller packets for > retranmission (see tcp_fragment), the tun driver will record > timestamps for all of the retransmitted packets and not only the > last packet. > > Fixes: eda297729171 (tun: Support software transmit time stamping.) > Signed-off-by: Soheil Hassas Yeganeh <soh...@google.com> > Signed-off-by: Francis Yan <francisy...@google.com> Applied and queued up for -stable, thanks.