tmp_suning_uos_patched/net
Willem de Bruijn 09c2d251b7 net-timestamp: add key to disambiguate concurrent datagrams
Datagrams timestamped on transmission can coexist in the kernel stack
and be reordered in packet scheduling. When reading looped datagrams
from the socket error queue it is not always possible to unique
correlate looped data with original send() call (for application
level retransmits). Even if possible, it may be expensive and complex,
requiring packet inspection.

Introduce a data-independent ID mechanism to associate timestamps with
send calls. Pass an ID alongside the timestamp in field ee_data of
sock_extended_err.

The ID is a simple 32 bit unsigned int that is associated with the
socket and incremented on each send() call for which software tx
timestamp generation is enabled.

The feature is enabled only if SOF_TIMESTAMPING_OPT_ID is set, to
avoid changing ee_data for existing applications that expect it 0.
The counter is reset each time the flag is reenabled. Reenabling
does not change the ID of already submitted data. It is possible
to receive out of order IDs if the timestamp stream is not quiesced
first.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-05 16:35:54 -07:00
..
6lowpan Merge tag 'master-2014-07-31' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-08-05 13:18:20 -07:00
9p
802
8021q vlan: fail early when creating netdev named config 2014-07-29 11:43:50 -07:00
appletalk
atm
ax25
batman-adv
bluetooth Merge tag 'master-2014-07-31' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-08-05 13:18:20 -07:00
bridge bridge: remove a useless comment 2014-08-04 12:46:51 -07:00
caif
can
ceph
core net-timestamp: add key to disambiguate concurrent datagrams 2014-08-05 16:35:54 -07:00
dcb dcbnl : Fix misleading dcb_app->priority explanation 2014-07-30 17:21:05 -07:00
dccp
decnet
dns_resolver
dsa
ethernet
hsr
ieee802154 inet: frags: use kmem_cache for inet_frag_queue 2014-08-02 15:31:31 -07:00
ipv4 net-timestamp: add key to disambiguate concurrent datagrams 2014-08-05 16:35:54 -07:00
ipv6 net-timestamp: add key to disambiguate concurrent datagrams 2014-08-05 16:35:54 -07:00
ipx
irda
iucv
key
l2tp net: use inet6_iif instead of IP6CB()->iif 2014-07-31 22:37:06 -07:00
lapb
llc
mac80211 Merge tag 'master-2014-07-25' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-07-28 17:36:25 -07:00
mac802154
mpls
netfilter nftables: Convert nft_hash to use generic rhashtable 2014-08-02 19:49:38 -07:00
netlabel
netlink netlink: fix lockdep splats 2014-08-04 22:58:06 -07:00
netrom
nfc Merge tag 'master-2014-07-31' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next 2014-08-05 13:18:20 -07:00
openvswitch net: Remove unlikely() for WARN_ON() conditions 2014-07-30 17:41:47 -07:00
packet packet: remove deprecated syststamp timestamp 2014-07-29 11:39:50 -07:00
phonet
rds
rfkill
rose
rxrpc
sched net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
sctp net: fix the counter ICMP_MIB_INERRORS/ICMP6_MIB_INERRORS 2014-07-31 22:04:18 -07:00
sunrpc
tipc tipc: remove duplicated include from socket.c 2014-07-29 15:51:14 -07:00
unix
vmw_vsock
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-07-25 10:22:36 -04:00
x25
xfrm
compat.c net: sendmsg: fix NULL pointer dereference 2014-07-29 12:20:22 -07:00
Kconfig
Makefile
nonet.c
socket.c net-timestamp: move timestamp flags out of sk_flags 2014-08-05 16:35:54 -07:00
sysctl_net.c