diff options
author | Willem de Bruijn <willemb@google.com> | 2014-08-04 22:11:45 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-05 19:35:53 -0400 |
commit | f24b9be5957b38bb420b838115040dc2031b7d0c (patch) | |
tree | 9fdb50bbe86f08ff9c012137fa854d45e156b8f9 /include/net/sock.h | |
parent | a2b81b35f9e5ade210e4df2001f7a30ac390114d (diff) |
net-timestamp: extend SCM_TIMESTAMPING ancillary data struct
Applications that request kernel tx timestamps with SO_TIMESTAMPING
read timestamps as recvmsg() ancillary data. The response is defined
implicitly as timespec[3].
1) define struct scm_timestamping explicitly and
2) add support for new tstamp types. On tx, scm_timestamping always
accompanies a sock_extended_err. Define previously unused field
ee_info to signal the type of ts[0]. Introduce SCM_TSTAMP_SND to
define the existing behavior.
The reception path is not modified. On rx, no struct similar to
sock_extended_err is passed along with SCM_TIMESTAMPING.
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sock.h')
-rw-r--r-- | include/net/sock.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/net/sock.h b/include/net/sock.h index b91c8868ab8d..02f5b35e65f1 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -2169,7 +2169,9 @@ sock_recv_timestamp(struct msghdr *msg, struct sock *sk, struct sk_buff *skb) | |||
2169 | */ | 2169 | */ |
2170 | if (sock_flag(sk, SOCK_RCVTSTAMP) || | 2170 | if (sock_flag(sk, SOCK_RCVTSTAMP) || |
2171 | sock_flag(sk, SOCK_TIMESTAMPING_RX_SOFTWARE) || | 2171 | sock_flag(sk, SOCK_TIMESTAMPING_RX_SOFTWARE) || |
2172 | (kt.tv64 && sock_flag(sk, SOCK_TIMESTAMPING_SOFTWARE)) || | 2172 | (kt.tv64 && |
2173 | (sock_flag(sk, SOCK_TIMESTAMPING_SOFTWARE) || | ||
2174 | skb_shinfo(skb)->tx_flags & SKBTX_ANY_SW_TSTAMP)) || | ||
2173 | (hwtstamps->hwtstamp.tv64 && | 2175 | (hwtstamps->hwtstamp.tv64 && |
2174 | sock_flag(sk, SOCK_TIMESTAMPING_RAW_HARDWARE))) | 2176 | sock_flag(sk, SOCK_TIMESTAMPING_RAW_HARDWARE))) |
2175 | __sock_recv_timestamp(msg, sk, skb); | 2177 | __sock_recv_timestamp(msg, sk, skb); |