Sending an IP packet

Adel Qodmani mpcadel at gmail.com
Fri Feb 22 08:53:50 EST 2013


On Fri, Feb 22, 2013 at 3:47 PM, Rami Rosen <roszenrami at gmail.com> wrote:

> Hi, Adel,
>
> You should use
> ip_route_output_flow().
> For this you should construct a
>  flowi4 instance.
> ip_route_output_flow() is exported via EXPORT_SYMBOL_GPL.
>
> See for example how this is done in udp_sendmsg().
>
> Good luck!
>
> Rami Rosen
> http://ramirose.wix.com/ramirosen
>
> On Fri, Feb 22, 2013 at 2:36 PM, Adel Qodmani <mpcadel at gmail.com> wrote:
> > Hey,
> >
> > My question is quite simple, I have an sk_buff that I want to transmit,
> the
> > sk_buff is an ICMP message and so far, I've built the headers and set up
> > everything.
> >
> > The problem is, when I want to do such a thing, I typically use a
> function
> > called:
> > dev_queue_xmit which takes the skb and transmits the packet using the
> > net_device specified in the skb; but time time I can't set the
> net_device, I
> > need the packet to go through the routing code and get it sent normally;
> so
> > what function can I use to that?
> >
> > Some notes:
> > *The kernel I am working on is 3.2.0-37
> > *I am working using Modules, so symbols that are not exported are
> > unreachable for me
> > *I set the IP header using htons, so my header data is already in network
> > byte-order.
> >
> > Regards,
> > Adel
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
>
Hi Rami,

Using ip_route_output_flow() or using udp_sendmsg() would require not only
constructing a flowi4 but also a sock; I am intentionally trying to avoid
building a sock at the time being.
Is there a way I can deliver my sk_buff to the routing code so that it'd
set the net_device in there or at least tell me which interface to use and
then I'd set it up myself?

Thankful,
Adel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130222/60db6f2a/attachment-0001.html 


More information about the Kernelnewbies mailing list