linux/net/ipv6
Mike Maloney 98aaa913b4 tcp: Extend SOF_TIMESTAMPING_RX_SOFTWARE to TCP recvmsg
When SOF_TIMESTAMPING_RX_SOFTWARE is enabled for tcp sockets, return the
timestamp corresponding to the highest sequence number data returned.

Previously the skb->tstamp is overwritten when a TCP packet is placed
in the out of order queue.  While the packet is in the ooo queue, save the
timestamp in the TCB_SKB_CB.  This space is shared with the gso_*
options which are only used on the tx path, and a previously unused 4
byte hole.

When skbs are coalesced either in the sk_receive_queue or the
out_of_order_queue always choose the timestamp of the appended skb to
maintain the invariant of returning the timestamp of the last byte in
the recvmsg buffer.

Signed-off-by: Mike Maloney <maloney@google.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-23 20:30:47 -07:00
..
ila
netfilter Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2017-06-30 06:27:09 -07:00
addrconf_core.c
addrconf.c net: ipv6: put host and anycast routes on device with address 2017-08-21 10:40:17 -07:00
addrlabel.c rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
af_inet6.c net: add sendmsg_locked and sendpage_locked to af_inet6 2017-08-16 11:27:52 -07:00
ah6.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next 2017-06-23 14:17:31 -04:00
anycast.c net, ipv6: convert ifacaddr6.aca_refcnt from atomic_t to refcount_t 2017-07-04 01:29:04 -07:00
calipso.c net, calipso: convert calipso_doi.refcount from atomic_t to refcount_t 2017-07-04 22:35:16 +01:00
datagram.c net: convert sock.sk_refcnt from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
esp6_offload.c xfrm: Auto-load xfrm offload modules 2017-08-02 11:00:15 +02:00
esp6.c esp6: Fix RX checksum after header pull 2017-08-02 11:00:15 +02:00
exthdrs_core.c
exthdrs_offload.c
exthdrs.c ipv6: sr: allow SRH insertion with arbitrary segments_left value 2017-08-07 14:16:21 -07:00
fib6_notifier.c ipv6: fib: Dump tables during registration to FIB chain 2017-08-03 15:36:00 -07:00
fib6_rules.c net: ipv6: avoid overhead when no custom FIB rules are installed 2017-08-08 21:40:08 -07:00
fou6.c
icmp.c net: ipv6: put host and anycast routes on device with address 2017-08-21 10:40:17 -07:00
inet6_connection_sock.c
inet6_hashtables.c net: ipv6: add second dif to inet6 socket lookups 2017-08-07 11:39:22 -07:00
ip6_checksum.c
ip6_fib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-21 17:06:42 -07:00
ip6_flowlabel.c
ip6_gre.c Revert "ipv6: constify inet6_protocol structures" 2017-08-01 10:03:17 -07:00
ip6_icmp.c
ip6_input.c
ip6_offload.c
ip6_offload.h
ip6_output.c udp: consistently apply ufo or fragmentation 2017-08-10 09:52:12 -07:00
ip6_tunnel.c net: add netlink_ext_ack argument to rtnl_link_ops.validate 2017-06-26 23:13:22 -04:00
ip6_udp_tunnel.c
ip6_vti.c vti: revert flush x-netns xfrm cache when vti interface is removed 2017-07-18 11:13:41 -07:00
ip6mr.c rtnetlink: make rtnl_register accept a flags parameter 2017-08-09 16:57:38 -07:00
ipcomp6.c
ipv6_sockglue.c Merge branch 'work.memdup_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-07-05 16:05:24 -07:00
Kconfig ipv6: sr: define core operations for seg6local lightweight tunnel 2017-08-07 14:16:22 -07:00
Makefile ipv6: sr: define core operations for seg6local lightweight tunnel 2017-08-07 14:16:22 -07:00
mcast_snoop.c
mcast.c net, ipv6: convert ifmcaddr6.mca_refcnt from atomic_t to refcount_t 2017-07-04 01:29:04 -07:00
mip6.c
ndisc.c net: ipv6: lower ndisc notifier priority below addrconf 2017-08-09 22:40:04 -07:00
netfilter.c
output_core.c ipv6: avoid overflow of offset in ip6_find_1stfragopt 2017-07-19 22:50:14 -07:00
ping.c
proc.c
protocol.c
raw.c net: ipv6: add second dif to raw socket lookups 2017-08-07 11:39:22 -07:00
reassembly.c
route.c net: ipv6: put host and anycast routes on device with address 2017-08-21 10:40:17 -07:00
seg6_hmac.c
seg6_iptunnel.c ipv6: sr: export SRH insertion functions 2017-08-07 14:16:21 -07:00
seg6_local.c ipv6: sr: implement several seg6local actions 2017-08-07 14:16:22 -07:00
seg6.c ipv6: sr: define core operations for seg6local lightweight tunnel 2017-08-07 14:16:22 -07:00
sit.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-06-30 12:43:08 -04:00
syncookies.c ipv4: ipv6: initialize treq->txhash in cookie_v[46]_check() 2017-07-18 11:22:51 -07:00
sysctl_net_ipv6.c
tcp_ipv6.c tcp: Extend SOF_TIMESTAMPING_RX_SOFTWARE to TCP recvmsg 2017-08-23 20:30:47 -07:00
tcpv6_offload.c
tunnel6.c
udp_impl.h
udp_offload.c net: avoid skb_warn_bad_offload false positives on UFO 2017-08-08 21:39:01 -07:00
udp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-21 17:06:42 -07:00
udplite.c
xfrm6_input.c xfrm6: Fix CHECKSUM_COMPLETE after IPv6 header push 2017-08-02 11:00:15 +02:00
xfrm6_mode_beet.c networking: make skb_pull & friends return void pointers 2017-06-16 11:48:39 -04:00
xfrm6_mode_ro.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c
xfrm6_output.c
xfrm6_policy.c net: xfrm: support setting an output mark. 2017-08-11 07:03:00 +02:00
xfrm6_protocol.c
xfrm6_state.c
xfrm6_tunnel.c net, ipv6: convert xfrm6_tunnel_spi.refcnt from atomic_t to refcount_t 2017-07-04 01:29:04 -07:00