[dpdk-users] [ovs-dev] adding dpdk ports sharing same pci address to ovs-dpdk bridge
Yuanhan Liu
yliu at fridaylinux.org
Tue Nov 7 10:08:07 CET 2017
On Tue, Oct 10, 2017 at 06:26:51PM +0530, devendra rawat wrote:
> > Hi Everyone,
> >
> > Anything finalized for sorting out this issue, do you need any more
> > information regarding this issue ?
>
> Hi,
>
> I put together a very rough RFC that aims to work-around the issue:
> https://mail.openvswitch.org/pipermail/ovs-dev/2017-October/339496.html
>
> It hasn't been tested as I don't have access to the type of card that has
> one PCI for multiple ports.
> If anybody does have access to such a device, I welcome you to try the
> patch although I'm not hopeful it will succeed first -pass.
> Looking for feedback on implementation, interface, etc.
>
>
> I applied the patch on top of OVS v2.8.1 and used DPDK v17.08. I used Mellanox
> ConnectX-3 pro NIC for testing, this NIC provides two 10G ports
> that share a single PCI address.
>
> The patch is working fine, I was able to add both the 10G ports to OVS bridge
> by specifying the port no. (0 or 1) in the dpdk-devargs.
>
> # ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk
> options:dpdk-devargs=0002:01:00.0,0
> # ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk
> options:dpdk-devargs=0002:01:00.0,1
I think the patch should work. But there something I want to point out:
- you were assuming the ports with the same PCI addresses are continuous
in the port number. I don't think it's a good assumption, though it's
very likely it's always the case in reality.
- I also think the index can not tell which port it is from the ports
having the same PCI address.
Having said that, I think using the mac address to referencing a DPDK port
might be a better idea. Something like:
options:dpdk-devargs=$mac_addr
Then from the ovs-dpdk point of you, it can detect whether it's a mac
or an PCI address, and use that to get the right port.
Or, we could have it both, if that's really needed:
dpdk-devargs=$pci_addr,$mac_addr
In such way, the original issue would also be solved. Moreover, people
know exactly what the underlie port he want to deal with.
Comments/thought?
--yliu
>
> the port no. (0 and 1) are bound to actual physical port, i.e if I keep on
> adding and deleting port no. 0 to bridge br0 multiple times,
> every time I add the port back to br0, the same physical port is added to
> bridge br0.
>
More information about the users
mailing list