Versions Compared

Key

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

...

Setup EM on BPI R4

Note: Currently in our bpi build private vaps configured.

BPI Controller

  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. Start onewifi easymesh controller in new tab
    /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)
  5. 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" to scroll down and "k" to scroll up the menu.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


  6. 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

  7. Restart onewifi_em_ctrl
    Observe private_ssid are broadcasting

  8. asaAfter restart run the agent

BPI Agent

  1. OneWifi should be up and running
    Update onewifi_pre_script.sh under /usr/ccsp/wifi/
    Code Block
    titleonewifi_pre_start.sh
    collapsetrue
    #!/bin/sh
    sleep 10
    
    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 wifi3 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 + 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/:$//')
    mac_incr=$(($mac_incr + 1))
    wifi3_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
    mac_incr=$(($mac_incr + 1))
    wifi4_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
    mac_incr=$(($mac_incr + 1))
    wifi5_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
    mac_incr=$(($mac_incr + 1))
    wifi6_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
    mac_incr=$(($mac_incr + 1))
    wifi7_mac=$(printf "%012x" $mac_incr | sed 's/../&:/g;s/:$//')
    #print the mac address
    echo $wifi0_mac
    echo $wifi1_mac
    echo $wifi2_mac
    echo $wifi3_mac
    echo $wifi4_mac
    
    #Update the mac address using ip link command
    ifconfig wifi0 down
    ifconfig wifi1 down
    ifconfig wifi2 down
    ifconfig wifi3 down
    ifconfig wifi4 down
    ifconfig wifi5 down
    ifconfig wifi6 down
    ifconfig wifi7 down
    
    ip link set dev wifi0 address $wifi0_mac
    ip link set dev wifi1 address $wifi3_mac
    ip link set dev wifi2 address $wifi2_mac
    ip link set dev wifi3 address $wifi3_mac
    ip link set dev wifi4 address $wifi4_mac
    
    ifconfig wifi0 up
    ifconfig wifi1 up
    ifconfig wifi2 up
    ifconfig wifi3 up
    ifconfig wifi4 up
    
    exit 0
    Update InterfaceMap.json under /nvram/
    Code Block
    titleInterfaceMap.json
    collapsetrue
    {
        "PhyList": [
            {
                "Index": 0,
                "RadioList": [
                    {
                        "Index": 1,
                        "RadioName": "wifi1",
                        "InterfaceList": [
                            {
                                "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"
                            }
                        ]
                    }
                ]
            }
        ]
    }

  2. In /nvram/EasyMesh.json update CollocatedAgentID Mac address for the In /nvram/EasyMesh.json update CollocatedAgentID Mac address forthe interface which needs to be treated as AL MAC

    Sample response:

  3. Start onewifi easymesh agent

    Panel
    borderColorblack
    borderStyledashed
    titlesample response

    /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
            },

  4. Check whether agent window receives subdoc decode success
  5. Check whether AP acquired private_ssid through backhaul

...