Re: Sending an IP packet

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

 



On Fri, Feb 22, 2013 at 3:47 PM, Rami Rosen <roszenrami@xxxxxxxxx> 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@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxx
> 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
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[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