Versions Compared

Key

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

...

BPI Controller

Prerequisites :  (one time process)

  1. Setup mysql in BPI controller (One time process)
    Panel
    borderColorblack
    borderStyledashed
    titleDB Setup

    → Input command mysql in prompt, enter into mariadb console
    → CREATE USER 'bpi'@'localhost' IDENTIFIED BY 'root';
    → ALTER USER 'bpi'@'localhost' IDENTIFIED BY 'root';
    → GRANT ALL PRIVILEGES ON *.* TO 'bpi'@'localhost' IDENTIFIED BY 'root';
    → FLUSH PRIVILEGES;
    → SELECT User, Host, plugin FROM mysql.user;
    → Exit from mysql

  2. Once user is added in mysql, enter into prompt with root access.
    Panel
    borderColorblack
    borderStyledashed
    titlebpi root

    → Input command mysql -u bpi -p, password is root

  3. Create OneWifiMesh table in mariadb
    Panel
    borderColorblack
    borderStyledashed
    titleCreating database

    create database OneWifiMesh;
    → use OneWifiMesh;
    → show tables;                   ==> should show no tables

      
  4. Please have below files in /nvram folder,

...

Code Block
languagebash
titleEasymeshCfg.json
collapsetrue
cat EasymeshCfg.json 
{
	"AL_MAC_ADDR":	"a2:f0:d1:69:f5:ae",
	"Colocated_mode":	1,
	"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": 3,
                            "vapName": "private_ssid_6g"
                        }
                    ]
                },
                {
                    "Index": 1,
                    "RadioName": "wifi1",
                    "InterfaceList": [
                        {
                            "InterfaceName": "wifi1.1",
                            "Bridge": "brlan0",
                            "vlanId": 0,
                            "vapIndex": 2,
                            "vapName": "mesh_backhaul_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"
                        }
                    ]
                }
            ]
        }
    ]
}

onewifi_pre_script.sh

path : /usr/ccsp/wifi

Code Block
languagebash
titleonewifi_pre_script_ctrl
collapsetrue
cat onewifi_pre_start.sh 
#!/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
ip link set dev brlan0 down   
brlan_mac=`ifconfig brlan0 | grep HWaddr | cut -d " " -f9`
mac_addr=$(echo $brlan_mac | tr -d ':')
mac_increment=$((0x$mac_addr + 1))
brlan_inc_mac=$(printf "%012x" $mac_increment | sed 's/../&:/g;s/:$//')
ip link set dev brlan0 address   a2:f0:d1:69:f5:ae
#ip link set dev brlan0 address  $brlan_inc_mac
sleep 1
ip link set dev brlan0 up
#sed -i "s/$old_al_mac_addr/$brlan_inc_mac/g" /nvram/EasymeshCfg.json
  

iw phy phy0 interface add wifi0 type __ap
iw phy phy0 interface add wifi1 type __ap
iw phy phy0 interface add wifi1.1 type __ap
iw phy phy0 interface add wifi2 type __ap
#iw phy phy0 interface add wifi2.1 type __ap

#Obtain the wifi0 mac address
wifi0_mac="$(cat /sys/class/ieee80211/phy0/macaddress)"
#Strip the : and increment mac by 1 to get wifi1 macaddress
mac=$(echo $wifi0_mac | tr -d ':')
mac_incr=$((0x$mac + 2))
wifi1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 2))
wifi1_1_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
#Increment again by 1 to get wifi2 address
mac_incr=$(($mac_incr + 2))
wifi2_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
mac_incr=$(($mac_incr + 2))
wifi2_1_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
ifconfig wifi2.1 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
ip link set dev wifi2.1 address $wifi2_1_mac
ifconfig wifi0 up
ifconfig wifi1 up
ifconfig wifi1.1 up
ifconfig wifi2 up
ifconfig wifi2.1 up

exit 0


  1. Start onewifi easymesh controller in new tab
    In Ctrl colocated mode should be always 1
    /usr/ccsp/EasyMesh# onewifi_em_ctrl bpi@root (Here bpi is the user and root is the password)

    Reset database, resetting can be done from cli (see log: data base empty ... needs reset)
          
  2. Start onewifi easymesh cli in a new tab
    /usr/ccsp/EasyMesh# ./onewifi_em_cli bpi
    Panel
    borderColorblack
    borderStyledashed
    titleonewifi_em_cli bpi

    → In the cli use "Tab" to move between Update, Apply and Cancel button in the cli, use keys "j" and "k" to scroll up and down
    → Select "Wifi Reset" and then select Update to update the window.
    → In the CollocatedAgentID update the Mac address of the interface which needs to be treated as AL MAC. In case of using wireless backhaul, use the appropriate "wlan" interface as CollocatedAgentID.
    → Select Apply to reset the database.

    Sample cli response given below:

    Change colocatedAgentID mac addr to interface which needs to be treated as AL MAC


  3. Once AL MAC is set check the ctrl prompt whether database reset happened

    Observe outputs deleting all datamodels and database insert to verify successful reset
    Sample response in ctrl: 

    Response in database: Respective rows will be updated in db

  4. Restart onewifi_em_ctrl
    Observe private_ssid are broadcasting

  5. After restart run the agent

...