LWIP PBUF, лишние байты при отправке UDP?

Я использую LWIP в приложении, которое требует высокой скорости передачи данных. Итак, я выделяю 4 pbuf один раз и сохраняю их адрес, и с помощью некоторой аппаратной магии заполняю их один за другим и говорю программе, что буфер готов, и программное обеспечение отправляет его в виде пакетов UDP, как бы то ни было через некоторое время, когда я обнюхиваю пакет, я в моем пакете около 60 дополнительных байтов, они выглядят как дополнительные заголовки UDP, но в полезной нагрузке. любое обходное решение/предложение?


person hessam hedieh    schedule 15.02.2016    source источник


Ответы (1)


В моем проекте на работе у нас было повреждение pbuf, которое вызывало аналогичную проблему. Мы использовали несколько MAC-адресов разных типов от xilinx, и отдел pbuf был недоволен. Я бы порекомендовал вам включить полную отладку lwip для уровня IP и, возможно, уровня UDP. Затем вручную обрежьте отпечатки до чего-то, чем можно управлять, чтобы воспроизвести проблему (у lwip есть минимальный уровень печати — вы можете использовать его, чтобы обрезать такие вещи, как предупреждения, а не серьезные отпечатки). В нашем случае мы получили бы ошибки контрольной суммы уровня UDP или IP, и это было признаком плохой работы. Кроме того, полезно тестировать только в одном направлении за раз, чтобы ограничить возможности плохих вещей в одном направлении. Мы использовали примеры iperf от xilinx и расширили их. Они были полезны при устранении неполадок. Кстати, 4 pbufs — это ничто... Когда я просмотрел трафик Ethernet, я обнаружил, что происходит куча всего, накладных расходов и т. д. Существует масса потенциальных проблем, от слишком малого количества записей в таблице ARP и так далее... Четыре pbufs смехотворно низкий, если вы так ограничены памятью, мне жаль, что вы пытаетесь использовать lwIP. Это просто звучит как кошмар. Кроме того, будьте осторожны, так как обычно печать блокируется... так что это снизит производительность. Целесообразно заменить отладочные распечатки lwip неблокирующей подпрограммой, которая, как вы знаете, не засорит вашу производительность в реальном времени.

person Mister Pidot    schedule 24.03.2016