time stamps of skb packets in NF_HOOKS callbacks

5 messages, 2 authors, 2006-08-18 · open the first message on its own page

time stamps of skb packets in NF_HOOKS callbacks

From: John Que <hidden>
Date: 2006-08-17 14:37:16

Hello,
I am using NF_HOOKS (a "PRE_ROUTING" hook).
When I try to print the time stamps (sec and usec) of skb packets
which I recieve
in the hook callback I get 0. Other skb fileds are correct.
According to my understanding, the time stamp should be updated
when the packet is received. Isn't it so ? Any idea why am I getting
"0" for tstamp fields (tstamp is a field in sk_buff and is  an intance
of skb_timeval).
(what I mean is that the values of skb->tstamp.off_sec and
skb>tstamp.off_usec are both 0 , for ongoing incoming packets)
Regards,
John

Re: time stamps of skb packets in NF_HOOKS callbacks

From: Evgeniy Polyakov <hidden>
Date: 2006-08-17 15:58:39

On Thu, Aug 17, 2006 at 05:37:15PM +0300, John Que (qwejohn@gmail.com) wrote:
Hello,
I am using NF_HOOKS (a "PRE_ROUTING" hook).
When I try to print the time stamps (sec and usec) of skb packets
which I recieve
in the hook callback I get 0. Other skb fileds are correct.
According to my understanding, the time stamp should be updated
when the packet is received. Isn't it so ? Any idea why am I getting
"0" for tstamp fields (tstamp is a field in sk_buff and is  an intance
of skb_timeval).
Timestamps are disabled by default, if you have sockets which enable
SO_TIMESTAMP or netfilter queue target and other agents which can enable
it, you will see updated values in skb->tstamp.

-- 
	Evgeniy Polyakov

Re: time stamps of skb packets in NF_HOOKS callbacks

From: John Que <hidden>
Date: 2006-08-18 05:40:26

Evgeniy,
Thnks, I appreciate your (quick) answer;

Following your answer I tried adding a call to net_enable_timestamp() in
a module I wrote which use NF_HOOKS.
This is what is done , for example, in ipq_rcv_skb(struct sk_buff *skb)
in linux-2.6.14 in net/ipv4/netfilter/ip_queue.c.

After doing so I get timestamps which are not 0.

what I wonder now is :
1) does this have ANY performance implication (when dealing with a
high  network  load which can get to 50,000 packets per second?
2) It does work as I said, but I want to be cautios: Am I permitted to
add this method ? are  there any  implications for adding this method
which can create troubles ?
I must say that I am NOT





On 8/17/06, Evgeniy Polyakov [off-list ref] wrote:
On Thu, Aug 17, 2006 at 05:37:15PM +0300, John Que (qwejohn@gmail.com) wrote:
quoted
Hello,
I am using NF_HOOKS (a "PRE_ROUTING" hook).
When I try to print the time stamps (sec and usec) of skb packets
which I recieve
in the hook callback I get 0. Other skb fileds are correct.
According to my understanding, the time stamp should be updated
when the packet is received. Isn't it so ? Any idea why am I getting
"0" for tstamp fields (tstamp is a field in sk_buff and is  an intance
of skb_timeval).
Timestamps are disabled by default, if you have sockets which enable
SO_TIMESTAMP or netfilter queue target and other agents which can enable
it, you will see updated values in skb->tstamp.

--
        Evgeniy Polyakov

Re: time stamps of skb packets in NF_HOOKS callbacks

From: John Que <hidden>
Date: 2006-08-18 05:43:09

Evgeniy,
Sorry ! ; last sentence in my reply was chopped so here is my message
again with this last sentence (complete this time)

Thnks, I appreciate your (quick) answer;


Following your answer I tried adding a call to net_enable_timestamp() in
a module I wrote which use NF_HOOKS.
This is what is done , for example, in ipq_rcv_skb(struct sk_buff *skb)
in linux-2.6.14 in net/ipv4/netfilter/ip_queue.c.

After doing so I get timestamps which are not 0.

what I wonder now is :
1) does this have ANY performance implication (when dealing with a
high  network  load which can get to 50,000 packets per second?
2) It does work as I said, but I want to be cautios: Am I permitted to
add this method ? are  there any  implications for adding this method
which can create troubles ?
I must say that I am NOT changing anywhere the timestamp; it's only
for statistics.

Regards,
John




On 8/17/06, Evgeniy Polyakov [off-list ref] wrote:
On Thu, Aug 17, 2006 at 05:37:15PM +0300, John Que (qwejohn@gmail.com) wrote:
quoted
Hello,
I am using NF_HOOKS (a "PRE_ROUTING" hook).
When I try to print the time stamps (sec and usec) of skb packets
which I recieve
in the hook callback I get 0. Other skb fileds are correct.
According to my understanding, the time stamp should be updated
when the packet is received. Isn't it so ? Any idea why am I getting
"0" for tstamp fields (tstamp is a field in sk_buff and is  an intance
of skb_timeval).
Timestamps are disabled by default, if you have sockets which enable
SO_TIMESTAMP or netfilter queue target and other agents which can enable
it, you will see updated values in skb->tstamp.

--
        Evgeniy Polyakov

Re: time stamps of skb packets in NF_HOOKS callbacks

From: Evgeniy Polyakov <hidden>
Date: 2006-08-18 07:00:37

On Fri, Aug 18, 2006 at 08:43:08AM +0300, John Que (qwejohn@gmail.com) wrote:
Following your answer I tried adding a call to net_enable_timestamp() in
a module I wrote which use NF_HOOKS.
This is what is done , for example, in ipq_rcv_skb(struct sk_buff *skb)
in linux-2.6.14 in net/ipv4/netfilter/ip_queue.c.

After doing so I get timestamps which are not 0.

what I wonder now is :
1) does this have ANY performance implication (when dealing with a
high  network  load which can get to 50,000 packets per second?
Yes, it has. do_gettimeofday() is quite slow on some processors and is
not SMP-friendly.
2) It does work as I said, but I want to be cautios: Am I permitted to
add this method ? are  there any  implications for adding this method
which can create troubles ?
I must say that I am NOT changing anywhere the timestamp; it's only
for statistics.
If you add ata least on socket with SO_TIMESTAMP option, it will enable
timestamps for all skbs, so you have not created any wrong thing, except
that slowed down your network processing.
Regards,
John
-- 
	Evgeniy Polyakov
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help