mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 17:51:43 +00:00
net: add driver hook for tx time stamping.
This patch adds a hook for transmit time stamps. The transmit hook allows a software fallback for transmit time stamps, for MACs lacking time stamping hardware. Using the hook will still require adding an inline function call to each MAC driver. Signed-off-by: Richard Cochran <richard.cochran@omicron.at> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ad1afb0039
commit
4507a71507
@ -1947,6 +1947,27 @@ static inline ktime_t net_invalid_timestamp(void)
|
||||
extern void skb_tstamp_tx(struct sk_buff *orig_skb,
|
||||
struct skb_shared_hwtstamps *hwtstamps);
|
||||
|
||||
static inline void sw_tx_timestamp(struct sk_buff *skb)
|
||||
{
|
||||
union skb_shared_tx *shtx = skb_tx(skb);
|
||||
if (shtx->software && !shtx->in_progress)
|
||||
skb_tstamp_tx(skb, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* skb_tx_timestamp() - Driver hook for transmit timestamping
|
||||
*
|
||||
* Ethernet MAC Drivers should call this function in their hard_xmit()
|
||||
* function as soon as possible after giving the sk_buff to the MAC
|
||||
* hardware, but before freeing the sk_buff.
|
||||
*
|
||||
* @skb: A socket buffer.
|
||||
*/
|
||||
static inline void skb_tx_timestamp(struct sk_buff *skb)
|
||||
{
|
||||
sw_tx_timestamp(skb);
|
||||
}
|
||||
|
||||
extern __sum16 __skb_checksum_complete_head(struct sk_buff *skb, int len);
|
||||
extern __sum16 __skb_checksum_complete(struct sk_buff *skb);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user