⚠️ Note: Persistent configuration is currently undergoing changes according to the Prpl Configuration Management effort (access restricted to prpl Foundation associates). This page describes the current situation, but may be outdated.
prplMesh has two kinds of configuration: configuration file and platform configuration. The configuration file is meant only for development options. The platform configuration uses the platform's configuration management system and is therefore dependent on the platform.
Configuration file
The configuration file is meant only for options useful for developers. If you need to change any of these options, it's probably a bug.
There are three configuration files: for the controller (beerocks_controller.conf), for the agent (beerocks_agent.conf), and for the transport (framework_logging.conf). They reside in the config directory.
The options in these files are sufficiently self-documenting.
Platform configuration
OpenWrt
The configuration on OpenWrt uses the UCI mechanism. The configuration file is in /etc/config/prplmesh and is normally manipulated with the uci command.
It contains a global section called prplmesh and one section per radio.
The global section has the following relevant configuration options:
management_modeandoperating_mode: these two always go together, it's historical accident. For agent only, management_mode='Multi-AP-Agent' and operating_mode='Repeater'. For agent+controller, management_mode='Multi-AP-Controller-and-Agent' and operating_mode='Gateway'.client_roaming: if set to 1, enables the client steering algorithm.band_steering: if set to 1 (andclient_roamingis 0), enables the band steering algorithm (= client steering but never from one AP to a different one).certification_mode: if set to 1, the CAPI interface is enabled. Also some other behaviors are slightly different.
Radio Settings
The radio sections have the following relevant configuration options:
hostap_iface: the radio interface, e.g.wlan0.sta_iface: the backhaul STA interface on that radio.multi_ap: multi ap mode (0->Disabled, 1->Only BH Support, 2->Only FH Support, 3->FH+BH Support)multi_ap_backhaul_key: backhaul key which is shared during wpsmulti_ap_backhaul_ssid: backhaul ssid which is shared during wps
Example configuration for wireless backhaul connections are shown below.
Agent device (Backhaul STA)
It should contain at least one STA interface;
wireless.default_radio21.device='radio1'
wireless.default_radio21.mode='sta'
wireless.default_radio21.multi_ap='1'
Controller or Agent Device (Backhaul BSS)
It can contain one Fronthaul (FH) and one Backhaul (BH) on same radio. Or FH+BH can be enabled for one radio instance.
Fronthaul
wireless.default_radio1=wifi-iface
wireless.default_radio1.device='radio1'
wireless.default_radio1.network='lan'
wireless.default_radio1.mode='ap'
wireless.default_radio1.key='prplmesh_pass'
wireless.default_radio1.encryption='psk2'
wireless.default_radio1.ssid='prplmesh'
wireless.default_radio1.wps_pushbutton='1'
wireless.default_radio1.ieee80211v='1'
wireless.default_radio1.bss_transition='1'
wireless.default_radio1.ieee80211k='1'
wireless.default_radio1.bridge='br-lan'
wireless.default_radio1.ap='2'
wireless.default_radio1.multi_ap_backhaul_ssid='prplmesh_bh'
wireless.default_radio1.multi_ap_backhaul_key='prplmesh_pass2'
wireless.default_radio1.multi_ap='2'
Backhaul
wireless.default_radio20=wifi-iface
wireless.default_radio20.device='radio1'
wireless.default_radio20.network='lan'
wireless.default_radio20.mode='ap'
wireless.default_radio20.encryption='psk2'
wireless.default_radio20.ieee80211v='1'
wireless.default_radio20.bss_transition='1'
wireless.default_radio20.ap='1'
wireless.default_radio20.default_disabled='false'
wireless.default_radio20.ssid='prplmesh_bh'
wireless.default_radio20.key='prplmesh_pass2'
wireless.default_radio20.bridge='br-lan'
wireless.default_radio20.multi_ap='1'
Local PC (dummy)
Since no configuration system exists on generic linux, this uses a configuration file prplmesh_platform_db. If /tmp/prplmesh_platform_db exists, that file is used, otherwise the version in the shared directory is used.
The configuration options in this file are the same as in OpenWrt.
The following additional options exist:
hostapd_ctrl_path_<iface>: the path to hostapd.conf corresponding to the radio.wpa_supplicant_ctrl_path_<iface>: the path to wpa_supplicant.conf corresponding for the backhaul STA on the radio.
Note that the names of the radio interfaces are defined at compile time in this case. Note that the names of the STA interfaces are assumed identical to the radio interfaces in this case.
Example controller and agent configuration
In this example, we will be walking through the configuration of 2 devices running prplMesh on prplOS or openWrt. Make sure they are connected (either using Ethernet or using WPS), and choose one of them to be the controller. This example will show you how to set up both controller and agent, how to configure an SSID, how to verify that the SSID has been properly communicated to the agent, and how to enable client steering.
prplMesh Controller configuration :
- Enable Radios (disabled by default)
uci set wireless.radio0.disabled=0
uci set wireless.radio1.disabled=0
uci commit
service network restart
- Put prplMesh in gateway mode
service prplmesh gateway_mode
Wait until a line "device br-lan entered promiscuous mode" is displayed (it can take up to 30 seconds) 3. Check that Extender is found
ubus list | grep "Device.WiFi.DataElements.Network.Device.2"
- Configure Access Point
ubus call Device.WiFi.DataElements.Network.AccessPoint _add
ubus call Device.WiFi.DataElements.Network.AccessPoint.1 _set '{"parameters":{"SSID":"test_roam"}}'
ubus call Device.WiFi.DataElements.Network.AccessPoint.1 _set '{"parameters":{"Band2_4G":"true"}}'
ubus call Device.WiFi.DataElements.Network AccessPointCommit
- Check that Access Point is created
ubus list | grep "Device.WiFi.DataElements.Network.Device.2.Radio.2.BSS."
ubus call Device.WiFi.DataElements.Network.Device.2.Radio.2.BSS.2 _get
- Enable Client Steering and enable 11v
uci set wireless.default_radio0.ieee80211k='1'
uci set wireless.default_radio1.ieee80211k='1'
uci commit
ubus call Device.WiFi.DataElements.Configuration _set '{"parameters":{"ClientSteeringEnabled":"true"}}'
ubus call Device.WiFi.DataElements.Configuration _get
service prplmesh restart
Wait until a line "device br-lan entered promiscuous mode" is displayed (it can take up to 30 seconds)
PrplMesh Extender configuration :
- Disable the dhcp server on the repeater
uci set dhcp.lan.ignore="1"
uci commit dhcp
- Configuration
uci set network.wan.ifname='xxx'
uci set network.wan.proto='static'
uci set network.lan.ifname='lan0 lan1 lan2 lan3 lan4 eth2'
uci set network.lan.proto='dhcp'
uci set wireless.radio0.disabled=0
uci set wireless.radio1.disabled=0
uci commit
service network restart
uci set prplmesh.config.backhaul_wire_iface=eth2
uci commit
service prplmesh repeater_mode
RDK-B
The configuration system for RDK-B is not implemented yet. For the time being, the dummy configuration is used as well.