Re: [RFC] net : add tx timestamp to packet mmap.
From: Paul Chavent <hidden>
Date: 2012-12-13 16:16:35
Hello. On 12/13/2012 02:29 PM, Richard Cochran wrote:
On Wed, Dec 12, 2012 at 04:29:25PM +0100, Paul Chavent wrote:quoted
This patch allow to generate tx timestamps of packets sent by the packet mmap interface. Actually, you can't get tx timestamps with the sample code below. I wonder if my current implementation is good. And if not, how should i get the timestamps ?In order for time stamps to appear, somebody has to call skb_tx_timestamp() ...
Yes. "Somebody" means "the hardware driver" after completing xmit. That's true ?
quoted
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index e639645..948748b 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c@@ -1857,6 +1857,10 @@ static int tpacket_fill_skb(struct packet_sock *po, struct sk_buff *skb, void *data; int err; + err = sock_tx_timestamp(&po->sk, &skb_shinfo(skb)->tx_flags);
> > and this call is only setting some flags. Yes, it only sets some flags. I thought that those flags was required by the skb_tx_timestamp() in order to make the appropriate timestamping (hardware, software, etc). So in order to have tx timestamp that work, both calls are needed ? Why sock_tx_timestamp is called in packet_fill_skb and packet_sendmsg_spkt and not in tpacket_fill_skb ? Why i can retrieve timestamps when i add this call ?
HTH, Richard
Thank for your help. Paul.