Sending an IP packet
From: Adel Qodmani <hidden>
Date: 2013-02-22 13:53:50
On Fri, Feb 22, 2013 at 3:47 PM, Rami Rosen [off-list ref] 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 [off-list ref] wrote:quoted
Hey, My question is quite simple, I have an sk_buff that I want to transmit,thequoted
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 afunctionquoted
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 thenet_device, Iquoted
need the packet to go through the routing code and get it sent normally;soquoted
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