I try to run OVS in VMware VM with two X710 VFs (only one is relevant for
simplified OVS config posted below). Ports are configured as SR-IOV
interfaces
in port group using virtual guest tagging.
With simplified config posted below I should be able to ping
interface vl1075 from other hosts on vlan 1075 but I'm not. Ovs-ofctl
dump-flows shows no incomming packets. Ovs-tcpdump doesn't show incomming
packets either.

I don't know what exactly the problem is but interestingly, there seems to
be a workaround.
When I run the DPDK's testpmd and then OVS (the same configuration that
fails
without workaraound) OVS works fine till next ESXi reboot.


OVS:
Interfaces:
root@test2k:~# dpdk-devbind.py -s

Network devices using DPDK-compatible driver
============================================
0000:0b:00.0 'Ethernet Virtual Function 700 Series 154c' drv=vfio-pci
unused=iavf
0000:13:00.0 'Ethernet Virtual Function 700 Series 154c' drv=vfio-pci
unused=iavf
[ ... ]

config:
ovs-vsctl emer-reset

ovs-vsctl set Open_vSwitch . "other_config:dpdk-init=true"
ovs-vsctl set Open_vSwitch . "other_config:hw-offload=true"
ovs-vsctl set Open_vSwitch . "other_config:per-port-memory=true"
ovs-vsctl set Open_vSwitch . "other_config:dpdk-alloc-mem=2048"
ovs-vsctl set Open_vSwitch . other_config:smc-enable=true
ovs-vsctl set Open_vSwitch . other_config:emc-insert-inv-prob=1

ovs-vsctl --if-exists del-br ovsbr0
ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev
ovs-vsctl set bridge ovsbr0
protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15
ovs-vsctl add-port ovsbr0 dp_13000 -- set Interface dp_13000 type=dpdk
"options:dpdk-devargs=13:00.0" -- set interface dp_13000 ofport_request=4
ovs-vsctl set port dp_13000 trunks=1075

ovs-vsctl add-br vl1075 ovsbr0 1075
sysctl -w net.ipv6.conf.vl1075.disable_ipv6=1 > /dev/null
ip a add 192.168.77.3/24  dev vl1075
ip l set up vl1075

ovs-ofctl del-flows ovsbr0
ovs-appctl dpctl/del-flows

ovs-ofctl -O OpenFlow15  add-flow ovsbr0
"table=0,priority=20,in_port=vl1075,actions=push_vlan:0x8100,mod_vlan_vid:1075,output:dp_13000"
ovs-ofctl -O OpenFlow15  add-flow ovsbr0
"table=0,priority=200,in_port=dp_13000,dl_vlan=1075,actions=strip_vlan,output:vl1075"

workaround testpmd config
dpdk-testpmd -n 2 --socket-mem 1024 -l 0,1,2 -a 0000:0b:00.0 -a
0000:13:00.0  -- --port-topology=paired --forward-mode=io --nb-cores=2
--txd=4096 --rxd=4096 --cmdline-file=cmd.list << END

END
cmd.list contents:
set fwd mac
set eth-peer 0 00:0c:29:29:7d:8a
set eth-peer 1 00:0c:29:29:7d:8b
vlan set filter on 0
vlan set filter on 1
vlan set strip on 0
vlan set strip on 1
rx_vlan add 1075 1
rx_vlan add 1076 0
port stop 0
port stop 1
tx_vlan set 1 1075
tx_vlan set 0 1076
port start 0
port start 1
quit



Versions being used:
ESXi: 7.0U3, i40en Version: 2.2.7.0, NIC Firmware Version: 8.40 0x8000af82
20.5.13
guest OS: Ubuntu Kinetic
Linux version 5.15.0-27-generic (buildd@ubuntu) (gcc (Ubuntu
11.2.0-19ubuntu1) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #28-Ubuntu
SMP Thu Apr 14 04:55:28 UTC 2022
OVS 3.0.0 (from Kinetic apt repos)
DPDK: 21.11.1 (from Kinetic apt repos)

Other possibly usefull outputs:
root@345fd4e20203:~# ovs-dpctl show
root@345fd4e20203:~# ovs-ofctl dump-flows ovsbr0
 cookie=0x0, duration=464.397s, table=0, n_packets=0, n_bytes=0,
priority=200,in_port="dp_13000",dl_vlan=1075
actions=strip_vlan,output:vl1075
 cookie=0x0, duration=464.411s, table=0, n_packets=0, n_bytes=0,
priority=20,in_port=vl1075 actions=mod_vlan_vid:1075,output:"dp_13000"
root@345fd4e20203:~# ovs-appctl dpctl/dump-flows
flow-dump from pmd on cpu core: 3
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0/0xffff),
packets:239, bytes:15264, used:1.339s, actions:drop
root@345fd4e20203:~# ovs-appctl dpctl/dump-flows
flow-dump from pmd on cpu core: 3
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0/0xffff),
packets:244, bytes:15564, used:1.691s, actions:drop
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x88cc), packets:0,
bytes:0, used:never, actions:drop
root@345fd4e20203:~#

root@345fd4e20203:~# ovs-appctl dpif/show
netdev@ovs-netdev: hit:455 missed:41
  ovsbr0:
    dp_13000 4/2: (dpdk: configured_rx_queues=1,
configured_rxq_descriptors=2048, configured_tx_queues=2,
configured_txq_descriptors=2048, lsc_interrupt_mode=false, mtu=1500,
requested_rx_queues=1, requested_rxq_descriptors=2048,
requested_tx_queues=2, requested_txq_descriptors=2048,
rx_csum_offload=true, tx_tso_offload=false)
    ovsbr0 65534/1: (tap)
    vl1075 1/3: (tap)
root@345fd4e20203:~# ovs-vsctl show
4cbe326a-fda7-4102-bf47-f7c16c49e2e5
    Bridge ovsbr0
        datapath_type: netdev
        Port ovsbr0
            Interface ovsbr0
                type: internal
        Port vl1075
            tag: 1075
            Interface vl1075
                type: internal
        Port dp_13000
            trunks: [1075]
            Interface dp_13000
                type: dpdk
                options: {dpdk-devargs="13:00.0"}
root@345fd4e20203:~#

Thanks in advance for any help.
Paweł

-- 


-------------------------------
This document contains material that is 
confidential in CodiLime Sp. z o.o. DO NOT PRINT. DO NOT COPY. DO NOT 
DISTRIBUTE. If you are not the intended recipient of this document, be 
aware that any use, review, retransmission, distribution, reproduction or 
any action taken in reliance upon this message is strictly prohibited. If 
you received this in error, please contact the sender and h...@codilime.com 
<mailto:h...@codilime.com>. Return the paper copy, delete the material from 
all computers and storage media.
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to