Problem With LOCAL IN HOOK

From: Kanhu Rauta
Date: Tue Mar 06 2007 - 06:27:16 EST


Hi list,

I am writing a simple loadable module which will a register a function
in NF_IP_LOCAL_IN hook .But observed different behavior in 2.4 and
2.6 kernel.

a> in 2.4 kernel, my function gets the assembled packet (in case of
fragmentation).

static struct nf_hook_ops test_forwarder
= { { NULL, NULL }, callback_forwarder, PF_INET, NF_IP_LOCAL_IN,
NF_IP_PRI_FILTER };

This is working fine .i got the assembled packet in function
callback_forwarder(in case of fragmentation).


b> in 2.6 kernel, my function gets the un-assembled packets (in case
of fragmentation).

static struct nf_hook_ops test_forwarder = {
.hook = callback_forwarder,
.owner = THIS_MODULE,
.pf = PF_INET,
.hooknum = NF_IP_LOCAL_IN,
.priority = NF_IP_PRI_FILTER, };


This is not working, because i got the unassembled packet here. though
udp length shows 1508.but i am getting only 1400 bytes of valid data,
rest 108 bytes are something garbage.that i cross check with ethereal.
(I prints in a for loop like skb-data+20 to skb->data[1528])

I am not able to understand the behavior and struggled to resolve this
issue for last 1 week .

Can anybody help me on this regard ?



Regards,
kanhu
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html