Я нахожусь в процессе покупки карты 25Gbe и оцениваю эту карту в настоящий момент, и мне кажется, что я не могу заставить ее получать поток 25G с 64-байтовым трафиком UDP или TCP-пакетами. Получение тяжелых отбрасываний пакетов, когда dpdk-pktgen заявляет, что он использует столько ядер, сколько я настроил. Сложнее всего выяснить, почему пакеты поступают в MAC, но отбрасываются, когда достигают самого физического уровня. Это заставляет меня думать, что рассредоточение приема пакетов обрабатывается некорректно. Это заставляет меня поверить, что RSS не работает с устройством под dpdk. IRQ рассредоточены между ядрами, используемыми в системе, которые были изолированы, чтобы ядро не распределяло задачи поверх них, и вся необходимая настройка, похоже, утверждает, что это было сделано, и все должно продвигаться, но не могу преодолеть это препятствие.
Выполните команду для инициализации dpdk-pktgen:
RTE_SDK=../dpdk_Src/share/dpdk/ sudo -E ./app/build/pktgen -c 0x555555555 -n 8 w 03:00.1 -- -T -m '[2-28:29-33].0' -N -P
Я прочитал документацию, предоставленную DPDK RSS, но не смогли увидеть никаких изменений. Я изменил фактический драйвер, содержащийся в исходном коде dpdk "$ RTE_SDK / drivers / net / mlx5 / mlx5-rss.c" и добавил в предложенный ключ, я также изменил файл pktgen-port-cfg.c с теми же инструкциями, изменяя приведенный ниже фрагмент кода
const struct rte_eth_conf default_port_conf = {
.rxmode = {
.split_hdr_size = 0,
.header_split = 0, /**< Header Split disabled. */
.hw_ip_checksum = 0, /**< IP checksum offload disabled. */
.hw_vlan_filter = 0, /**< VLAN filtering enabled. */
.hw_vlan_strip = 0, /**< VLAN strip enabled. */
.hw_vlan_extend = 0, /**< Extended VLAN disabled. */
.jumbo_frame = 0, /**< Jumbo Frame Support disabled. */
.hw_strip_crc = 0, /**< CRC stripping by hardware disabled. */
},
.rx_adv_conf = {
.rss_conf = {
.rss_key = NULL,
.rss_key_len = 0,
.rss_hf = ETH_RSS_IP,
},
},
.txmode = {
.mq_mode = ETH_MQ_TX_NONE,
}, };
Изменение rx_adv_conf для отражения ключа, который я хочу использовать, т.е.
.rx_adv_conf = {
.rss_conf = {
.rss_key = "65da65da65da65da65da65da65da65da65da65da",
.rss_key_len = 40,
.rss_hf = ETH_RSS_IP,
},
},
Дело в том, что в документации, кажется, утверждается, что пока установлен параметр rss_hf, он будет использовать RSS, внутренне определенный, если не указано явно. И должно ли это быть, есть ли способ проверить скорость приема на каждый звонок в pktgen, ethtool или любом другом инструменте?