Поддерживает ли lwIP Zeroconf?
Я вижу, что lwIP имеет некоторый AutoIP (aka IPv4LL, aka RFC 3927), но я не могу сказать, делает ли он что-либо более высоко в стеке Zeroconf, а именно mDNS и DNS-SD (с RFC 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 по-прежнему довольно тяжелый для очень маленьких систем (с точки зрения использования ОЗУ), поэтому, если требуется только базовая функциональность, это может быть предпочтительным.