lwIP是否支持Zeroconf?

我看到lwIP有一些AutoIP(又名IPv4LL,又名RFC 3927)代码,但我不知道它是否在Zeroconf堆栈中做了更高的任务,即mDNS和DNS-SD(使用RFC 2782)。 那么,lwIP是否支持DNS-SD服务发现?如果没有,是否容易从像Avahi这样的项目中移植代码(假设许可允许)?     
已邀请:
不,除了AutoIP之外,lwIP不支持Zeroconf的任何部分。 我没有看过Avahi,而是将Apples mDNSResponder移植到lwIP 很简单。你身边有一点肮脏 必须拉回pbuf标头才能访问IP标头以获取 发件人IP(我认为这是一个“正确”的方法正在进行中 对于lwIP但是AFAIK它还没有发布)。 使用mDNSResponder,您可以获得服务广告和发现。     
我无法评论您问题的LWIP部分(我上次使用LWIP时它甚至没有支持IPv4LL),但您可能有兴趣知道Apple已经开源了他们的mDNSResponder代码,可以从这里获得: http://developer.apple.com/networking/bonjour 这个实现的有趣之处在于它们提供了一个VxWorks平台层,与Avahi库相比,它可能更适合移植到嵌入式目标。     
lwIP网站有一个任务跟踪器,其中包含以下三个项目(看起来它们是在2010年左右添加的,大约是最初询问此问题的时间): 将“One shot”多播DNS查询(.local)添加到dns.c 标记为完成,2016年12月。它提供了ZeroConf功能的子集。它不是一个完整的解决方案,但可以成为一个良好的基础。 创建“mDNSQuerier”模块以支持多个响应和连续多播DNS查询 创建多播DNS响应器模块,使LwIP应用程序能够支持多播DNS主机名重建 2015年8月28日,后两张票被标记为“已取消”,并附有“已取消,因为似乎没有人愿意为此工作”。     
这是一个非常小的mDNS响应器,可以很容易地移植到lwIP: https://bitbucket.org/geekman/tinysvcmdns 对于非常小的系统(就RAM使用而言),苹果mDNSResponder仍然相当重量级,因此如果只需要基本功能,那么这可能是首选。     

要回复问题请先登录注册