Hello,
I’m experiencing an issue with the network connection between a BlueField-3 DPU and its host system, and I would appreciate your advice or suggestions.
Issue Summary
When I try to ping between the host and the DPU using their data network interfaces, there is no response.
However, communication through the control interface (tmfifo_net0) works correctly.
System Overview
-
The host and DPU are connected within the same server via PCIe.
-
The
pingtest is performed from the host’senp179s0f0np0(IP: 172.16.0.2)
to the DPU’senp3s0f0s0(IP: 172.16.0.6).
Host Configuration
The interface status and IP configuration are as follows:
3: enp179s0f0np0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a0:88:c2:36:4e:98 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.2/28 brd 172.16.0.15 scope global enp179s0f0np0
Routing table:
$ ip route show
172.16.0.0/28 dev enp179s0f0np0 proto kernel scope link src 172.16.0.2
BlueField operating mode on host
sudo cat /dev/rshim0/misc
BF_MODE DPU mode
DEV_INFO BlueField-3(Rev 1)
→ The host detects the BlueField-3 as being in DPU mode.
DPU (BlueField-3) Configuration
Below are the outputs of ip link show and ip a on the DPU:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: oob_net0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a0:88:c2:36:4e:bc brd ff:ff:ff:ff:ff:ff
3: tmfifo_net0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1a:ca:ff:ff:01 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.6/30 brd 192.168.6.7 scope global noprefixroute tmfifo_net0
valid_lft forever preferred_lft forever
4: p0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master ovs-system state DOWN group default qlen 1000
link/ether a0:88:c2:36:4e:a8 brd ff:ff:ff:ff:ff:ff
5: p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
link/ether a0:88:c2:36:4e:a9 brd ff:ff:ff:ff:ff:ff
6: ovs-system: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether be:8f:d0:59:51:1b brd ff:ff:ff:ff:ff:ff
7: ovsbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether a0:88:c2:36:4e:a8 brd ff:ff:ff:ff:ff:ff
8: ovsbr2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether a0:88:c2:36:4e:a9 brd ff:ff:ff:ff:ff:ff
9: pf0hpf: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 128
link/ether ae:16:07:16:ed:45 brd ff:ff:ff:ff:ff:ff
10: pf1hpf: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 128
link/ether 7e:d1:56:16:4a:e6 brd ff:ff:ff:ff:ff:ff
11: en3f0pf0sf0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 128
link/ether c2:70:01:d4:82:bf brd ff:ff:ff:ff:ff:ff
12: enp3s0f0s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 02:ca:cb:ac:21:12 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.6/28 brd 172.16.0.15 scope global enp3s0f0s0
valid_lft forever preferred_lft forever
13: en3f1pf1sf0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 128
link/ether da:2f:af:3e:77:46 brd ff:ff:ff:ff:ff:ff
14: enp3s0f1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 02:fa:70:ff:35:5d brd ff:ff:ff:ff:ff:ff
Routing table on the DPU:
$ ip route show
172.16.0.0/28 dev enp3s0f0s0 proto kernel scope link src 172.16.0.6
OVS Configuration
sudo ovs-vsctl show
7f3236ee-04dd-43c7-b69c-8a42d3cc4154
Bridge ovsbr1
Port en3f0pf0sf0
Interface en3f0pf0sf0
Port pf0hpf
Interface pf0hpf
Port p0
Interface p0
Port ovsbr1
Interface ovsbr1
type: internal
Bridge ovsbr2
Port p1
Interface p1
Port en3f1pf1sf0
Interface en3f1pf1sf0
Port ovsbr2
Interface ovsbr2
type: internal
Port pf1hpf
Interface pf1hpf
ovs_version: "3.1.0057"
DPU Operating Mode (ECPF Mode) Verification
I also checked whether the DPU is operating in ECPF Mode, and confirmed it as follows:
mst status
BlueField3 ... net-en3f0pf0sf0, net-p0, net-pf0hpf
mlxconfig (CPU-related fields)
HOST_PRIV_NV_INTERNAL_CPU DEVICE_DEFAULT(0)
INTERNAL_CPU_ESWITCH_MANAGER ECPF(0)
INTERNAL_CPU_IB_VPORT0 ECPF(0)
INTERNAL_CPU_MODEL EMBEDDED_CPU(1)
INTERNAL_CPU_OFFLOAD_ENGINE ENABLED(0)
INTERNAL_CPU_PAGE_SUPPLIER ECPF(0)
INTERNAL_CPU_RSHIM ENABLED(0)
INT_CPU_AUTO_SHUTDOWN DEVICE_DEFAULT(0)
→ DPU is in ECPF Mode, and the host recognizes the device in DPU Mode, which appears consistent with BlueField architecture.
What Has Been Verified
-
Reinstalled the BFB image (BlueField OS).
-
Reset
mlxconfigto default settings. -
IP configuration and OVS bridge setup appear correct.
-
When sending ARP requests from the host (enp179s0f0np0), no ARP packets are observed on any interface on the DPU side.
In particular, I confirmed that even the representor interfacepf0hpfdoes not receive any ARP frames (verified using tcpdump on all DPU interfaces, including pf0hpf, en3f0pf0sf0, p0, p1, enp3s0f0s0, etc.). -
Communication over the management channel (
tmfifo_net0, 192.168.6.6/30) works fine.
Environment Information
-
DPU: BlueField-3
-
DOCA Version: 3.1.0
-
Host OS / DPU OS: Ubuntu 22.04
-
Connection Type: PCIe (within the same server)
-
Issue: Ping between host ↔ DPU (data port) fails
-
Control Port (
tmfifo_net0): Working correctly
Question
Even though the link status, IP configuration, routing, and OVS bridge setup all appear correct,
the host’s ARP requests do not reach the DPU (pf0hpf), and ICMP ping also fails.
Could this issue be related to OVS configuration, DOCA 3.1.0 behavior, or PCIe connection-specific restrictions?
Are there any known limitations or additional configurations required for host-to-DPU communication in this setup?
Any guidance or troubleshooting suggestions would be greatly appreciated.
Thank you very much for your time and support.
Additional Investigation: Representor Devices
Since this problem might be related to representor device mapping or configuration,
I have checked both sides using devlink and ethtool.
Host-side output
y-jinbo@1gpu:~$ sudo devlink dev show
pci/0000:b3:00.0
pci/0000:b3:00.1
y-jinbo@1gpu:~$ sudo devlink port show
pci/0000:b3:00.0/65535: type eth netdev enp179s0f0np0 flavour physical port 0 splittable false
function:
hw_addr 00:00:00:00:00:00
pci/0000:b3:00.1/131071: type eth netdev enp179s0f1np1 flavour physical port 1 splittable false
function:
hw_addr 00:00:00:00:00:00
y-jinbo@1gpu:~$ sudo ethtool -i enp179s0f0np0
driver: mlx5_core
version: 25.07-0.9.7
firmware-version: 32.46.1006 (MT_0000000884)
bus-info: 0000:b3:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes
DPU-side output
ubuntu@localhost:~$ sudo devlink dev show
pci/0000:03:00.0
pci/0000:03:00.1
auxiliary/mlx5_core.sf.2
auxiliary/mlx5_core.sf.3
ubuntu@localhost:~$ sudo devlink port show
pci/0000:03:00.0/262143: type eth netdev p0 flavour physical port 0 splittable false
function:
hw_addr 00:00:00:00:00:00
pci/0000:03:00.0/196608: type eth netdev pf0hpf flavour pcipf controller 1 pfnum 0 external true splittable false
function:
hw_addr a0:88:c2:36:4e:98
pci/0000:03:00.0/229408: type eth netdev en3f0pf0sf0 flavour pcisf controller 0 pfnum 0 sfnum 0 splittable false
function:
hw_addr 02:ca:cb:ac:21:12 state active opstate attached
pci/0000:03:00.1/327679: type eth netdev p1 flavour physical port 1 splittable false
function:
hw_addr 00:00:00:00:00:00
pci/0000:03:00.1/262144: type eth netdev pf1hpf flavour pcipf controller 1 pfnum 1 external true splittable false
function:
hw_addr a0:88:c2:36:4e:99
pci/0000:03:00.1/294944: type eth netdev en3f1pf1sf0 flavour pcisf controller 0 pfnum 1 sfnum 0 splittable false
function:
hw_addr 02:fa:70:ff:35:5d state active opstate attached
auxiliary/mlx5_core.sf.2/6619136: type eth netdev enp3s0f0s0 flavour virtual splittable false
auxiliary/mlx5_core.sf.3/8716288: type eth netdev enp3s0f1s0 flavour virtual splittable false
ubuntu@localhost:~$ sudo ethtool -i enp3s0f0s0
driver: mlx5_core
version: 25.07-0.9.7
firmware-version: 32.46.1006 (MT_0000000884)
bus-info: mlx5_core.sf.2
ubuntu@localhost:~$ sudo ethtool -i pf0hpf
driver: mlx5e_rep
version: 5.15.0-1074-bluefield
firmware-version: 32.46.1006 (MT_0000000884)
ubuntu@localhost:~$ sudo ethtool -i en3f0pf0sf0
driver: mlx5e_rep
version: 5.15.0-1074-bluefield
firmware-version: 32.46.1006 (MT_0000000884)