diff options
Diffstat (limited to 'tapset/ipmib.stp')
-rw-r--r-- | tapset/ipmib.stp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tapset/ipmib.stp b/tapset/ipmib.stp index 775250e9..fb8cd019 100644 --- a/tapset/ipmib.stp +++ b/tapset/ipmib.stp @@ -29,7 +29,9 @@ global InUnknownProtos // global InTruncatedPkts global InDiscards // included counts of InHdrErrors InTruncatedPkts // global InDelivers +%( kernel_v >= "2.6.24" %? global ForwDatagrams +%) global OutRequests // global OutDiscards // global OutNoRoutes @@ -129,6 +131,10 @@ function _plunge_into_tcphdr:long (skb:long) %{ struct sk_buff *skb = (struct sk_buff *)(long)THIS->skb; /* as done by skb_network_header() */ + #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,21) + THIS->__retvalue=(long)kread(&(skb->nh.raw)) + + (long)sizeof(struct tcphdr); + #else #ifdef NET_SKBUFF_DATA_USES_OFFSET THIS->__retvalue=(long)kread(&(skb->network_header)) + (long)(kread(&(skb->head))) + @@ -137,6 +143,7 @@ function _plunge_into_tcphdr:long (skb:long) THIS->__retvalue=(long)kread(&(skb->network_header)) + (long)sizeof(struct tcphdr); #endif + #endif CATCH_DEREF_FAULT(); %} @@ -310,6 +317,7 @@ probe ipmib.InDiscards=kernel.function("ip_rcv").return * MIB: IPSTATS_MIB_OUTFORWDATAGRAMS * */ +%( kernel_v >= "2.6.24" %? probe ipmib.ForwDatagrams=kernel.function("ip_forward_finish") { skb = $skb; @@ -318,6 +326,7 @@ probe ipmib.ForwDatagrams=kernel.function("ip_forward_finish") key = ipmib_filter_key(skb,op,SourceIsLocal); if ( key ) ForwDatagrams[key] += op; } +%) /** * probe tcpmib.OutRequests - Count a request to send a packet. |