Introduction
OpenSync :
- OpenSync is designed to provide a Software Defined Network (SDN) platform, through which it virtualizes the networking and wireless management for easy service roll-out. It acts as a silicon, CPE, and cloud-agnostic connection between in-home hardware devices and the cloud.
- It provides a modern set of utilities for collecting measurement and other telemetry data from devices. It also enables remote control and management of the devices, and advanced capabilities for specific services, including Wi-Fi meshing, access control, cybersecurity,
parental controls, and IoT onboarding and telemetry.
OneWiFi :
- The purpose of OneWifi project is to create a unified software architecture that preserves control plane and stats level functionality but is capable of running on both gateways and extenders.
Scope of the work
The scope of this activity to bring up Mesh functionality through opensync and onewifi components in RPI Router.
Target Audience
- RDK-B Operators
- RDK-B SoC Vendors
- RDK-B OEM's
- RDK-B Application Vendors(Plume)
- RDK-B System Integrators
High level Design / Architecture
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IktlZXJ0aGFuYSBQYW5kdXJhbmdhbiIsIm91dHB1dFR5cGUiOiJibG9jayIsImxhc3RNb2RpZmllck5hbWUiOiJLZWVydGhhbmEgUGFuZHVyYW5nYW4iLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7fSIsImRpYWdyYW1EaXNwbGF5TmFtZSI6IiIsInNGaWxlSWQiOiIiLCJhdHRJZCI6IjI5MjMzODg2OSIsImRpYWdyYW1OYW1lIjoiT3BlblN5bmNfQXJjaGl0ZWN0dXJlIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6Ik9wZW5TeW5jIDQuNCB3aXRoIE9uZVdpRmkiLCJ0YnN0eWxlIjoidG9wIiwiY2FuQ29tbWVudCI6ZmFsc2UsImRpYWdyYW1VcmwiOiIiLCJjc3ZGaWxlVXJsIjoiIiwiYm9yZGVyIjp0cnVlLCJtYXhTY2FsZSI6IjEiLCJvd25pbmdQYWdlSWQiOjI4ODAwMDU2NSwiZWRpdGFibGUiOmZhbHNlLCJjZW9JZCI6Mjg4MDAwNTY1LCJwYWdlSWQiOiIiLCJsYm94Ijp0cnVlLCJzZXJ2ZXJDb25maWciOnsiZW1haWxwcmV2aWV3IjoiMSJ9LCJvZHJpdmVJZCI6IiIsInJldmlzaW9uIjoyLCJtYWNyb0lkIjoiMTg1MTQxZGEtZjlkYy00NjJjLThmY2UtOWMyYmFmODYzMmI2IiwicHJldmlld05hbWUiOiJPcGVuU3luY19BcmNoaXRlY3R1cmUucG5nIiwibGljZW5zZVN0YXR1cyI6Ik9LIiwic2VydmljZSI6IiIsImlzVGVtcGxhdGUiOiIiLCJ3aWR0aCI6IjEwODEiLCJzaW1wbGVWaWV3ZXIiOmZhbHNlLCJsYXN0TW9kaWZpZWQiOjE3MDMwNzMwMTcwMDAsImV4Y2VlZFBhZ2VXaWR0aCI6ZmFsc2UsIm9DbGllbnRJZCI6IiJ9
System Architecture
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IktlZXJ0aGFuYSBQYW5kdXJhbmdhbiIsIm91dHB1dFR5cGUiOiJibG9jayIsImxhc3RNb2RpZmllck5hbWUiOiJLZWVydGhhbmEgUGFuZHVyYW5nYW4iLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7fSIsImRpYWdyYW1EaXNwbGF5TmFtZSI6IiIsInNGaWxlSWQiOiIiLCJhdHRJZCI6IjI5MjMzODg3NyIsImRpYWdyYW1OYW1lIjoiU3lzdGVtIEFyY2hpdGVjdHVyZSIsImFzcGVjdCI6IiIsImxpbmtzIjoiYXV0byIsImNlb05hbWUiOiJPcGVuU3luYyA0LjQgd2l0aCBPbmVXaUZpIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjoyODgwMDA1NjUsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjI4ODAwMDU2NSwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MywibWFjcm9JZCI6IjJmM2JkNDU3LTJlZmQtNGMxYi04NDk4LTkyZDIzOGIyZTI5ZSIsInByZXZpZXdOYW1lIjoiU3lzdGVtIEFyY2hpdGVjdHVyZS5wbmciLCJsaWNlbnNlU3RhdHVzIjoiT0siLCJzZXJ2aWNlIjoiIiwiaXNUZW1wbGF0ZSI6IiIsIndpZHRoIjoiNTAxIiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNzAzMDczMDU4MDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
OVSDB Manager
Cloud controller can configure Wi-Fi parameters in gateway, extender or CPE using OVSDB & Manager entities. OVSDB is a database server that executes in RDK-B CPE. Any update of parameters in this database by cloud controller is notified to OneWifi process by OVSDB manager entity over RBUS. OneWifi process validates the parameter or set of parameters and applies the configuration in WiFi driver or baseband. If successfully applied, OneWifi also notifies OVSDB manager about the successful completion so that the database tables are updated with the right state of WiFi subsystem of the CPE.
OneWiFi Interface Map Table
VAP Index | Name | Comment |
---|
1 | private_ssid_2g | 2g user private ssid |
2 | private_ssid_5g | 5g user private ssid |
12 | mesh_backhaul_2g | Mesh backhaul on 2g |
13 | mesh_backhaul_5g | Mesh backhaul on 5g |
14 | mesh_sta_2g | Mesh station on 2g |
15 | mesh_sta_5g | Mesh station on 5g |
Target Build Variant
- RPI4 Kirkstone build with kernel 5.15
Identified task list
Need to learn how OpenSync work with OneWiFi - Communication is through DM/RBUS, not wifi hal. May need to refer Comcast device.
Need to compile OpenSync for OneWifi (some kconfig should be enabled)
Need to know how to start OpenSync through OneWiFi
Need to know OVSDB tables of OpenSync collaborate with OVSDB tables of OneWiFi(wifi.db)
Bringup OVSDB manager for synchronization
Wi-Fi interface alignment with Netgear wifi dongle and Make sure existing wifi functionality won't be disturbed.
Netgear driver support with Kirkstone version
Conversion of Linux bridge into OVS bridge(brlan0) - OVSAgent is now part of rootfs but not operational
Update dnsmasq configuration for OpenSync backhaul AP feature (wifi2, wifi3)
Enable IP_GRE as kernel module
Home AP bringup in RPI GW
Backhaul AP bringup in RPI GW
Make sure that GRE tunnel is created for backhaul communication and it is stable (Need to be tested with Extender)
Need to make sure that onewifi existing functionality is not breaking
Check point
Dependencies
Dongle's minimal support for 2AP and 1 STA.
If Netgear dongle is not providing such support, need to find new WiFi dongle.
Device provisioning in Plume Inventory (require Plume's support)
- ovsdb manager/OVSM acts as medium between onewifi webconfig subdoc and plume controller
- OpenSync have run-time dependencies with ovsdb-server & openvswitch(ovsdb-server start up is part of ovsagent . currently, this server is not running in rpi).
Validation
Risks
- Availability of OVSM for RDK Community is mandatory
- Wireless interface names for Wifi dongle needs to be aligned for OpenSync convention
Flow Diagram/Pseudo Code
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IktlZXJ0aGFuYSBQYW5kdXJhbmdhbiIsIm91dHB1dFR5cGUiOiJibG9jayIsImxhc3RNb2RpZmllck5hbWUiOiJLZWVydGhhbmEgUGFuZHVyYW5nYW4iLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7fSIsImRpYWdyYW1EaXNwbGF5TmFtZSI6IiIsInNGaWxlSWQiOiIiLCJhdHRJZCI6IjMwNjQyMDczMyIsImRpYWdyYW1OYW1lIjoiZmxvdyIsImFzcGVjdCI6IiIsImxpbmtzIjoiYXV0byIsImNlb05hbWUiOiJPcGVuU3luYyA0LjQgd2l0aCBPbmVXaUZpIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjoyODgwMDA1NjUsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjI4ODAwMDU2NSwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6NCwibWFjcm9JZCI6IjQ5YmM5ZjMwLTUzMzAtNDFmNi1hOTliLTI4Mzc2OTFmOTNkNyIsInByZXZpZXdOYW1lIjoiZmxvdy5wbmciLCJsaWNlbnNlU3RhdHVzIjoiT0siLCJzZXJ2aWNlIjoiIiwiaXNUZW1wbGF0ZSI6IiIsIndpZHRoIjoiNzgxIiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNzA3MjIxMzk0MDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
Sequence Diagrams
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6IktlZXJ0aGFuYSBQYW5kdXJhbmdhbiIsIm91dHB1dFR5cGUiOiJibG9jayIsImxhc3RNb2RpZmllck5hbWUiOiJLZWVydGhhbmEgUGFuZHVyYW5nYW4iLCJsYW5ndWFnZSI6ImVuIiwidWlDb25maWciOiJ7fSIsImRpYWdyYW1EaXNwbGF5TmFtZSI6IiIsInNGaWxlSWQiOiIiLCJhdHRJZCI6IjMwNjQxOTkxMiIsImRpYWdyYW1OYW1lIjoiU2VxdWVuY2UgZGlhZ3JhbSIsImFzcGVjdCI6IiIsImxpbmtzIjoiYXV0byIsImNlb05hbWUiOiJPcGVuU3luYyA0LjQgd2l0aCBPbmVXaUZpIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjoyODgwMDA1NjUsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjI4ODAwMDU2NSwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6NCwibWFjcm9JZCI6IjUwMjUwZTM2LTZmMzYtNGY2NC05ZTQ5LTk4MjM3NzQ5Nzk4MCIsInByZXZpZXdOYW1lIjoiU2VxdWVuY2UgZGlhZ3JhbS5wbmciLCJsaWNlbnNlU3RhdHVzIjoiT0siLCJzZXJ2aWNlIjoiIiwiaXNUZW1wbGF0ZSI6IiIsIndpZHRoIjoiMTE5MiIsInNpbXBsZVZpZXdlciI6ZmFsc2UsImxhc3RNb2RpZmllZCI6MTcwNzIwMzgzMzAwMCwiZXhjZWVkUGFnZVdpZHRoIjpmYWxzZSwib0NsaWVudElkIjoiIn0=
Build Instructions
Supported device
- Raspberry Pi4 32 bit
- Raspberry Pi4 64 bit
Use Cases
Sanity Testing
References
https://opensync.atlassian.net/wiki/spaces/OCC/pages/39920173081/OpenSync+4.4
Onewifi Reference Porting Documentation
Porting Guide - OneWifi
EPIC/User Stories
Key
|
Summary
|
T
|
Created
|
Updated
|
Due
|
Assignee
|
Reporter
|
P
|
Status
|
Resolution
|