net: Add a new socket option for a future transmit time.

This patch introduces SO_TXTIME. User space enables this option in
order to pass a desired future transmit time in a CMSG when calling
sendmsg(2). The argument to this socket option is a 8-bytes long struct
provided by the uapi header net_tstamp.h defined as:

struct sock_txtime {
	clockid_t 	clockid;
	u32		flags;
};

Note that new fields were added to struct sock by filling a 2-bytes
hole found in the struct. For that reason, neither the struct size or
number of cachelines were altered.

Signed-off-by: Richard Cochran <rcochran@linutronix.de>
Signed-off-by: Jesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Richard Cochran 2018-07-03 15:42:48 -07:00 committed by David S. Miller
parent c47d8c2f38
commit 80b14dee2b
11 changed files with 84 additions and 0 deletions

View file

@ -141,4 +141,19 @@ struct scm_ts_pktinfo {
__u32 reserved[2];
};
/*
* SO_TXTIME gets a struct sock_txtime with flags being an integer bit
* field comprised of these values.
*/
enum txtime_flags {
SOF_TXTIME_DEADLINE_MODE = (1 << 0),
SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_DEADLINE_MODE)
};
struct sock_txtime {
clockid_t clockid; /* reference clockid */
u32 flags; /* flags defined by enum txtime_flags */
};
#endif /* _NET_TIMESTAMPING_H */