Re: netif_rx dropping the packet

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

 



Hi,

I am not modifying the pkt in 'netfilter hook'.
I am doing it in a dummy ethernet device xmit function.
This dummy device is a virtual interface and  attached to bridge.

--- venu.m


----- Original Message -----
From: <aksingh@hss.hns.com>
To: <aksingh@hss.hns.com>
Cc: "Ravi Kumar" <ravivsn@rocsys.com>; "venum" <venum@intoto.com>;
<kernelnewbies@nl.linux.org>
Sent: Monday, July 05, 2004 4:37 PM
Subject: Re: netif_rx dropping the packet


>
>
>
>
> btw if you are using netfilter hook functions to capture packets and
modify
> them, then why dont you just return NF_ACCEPT, after the modification is
> done instead of using netif_rx() ?, that shld work just fine. Once
> NF_ACCEPT is returned, routing decision would be taken and the packet
would
> be routed correctly.
>
> regards
> Amit
>
>
>
>
> Amit Kumar Singh/HSS@HSS@nl.linux.org on 07/05/2004 03:16:17 PM
>
> Sent by:    kernelnewbies-bounce@nl.linux.org
>
>
> To:    Ravi Kumar <ravivsn@rocsys.com>
> cc:    venum <venum@intoto.com>, kernelnewbies@nl.linux.org
>
> Subject:    Re: netif_rx dropping the packet
>
>
>
>
>
>
> Hi,
>
>       If you check the return value, you might find that netif_rx returns
> SUCCESS, the function always succeeds, the packet might be getting dropped
> in ip_rcv() in all probability. One thing you can do to isolate the
> problem, is set skb->nfmark when your PRE_ROUTING hook catches the packet
> and you have to forward it by encapsulating the ip header, then in you
> NF_IP_FORWARD hook or POST_ROUTING hook, you can check if you get the
> packet.
> Also, before you call netif_rx, it is important to set skb->mac.raw field
> to the position where the packets ethernet header begins. You can try
using
> the function eth_type_trans. Try these things, and let us know how it
goes.
>
> Amit
>
>
>
>
> Ravi Kumar <ravivsn@rocsys.com>@nl.linux.org on 07/05/2004 09:52:42 AM
>
> Sent by:    kernelnewbies-bounce@nl.linux.org
>
>
> To:    venum <venum@intoto.com>
> cc:    kernelnewbies@nl.linux.org
>
> Subject:    Re: netif_rx dropping the packet
>
>
> Hi Venu Maya,
>  There are numerous ways to take in packet. Apart from netfilter hooks,
> dev_add_pack and ether hooks , packets can also taken by creating dummy
> ethernet device.
> As I understand, the problem is in encapsulation module. You would like
> to see ipip.c/ip_gre.c as a proof of concept. After you attach the IP
> header+ UDP Header + Your payload, and based on route look up , you get
> device onto which the packet has to be sent to. use ip_send to send
> packets to stack. (Refer to ipip.h, you can use IPTUNNEL_XMIT )
>
> /* remember this to set in sk_buff */
> skb->dst = &rt->u.dst;
>
> Let me know how it goes,
> -Ravi
> ROCSYS Technologies Ltd
> http://www.rocsys.com
>
> bhaskar wrote:
>
> > Hi,
> > How did you capture the packet.  I mean netfilter hooks, or using
> > dev_add_pack or ....
> >
> > Regards
> > bhaskar
> >
> >
> > venum wrote:
> >
> >> Hi
> >>
> >> I am facing a problem with the part of kernel code that  I am
> >> developing for
> >> a linux router. The objective is to encapsulate the received IP
> >> packet with
> >> a UDP header and an extra IP header and forward it to a different
> >> destination.
> >> I am encapsulating the original packet and passing it to the stack
using
> >> 'netif_rx'.  I want the stack to forward the packet to changed
> >> destination.
> >> At the destination the packet will be decapsulated.
> >> But once the packet is given to the 'netif_rx', stack is dropping the
> >> packet
> >> silently.
> >> I don't know which part of the stack code is dropping the packet.
> >>
> >> I need help in debugging this problem.I am giving the following details
> >> about the encapsulation:
> >>
> >> Dump of the ICMP ping packet received:
> >> 0 0 24 c0 2d 63 0 80 48 18 9e 5a 8 0 45 0
> >> 0 3c 1 cb 0 0 80 1 dc 18 ac 10 2 5c ac 10
> >> 2 61 8 0 4a 5c 2 0 1 0 61 62 63 64 65 66
> >> 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
> >> 77 61 62 63 64 65 66 67 68 69
> >>
> >> Packet Dump after Encapsulation: This packet is given to stack using
> >> 'netif_rx'
> >> 45 0 0 74 56 34 0 0 f0 11 ba 8b ac 10 16 1
> >> ac 10 16 3 d4 31 d4 31 0 8 0 0 1 1 1 11
> >> 22 33 44 55 66 0 0 0 0 0 0 0 24 c0 2d 63
> >> 0 80 48 18 9e 5a 8 0 45 0 0 3c 1 cb 0 0
> >> 80 1 dc 18 ac 10 2 5c ac 10 2 61 8 0 4a 5c
> >> 2 0 1 0 61 62 63 64 65 66 67 68 69 6a 6b 6c
> >> 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65
> >> 66 67 68 69
> >> I want this packet to be routed to IP address 172.16.22.3. The required
> >> route is configured.
> >> Is any thing wrong in the above encapsulated packet ?
> >> I am modifiying the follwing skb params:
> >>
> >> pSkb->ip_summed = CHECKSUM_UNNECESSARY;
> >> /* I have tried others like NONE,HW with no improvements
> >> */
> >>
> >> pSkb->protocol = htons(ETH_P_IP);
> >> /* Since it is always an IP packet */
> >>
> >> Can anyone help me find out the problem. I will provide any other
> >> details if
> >> required.
> >>
> >> TIA,
> >>  venu maya
> >>
> >>
> >>
> >> --
> >> Kernelnewbies: Help each other learn about the Linux kernel.
> >> Archive:       http://mail.nl.linux.org/kernelnewbies/
> >> FAQ:           http://kernelnewbies.org/faq/
> >>
> >>
> >>
> >
> >
> > --
> > Kernelnewbies: Help each other learn about the Linux kernel.
> > Archive:       http://mail.nl.linux.org/kernelnewbies/
> > FAQ:           http://kernelnewbies.org/faq/
> >
>
>
>
>
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive:       http://mail.nl.linux.org/kernelnewbies/
> FAQ:           http://kernelnewbies.org/faq/
>
>
>
>
> --
> Kernelnewbies: Help each other learn about the Linux kernel.
> Archive:       http://mail.nl.linux.org/kernelnewbies/
> FAQ:           http://kernelnewbies.org/faq/
>


--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[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