0
votes

Could you please suggest which Intel DPDK driver in Virtual Machine is compatible with Intel X710 NIC driver in Host?The igb_uio driver which we are currently using may be only compatible with Intel NICs like 82599.

2
This doesn't sound like a programming issue. Generic computer / OS issues belong to superuser.com - James Z

2 Answers

0
votes

Since the question is not clear, I have to make certain assumptions.

Assumptions:

  1. you want to run your application (DPDK) in guest OS.
  2. You are having x710 (Fortville) NW card on host.

To achieve the same, you will have 3 options. a. X710 pass through to guest os. b. X710 as SRIOV to guest OS. c. Using intermediate Application like OVS, Virtual Switch, VPP or Snabb switch to connect to guest OS.

For case a and b you still can use igb_uio or 'vfio-pcias the kernel driver is still i40e and device is seen as x710. For casecyou can use 'igb_uio` with virtio-pci as kernel driver.

0
votes

Thanks for updating the details, as this makes clear of the environment and setup. please find the answers to the queries and what can be done to fix things

Environment:

  1. host os: RHEL 7.6, X710 PF lets call it eno1, kernel PF driver is i40e
  2. guest os: RHEL 7.6, X710 VF created from eno1 let us call them eno2 and eno3, these are passed to VF and bound with igb_uio
  3. expected behaviour: Ingress (RX) and Egress (TX) should work
  4. observed behaviour: Egress (TX) only works and Ingress (RX) to VM ports are not work

Fix for incoming packets from Host’s Physical port are not reaching VM via VF is to redirect traffic from Physical X710 to the required SRIOV port we have 2 options

  1. using virtual switches like OVS, Snabb Switch or VPP
  2. using PF flow director to set rules.

Current description I am not able to find the same.

Answer to your queries

  1. why does X710 NIC VF driver remove the VLAN without RX offload VLAN strip flags set? The unexpected VLAN removal behaviour of X710 NIC VF driver vfio-pci is a known bug?

I believe, this is to do with the port init configuration you pass as you might be passing eth_conf in API rte_eth_dev_configure as default. This will use default RX offload behaviour which is dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | DEV_RX_OFFLOAD_QINQ_STRIP.

  1. The outgoing packets from DPDK application are leaving VM via VF towards Host’s Physical ports

this is because if you use default config for rte_eth_dev_configure the tx offload is to support VLAN

  1. But the incoming packets from Host’s Physical port are not reaching VM via VF,

this has to be dictated by HOST PF, flow director rule and VF settings. I assume you are not using flow director on the host and set rte_eth_dev_configure as default values in guest OS.