General description
The Extender profile is a specialized prplOS build targeted devices for prplMesh networking.
It is a lightweight version of prplOS with the minimal set of packages and services to reduce flash and memory footprint, without WAN functionality and limited to LAN services only. The CPE running the Extender profile is a functional equivalent of Layer2 bridge.
The key component of the Extender profile is prplMesh Agent.
There are two variants of the Extender builds:
- Minimal configuration
- Full configuration
@startditaa < -E
World
|
|
|
|
|
+--+---+
+-----------+ wan +----+ +-----------------------+
| +------+ | | |
| +--+---+ +----+-+ |
| Gateway | lan +---------+ lan | Extender |
| +--+---+ +----+-+ |
| | | |
| prplMesh | | prplMesh |
| | | |
| +--+---+ +----+-+ |
| | wlan | | wlan | |
| +--+---+ +----+-+ |
| +------+ | | | | +------+ |
+--+ lan +-------------+ +-----+-----+ +-------------+ lan +--+
+--+---+ | +--+---+
| | |
| | |
| | |
| | |
+--+---+ | +--+---+
+--+ lan +-------------+ | +-------------+ lan +--+
| +------+ | | | +------+ |
| Client | | | Client |
| | | | |
+-----------------------+ | +-----------------------+
|
:
+------+
+--+ wlan +-------------+
| +------+ |
| Client |
| |
+-----------------------+
@endditaa
The minimal configuration
The minimal configuration represents a device described above functionality.
The full configuration
The full configuration includes the same functionality as minimal configuration and additionally supports:
- TR-069 management with UPnP-IGD functionality;
- USP management functionality;
- partial LCM functionality: support only extensions with limited network access;
- support the
Device.GatewayInfo.data model.
Functional discription
More detailed technical documentation about functionality is present here and here.
New functionality
To support UPnP-IGD, TR-069, and USP functionality on the Extender firmware contains new componennts:
- tr069-connectionrequest: its primary role is to enable TR-069 Auto Configuration Server (ACS) connectivity;
- tr069-discovery: implementation of the ACS Discovery mechanism using DHCPv4/6 options, received from gateway;
- usp-discovery: service intended to support USP controller discovery using DHCPv4/6 options, received from the gateway;
- tr181-gatewayinfo: service intended to support TR-181
Device.GatewayInfo.model per TR-069 and TR-369 standards.
More detailed documentation is part of the repositories for each described components:
prplMesh
The GW should be the prplMesh Controller. The Extender is a prplMesh Agent and it allows all prplMesh features, such as Wi-Fi autoconfiguration from the GW, etc.
The prplMesh onboarding is possible via:
- wired: in this case, it is enough to connect the Extender device to the Gateway via Ethernet. The pairing is made automatically.
- wireless: in this case, it is necessary to push the WPS button on the Gateway and Extender to connect them. All over procedures are happening automatically.
STP
To avoid loops, for example if Extender connected to Gateway via wired and wireless at the same time, on the Extender on the br-lan STP is enabled by default.
Network
The Extender firmware doesn't contain a WAN interface. All Ethernet interfaces are LAN and part of the br-lan bridge.
The Extender firmware contains only DHCPv4/6 clients (including SLAAC) and doesn't contain the DHCPv4/6 servers.
So the br-lan gets dynamic IP from GW by DHCP together with all DHCP options which are necessary to configure ACS/USP.
Build Extender firmware
To build the Extender firmware, it is necessary to use two new profiles:
- extender_full: to build Extender full firmware;
- extender_minimal: to build Extender minimal firmware.
For example, build the Extender full firmware for the Freedom board you need at leats:
./scripts/gen_config.py qca_ipq95xx extender_full
The similar for the Extender minimal firmware:
./scripts/gen_config.py qca_ipq95xx extender_minimal
all other steps are the same as for other firmware types. See prpl documentation: https://gitlab.com/prpl-foundation/prplos/prplos/-/wikis/Building-prplOS