Transition WM2 -> OWM
Overview
This guide helps you transition from the legacy Wireless Manager 2 (WM2) to One Wifi Manager (OWM), the unified wireless management system in OpenSync.
Note: For terminology definitions, see OWM glossary
What is OWM?
One Wifi Manager (OWM) is the 3rd generation Wireless Manager (OpenSync Wireless Manager) that handles all wireless operations including:
Radio and VIF configuration
State reporting
Client steering and band steering
Statistics collection
And more
OWM uses a modular architecture based on the OSW (OpenSync Wireless) framework, which provides better separation of concerns, improved testability, and enhanced extensibility.
1. What to Keep in Mind
Key Architectural Differences
WM2 Architecture:
Direct target API calls for configuration
Manual state polling
Separate managers for different functions (WM2, BM, SM)
Less modular design
OWM Architecture:
Modular OSW-based design
State-driven configuration via confsync
Observer pattern for state changes
Unified manager for all wireless operations
Important Components
osw_conf (Intent Layer)
Holds the "intended" configuration
Populated from OVSDB tables (
Wifi_Radio_Config,Wifi_VIF_Config)Represents what the system should be
osw_state (State Layer)
Holds the "actual" current state
Populated from driver/netlink/netdev events
Represents what the system currently is
osw_confsync (Sync Layer)
Compares
osw_confvsosw_stateGenerates commands to reconcile differences
Sends commands to
osw_mux
osw_mux (Driver Multiplexer)
Routes commands to appropriate drivers (nl80211)
Provides unified interface to hardware
OVSDB Tables Used by OWM
Wifi_Radio_Config: Radio configuration (channel, bandwidth, etc.)Wifi_Radio_State: Current radio stateWifi_VIF_Config: VIF configuration (SSID, security, etc.)Wifi_VIF_State: Current VIF stateWifi_Associated_Clients: Connected clientsWifi_Stats_Config: Statistics collection configuration
2. Do You Need to Disable WM/BM/SM?
Yes, you must disable the old managers.
Note: As of OpenSync 6.6, the old managers (WM2, BM, SM) have been removed from the codebase.
When transitioning to OWM, the legacy managers should be disabled to avoid conflicts:
Kconfig Changes
Disable old managers in
Kconfig.managers:
# Wireless Manager 2 (legacy - disable when using OWM)
config MANAGER_WM2
bool "Wireless Manager 2"
default n # Changed from 'y' to 'n'
help
Legacy wireless manager. Disabled when using OWM.# Band Manager (legacy - disable when using OWM)
config MANAGER_BM
bool "Band Manager"
default n # Changed from 'y' to 'n'
help
Legacy band steering manager. Disabled when using OWM.# Statistics Manager (legacy - disable when using OWM)
config MANAGER_SM
bool "Statistics Manager"
default n # Changed from 'y' to 'n'
help
Legacy statistics manager. Disabled when using OWM.Enable OWM in
Kconfig.managers:
config MANAGER_OWM
bool "Opensync Wireless / One Wifi Manager (OWM)"
default y # Enable OWM
help
This process is intended to handle all Wireless
related operations in Opensync - apply
configurations, report states, steering clients,
collect data (statistics, CSI), etc.Node_Services Settings
Ensure Node_Services table has proper manager enablement:
{
"manager": "wm",
"enable": false
},
{
"manager": "bm",
"enable": false
},
{
"manager": "sm",
"enable": false
},
{
"manager": "owm",
"enable": true
}Startup Configuration
OWM startup configuration (typically set in build configuration):
owm;true;needs_plan_b=falsePlatform-Specific Configuration
Create configuration files under /etc/opensync/osw/ directory. Example:
/etc/opensync/osw/50_owm.conf:
# Enable STA VIF functionality on BCM platform
OSW_PLAT_BCM_STA_VIF_ENABLED=1
# Path to wpa_supplicant global control socket
OSW_HOSTAP_GLOBAL_WPAS_PATH=/var/run/wpa_supplicantglobal
# Disable target driver (use nl80211 instead)
OSW_DRV_TARGET_DISABLED=1
# Platform-specific: minimum hardware mode not supported
OW_OVSDB_MIN_HW_MODE_NOT_SUPPORTED=1
# Disable Layer 2 update frame kick functionality
OW_L2UF_KICK_DISABLED=13. Transitioning Steps
Step 1: Update Kconfig
Open
core/kconfig/Kconfig.managersSet
CONFIG_MANAGER_WM2tonSet
CONFIG_MANAGER_BMton(if present)Set
CONFIG_MANAGER_OWMtoy
Step 2: Verify nl80211 Support
OWM uses the nl80211 driver for hardware interaction. Verify that your platform has:
Requirements:
Linux kernel with nl80211/cfg80211 support
Working wireless drivers with nl80211 interface
Netlink socket access for wireless configuration
Step 3: Build and Flash
# Configure build
make menuconfig
# Navigate to Core Managers
# Disable WM2, BM, SM
# Enable OWM
# Build
make
# Flash to device
# (platform-specific steps)Step 4: Verify OWM is Running
# Check process
ps aux | grep owm
# Check logs
logread | grep owm
# Should see:
# "ow: core: initializing..."
# "ow: module: loading: osw_confsync"
# "ow: module: loading: osw_stats"
# etc.Step 5: Check basic functionality
Radio State:
# Verify radio state ovsh s Wifi_Radio_StateVIF State:
# Verify VIF state ovsh s Wifi_VIF_StateClient Association:
# Check associated clients ovsh s Wifi_Associated_Clients
Step 6: Verify Steering
# Check associated clients
ovsh s Wifi_Associated_Clients -w mac==AA:BB:CC:DD:EE:FF
# Watch for steering actions in logs
logread | grep steerStep 7: Verify Statistics
Use OSRT to display MQTT Statistics
4. Feature Comparison
Feature Area | WM2 | OWM | Impact |
|---|---|---|---|
Architecture | Monolithic | Modular OSW modules | ✅ Better maintainability |
Configuration | Direct API calls | State-driven via confsync | ✅ More reliable |
State Management | Manual state polling | Event-driven observer pattern | ✅ Real-time updates |
Steering | Separate BM manager | Built-in | ✅ Better integration |
Statistics | Basic polling | Subscription-based pipeline | ✅ More efficient |
MLO Support | Not feasible | Multi-Link Operation support | ✅ WiFi 7 ready |
Wifi 7 WPA3 Compatibility (RSNO) | Manual configuration | Automatic WPA3 compat mode (rsno) | ✅ Seamless security |
Airtime Precedence | Not supported | Configurable airtime precedence | ✅ Better QoS control |
Statistics Precision | 32-bit counters | 64-bit tx/rx statistics | ✅ No overflow issues |
Hotspot 2.0 | Not supported | Full Hotspot 2.0 support | ✅ Passpoint ready |
Upper table was generated based on OpenSync 7.0 release.
Breaking Changes
Architecture Changes:
Modular OSW-based design replaces monolithic WM2
Target API is no longer used (replaced by nl80211 driver)
Configuration uses state-driven confsync mechanism
Driver interaction through osw_mux abstraction layer
State Management:
WM2: Manual state polling approach
OWM: Event-driven observer pattern for real-time updates
State changes propagate automatically through the system
Steering:
Separate BM manager is replaced by built-in
ow_steermoduleUnified steering policies across band and client steering
Better integration with radio and VIF configuration
Statistics:
64-bit counters (was 32-bit in WM2) prevent overflow issues
Subscription-based pipeline replaces basic polling
TLV-based statistics format
More efficient collection and reporting mechanisms
Platform Integration:
No longer requires target driver implementation
Requires nl80211/cfg80211 kernel support
Configuration via
/etc/opensync/osw/instead of target APIsModule-based architecture allows selective feature enablement
WiFi 7 Support:
MLO (Multi-Link Operation) support (not feasible in WM2)
Automatic WPA3 compatibility mode (RSNO) for WiFi 7
Airtime precedence configuration
Hotspot 2.0 (Passpoint) support
5. Troubleshooting
OWM Not Starting
Symptoms: No OWM process, no logs
Solutions:
Check Kconfig: Ensure
CONFIG_MANAGER_OWM=yCheck Node_Services: Ensure
owmis enabledCheck logs:
logread | grep owCheck dependencies: nl80211 support, vendor WLAN driver, kernel wireless drivers
Radios Not Configuring
Symptoms: Config changes don't affect state
Solutions:
Check confsync logs:
logread | grep confsyncVerify nl80211/netlink access
Check kernel wireless driver functionality
Check logs for driver errors
Verify root permissions
State Not Updating
Symptoms: State tables don't reflect actual state
Solutions:
Check confsync state:
logread | grep confsyncCheck netlink/monitor subscriptions
Verify driver events
Check
osw_statelogsVerify state observer registration
Clients Not Steering
Symptoms: Band steering not working
Solutions:
Check
Band_Steering_ClientsandBand_Steering_ConfigCheck steering policy configuration
Verify BTM support in driver
Check logs for steering action messages
6. Rollback Plan
Note: Rollback to WM2 is only possible on OpenSync versions prior to 6.6. As of OpenSync 6.6, WM2, BM, and SM have been removed from the codebase.
If issues occur on pre-6.6 versions, you can rollback to WM2:
Quick Rollback
Disable OWM in Kconfig:
config MANAGER_OWM default nRe-enable WM2:
config MANAGER_WM2 default yRebuild and flash
Additional Resources
OSW Module Documentation: See
src/lib/osw/andsrc/lib/ow/for module implementationsConfiguration Examples: See
**/rootfs/*/INSTALL_PREFIX/etc/opensync/osw/Unit Tests: See
src/lib/ow/ut/andsrc/lib/osw/ut/for examples