Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Prerequisites - One Time Process

Rename/delete the dnsmasq from /usr/bin 

Please make sure 

1. In /nvram

Code Block
languagebash
titlenvram prerequest
collapsetrue
cat EasymeshCfg.json 
{
	"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 
}
cat InterfaceMap.json
{
    "PhyList": [
        {
            "Index": 0,
            "RadioList": [
                 {
                    "Index": 2,
                    "RadioName": "wifi2",
                    "InterfaceList": [
                        {
                            "InterfaceName": "wifi2",
                            "Bridge": "brlan0",
                            "vlanId": 0,
                            "vapIndex": 4,
                            "vapName": "private_ssid_6g"
                        }
                    ]
                },
                {
                    "Index": 1,
                    "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"
                        }
                    ]
                }
            ]
        }
    ]
}


...

Code Block
languagebash
titlepre_scipt
collapsetrue
#!/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
iw phy phy0 interface add wifi1.1 type __ap
#iw phy phy0 interface add wifi2.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

Remove default onewifi db from /opt/secure/wifi

To run onewifi - systemctl start onewifi

Now, check mesh backhaul connection is established or not for 5G .

Please use below command to check ,

  1. iw dev wifi1.1 info  in Extender 1
  2. iw dev wifi1.1.sta info in ctrl
  3. iw dev wifi1.1.sta station dump in ctrl - this command give the Extender1 connected client info

Once above steps are success, then run the agent at Ext 1

systemctl start em_agent

Please wait few min, then check iw dev 

All private vaps should be up and running in Ext-1 with default EasyMesh ssid's (i,e private_ssid)





  1. Start onewifi easymesh agent
    Panel
    borderColorblack
    borderStyledashed
    titleonewifi_em_agent( full logs attached below)

    /usr/ccsp/EasyMesh#./onewifi_em_agent
    input_listener:646 he_bus open success
    input_listener:664 recv data:
    {
        "Version":    "1.0",
        "SubDocName":    "dml",
        "WifiConfig":    {
            "GASConfig":    {
                "AdvertisementId":    0,
                "PauseForServerResp":    true,
                "RespTimeout":    5000,
                "ComebackDelay":    1000,
                "RespBufferTime":    1000,
                "QueryRespLengthLimit":    127
            },

  2. Check whether agent window receives subdoc decode success
  3. Check whether AP acquired private_ssid through backhaul

...