You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 29 Next »

Scope

Goal of this document helps RDK-B community to Port Unified-easy-mesh on to their Gateway/Extender platforms

Assumption

Test EM on Raspbian OS

Use cases

  • R5 Specification

  • ControllerAgent
    Banana Pi R4(RDK-B)Banana Pi R4(RDK-B)
    Banana Pi R4(RDK-B)RPI4(Raspbian)
    RPI4(Raspbian)Banana Pi R4(RDK-B)
  • R6 specification with Wi-Fi 7

Use case diagram


Generic Porting stages

  • Yocto support
  • New cli migration
  • Golang support
  • Segmentation faults fixing

Current state

  • Done

    • Brought up yocto support
    • Supported build configuration
    • Compiled EM code with legacy cli
    • Observerving segmentation faults due to yocto compiler being too strict about memory and stack
      • Fix #1 - https://github.com/rdkcentral/unified-wifi-mesh/commit/3fd8e4bac0b86c4a92f804791e318265fc78a6d5
      • Other crashes (Will retest the same in new cli)
        • <<OneWifiMeshCli>>: reset erouter0 bananapi encode_config_reset:354: {


        • void em_cmd_t::init(dm_easy_mesh_t *dm)
          {
              m_em_candidates = queue_create();
              m_data_model.init();
              m_data_model = *dm; //--------- segmentation fault only in RDK-B,Not in raspbian - pls refer - platform agnostic c++ code section
          }

        •  
        • (gdb) bt #0  0x0000000000417fb8 in em_cmd_t::init (this=this@entry=0x7f8b4b7010, dm=dm@entry=0x7f8b7fe690)     at ../../../git/src/ctrl/../../src/cmd/em_cmd.cpp:127 #1  0x0000000000418764 in em_cmd_t::em_cmd_t (this=0x7f8b4b7010, type=em_cmd_type_reset,     param=<error reading variable: Cannot access memory at address 0x7ffc9a6470>, dm=...)     at ../../../git/src/ctrl/../../src/cmd/em_cmd.cpp:703 Backtrace stopped: Cannot access memory at address 0x7ffc9a63f8

  • Ongoing

    • Golang support in RDK-B added
    • ongoing with latest cli in progress
      • Creating yocto recipe to compile cli go code from yocto
      • Will retest the crashes and update 

Next phase

  • Optimizing mariaDB - Target to keep size < 10 MB
  • Package Manager
  • Stripped onewifi for AP extender

Gateway specific steps

  • EasyMesh controller integration - On Going
  • Test with BPI R4 controller & RPI4 Agent - TBD
  • Test with with BPI R4 controller & BPI R4 agent - TBD

Extender specific steps

  • OSS image with SoC specific changes done
  • Integration of OneWifi on going
  • EasyMesh Agent - To start after Onewifi integration
  • Testing with RPI4 controller and BPI R4 Extender

Platform agnostic c++ coding

State machine

GoLang support for EM CLI

Setup EM on BPI R4

BPI Controller

  1. Setup mysql in BPI controller (One time process)
    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.
    Setup

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

  3. Create OneWifiMesh table in mariadb
    Setup

    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

    Setup

    → In the cli use keys "j" to scroll down and "k" to scroll up the menu.
    → 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. asa
  9. hh


References






  • No labels