Problem with LOCAL_IN hook

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

 



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

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux