Description
Proposal for Enabling OpenThread Border Router functionality in Zephyr
Introduction
Zephyr has integrated OpenThread stack and supports functionality for a 15.4 node. Our proposal is to leverage what OpenThread stack supports and to enable Border Router functionality.
Proposed changes
Enablement of routing capability between interfaces from .conf file
- Allow IPv6 traffic to be forwarded between OpenThread and Wi-Fi/Eth interface.
- Add routing table entries and manage them accordingly.
Notify OpenThread stack about ICMPv6 ND messages (RA, RS, ND)
- Create a raw socket using BSD socket style or register an ICMP callback through which OpenThread stack is notified.
Implement platform APIs required by OpenThread Border Router application
- Infrastructure interface
- UDP platform
- mDNS socket
- TREL module
- Border Agent module
- DNS upstream resolver
Concerns and Unresolved Questions
mDNS implementation
OpenThread includes its own mDNS module, implemented in accordance with RFC 6762, and provides a platform API for sending and receiving mDNS messages. Zephyr also offers its own mDNS responder. Our preferred approach is to utilize OpenThread’s mDNS module—at least for OpenThread-specific functionalities such as advertising/discovery proxy, Border Agent, and TREL. However, we are uncertain about which mDNS module should be used by an application developed in conjunction with the Border Router functionality. We are considering using only OpenThread's mDNS implementation and disabling Zephyr's mDNS responder or an approach using a dual mDNS stack implementation.
Metadata
Metadata
Assignees
Type
Projects
Status