Skip to content

Enabling OpenThread Border Router in Zephyr #90850

Open
@Cristib05

Description

@Cristib05

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

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions