/borderrouter

Farm Jenny's configuration of an open source border router, designed to work with OpenThread

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Build Status Coverage Status Docker Status Docker Status


OpenThread Border Router

Per the Thread 1.1.1 Specification, a Thread Border Router connects a Thread network to other IP-based networks, such as Wi-Fi or Ethernet. A Thread network requires a Border Router to connect to other networks.

A Thread Border Router minimally supports the following functions:

  • End-to-end IP connectivity via routing between Thread devices and other external IP networks
  • External Thread Commissioning (for example, a mobile phone) to authenticate and join a Thread device to a Thread network
Thread Certified Component

OpenThread's implementation of a Border Router is called OpenThread Border Router (OTBR). OTBR is a Thread Certified Component on the Raspberry Pi 3B with a Nordic nRF52840 NCP.

OTBR includes a number of features, including:

  • Web UI for configuration and management
  • Thread Border Agent to support an External Commissioner
  • DHCPv6 Prefix Delegation to obtain IPv6 prefixes for a Thread network
  • NAT64 for connecting to IPv4 networks
  • DNS64 to allow Thread devices to initiate communications by name to an IPv4-only server
  • Thread interface driver using wpantund
  • Docker support

More information about Thread can be found at threadgroup.org. Thread is a registered trademark of the Thread Group, Inc.

Getting started

The quickest way to get started with OTBR is to try the Docker version. Run OTBR in a Docker container on any Linux-based system or a Raspberry Pi 3B, using either a physical or emulated NCP. See the Docker Support guide on openthread.io for more info.

OTBR also runs directly on supported platforms like the Raspberry Pi 3B. If you're interested in building and configuring OTBR directly, or to learn more about the OTBR architecture, then see the rest of our end-user documentation at openthread.io.

Note: For users in China, end-user documentation is available at openthread.google.cn.

If you're interested in contributing to OpenThread Border Router, read on.

Contributing

We would love for you to contribute to OpenThread Border Router and help make it even better than it is today! See our Contributing Guidelines for more information.

Contributors are required to abide by our Code of Conduct and Coding Conventions and Style Guide.

We follow the philosophy of Scripts to Rule Them All.

Versioning

OpenThread Border Router follows the Semantic Versioning guidelines for release cycle transparency and to maintain backwards compatibility. OpenThread Border Router's versioning is independent of the Thread protocol specification version but will clearly indicate which version of the specification it currently supports.

License

OpenThread Border Router is released under the BSD 3-Clause license. See the LICENSE file for more information.

Please only use the OpenThread name and marks when accurately referencing this software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise affiliated with Nest, Google, or The Thread Group.

Need help?

There are numerous avenues for OpenThread support:

The openthread-users Google Group is the recommended place for users to discuss OpenThread and interact directly with the OpenThread team.

OpenThread

To learn more about OpenThread, see the OpenThread repository.