Versions Compared

Key

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

Table of Contents

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

Building EasyMesh on RDK-B Banana Pi R4 Kirkstone

Use

...

R5 Specification

...

R6 specification with Wi-Fi 7

Use case diagram

  • draw.io Diagram
    bordertrue
    diagramNameusecasediagram-wifiusdwm
    simpleViewerfalse
    width
    linksauto
    tbstyletop
    lboxtrue
    diagramWidth9711090
    height681754
    revision7

Generic Porting stages

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

Current state

Done

...

<<OneWifiMeshCli>>: reset erouter0 bananapi encode_config_reset:354: {

...

(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

  • 1

BPI-R4 build instruction 

Controller

Code Block
titleBuild
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -m

...

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

BPI-R4 build instruction 

Controller

Code Block
titleBuild
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -m rdkb-bpi-extsrc.xml
repo sync -j`nproc` --no-clone-bundle
 
Please pick the below machine command based on your requirement
# to build the image with AL_SAP
MACHINE=bananapi4-rdk-broadband FEATURE_TYPE=EasyMesh  source meta-cmf-bananapi/setup-environment-refboard-rdkb 
# toDefault build the imagewith without AL_SAP
MACHINE=bananapi4-rdk-broadband FEATURE_TYPE=EasyMesh WITHOUT_ALSAP=yes source meta-cmf-bananapi/setup-environment-refboard-rdkb
 
#to CP the below change for fynecli access for utopia component
https://github.com/rdkcentral/utopia/pull/47
 
bitbake rdk-generic-broadband-image

...

Code Block
languagebash
titleExt Build Instructions
repo init -u https://code.rdkcentral.com/r/manifests -b kirkstone -m rdkb-bpi-ap-extsrc.xml
repo sync -j4 --no-clone-bundle
 
Please pick the below machine command based on your requirement,
#to#Default build the image with AL_SAP
MACHINE=bananapi4-rdk-broadband-ap-extender  source meta-cmf-bananapi/setup-environment-refboard-rdkb
#to build the image without AL_SAP
MACHINE=bananapi4-rdk-broadband-ap-extender FEATURE_TYPE=EasyMesh WITHOUT_ALSAP=yes source meta-cmf-bananapi/setup-environment-refboard-rdkb
 
bitbake rdk-generic-ap-extender-image

...

cd /usr/ccsp/EasyMesh
onewifi_em_cli bpi

Observation in EM-Contrller Controller device side:  

  • All configured VAPs should be UP and Running
  • VAPs should be broadcasting EasyMesh default SSIDs(eg, private_ssid, mesh_backhaul)
  • Logs files are generated under /tmp folder

Extender 1 + STAR Topology

1.Please ensure below processes are running in Ext1

Code Block
languagebash
titleprocess_status
collapsetrue
root@Filogic-GW:~# systemctl status onewifi
* onewifi.service - Cosa service
     Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/onewifi.service/lib/systemd/system/onewifi.service8;;; enabled; vendor preset: e)
     Active: active (running) since Thu 2022-04-28 17:43:15 UTC; 3min 29s ago
TriggeredBy: * filogicwifiinitialized.path
    Process: 1781 ExecStartPre=/bin/sh /usr/ccsp/wifi/onewifi_pre_start.sh (code=exited, status=0/SUCCESS)
    Process: 2085 ExecStart=/usr/bin/OneWifi -subsys $Subsys (code=exited, status=0/SUCCESS)
   Main PID: 2086 (OneWifi)
      Tasks: 14 (limit: 4713)
     Memory: 38.2M
     CGroup: /system.slice/onewifi.service
             `- 2086 /usr/bin/OneWifi -subsys eRT.
 
2022 Apr 28 17:42:48 Filogic-GW systemd[1]: Starting Cosa service...
2022 Apr 28 17:42:53 Filogic-GW UTOPIA[2086]: system.syscfg Shared memory file not found
2022 Apr 28 17:42:53 Filogic-GW UTOPIA[2086]: 2022-04-28  17:42:53., ../../../../git/source/syscfg/lib/syscfg_lib.c:466, Error initializing sy
2022 Apr 28 17:43:15 Filogic-GW systemd[1]: Started Cosa service.
2022 Apr 28 17:44:01 Filogic-GW [OneWifi][2086]:   WiFi radio radio1 is set to UP

root@Filogic-GW:~# systemctl status ieee1905_em_agent
* ieee1905_em_agent.service - ieee1905 EasyMesh Remote Agent service
     Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/ieee1905_em_agent.service/lib/systemd/system/ieee1905_em_agent.service8;;; enabl)
     Active: active (running) since Thu 2022-04-28 17:43:35 UTC; 3min 16s ago
    Process: 3284 ExecStartPre=/bin/sh -c /usr/ccsp/EasyMesh/setup_ext_pre.sh (code=exited, status=0/SUCCESS)
    Process: 3303 ExecStartPre=/bin/sh -c if [ ! -e "/sys/class/net/eth1_virt_peer/address" ]; then `/usr/ccsp/EasyMesh/setup_veth_for_em.sh )
    Process: 3304 ExecStartPre=/bin/sh -c sleep 5 (code=exited, status=0/SUCCESS)
    Process: 3439 ExecStart=/bin/sh -c /usr/bin/ieee1905 -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ie)
   Main PID: 3440 (ieee1905)
      Tasks: 7 (limit: 4713)
     Memory: 10.5M
     CGroup: /system.slice/ieee1905_em_agent.service
             `- 3440 /usr/bin/ieee1905 -f ieee1905::al_sap=trace,ieee1905::cmdu_handler=trace,ieee1905::cmdu_proxy=trace,ieee1905::cmdu_obserr
 
2022 Apr 28 17:43:30 Filogic-GW systemd[1]: Starting ieee1905 EasyMesh Remote Agent service...
2022 Apr 28 17:43:35 Filogic-GW systemd[1]: Started ieee1905 EasyMesh Remote Agent service.
 
root@Filogic-GW:~# systemctl status em_agent        
* em_agent.service - EasyMesh Agent service
     Loaded: loaded (8;;file://Filogic-GW/lib/systemd/system/em_agent.service/lib/systemd/system/em_agent.service8;;; enabled; vendor preset:)
     Active: active (running) since Thu 2022-04-28 17:44:00 UTC; 2min 57s ago
    Process: 3283 ExecStartPre=/bin/sh -c sleep 30 (code=exited, status=0/SUCCESS)
/SUCCESS)
    Process: 3621 ExecStartPre=/bin/sh -c /usr/ccsp/EasyMesh/setup_ext_pre.sh (code=exited, status=0/SUCCESS)
    Process: 3640 ExecStart=/bin/sh -c /usr/bin/onewifi_em_agent >> /tmp/em_agent.log & (code=exited, status=0/SUCCESS)
   Main PID: 3641 (onewifi_em_agen)
      Tasks: 9 (limit: 4713)
     ProcessMemory: 3621 ExecStartPre=/bin/sh -c /usr/ccsp/EasyMesh/setup_ext_pre.sh (code=exited, status=0/SUCCESS)
10.8M
     CGroup: /system.slice/em_agent.service
          Process: 3640 ExecStart=/bin/sh `-c 3641 /usr/bin/onewifi_em_agent >> /tmp/em_agent.log & (code=exited, status=0/SUCCESS)
   Main PID: 3641 (onewifi_em_agen)
      Tasks: 9 (limit: 4713)
     Memory: 10.8M
     CGroup: /system.slice/em_agent.service
             `- 3641 /usr/bin/onewifi_em_agent

2.Ensure mesh backhaul connectivity is established over 5G through wifi1.1 interface.

iw dev wifi1.3 info

3.Verify mesh backhaul connection in EM-Contrller side as well.

iw dev wifi1.1.sta<i> info
iw dev wifi1.1.sta<i> station dump ## This command gives information on connected client ie Extender1.

4. Wait for few minutes( for Agent to propagate SSID information from Controller to OneWifi in Extender1) and then check

  • Check all configured VAPs should be up and running with "iw dev" command
  • VAPs should be broadcasting default EasyMesh SSIDS (ie private_ssid, mesh_backhaul)
  • logs files are generated under /tmp folder

5. Test the connectivity to EM-Controller through backhaul

ping 10.0.0.1 -c 5

Test the connectivity with wireless clients.

Extender2 (For Daisy-Chain )

1. Ensure Extender 1 is running properly with configured vap's of FH and BH.

2. Make atleast 7 feet distance from Ext1 to Ext2 

3. Ensure  ieee1905_em_agent,onewifi_em_agent processes are running in Ext2

42. Ensure mesh backhaul connectivity is established over 5G through wifi1.1 interface.

iw dev wifi1.3 info

35. Verify mesh backhaul connection in EM-Contrller Extender1 side as well.

iw dev wifi1.1.sta<i> info
iw dev wifi1.1.sta<i> station dump ## This command gives information on connected client ie

Extender1

Extender2.

...

6. Wait for few minutes( for Agent to propagate SSID information from Controller to OneWifi in

...

Extender2) and then check

  • Check all configured VAPs should be up and running with "iw dev" command
  • VAPs should be broadcasting default EasyMesh SSIDS (ie private_ssid, mesh_backhaul)

...

7. Test the connectivity to EM-Controller through backhaul

ping
 
10.0.0.1 -c 5

Test the connectivity with wireless clients.


Sample logs

EM-Controller and EM-Agent success logs

...

Next phase

  • Optimizing mariaDB - Target to keep size < 10 MB

Platform agnostic c++ coding

State machine(WIP)

Child pages

...