Re: [ovs-discuss] [ovs-dev] adding dpdk ports sharing same pci address to ovs-dpdk bridge
Hi Kevin, On Fri, Sep 8, 2017 at 12:24 AM, Kevin Traynor <ktray...@redhat.com> wrote: > On 09/07/2017 06:47 PM, Darrell Ball wrote: > > Adding disc...@openvswitch.org > > > > The related changes went into 2.7 > > > > > > > > On 9/7/17, 3:51 AM, "ovs-dev-boun...@openvswitch.org on behalf of > devendra rawat" <ovs-dev-boun...@openvswitch.org on behalf of > devendra.rawat.si...@gmail.com> wrote: > > > > Hi, > > > > I have compiled and built ovs-dpdk using DPDK v17.08 and OVS v2.8.0. > The > > NIC that I am using is Mellanox ConnectX-3 Pro, which is a dual port > 10G > > NIC. The problem with this NIC is that it provides only one PCI > address for > > both the 10G ports. > > > > So when I am trying to add the two DPDK ports to my br0 bridge > > > > # ovs-vsctl --no-wait add-port br0 dpdk0 -- set Interface dpdk0 > type=dpdk > > options:dpdk-devargs=0002:01:00.0 > > > > # ovs-vsctl --no-wait add-port br0 dpdk1 -- set Interface dpdk1 > type=dpdk > > options:dpdk-devargs=0002:01:00.0 > > > > Were you able to confirm those addresses by running ./dpdk-devbind.py -s > in your /tools dir? > On running dpdk-devbind.py --status , I can see the ConnectX-3 pro NIC, having only one PCI address. Network devices using DPDK-compatible driver Network devices using kernel driver === 0002:01:00.0 'MT27520 Family [ConnectX-3 Pro] 1007' if=enP4p1s0d1,enP4p1s0 drv=mlx4_core unused= 0006:01:00.0 'I210 Gigabit Network Connection 1533' if=enP6p1s0 drv=igb unused= *Active* > The port dpdk1 is added successfully and able to transfer data, but adding > dpdk0 to br0 fails: > > 2017-09-06T14:19:20Z|00045|netdev_dpdk|INFO|Port 0: e4:1d:2d:4f:78:60 > 2017-09-06T14:19:20Z|00046|bridge|INFO|bridge br0: added interface dpdk1 on > port 1 > 2017-09-06T14:19:20Z|00047|bridge|INFO|bridge br0: added interface br0 on > port 65534 > 2017-09-06T14:19:20Z|00048|dpif_netlink|WARN|Generic Netlink family > 'ovs_datapath' does not exist. The Open vSwitch kernel module is probably > not loaded. > 2017-09-06T14:19:20Z|00049|netdev_dpdk|WARN|'dpdk0' is trying to use device > '0002:01:00.0' which is already in use by 'dpdk1' > 2017-09-06T14:19:20Z|00050|netdev|WARN|dpdk0: could not set configuration > (Address already in use) > 2017-09-06T14:19:20Z|00051|bridge|INFO|bridge br0: using datapath ID > e41d2d4f7860 > > > With OVS v2.6.1 I never had this problem as dpdk-devargs was not mandatory > and just specifying port name was enough to add that port to bridge. > > Is there a way to add port both ports to bridge ? > > Thanks, > Devendra > ___ > dev mailing list > d...@openvswitch.org > https://urldefense.proofpoint.com/v2/url?u=https-3A__mail. openvswitch.org_mailman_listinfo_ovs-2Ddev=DwICAg= uilaK90D4TOVoH58JNXRgQ=BVhFA09CGX7JQ5Ih-uZnsw= qO7NdgrrorJhievOguQLmsfEFuBcPfz9NfQX7UME1-8=ZKHbYlaTjm8VFj6Rggmcb2gw6s3xW4 PxEtUy4YFG1VA= > > > ___ > dev mailing list > d...@openvswitch.org > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > > ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
[ovs-discuss] adding dpdk ports sharing same pci address to ovs-dpdk bridge
Hi, I have compiled and built ovs-dpdk using DPDK v17.08 and OVS v2.8.0. The NIC that I am using is Mellanox ConnectX-3 Pro, which is a dual port 10G NIC. The problem with this NIC is that it provides only one PCI address for both the 10G ports. So when I am trying to add the two DPDK ports to my br0 bridge # ovs-vsctl --no-wait add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0002:01:00.0 # ovs-vsctl --no-wait add-port br0 dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=0002:01:00.0 The port dpdk1 is added successfully and able to transfer data, but adding dpdk0 to br0 fails: 2017-09-06T14:19:20Z|00045|netdev_dpdk|INFO|Port 0: e4:1d:2d:4f:78:60 2017-09-06T14:19:20Z|00046|bridge|INFO|bridge br0: added interface dpdk1 on port 1 2017-09-06T14:19:20Z|00047|bridge|INFO|bridge br0: added interface br0 on port 65534 2017-09-06T14:19:20Z|00048|dpif_netlink|WARN|Generic Netlink family 'ovs_datapath' does not exist. The Open vSwitch kernel module is probably not loaded. 2017-09-06T14:19:20Z|00049|netdev_dpdk|WARN|'dpdk0' is trying to use device '0002:01:00.0' which is already in use by 'dpdk1' 2017-09-06T14:19:20Z|00050|netdev|WARN|dpdk0: could not set configuration (Address already in use) 2017-09-06T14:19:20Z|00051|bridge|INFO|bridge br0: using datapath ID e41d2d4f7860 With OVS v2.6.1 I never had this problem as dpdk-devargs was not mandatory and just specifying port name was enough to add that port to bridge. Is there a way to add port both ports to bridge ? Thanks, Devendra ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
[ovs-discuss] (no subject)
I am trying to bring up my ethernet device interface in ovs-DPDK I have created and added my non PCI vdev as dpdk0 device on bridge br0. # ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=-- vdev=my_eth_dev # ovs-vsctl --no-wait add-br br0 -- set bridge br0 datapath_type=netdev # ovs-vsctl --no-wait add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk my interface is coming up well, I can see my interface br0 using ifconfig. I need to validate the RX and TX paths. I am able to receive traffic on br0 from an external packet generator and my pings are also going out throught br0. But my 10G interface stops receiving traffic if RX rate goes beyond 100Mbps. can it be a setting issue because my DPDK testpmd application gives me line rate ? Can I add a flow entry so that br0 sends back the traffic it receives from packet generator ? ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
Re: [ovs-discuss] dpdk virtual device(vdev) device support in ovs.
> I am going to implement the support for my non-pci DPDK vdev ethernet > device in openvswitch. A head start will be really appreciated. > > So far what I have understood is that I will need to add a new "struct > netdev_class" for my device in lib/netdev-dpdk.c > > just like > > static const struct netdev_class dpdk_class = > NETDEV_DPDK_CLASS( > "dpdk", > netdev_dpdk_construct, > netdev_dpdk_destruct, > netdev_dpdk_set_config, > netdev_dpdk_set_tx_multiq, > netdev_dpdk_eth_send, > netdev_dpdk_get_carrier, > netdev_dpdk_get_stats, > netdev_dpdk_get_features, > netdev_dpdk_get_status, > netdev_dpdk_reconfigure, > netdev_dpdk_rxq_recv); > > will this be sufficient or I will need to change something else also ? > > *[Sugesh] Yes, this will take care of adding a new netdev type(in this > case DPDK vdev). Also the config/control plane has to be changed to manage > new type.* > > *I am really wondering a new netdev is really needed for vdev.* > > *vdev is just another type of DPDK eth port. It should be handled > implicitly either in DPDK or OVS-DPDK init code. This is kind of similar to > how different vendor NICs are supported under one DPDK type interface. * > > * Have you considered the option to change/append the existing OVS-DPDK > init implementation to support vdev?* > > *Adding a new netdev will make the code less maintainable and I would > consider it as last option.* > > [Devendra] Yes, as you said new netdev is really not needed. I just need to make sure that my vdev is initialized properly, ovs-DPDK will automatically designate it as dpdk0 port. I just used dpdk-extra to initialize my device and then added it as dpdk0 port to bridge. # ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=--vdev=my_eth_dev # ovs-vsctl --no-wait add-br br0 -- set bridge br0 datapath_type=netdev # ovs-vsctl --no-wait add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk Thanks and Regards, Devendra ___ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss