Hi, We are porting our smallcell gateway to x86 based virtualized platform and facing some weird issue with VLAN implementation. Thanks in advance for any suggestions or resolution.
Host environment: RHEL 7.1 Guest environment: RHEL 6.2 (kernel 2.6.32-642) DPDK version: 1.7 NIC used: 82599ES 10-Gigabit SFI/SFP+ PF Driver on the host: ixgbe VF Driver on the host: vfio-pci Driver on the guest bind to the VF devices: igb_uio *Issue -1: When no VLAN ID is configured on the Host VF* - The DPDK application send VLAN tagged traffic (ARP request) and which is received at the destination. - Destination sends VLAN tagged ARP Reply in return. - ARP Reply packets are not received at the ports on the Guest. - We observe that the ARP Reply is received by the PF drivers on the Host, but not received at the VF ports on the Guest. - We have tested with 'rxmode' parameter hw_vlan_strip ON and OFF on the DPDK app, but both yield the same behavior of not receiving VLAN tagged packets. - We observed that non-VLAN traffic flow is working seamless on the SR-IOV Guest VFs - We also observed that when we do not run DPDK app and unbind the Guest VFs, thus to make the Guest OS kernel process the rx & tx, then traffic flow is seamless with or without VLAN. *Workaround we have found: Set VLAN id on Host VF, strip off VLAN tag before tx_burst* This workaround works well for our VLAN traffic but leads us to a design complexity. *Issue-2: How to set multiple VLAN ids on a Host VF* - I think for most of the packet processing nodes we would want to send multiple VLAN traffic through one single VF port. - Is there a way to set multiple VLAN ids on a Host VF? - I do not see any such facility in SR-IOV - Also is there a way to read what VLAN id is et on the Host VF, from the guest, using DPDK RTE library APIs? -- Regards, -Hirok @ Nokia Networks