VF's PCI Address is Exposed as an Env Variable and Can be Consumed by Userspace DPDK Applications Di

Problem

Multus interface is not getting created when using type "sriov".

k8s.v1.cni.cncf.io/networks: sriovwhereabout
              k8s.v1.cni.cncf.io/networks-status:
                [{
                    "name": "k8s-pod-network",
                    "ips": [
                        "10.40.242.136"
                    ],
                    "default": true,
                    "dns": {}
                },{
                    "name": "kube-system/sriovwhereabout",
                    "interface": "net1",
                    "ips": [
                        "172.21.14.50"
                    ],
                    "dns": {},
                    "device-info": {
                        "type": "pci",
                        "version": "1.0.0",
                        "pci": {
                            "pci-address": "0000:af:04.5"

Environment

  • Platform9 Edge Cloud - All Versions

  • SRIOV

  • DPDK

Answer

The vfio-pci DPDK driver used in this case bypasses the linux layer as the vfio interfaces are userspace interfaces and one cannot see them as kernel devices (ip link). The VF's pci address is exposed as an env variable and can be consumed by userspace dpdk applications directly.

Additional Information

You can refer to sriov-network-device-plugin/issues/401arrow-up-right for additional information.

Last updated