[dpdk-dev] How to add veth interfaces in dpdk

Marc Sune marc.sune at bisdn.de
Fri Dec 12 15:10:29 CET 2014


On 12/12/14 14:57, Sachin Sharma wrote:
> Hi Marc,
> I have limited number of nodes (Linux nodes)  in my testbed. So, I wanted to use veth interfaces for creating some of dpdk nodes in my nodes.  You said that I can use KNI interfaces for this purpose. I am very new to KNI terminology. Could you please redirect me to a tutorial to create links with KNI interfaces and then adding those KNI interfaces into dpdk?

For the original problem, you could use qemu VMs with emulated e1000 
NICs which are supported by DPDK. This is how we have some development 
environments here in BISDN. Of course, this is only valid for functional 
tests, not performance.

The KNI documentation is in a section of the DPDK manual. The API is 
documented here:

http://dpdk.org/doc/intel/dpdk-prog-guide-1.7.0.pdf
http://dpdk.org/doc/api/rte__kni_8h.html

I don't quite get what you meant by "creating links with KNI". KNI 
interfaces are a bridge between the kernel and the DPDK, meaning a 
kernel interface (e.g. kni0) will pop up in the kernel, as a regular 
interface, and from the DPDK zone you can RX and TX from and to it, in a 
similar way you do in normal eth devices ( using calls rte_kni_rx_burst, 
rte_kni_tx_burst).

Marc
> Thanks & Regards,
> Sachin.
> On 12/12/14 14:34, Sachin Sharma wrote:
> >/  Hi all,
> />/
> />/  I have created veth interfaces using  command "sudo ip link add veth1 type
> />/  veth peer name veth2". However, when I use command "sudo
> />/  ./tools/igb_uio_bind.py --force --bind=igb_uio veth1" to add veth into
> />/  dpdk. It gives me an error that "Unknown device: veth1. Please specify
> />/  device in "bus:slot.func" format". I do not see even veth interfaces using
> />/  command "sudo ./tools/igb_uio_bind.py --status". Is there any way that I
> />/  can add these interfaces into dpdk?
> /
> >veth are software interfaces, meaning there is no real NIC behind.
> >That's why you cannot bind them to igb_uio.
>
> >You can use KNI interfaces for communicating a DPDK application with the
> >kernel interfaces and viceversa. There is an overhead on doing so, but
> >whether this is an appropriate solution or not, depends on your use
> >case. What do you plan to do?
>
> >Marc
>
>
> On Fri, Dec 12, 2014 at 2:34 PM, Sachin Sharma <sharonsachin at gmail.com 
> <mailto:sharonsachin at gmail.com>> wrote:
>
>     Hi all,
>
>     I have created veth interfaces using  command "sudo ip link add
>     veth1 type veth peer name veth2". However, when I use command
>     "sudo ./tools/igb_uio_bind.py --force --bind=igb_uio veth1" to add
>     veth into dpdk. It gives me an error that "Unknown device: veth1.
>     Please specify device in "bus:slot.func" format". I do not see
>     even veth interfaces using command "sudo ./tools/igb_uio_bind.py
>     --status". Is there any way that I can add these interfaces into dpdk?
>
>
>     Regards,
>     Sachin.
>



More information about the dev mailing list