Проблема передачи пакетов DPDK UDP - ошибка длины UDP больше длины полезной нагрузки IP - PullRequest
0 голосов
/ 20 апреля 2019

Мы недавно обновились до версии 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 для решения этой проблемы.

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...