]> git.baikalelectronics.ru Git - kernel.git/commit
sock: enable timestamping using control messages
authorSoheil Hassas Yeganeh <soheil@google.com>
Sun, 3 Apr 2016 03:08:12 +0000 (23:08 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Apr 2016 19:50:30 +0000 (15:50 -0400)
commit1b4614be4286732fcb2c082599be0c973a557baa
tree99f4d7c46d01732fcbfdf8de89e1d9846d56c3b3
parent55629e957d9e77acaa1d573c187aa52bfb74e0fc
sock: enable timestamping using control messages

Currently, SOL_TIMESTAMPING can only be enabled using setsockopt.
This is very costly when users want to sample writes to gather
tx timestamps.

Add support for enabling SO_TIMESTAMPING via control messages by
using tsflags added in `struct sockcm_cookie` (added in the previous
patches in this series) to set the tx_flags of the last skb created in
a sendmsg. With this patch, the timestamp recording bits in tx_flags
of the skbuff is overridden if SO_TIMESTAMPING is passed in a cmsg.

Please note that this is only effective for overriding the recording
timestamps flags. Users should enable timestamp reporting (e.g.,
SOF_TIMESTAMPING_SOFTWARE | SOF_TIMESTAMPING_OPT_ID) using
socket options and then should ask for SOF_TIMESTAMPING_TX_*
using control messages per sendmsg to sample timestamps for each
write.

Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 files changed:
drivers/net/tun.c
include/net/ipv6.h
include/net/sock.h
net/can/raw.c
net/ipv4/ping.c
net/ipv4/raw.c
net/ipv4/tcp.c
net/ipv4/udp.c
net/ipv6/icmp.c
net/ipv6/ip6_output.c
net/ipv6/ping.c
net/ipv6/raw.c
net/ipv6/udp.c
net/l2tp/l2tp_ip6.c
net/packet/af_packet.c
net/socket.c