dfedf3e3f9
On some virtual setups (particularly on ESXi) when we have SR-IOV and E-Switch enabled there is the problem to receive VLAN traffic on VF interfaces. The NIC driver in ESXi hypervisor does not setup E-Switch vport setting correctly and VLAN traffic targeted to VF is dropped. The patch provides the temporary workaround - if the rule containing the VLAN pattern is being installed for VF the VLAN network interface over VF is created, like the command does: ip link add link vf.if name mlx5.wa.1.100 type vlan id 100 The PMD in DPDK maintains the database of created VLAN interfaces for each existing VF and requested VLAN tags. When all of the RTE Flows using the given VLAN tag are removed the created VLAN interface with this VLAN tag is deleted. The name of created VLAN interface follows the format: evmlx.d1.d2, where d1 is VF interface ifindex, d2 - VLAN ifindex Implementation limitations: - mask in rules is ignored, rule must specify VLAN tags exactly, no wildcards (which are implemented by the masks) are allowed - virtual environment is detected via rte_hypervisor() call, and the type of hypervisor is checked. Currently we engage the workaround for ESXi and unrecognized hypervisors (which always happen on platforms other than x86 - it means workaround applied for the Flow over PCI VF). There are no confirmed data the other hypervisors (HyperV, Qemu) need this workaround, we are trying to reduce the list of configurations on those workaround should be applied. Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com> Acked-by: Shahaf Shuler <shahafs@mellanox.com> |
||
---|---|---|
.. | ||
af_packet | ||
af_xdp | ||
ark | ||
atlantic | ||
avp | ||
axgbe | ||
bnx2x | ||
bnxt | ||
bonding | ||
cxgbe | ||
dpaa | ||
dpaa2 | ||
e1000 | ||
ena | ||
enetc | ||
enic | ||
failsafe | ||
fm10k | ||
hinic | ||
i40e | ||
iavf | ||
ice | ||
ifc | ||
ipn3ke | ||
ixgbe | ||
kni | ||
liquidio | ||
memif | ||
mlx4 | ||
mlx5 | ||
mvneta | ||
mvpp2 | ||
netvsc | ||
nfb | ||
nfp | ||
null | ||
octeontx | ||
octeontx2 | ||
pcap | ||
qede | ||
ring | ||
sfc | ||
softnic | ||
szedata2 | ||
tap | ||
thunderx | ||
vdev_netvsc | ||
vhost | ||
virtio | ||
vmxnet3 | ||
Makefile | ||
meson.build |