Dear DPDK Community,

I am facing an issue with DPDK version 18.02.2 on CentOS 7.9 x86_64 with Kernel 
3.10.0. After binding the network card (BCM57810) to DPDK using igb_uio driver, 
and calling rte_eth_dev_start(), the link status remains "down" when I call 
rte_eth_link_get() and rte_eth_link_get_nowait().

I have confirmed that the network cable is properly connected, and the hardware 
is functioning correctly.

This setup works fine on other machines with different network cards (Intel), 
where the link status is correctly set to "up".

Environment Details:

OS: CentOS 7.9 x86_64

Kernel: 3.10.0

DPDK Version: 18.02.2

Network Card: BCM57810 (SFTP 10Gbps)

Network Driver: bnx2x (updated to the latest version)

Binding Driver: igb_uio

Steps Taken:


DPDK Compilation:

Compiled DPDK (libdpdk.so) and igb_uio.ko.

The CONFIG_RTE_LIBRTE_BNX2X_PMD=y option was enabled during compilation.

The compilation steps were correctly followed, and the DPDK setup is working 
fine on other machines.



Binding Network Device:

Before binding the network device:Network devices using kernel driver 
0000:02:00.0 'NetXtreme BCM5719 Gigabit Ethernet PCIe 1657' if=eno1 drv=tg3 
unused=igb_uio 0000:02:00.1 'NetXtreme BCM5719 Gigabit Ethernet PCIe 1657' 
if=eno2 drv=tg3 unused=igb_uio 0000:02:00.2 'NetXtreme BCM5719 Gigabit Ethernet 
PCIe 1657' if=eno3 drv=tg3 unused=igb_uio 0000:02:00.3 'NetXtreme BCM5719 
Gigabit Ethernet PCIe 1657' if=eno4 drv=tg3 unused=igb_uio 0000:04:00.1 
'NetXtreme II BCM57810 10 Gigabit Ethernet 168e' if=eno50 drv=bnx2x 
unused=igb_uio *Active* 



After binding the device 0000:04:00.0:Network devices using DPDK-compatible 
driver 0000:04:00.0 'NetXtreme II BCM57810 10 Gigabit Ethernet 168e' 
drv=igb_uio unused= Network devices using kernel driver 0000:02:00.0 'NetXtreme 
BCM5719 Gigabit Ethernet PCIe 1657' if=eno1 drv=tg3 unused=igb_uio 0000:02:00.1 
'NetXtreme BCM5719 Gigabit Ethernet PCIe 1657' if=eno2 drv=tg3 unused=igb_uio 
0000:02:00.2 'NetXtreme BCM5719 Gigabit Ethernet PCIe 1657' if=eno3 drv=tg3 
unused=igb_uio 0000:02:00.3 'NetXtreme BCM5719 Gigabit Ethernet PCIe 1657' 
if=eno4 drv=tg3 unused=igb_uio 0000:04:00.1 'NetXtreme II BCM57810 10 Gigabit 
Ethernet 168e' if=eno50 drv=bnx2x unused=igb_uio *Active* 





NUMA Hugepage Configuration.



Program Execution:

Successfully called the following functions, all returning >=0:ret = 
rte_eth_dev_is_valid_port(port); ret = rte_eth_dev_configure(port, rxRings, 
txRings, &port_conf); ret = rte_eth_tx_queue_setup(...); ret = 
rte_eth_rx_queue_setup(...); ret = rte_eth_dev_start(port); 





Link Status Check:

After calling rte_eth_dev_start(port), the link status remains 
down:rte_eth_link_get(port, &link); rte_eth_link_get_nowait(port, 
&link); 

Both functions return link_status != 1 (indicating "down").


Questions:

Why does the link status remain down even after successfully calling 
rte_eth_dev_start()?

Is there any additional configuration or setting that I might have missed, 
specifically for the bnx2x driver with the igb_uio binding?

Is it necessary to manually call rte_eth_dev_set_link_up() after 
rte_eth_dev_start() to activate the link, or should this be handled 
automatically by DPDK?

Could there be any driver or hardware compatibility issues between the bnx2x 
driver and DPDK 18.02.2 on this kernel version?


 

Reply via email to