[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problem with local in hook



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 an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ