Network access in the embedded mode

Hey there. This guide might help demystify all of these interfaces in the ovs bridge: vSwitch and Representors Model :: NVIDIA DOCA SDK Documentation

When in ECPF ownership mode, we see 2 representors for each one of the DPU’s network ports: one for the uplink, and another one for the host side PF (the PF representor created even if the PF is not probed on the host side).

if you check the output of mlnx-sf -a show on the DPU you’ll see the kernel netdev and the representor names for the DPU itself.

root@localhost:/home/ubuntu# mlnx-sf -a show
 
SF Index: pci/0000:03:00.0/294928
  Parent PCI dev: 0000:03:00.0
  Representor netdev: en3f0pf0sf0
  Function HWADDR: 02:36:6a:1e:4d:9d
  Auxiliary device: mlx5_core.sf.2
    netdev: enp3s0f0s0
    RDMA dev: mlx5_2
 
SF Index: pci/0000:03:00.1/360464
  Parent PCI dev: 0000:03:00.1
  Representor netdev: en3f1pf1sf0
  Function HWADDR: 02:33:e3:2f:c8:42
  Auxiliary device: mlx5_core.sf.3
    netdev: enp3s0f1s0
    RDMA dev: mlx5_3

The Representor netdev devices are already connected (added to) the OVS bridge by default, so we only need to use netplan to assign an IP address to enp3s0f1s0 or enp3s0f0s0 (or both) and that should work. Here’s an example netplan config:

root@localhost:/home/ubuntu# cat /etc/netplan/60-mlnx.yaml 
network:
  ethernets:
    enp3s0f0s0:
      dhcp4: no
      addresses:
        - X.X.X.X/24
      gateway4: X.X.X.X
      nameservers:
          addresses: [X.X.X.X, Y.Y.Y.Y]
    enp3s0f1s0:
      dhcp4: 'false'
  renderer: networkd
  version: 2
1 Like