Поддерживает ли lwIP Zeroconf?

Я вижу, что lwIP имеет некоторый AutoIP (aka IPv4LL, aka RFC 3927), но я не могу сказать, делает ли он что-либо более высоко в стеке Zeroconf, а именно mDNS и DNS-SDRFC 2782).

Итак, поддерживает ли lwIP обнаружение службы DNS-SD? Если нет, было бы легко переносить код из проекта, например Avahi, который делает (предполагая, что это разрешает лицензирование)?

Ответы

Ответ 1

Нет, lwIP не поддерживает какую-либо часть Zeroconf, кроме AutoIP. Я не смотрел на Авахи, но переносил яблоки mDNSRsponder на lwIP довольно просто. Есть одна битка, где вы необходимо отбросить заголовки pbuf для доступа к IP-заголовку, чтобы получить IP-адрес отправителя (я думаю, что "правильный" метод для этого находится в работе для lwIP, но AFAIK это еще не в релизе).

С помощью mDNSResponder вы получаете как рекламу услуг, так и обнаружение.

Ответ 2

Я не могу комментировать часть LWIP вашего вопроса (последний раз, когда я использовал LWIP, у меня даже не было поддержки IPv4LL), но вам может быть интересно узнать, что Apple имеет открытый код своего mDNSResponder, доступный отсюда: http://developer.apple.com/networking/bonjour

Интересная вещь об этой реализации заключается в том, что они обеспечивают уровень платформы VxWorks, который вполне может быть лучшим для переноса на вашу внедренную цель, чем библиотека Avahi.

Ответ 3

На веб-сайте lwIP есть отслеживатель задач со следующими тремя элементами (похоже, что они были добавлены примерно в 2010 году, примерно в то же время этот вопрос изначально был задан):

Ответ 4

Вот очень маленький ответчик mDNS, который можно легко переносить в lwIP:

https://bitbucket.org/geekman/tinysvcmdns

Яблоки mDNSResponder по-прежнему довольно тяжелый для очень маленьких систем (с точки зрения использования ОЗУ), поэтому, если требуется только базовая функциональность, это может быть предпочтительным.