равном 0.
0000:3d:00. 0 'Ethernet Connection X722 for 1GbE 37d1' if=ethA3d-0 drv=i40e unused=uio_pci_generic Active
0000:3d:00. 1 'Ethernet Connection X722 for 1GbE 37d1' if=ethA3d-1 drv=i40e unused=uio_pci_generic
0000:3d:00.2 'Ethernet Connection X722 for 1GbE 37d1' if=ethA3d-2 drv=i40e unused=uio_pci_generic 0000:3d:00.
3 'Ethernet Connection X722 for 1GbE 37d1' if=ethA3d-3 drv=i40e unused=uio_pci_generic 0000:5e:00.
0 'MT2894 Family [ConnectX-6 Lx] 101f' if=ib5e-0 drv=mlx5_core unused=uio_pci_generic Active ----> lstack.
конфигурация MAC адрес этого порта
0 'MT2894 Family [ConnectX-6 Lx] 101f' if=ib5e-1 drv=mlx5_core unused=uio_pci_generic Active
0 'MT2894 Family [ConnectX-6 Lx] 101f' if=ib86-0 drv=mlx5_core unused=uio_pci_generic Active
1 'MT2894 Family [ConnectX-6 Lx] 101f' if=ib86-1 drv=mlx5_core unused=uio_pci_generic ActiveЕсли выполнить следующий тестовый программный код, вывод будет нормальным:
#include <stdio.h>
#include <rte_eal.h>
#include <rte_ethdev.h>
#include <rte_malloc.h>
#include <rte_ether.h>
void print_attached_ports_mac() {
uint16_t port_id;
struct rte_eth_dev_info dev_info;
struct rte_ether_addr mac_addr;
printf("\nDPDK подключенных сетевых портов MAC адреса:\n");
printf("----------------------------------------\n");
RTE_ETH_FOREACH_DEV(port_id) {
rte_eth_dev_info_get(port_id, &dev_info);
rte_eth_macaddr_get(port_id, &mac_addr);
printf("Порт ID: %u\n", port_id);
printf("PCI адрес: %s\n", dev_info.device->name);
printf("Драйвер имя: %s\n", dev_info.driver_name);
printf("rx queue %d, tx queue %d, nb %d %d\n", dev_info.max_rx_queues, dev_info.max_tx_queues, dev_info.nb_rx_queues, dev_info.nb_tx_queues);
printf("MAC адрес: %02X:%02X:%02X:%02X:%02X:%02X\n",
mac_addr.addr_bytes[0], mac_addr.addr_bytes[1],
mac_addr.addr_bytes[2], mac_addr.addr_bytes[3],
mac_addr.addr_bytes[4], mac_addr.addr_bytes[5]);
printf("----------------------------------------\n");
}
}
int main(int argc, char **argv) {
int ret = rte_eal_init(argc, argv);
if (ret < 0) {
rte_exit(EXIT_FAILURE, "EAL инициализация не удалась\n");
}
print_attached_ports_mac();
rte_eal_cleanup();
return 0;
}
```Вывод:
max_rx_queues и max_tx_queues равны 1024:
[root@node63 h18160]# . /dpdk_print_mac --log-level=debug -d /usr/lib64/librte_net_mlx5.so
EAL: Определено CPU лок: 56
EAL: Определено NUMA узлов: 2
EAL: Определено совместное связывание DPDK
EAL: Многопроцессорный сокет /var/run/dpdk/rte/mp_socket
EAL: Выбран режим IOVA 'PA'
EAL: Пробуем PCI драйвер: mlx5_pci (15b3:101f) устройство: 0000:5e:00.0 (сокет 0)
EAL: Проверка драйвера PCI: mlx5_pci (15b3:101f) устройство: 0000:5e:00.1 (окно 0)
EAL: Проверка драйвера PCI: mlx5_pci (15b3:101f) устройство: 0000:86:00.0 (окно 1)
EAL: Проверка драйвера PCI: mlx5_pci (15b3:101f) устройство: 0000:86:00.1 (окно 1)
TELEMETRY: Нет устаревших вызовов, устаревшее окно не создано
DPDK информация о MAC-адресах сетевых интерфейсов:
----------------------------------------
Идентификатор порта: 0
PCI-адрес: 0000:5e:00.0
Имя драйвера: mlx5_pci
rx очередь 1024, tx очередь 1024, nb 0 0
MAC-адрес: 5C:25:73:4E:EB:84
----------------------------------------
Идентификатор порта: 1
PCI-адрес: 0000:5e:00.1
Имя драйвера: mlx5_pci
rx очередь 1024, tx очередь 1024, nb 0 0
MAC-адрес: 5C:25:73:4E:EB:85
----------------------------------------
Идентификатор порта: 2
PCI-адрес: 0000:86:00.0
Имя драйвера: mlx5_pci
rx очередь 1024, tx очередь 1024, nb 0 0
MAC-адрес: 5C:25:73:4E:EB:F8
----------------------------------------
Идентификатор порта: 3
PCI-адрес: 0000:86:00.1
Имя драйвера: mlx5_pci
rx очередь 1024, tx очередь 1024, nb 0 0
MAC-адрес: 5C:25:73:4E:EB:F9
----------------------------------------
Вход Перед тем как оставить комментарий