On Fri, Feb 22, 2013 at 3:47 PM, Rami Rosen <roszenrami@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@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@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