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
Controller | Agent |
---|
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
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IkNoYW5kcmFrYW50aCBQb2t1cnUiLCJvdXRwdXRUeXBlIjoiYmxvY2siLCJsYXN0TW9kaWZpZXJOYW1lIjoiQWtoaWwgUCIsImxhbmd1YWdlIjoiZW4iLCJ1aUNvbmZpZyI6Int9IiwiZGlhZ3JhbURpc3BsYXlOYW1lIjoiIiwic0ZpbGVJZCI6IiIsImF0dElkIjoiMzg4Mjg1MDAzIiwiZGlhZ3JhbU5hbWUiOiJ1c2VjYXNlZGlhZ3JhbS13aWZpIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IkVhc3lNZXNoKHVuaWZpZWQtd2lmaS1tZXNoKSBQb3J0aW5nIG9uIEJhbmFuYSBQaSBSNCIsInRic3R5bGUiOiJ0b3AiLCJjYW5Db21tZW50IjpmYWxzZSwiZGlhZ3JhbVVybCI6IiIsImNzdkZpbGVVcmwiOiIiLCJib3JkZXIiOnRydWUsIm1heFNjYWxlIjoiMSIsIm93bmluZ1BhZ2VJZCI6Mzc4Mzc3MDM5LCJlZGl0YWJsZSI6ZmFsc2UsImNlb0lkIjozODgyOTIyMDEsInBhZ2VJZCI6IiIsImxib3giOnRydWUsInNlcnZlckNvbmZpZyI6eyJlbWFpbHByZXZpZXciOiIxIn0sIm9kcml2ZUlkIjoiIiwicmV2aXNpb24iOjQsIm1hY3JvSWQiOiI1NTk4NGNhMy05MDFmLTQ1ZmQtOTE1NS03MjA1NDM1MGM4YTAiLCJwcmV2aWV3TmFtZSI6InVzZWNhc2VkaWFncmFtLXdpZmkucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6IjEwNTAiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJsYXN0TW9kaWZpZWQiOjE3NTUxNjA4ODkwMDAsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
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
State machine
- RDK-B EasyMesh StateMachine
GoLang support for EM CLI
Setup EM on BPI R4
BPI Controller
- Setup mysql in BPI controller (One time process)
→ 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
- Once user is added in mysql, enter into prompt with root access.
→ Input command mysql -u bpi -p, password is root
- Create OneWifiMesh table in mariadb
→ create database OneWifiMesh;
→ use OneWifiMesh;
→ show tables; ==> should show no tables
- 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) - Start onewifi easymesh cli in a new tab
/usr/ccsp/EasyMesh# ./onewifi_em_cli bpi
→ 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


- 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

- Restart onewifi_em_ctrl
Observe private_ssid are broadcasting

- asa
- hh
References