Мы недавно обновились до версии DPDK 18.08.После обновления до последней версии наблюдается проблема с ошибкой передачи пакетов UDP для нескольких пакетов.
При передаче пакетов UDP размером 28 байт и 48 байт проблем не обнаружено.Я попытался напечатать вычисление длины пакета в моей программе непосредственно перед отправкой его в Ядро, используя rte_kni_tx_burst.Расчет длины пакета мне кажется правильным.
1.)
size_udp:48
sizeof(struct udp_hdr):8
size_ApplMsg:40
udphdr->dgram_len:12288
m->data_len:82
size_ip:68
l2_data_shift:14
2.)
size_udp:28
sizeof(struct udp_hdr):8
size_ApplMsg:20
udphdr->dgram_len:7168
m->data_len:62
ip->total_length:12288
size_ip:48
l2_data_shift:14
Packets with UDP size 736 are not getting transmitted to the receiving end and getting dropped.
3.)
size_udp:736
sizeof(struct udp_hdr):8
size_ApplMsg:728
udphdr->dgram_len:57346
m->data_len:770
size_ip:756
l2_data_shift:14
Кроме того, MTU установлен в 1500 в моей программе.Поэтому не должно возникнуть проблем с передачей 736-байтовых данных UDP, размер которых меньше 1500 байт.
Я пытался увеличить размер буфера ядра, но это не помогло.netstat -su -> output показывает 0 ошибок буфера отправки / получения.
Что изменилось в DPDK 18.08 относительно пакетов UDP?Пожалуйста, предложите, если мне нужно рассмотреть настройку udp, разгрузку трафика udp для решения этой проблемы.
Спасибо,