RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
draw.io Diagram | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Build Instructions
Code Block | ||||
---|---|---|---|---|
| ||||
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -m rdkb-bpi-extsrc.xml repo sync -j`nproc` --no-clone-bundle Please pick the below machine command based on your requirement # to build the image with AL_SAP MACHINE=bananapi4-rdk-broadband FEATURE_TYPE=EasyMesh source meta-cmf-bananapi/setup-environment-refboard-rdkb # to build the image without AL_SAP MACHINE=bananapi4-rdk-broadband FEATURE_TYPE=EasyMesh WITHOUT_ALSAP=yes source meta-cmf-bananapi/setup-environment-refboard-rdkb #to CP the below change for fynecli access for utopia component https://github.com/rdkcentral/utopia/pull/47 bitbake rdk-generic-broadband-image |
...
Please ensure below processes are running in ctrl.
...
Prerequisites - One Time Process
...
rm /usr/bin/dnsmasq
2. Remove default gw entry from routing table since WAN access will be through backhaul connection.
...
Build Instructions
3. Copy below content to /nvram/EasymeshCfg.json file.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"AL_MAC_ADDR": "00:0c:43:26:60:1b",
"Colocated_mode": 0,
"Backhaul_SSID": "mesh_backhaul",
"Backhaul_KeyPassphrase": "test-backhaul",
"sta_4addr_mode_enabled": true
}
|
4. Copy below content to /nvram/InterfaceMap.json file.
| |
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -m rdkb-bpi-ap-extsrc.xml
repo sync -j4 --no-clone-bundle
Please pick the below machine command based on your requirement,
#to build the image with AL_SAP
MACHINE=bananapi4-rdk-broadband-ap-extender source meta-cmf-bananapi/setup-environment-refboard-rdkb
#to build the image without AL_SAP
MACHINE=bananapi4-rdk-broadband-ap-extender FEATURE_TYPE=EasyMesh WITHOUT_ALSAP=yes source meta-cmf-bananapi/setup-environment-refboard-rdkb
bitbake rdk-generic-ap-extender-image |
Extender 1 + STAR Topology
1.Please ensure below processes are running in Ext1
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
root@Filogic-GW:~# systemctl status onewifi
* onewifi.service - Cosa service
Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/onewifi.service/lib/systemd/system/onewifi.service8;;; enabled; vendor preset: e)
Active: active (running) since Thu 2022-04-28 17:43:15 UTC; 3min 29s ago
TriggeredBy: * filogicwifiinitialized.path
Process: 1781 ExecStartPre=/bin/sh /usr/ccsp/wifi/onewifi_pre_start.sh (code=exited, status=0/SUCCESS)
Process: 2085 ExecStart=/usr/bin/OneWifi -subsys $Subsys (code=exited, status=0/SUCCESS)
Main PID: 2086 (OneWifi)
Tasks: 14 (limit: 4713)
Memory: 38.2M
CGroup: /system.slice/onewifi.service
| ||||||
Code Block | ||||||
| ||||||
{ "PhyList": [ { "Index": 0, "RadioList": [ { "Index": 2, "RadioName": "wifi2", "InterfaceList": [ `- 2086 /usr/bin/OneWifi { "InterfaceName": "wifi2", "Bridge": "brlan0", "vlanId": 0, "vapIndex": 4, "vapName": "private_ssid_6g" } -subsys eRT. 2022 Apr 28 17:42:48 Filogic-GW systemd[1]: Starting Cosa service... 2022 Apr 28 17:42:53 Filogic-GW UTOPIA[2086]: system.syscfg Shared memory file not found 2022 Apr 28 17:42:53 Filogic-GW UTOPIA[2086]: 2022-04-28 17:42:53., ../../../../git/source/syscfg/lib/syscfg_lib.c:466, Error initializing sy 2022 Apr 28 17:43:15 Filogic-GW systemd[1]: Started Cosa service. 2022 Apr 28 17:44:01 Filogic-GW [OneWifi][2086]: WiFi radio radio1 is set to UP root@Filogic-GW:~# systemctl status ieee1905_em_agent * ieee1905_em_agent.service - ieee1905 EasyMesh Remote Agent service Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/ieee1905_em_agent.service/lib/systemd/system/ieee1905_em_agent.service8;;; enabl) Active: active (running) since Thu 2022-04-28 17:43:35 UTC; 3min 16s ago Process: 3284 ExecStartPre=/bin/sh -c /usr/ccsp/EasyMesh/setup_ext_pre.sh (code=exited, status=0/SUCCESS) Process: 3303 ExecStartPre=/bin/sh -c if [ ! -e "/sys/class/net/eth1_virt_peer/address" ]; then `/usr/ccsp/EasyMesh/setup_veth_for_em.sh ) Process: 3304 ExecStartPre=/bin/sh -c sleep 5 (code=exited, status=0/SUCCESS) Process: 3439 ExecStart=/bin/sh -c /usr/bin/ieee1905 -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ie) Main PID: 3440 (ieee1905) Tasks: 7 (limit: 4713) Memory: 10.5M CGroup: /system.slice/ieee1905_em_agent.service `- 3440 /usr/bin/ieee1905 ] }, -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ieee1905::cmdu_obserr 2022 Apr 28 17:43:30 Filogic-GW systemd[1]: Starting ieee1905 EasyMesh Remote Agent service... 2022 Apr 28 17:43:35 Filogic-GW systemd[1]: Started ieee1905 EasyMesh Remote Agent service. root@Filogic-GW:~# systemctl status em_agent { * em_agent.service - EasyMesh Agent service Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/em_agent.service/lib/systemd/system/em_agent.service8;;; enabled; "Index": 1,vendor preset:) Active: active (running) since Thu 2022-04-28 17:44:00 UTC; "RadioName": "wifi1", "InterfaceList": [ { "InterfaceName": "wifi1.1", "Bridge": "brlan0", "vlanId": 0, "vapIndex": 3, "vapName": "mesh_sta_5g" }, { "InterfaceName": "wifi1", "Bridge": "brlan0", "vlanId": 0, "vapIndex": 2, "vapName": "private_ssid_5g" } ] }, { "Index": 0, "RadioName": "wifi0", "InterfaceList": [ { "InterfaceName": "wifi0.1", "Bridge": "brlan0", "vlanId": 0, "vapIndex": 1, "vapName": "mesh_backhaul_2g" }, { "InterfaceName": "wifi0", "Bridge": "brlan0", "vlanId": 0, "vapIndex": 0, "vapName": "private_ssid_2g" } ] } ] } ] } |
5. Copy below content to /usr/ccsp/wifi/onewifi_pre_script.sh.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
sleep 5
iw phy phy0 interface add wifi0 type __ap
iw phy phy0 interface add wifi0.1 type __ap
iw phy phy0 interface add wifi1 type __ap
iw phy phy0 interface add wifi2 type __ap
iw phy phy0 interface add wifi1.1 type __ap
#Obtain the wifi0 mac address
wifi_mac="$(cat /sys/class/ieee80211/phy0/macaddress)"
#Strip the : and increment mac by 1 to get wifi1 macaddress
mac=$(echo $wifi_mac | tr -d ':')
mac_incr=$((0x$mac + 8))
wifi0_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#Increment again by 1 to get wifi2 address
mac_incr=$(($mac_incr + 1))
wifi0_1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#Increment again by 1 to get wifi2 address
mac_incr=$(($mac_incr + 1))
wifi1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 1))
wifi1_1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 1))
wifi2_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#print the mac address
echo $wifi0_mac
echo $wifi1_mac
echo $wifi2_mac
#Update the mac address using ip link command
ifconfig wifi0 down
ifconfig wifi0.1 down
ifconfig wifi1 down
ifconfig wifi1.1 down
ifconfig wifi2 down
ip link set dev wifi0 address $wifi0_mac
ip link set dev wifi0.1 address $wifi0_1_mac
ip link set dev wifi1 address $wifi1_mac
ip link set dev wifi1.1 address $wifi1_1_mac
ip link set dev wifi2 address $wifi2_mac
ifconfig wifi0 up
ifconfig wifi1 up
ifconfig wifi1.1 up
ifconfig wifi2 up
exit 0 |
6. Disable the below services
...
systemctl disable ieee1905_em_ctrl.service
systemctl disable em_ctrl
7. copy below contents to /lib/systemd/system/ieee1905_em_agent.service
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[Unit]
Description=ieee1905 EasyMesh Remote Agent service
After=onewifi.service
[Service]
Type=forking
WorkingDirectory=/usr/ccsp/EasyMesh
ExecStartPre=/bin/sh -c '/usr/ccsp/EasyMesh/setup_ext_pre.sh'
ExecStartPre=/bin/sh -c 'if [ ! -e "/sys/class/net/eth1_virt_peer/address" ]; then `/usr/ccsp/EasyMesh/setup_veth_for_em.sh brlan0 eth1 false`;fi'
ExecStartPre=/bin/sh -c 'sleep 5'
ExecStart=/bin/sh -c '/usr/bin/ieee1905 -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ieee1905::cmdu_observer=trace -i eth1_virt_peer >> /tmp/ieee1905_agent_log.txt &'
Restart=always
[Install]
WantedBy=multi-user.target |
8. copy below contents to /lib/systemd/system/em_agent.service
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[Unit]
Description=EasyMesh Agent service
After=onewifi.service ieee1905_em_agent.service
[Service]
Type=forking
WorkingDirectory=/usr/ccsp/EasyMesh
ExecStartPre=/bin/sh -c 'sleep 30'
ExecStartPre=/bin/sh -c '/usr/ccsp/EasyMesh/setup_ext_pre.sh'
ExecStart=/bin/sh -c '/usr/bin/onewifi_em_agent >> /tmp/em_agent.log &'
Restart=always
[Install]
WantedBy=multi-user.target |
9. copy below contents to /usr/ccsp/EasyMesh/setup_ext_pre.sh and file permission should be 755
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
#Ensure onewifi is up and running
while [ ! -e /tmp/wifi_initialized ] && [ ! -e /tmp/wifi_dml_complete ] ;
do
sleep 1;
done
#Ensure backhaul connectivity is established
al_mac_addr=`cat /nvram/EasymeshCfg.json | grep AL_MAC_ADDR | cut -d '"' -f4`
channel_exists=`iw dev | grep $al_mac_addr -A 4 | grep channel | wc -l`
ssid_exists=`iw dev | grep $al_mac_addr -A 4 | grep ssid | wc -l`
while [ "$channel_exists" != 1 ] && [ "$ssid_exists" != 1 ] ;
do
sleep 1;
channel_exists=`iw dev | grep $al_mac_addr -A 4 | grep channel | wc -l`
ssid_exists=`iw dev | grep $al_mac_addr -A 4 | grep ssid | wc -l`
done
|
10. Reboot the device
After reboot,
11.Ensure mesh backhaul connectivity is established over 5G through wifi1.1 interface.
...
iw dev wifi1.1 info
12. Verify mesh backhaul connection in EM-Contrller side as well.
...
iw dev wifi1.1.sta<i> info
iw dev wifi1.1.sta<i> station dump
## This command gives information on connected client ie Extender1.
13. Wait for few minutes( for Agent to propagate SSID information from Controller to OneWifi in Extender1) and then check
14. Set static IP for brlan0 interface in Extender1
Code Block | ||
---|---|---|
| ||
ifconfig brlan0 10.0.0.215 netmask 255.255.255.0 up |
15. Test the connectivity to EM-Controller through backhaul
Code Block | ||
---|---|---|
| ||
ping 10.0.0.1 -c 5 |
Prerequisites - One Time Process
Code Block | ||
---|---|---|
| ||
rm /usr/bin/dnsmasq |
2. Remove default gw entry from routing table since WAN access will be through backhaul connection.
Code Block | ||
---|---|---|
| ||
route del default gw |
3. Copy below content to /nvram/EasymeshCfg.json file.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"AL_MAC_ADDR": "00:0c:43:26:60:21",
"Colocated_mode": 0,
"Backhaul_SSID": "mesh_backhaul",
"Backhaul_KeyPassphrase": "test-backhaul",
"sta_4addr_mode_enabled": true
} |
4. Copy below content to /nvram/InterfaceMap.json file.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"PhyList": [
{
"Index": 0,
"RadioList": [
{
"Index": 2,
"RadioName": "wifi2",
"InterfaceList": [
{
"InterfaceName": "wifi2",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 3,
"vapName": "private_ssid_6g"
}
]
},
{
"Index": 1,
"RadioName": "wifi1",
"InterfaceList": [
{
"InterfaceName": "wifi1",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 2,
"vapName": "private_ssid_5g"
}
]
},
{
"Index": 0,
"RadioName": "wifi0",
"InterfaceList": [
{
"InterfaceName": "wifi0.1",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 1,
"vapName": "mesh_sta_2g"
},
{
"InterfaceName": "wifi0",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 0,
"vapName": "private_ssid_2g"
}
]
}
]
}
]
} |
5. Copy below content to /usr/ccsp/wifi/onewifi_pre_script.sh.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
sleep 5
#To update al_mac_addr in EasyMeshCfg.json to avoid onewifi restarting during fresh boot-up
#wan_mac="$(cat /sys/class/ieee80211/phy0/macaddress)"
#old_al_mac_addr=`cat /nvram/EasymeshCfg.json | grep AL_MAC_ADDR | cut -d '"' -f4`
#if [ "$old_al_mac_addr" == "00:00:00:00:00:00" ]; then
# sed -i "s/$old_al_mac_addr/$wan_mac/g" /nvram/EasymeshCfg.json
#fi
iw phy phy0 interface add wifi0 type __ap
iw phy phy0 interface add wifi0.1 type __ap
iw phy phy0 interface add wifi1 type __ap
iw phy phy0 interface add wifi2 type __ap
#Obtain the wifi0 mac address
wifi_mac="$(cat /sys/class/ieee80211/phy0/macaddress)"
#Strip the : and increment mac by 1 to get wifi1 macaddress
mac=$(echo $wifi_mac | tr -d ':')
mac_incr=$((0x$mac + 16))
wifi0_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 1))
wifi0_1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 1))
wifi1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#Increment again by 1 to get wifi2 address
mac_incr=$(($mac_incr + 1))
wifi2_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#print the mac address
echo $wifi0_mac
echo $wifi0_1_mac
echo $wifi1_mac
echo $wifi2_mac
#Update the mac address using ip link command
ifconfig wifi0 down
ifconfig wifi0.1 down
ifconfig wifi1 down
ifconfig wifi2 down
ip link set dev wifi0 address $wifi0_mac
ip link set dev wifi0.1 address $wifi0_1_mac
ip link set dev wifi1 address $wifi1_mac
ip link set dev wifi2 address $wifi2_mac
ifconfig wifi0 up
ifconfig wifi1 up
ifconfig wifi2 up
exit 0 |
6. Disable the below services
Code Block | ||
---|---|---|
| ||
systemctl disable ieee1905_em_ctrl.service
systemctl disable em_ctrl |
7. copy below contents to /lib/systemd/system/ieee1905_em_agent.service
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[Unit]
Description=ieee1905 EasyMesh Remote Agent service
After=onewifi.service
[Service]
Type=forking
WorkingDirectory=/usr/ccsp/EasyMesh
ExecStartPre=/bin/sh -c '/usr/ccsp/EasyMesh/setup_ext_pre.sh'
ExecStartPre=/bin/sh -c 'if [ ! -e "/sys/class/net/eth1_virt_peer/address" ]; then `/usr/ccsp/EasyMesh/setup_veth_for_em.sh brlan0 eth1 false`;fi'
ExecStartPre=/bin/sh -c 'sleep 5'
ExecStart=/bin/sh -c '/usr/bin/ieee1905 -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ieee1905::cmdu_observer=trace -i eth1_virt_peer >> /tmp/ieee1905_agent_log.txt &'
Restart=always
[Install]
WantedBy=multi-user.target |
8.copy below contents to /lib/systemd/system/em_agent.service
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[Unit]
Description=EasyMesh Agent service
After=onewifi.service ieee1905_em_agent.service
[Service]
Type=forking
WorkingDirectory=/usr/ccsp/EasyMesh
ExecStartPre=/bin/sh -c 'sleep 30'
ExecStartPre=/bin/sh -c '/usr/ccsp/EasyMesh/setup_ext_pre.sh'
ExecStart=/bin/sh -c '/usr/bin/onewifi_em_agent >> /tmp/em_agent.log &'
Restart=always
[Install]
WantedBy=multi-user.target |
9. copy below contents to /usr/ccsp/EasyMesh/setup_ext_pre.sh and file permission should be 755
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
#Ensure onewifi is up and running
while [ ! -e /tmp/wifi_initialized ] && [ ! -e /tmp/wifi_dml_complete ] ;
do
sleep 1;
done
#Ensure backhaul connectivity is established
al_mac_addr=`cat /nvram/EasymeshCfg.json | grep AL_MAC_ADDR | cut -d '"' -f4`
channel_exists=`iw dev | grep $al_mac_addr -A 4 | grep channel | wc -l`
ssid_exists=`iw dev | grep $al_mac_addr -A 4 | grep ssid | wc -l`
while [ "$channel_exists" != 1 ] && [ "$ssid_exists" != 1 ] ;
do
sleep 1;
channel_exists=`iw dev | grep $al_mac_addr -A 4 | grep channel | wc -l`
ssid_exists=`iw dev | grep $al_mac_addr -A 4 | grep ssid | wc -l`
done |
10. Reboot the device
After reboot,
11. Ensure mesh backhaul connectivity is established over 2.4G through wifi0.1 interface.
Code Block | ||
---|---|---|
| ||
iw dev wifi0.1 info |
12. Verify mesh backhaul connection in Extender1 side as well.
Code Block | ||
---|---|---|
| ||
iw dev wifi0.1.sta<i> info
iw dev wifi0.1.sta<i> station dump ## This command gives information on connected client ie Extender2. |
13. Wait for few minutes( for Agent to propagate SSID information from Controller to OneWifi in Extender2) and then check
14. Set static IP for brlan0 interface in Extender2
Code Block | ||
---|---|---|
| ||
ifconfig brlan0 10.0.0.210 netmask 255.255.255.0 up |
15. Test the connectivity to EM-Controller through backhaul
Code Block | ||
---|---|---|
| ||
ping 10.0.0.1 -c 5 |
Test the connectivity with wireless clients.
Prerequisites - One Time Process
Code Block | ||
---|---|---|
| ||
rm /usr/bin/dnsmasq |
2. Remove default gw entry from routing table since WAN access will be through backhaul connection.
Code Block | ||
---|---|---|
| ||
route del default gw |
3. Copy below content to /nvram/EasymeshCfg.json file.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"AL_MAC_ADDR": "00:0c:43:26:60:2a",
"Colocated_mode": 0,
"Backhaul_SSID": "mesh_backhaul",
"Backhaul_KeyPassphrase": "test-backhaul",
"sta_4addr_mode_enabled": true
} |
4. Copy below content to /nvram/InterfaceMap.json file.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"PhyList": [
{
"Index": 0,
"RadioList": [
{
"Index": 2,
"RadioName": "wifi2",
"InterfaceList": [
{
"InterfaceName": "wifi2",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 3,
"vapName": "private_ssid_6g"
}
]
},
{
"Index": 1,
"RadioName": "wifi1",
"InterfaceList": [
{
"InterfaceName": "wifi1.1",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 2,
"vapName": "mesh_sta_5g"
},
{
"InterfaceName": "wifi1",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 1,
"vapName": "private_ssid_5g"
}
]
},
{
"Index": 0,
"RadioName": "wifi0",
"InterfaceList": [
{
"InterfaceName": "wifi0",
"Bridge": "brlan0",
"vlanId": 0,
"vapIndex": 0,
"vapName": "private_ssid_2g"
}
]
}
]
}
]
} |
5. Copy below content to /usr/ccsp/wifi/onewifi_pre_script.sh.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
sleep 5
iw phy phy0 interface add wifi0 type __ap
iw phy phy0 interface add wifi1 type __ap
iw phy phy0 interface add wifi2 type __ap
iw phy phy0 interface add wifi1.1 type __ap
#Obtain the wifi0 mac address
wifi_mac="$(cat /sys/class/ieee80211/phy0/macaddress)"
#Strip the : and increment mac by 1 to get wifi1 macaddress
mac=$(echo $wifi_mac | tr -d ':')
mac_incr=$((0x$mac + 24))
wifi0_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#Increment again by 1 to get wifi2 address
mac_incr=$(($mac_incr + 1))
wifi1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 1))
wifi1_1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 1))
wifi2_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#print the mac address
echo $wifi0_mac
echo $wifi1_mac
echo $wifi2_mac
#Update the mac address using ip link command
ifconfig wifi0 down
ifconfig wifi1 down
ifconfig wifi1.1 down
ifconfig wifi2 down
ip link set dev wifi0 address $wifi0_mac
ip link set dev wifi1 address $wifi1_mac
ip link set dev wifi1.1 address $wifi1_1_mac
ip link set dev wifi2 address $wifi2_mac
ifconfig wifi0 up
ifconfig wifi1 up
ifconfig wifi1.1 up
ifconfig wifi2 up
exit 0 |
6. disable the below services
Code Block | ||
---|---|---|
| ||
systemctl disable ieee1905_em_ctrl.service
systemctl disable em_ctrl |
7. copy below contents to /lib/systemd/system/ieee1905_em_agent.service
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[Unit]
Description=ieee1905 EasyMesh Remote Agent service
After=onewifi.service
[Service]
Type=forking
WorkingDirectory=/usr/ccsp/EasyMesh
ExecStartPre=/bin/sh -c '/usr/ccsp/EasyMesh/setup_ext_pre.sh'
ExecStartPre=/bin/sh -c 'if [ ! -e "/sys/class/net/eth1_virt_peer/address" ]; then `/usr/ccsp/EasyMesh/setup_veth_for_em.sh brlan0 eth1 false`;fi'
ExecStartPre=/bin/sh -c 'sleep 5'
ExecStart=/bin/sh -c '/usr/bin/ieee1905 -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ieee1905::cmdu_observer=trace -i eth1_virt_peer >> /tmp/ieee1905_agent_log.txt &'
Restart=always
[Install]
WantedBy=multi-user.target |
8.copy below contents to /lib/systemd/system/em_agent.service
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
[Unit] Description=EasyMesh Agent service After=onewifi.service ieee1905_em_agent.service [Service] Type=forking WorkingDirectory=/usr/ccsp/EasyMesh 2min 57s ago Process: 3283 ExecStartPre=/bin/sh -c 'sleep 30' (code=exited, status=0/SUCCESS) Process: 3621 ExecStartPre=/bin/sh -c '/usr/ccsp/EasyMesh/setup_ext_pre.sh' (code=exited, status=0/SUCCESS) Process: 3640 ExecStart=/bin/sh -c '/usr/bin/onewifi_em_agent >> /tmp/em_agent.log &' Restart=always [Install] WantedBy=multi-user.target |
9. copy below contents to /usr/ccsp/EasyMesh/setup_ext_pre.sh and file permission should be 755
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#!/bin/sh
#Ensure onewifi is up and running
while [ ! -e /tmp/wifi_initialized ] && [ ! -e /tmp/wifi_dml_complete ] ;
do
sleep 1;
done
#Ensure backhaul connectivity is established
al_mac_addr=`cat /nvram/EasymeshCfg.json | grep AL_MAC_ADDR | cut -d '"' -f4`
channel_exists=`iw dev | grep $al_mac_addr -A 4 | grep channel | wc -l`
ssid_exists=`iw dev | grep $al_mac_addr -A 4 | grep ssid | wc -l`
while [ "$channel_exists" != 1 ] && [ "$ssid_exists" != 1 ] ;
do
sleep 1;
channel_exists=`iw dev | grep $al_mac_addr -A 4 | grep channel | wc -l`
ssid_exists=`iw dev | grep $al_mac_addr -A 4 | grep ssid | wc -l`
done |
10. Reboot the device
.log & (code=exited, status=0/SUCCESS)
Main PID: 3641 (onewifi_em_agen)
Tasks: 9 (limit: 4713)
Memory: 10.8M
CGroup: /system.slice/em_agent.service
`- 3641 /usr/bin/onewifi_em_agent
|
2.Ensure mesh backhaul connectivity is established over 5G through wifi1.1 interface.
iw dev wifi1.3 info |
3.Verify mesh backhaul connection in EM-Contrller side as well.
|
4. Wait for few minutes( for Agent to propagate SSID information from Controller to OneWifi in Extender1) and then check
5. Test the connectivity to EM-Controller through backhaul
Code Block | ||
---|---|---|
| ||
ping 10.0.0.1 -c 5 |
1. Ensure Extender 1 is running properly with configured vap's of FH and BH.
2. Make atleast 7 feet distance from Ext1 to Ext2
3. Ensure ieee1905_em_agent,onewifi_em_agent processes are running in Ext2
411. Ensure mesh backhaul connectivity is established over 5G through wifi1.1 interface.
Code Block | ||
---|---|---|
| ||
iw dev wifi1.13 info |
125. Verify mesh backhaul connection in EM-Controller Extender1 side as well.
Code Block | ||
---|---|---|
| ||
iw dev wifi1.1.sta<i> info iw dev wifi1.1.sta<i> station dump ## This command gives information on connected client ie Extender2. |
136. Wait for few minutes( for Agent to propagate SSID information from Controller to OneWifi in Extender2) and then check
14. Set static IP for brlan0 interface in Extender2
Code Block | ||
---|---|---|
| ||
ifconfig brlan0 10.0.0.205 netmask 255.255.255.0 up |
157. Test the connectivity to EM-Controller through backhaul
...