2361 Commits

Author SHA1 Message Date
Cihangir Odabas
e75c991562 Merge branch 'bugfix/PPM-3629-wifi7aprole-failing-to-update-fix' into 'master'
controller: common: wifi7aprole failing to update fix

Closes PPM-3629

See merge request prpl-foundation/prplmesh/prplMesh!4199
2025-12-16 22:02:43 +03:00
Dmytro Kysil
30e4c1e72d controller: common: wifi7aprole failing to update fix
Implement WiFi7bSTARole and WiFi7APRole in capabilities.odl.in

Closes: PPM-3629

Signed-off-by: Dmytro Kysil <d.kysil@inango-systems.com>
2025-12-16 09:59:00 +02:00
Iacob Juc
a77d94d912 controller: autoconfiguration: add default SecMode for legacy agents
EM R6.1 introduces a new flag in the AP Capability TLV,
Support for RSN Overriding
An Agent sets the flag to true to advertise support for
RSN Overriding.
If the Agent does not support the feature,
or uses an old definition of the TLV,
in both cases the flag is 0.

In case the Controller has only RSN Security Configurations,
and is onboarding an Agent that does not support them,
push to this agent the security mode from the legacy
RSN IE: WPA2 for 2.4/5GHz, or WPA3 for 6GHz

Implements: PPM-3352

Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2025-12-12 12:13:21 +03:00
Iacob Juc
d1c8ea41c2 controller: nbapi: read WPA3-Compatibility-Mode from nbapi
* dummy bss_index so agent does not discard config when
bss_index is equal to 0
* when DataElements.Network.AccessPoint.Security.ModeEnabled
== WPA3-Compatibility-Mode, fill bss_info with enough info
to generate a valid WSC M2 message

* added the same bss_index to config that controller reads from
pwhm datamodel

Fixes: PPM-3352

Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2025-12-12 12:13:21 +03:00
Dmytro Puz
1b155dbb87 Merge branch 'bugfix/PPM-3703-add-bstamld-subtree-to-dm' into 'master'
controller: nbapi: add bSTAMLD subtree to the DataElements ODL

Closes PPM-3703

See merge request prpl-foundation/prplmesh/prplMesh!4198
2025-12-10 20:40:41 +00:00
Dmytro Puz
e2d8f9425b controller: nbapi: add bSTAMLD subtree to the DataElements ODL
- add Device.WiFi.DataElements.Network.Device.bSTAMLD with
MLDMACAddress, BSSID, AffiliatedbSTAList and writable bSTAMLDConfig
flags per TR-181.

PPM-3703.

Signed-off-by: Dmytro Puz <d.puz@inango-systems.com>
2025-12-10 11:48:13 +01:00
Dmytro Puz
ee86b6ff51 controller: nbapi: add Wi‑Fi 7 agent capability fields to DataElements
- define MaxNumMLDs, APMLDMaxLinks, bSTAMLDMaxLinks and TIDLinkMapCapability
in Device.WiFi.DataElements.Network.Device ODL (with TR-181 comments).
- update controller DM setter to write TIDLinkMapCapability using the new
enum string name.

PPM-3702.

Signed-off-by: Dmytro Puz <d.puz@inango-systems.com>
2025-12-10 08:26:11 +01:00
Vinu Bharath R
ca0ea46107 controller: reconfig_bstamld: Send BSTA MLD Configuration Request Message
Added reconfig_bstamld function to Send BSTA MLD Configuration Request Message.

Closes PPM-3225

Signed-off-by: Vinu Bharath R <vinubhar@qti.qualcomm.com>
2025-12-01 11:07:01 +05:30
Vinu Bharath R
5398c2bce1 controller: agent DB - add bSTA MLD struct
Signed-off-by: Vinu Bharath R <vinubhar@qti.qualcomm.com>
2025-12-01 10:53:10 +05:30
Dmytro Kysil
35996b38d5 controller: framework: read mld config from pwhm
Add reading MLDUnit from pwhm and add subscription to it in WifiManager

Closes: PPM-3642

Signed-off-by: Dmytro Kysil <d.kysil@inango-systems.com>
2025-11-25 11:31:38 +02:00
Jestin John Mathew
bc28cba6c5 controller: nbapi: Add SetEHTOperations
SetEHTOperations takes DisabledSubChannelBitmap as an argument.

The bitmap is added to EHT Operation TLV and is included as part
of Channel Selection Request Message CMDU, which is then sent to
the agent.

Closes PPM-3351

Signed-off-by: Jestin John Mathew <jestin-john.mathew_ext@softathome.com>
2025-11-24 15:34:56 +00:00
Dmytro Puz
0144861e45 controller: wifi_manager: switch from usp to ubus backend
prplMesh controller does not able to catch events from
WiFi DM using usp backend.

Short-term solutions - using ubus backend in WifiManager.

PPM-3659.

Signed-off-by: Dmytro Puz <d.puz@inango-systems.com>
2025-11-21 19:10:53 +03:00
Pallapu Karthik
9a1af875fd controller: handle AvailableSpectrumInquiryMessage in controller
Signed-off-by: Pallapu Karthik <pallapu.karthik@capgemini.com>
2025-11-21 00:00:07 +03:00
Cihangir Odabas
cfa73404f6 Merge branch 'feature/PPM-3503-configuration-managment-parameter' into 'master'
Implement new configuration parameter for configuration management

Closes PPM-3503

See merge request prpl-foundation/prplmesh/prplMesh!4114
2025-11-20 21:47:14 +03:00
Dmytro Kysil
391ab8e64e controller: use use_dataelements_vap_configs to choose configuration
- Reject configurations from `Device.WiFi.DataElements.AccessPoint` if
 use_dataelements_vap_configs is 0
- Reject configs from pWHM if use_dataelements_vap_configs is set to 1.
- Set use_dataelements_vap_configs if USE_PRPLMESH_WHM is not defined
- Add timer before applying ap changes.

Closes: PPM-3503

Signed-off-by: Dmytro Kysil <d.kysil@inango-systems.com>
2025-11-20 16:53:15 +03:00
Dmytro Kysil
15c049e3e5 controller: align data model with TR-181 v2.19.1
- Moved SteerEvent, AgentConnectedEvent and AgentDisconnectedEvent from
 @DATAELEMENTS_ROOT_DM@ to @CONTROLLER_ROOT_DM@
- Added prefix to CACCompletion
- SupportsVBSS
- Add prefix to TimeStamp in UnassociatedSTA

Closes: PPM-3477

Signed-off-by: Dmytro Kysil <d.kysil@inango-systems.com>
2025-11-20 16:52:08 +03:00
Vinu Bharath R
14da5e8963 controller: reconfig_apmld: send AP MLD Configuration Request Message
Added reconfig_apmld function to send AP MLD Configuration Request Message.

Closes PPM-3221

Signed-off-by: Vinu Bharath R <vinubhar@qti.qualcomm.com>
2025-10-28 10:25:20 +00:00
Cihangir Odabas
d273785c41 Merge branch 'feature/PPM-3564-bwl-update-mld-unit-impl' into 'master'
bwl: whm: Implemented update_mld_unit function

Closes PPM-3564

See merge request prpl-foundation/prplmesh/prplMesh!4124
2025-10-28 12:22:36 +03:00
Chandana Ramappa
7be108baa4 EHT Supported implementation is not availble as part of bwl.
To support EHT, WiFi 7 capabities should Add MLD configuration
 TLVs only if the agent supports MLO (max_num_mlds > 0) and
 the radio supports EHT (eht_supported = true). This ensures
 MLD TLVs are sent only when both agent and radio are
 capable of handling Wi-Fi 7 MLO features.

Signed-off-by: Chandana Ramappa <chandana.r@tataelxsi.co.in>
2025-10-28 09:10:59 +01:00
Saran Mahalingam
6520a4c19b nbapi:DM for trigger MLDUnit
Description: MLDUnit is added as part of
prplMesh controller northbound API for below AccessPoint DM
X_PRPLWARE-COM_WiFiController.Network.AccessPoint.{i}.MLDUnit

Closes: PPM-3564

Signed-off-by: Saran Mahalingam <saran.mahalingam@tataelxsi.co.in>

Following changes are done as per the review comments

1. on_action.cpp:
Clearing old MLD info: Ensures that stale or conflicting MLD configurations
are removed before applying new ones.
Setting emlsr = true: Indicates support for Enhanced Multi-Link Single Radio,
likely reflecting a feature upgrade.
Updating mld_id in bss_info: Helps associate BSS entries with their MLD unit,
improving tracking and management.

2. wbapi_utils.cpp:
The new function search_path_ssid_by_ssid_and_radio() adds a radio-specific filter
(LowerLayers) to SSID searches.
This is crucial in multi-radio setups to avoid ambiguity when the same SSID name is used
across different bands (e.g., 2.4GHz, 5GHz, 6GHz).

3. ap_wlan_hal_whm.cpp:
The update_mld_unit() function was refactored for simplicity and precision.
Instead of manually filtering SSIDs, it now uses the new utility function to directly fetch
the correct SSID object based on name and radio.

4. base_wlan_hal_whm.cpp
EHT Supported is Enabled.

Closes PPM-3564

Signed-off-by: Chandana Ramappa <chandana.r@tataelxsi.co.in>
2025-10-27 15:48:07 +05:30
Volodymyr Pavlenko
e8a2d23aa1 WSC: Rename configData to EncryptedSettingsPayload
Class `configData` name is not appropriate and does not specify
that it's the class to work with M2/M8's Encrypted Settings

So, to align this class with our code convention and make
naming more clear it's needed to rename it:
- configData -> EncryptedSettingsPayload

Related PPM-3576

Signed-off-by: Volodymyr Pavlenko <pavlenko.vv@pm.me>
2025-10-14 17:12:48 +03:00
Iacob Juc
412fb59f30 controller: nbapi: fix WPA3-Personal-Transition
bss_info.authentication_type is a bitmask

for WPA3-Personal-Transition, set both flags, WPA2 and WPA3

Issue: PPW-955

Signed-off-by: Iacob Juc <iacob.juc_ext@softathome.com>
2025-09-30 13:07:28 +00:00
Vincent Aymé
658d03a1a4 Merge branch 'feature/PPM-3290' into 'master'
controller: Send new TLV RSN Parameters Configuration in AP-Autoconfiguration...

Closes PPM-3290

See merge request prpl-foundation/prplmesh/prplMesh!3984
2025-09-25 13:17:15 +00:00
Vincent Ayme
d4b6b7f740 controller: add_rsn_parameters_configuration_tlv : add new RSN tlv
WPA3 Personal Compatibility Mode security is not yet supported.
To support it we need to add new RSN parameters configuration tlv.

If an agent supports RSN overriding, controller must
send rsn parameters configuration tlv.

In this commit, we only use this new tlv for
WPA3 Personal Compatibility mode configuration.

We keep the old way for other security modes.

For this new tlv, security data needs to be filled.
We predefined this data in structure.

For agent supporting RSN Overriding, we also add the BSS index
which is the new way to identify BSS through several TLVs.

https://prplfoundationcloud.atlassian.net/browse/PPM-3290

Signed-off-by: Vincent Ayme <vincent.ayme@sagemcom.com>
2025-09-25 08:03:50 +02:00
Arda Aras
03fe3c66d8 Merge branch 'bugfix/PPM-3482-fix-determination-of-dfs-channels' into 'master'
common: bcl: fix wrong determination of DFS channels

Closes PPM-3482

See merge request prpl-foundation/prplmesh/prplMesh!4079
2025-09-18 12:52:44 +00:00
Arda Aras
5b5c9f38b8 common: bcl: fix wrong determination of DFS channels
There are 6 GHz channel numbers within the 5 GHz DFS channel ranges, and without
proper band validation, 6 GHz channels are incorrectly chosen as DFS channels.

Add frequency band check to prevent wrong determination of DFS channels.

Closes: PPM-3482

Signed-off-by: Arda Aras <arda.aras@airties.com>
2025-09-18 14:30:35 +03:00
Dmytro Puz
ea659228c1 controller: use send_topology_query_msg() in handle_topology_response
handle_topology_response() created and sent a raw TOPOLOGY_QUERY_MESSAGE
without appending the required Multi-AP Profile TLV.
This violated EasyMesh requirements and could cause peers to treat the
controller as Profile-1 only.

Reuse the existing son_actions::send_topology_query_msg() helper,
which always adds the Multi-AP Profile TLV.
This centralizes Topology Query handling and keeps behavior consistent
with other code paths (e.g. handle_topology_notification()).

Additional changes:
- Use const auto & in the neighbor loop.
- Add explicit error/warning logs when sending Topology Query or
AP-Autoconfig Renew fails.

This ensures spec compliance and reduces code duplication.

PPM-3513.

Signed-off-by: Dmytro Puz <d.puz@inango-systems.com>
2025-09-10 12:07:14 +02:00
rramasamy
8da4d3824d controller: db: update unassociated station path
unassociated_sta_path is not handled properly, due to this while updating
the stats in Datamodel ambiorix_set function returns error.

handling it accordingly.

Closes PPM-3011

Signed-off-by: rramasamy <rramasamy@maxlinear.com>
2025-09-10 10:06:57 +03:00
Florent Couzon
0a14346fb7 Merge branch 'bugfix/PPM-3462_bSta_flag_not_functionnal' into 'master'
controller: database: fix bSTA flag

Closes PPM-3462

See merge request prpl-foundation/prplmesh/prplMesh!4076
2025-09-09 09:12:33 +00:00
Florent Couzon
49de3a51f5 Merge branch 'bugfix/PPM-3459-radio-wifi-channel-not-set-in-database-for-non-intel-slave' into 'master'
controller: db: set wifi channel for non Intel Agt

Closes PPM-3459

See merge request prpl-foundation/prplmesh/prplMesh!4063
2025-09-08 10:38:09 +00:00
Florent COUZON
aacd49e6ea controller: database: bSTA flag
The bSta flag is used to tag if a Sta is BH or not. This flag is
set to true for BH Sta during onbording but it is then set
to false by handle_topology_notification. This behavior,
at minimum, prevents BH steering from working.

The actual condition to set the flag to false is:
bSta && !sta_in_handoff (sta beeing steered). This part of the
code has been integrated 6 years ago (commit: 57a1007) without
further explanations. On top of in the current code, no bSta can
have the sta_in_handoff set to true, meaning any bSta will
automatically be tagged as non bSta.

Remove this part that makes no sense in the current
implementation.

Closes: PPM-3462

Signed-off-by: Florent COUZON <florent.couzon-ext@sagemcom.com>
2025-09-05 14:59:16 +02:00
Florent Couzon
1d1180ca28 Merge branch 'bugfix/PPM-3456-1905-devices-added-as-neighbors' into 'master'
controller: topology_task: discard false neighbors

Closes PPM-3456

See merge request prpl-foundation/prplmesh/prplMesh!4062
2025-09-04 08:54:22 +00:00
Florent Couzon
291ee39e97 controller: db: set wifi channel for non Intel Agt
Currently, the radio wifi channel in radio database is set at
reception of AP-Autoconfiguration with Intel Slave join, when a
DFS CAC is performed or when a CSA happens. When a non Intel
Slave joins the radio wifi channel stays empty in database.

We could add the set in non Intel Slave join, but the channel
information is not available at AP-Autoconfiguration reception.
Or we can change it upon reception of the operating channel
report following the onboarding.

Add the set of radio wifi channel while setting the
op classes.

Closes: PPM-3459

Signed-off-by: Florent Couzon <florent.couzon-ext@sagemcom.com>
2025-09-03 10:46:35 +02:00
Dmytro Kysil
ec2e1a99c9 Merge branch 'feature/PPM-2333-broardfarm-device-inventory-test' into 'master'
tests: test for checking Device Inventory TLV

Closes PPM-2333

See merge request prpl-foundation/prplmesh/prplMesh!4043
2025-09-01 16:33:44 +00:00
Florent COUZON
d9b4288d6d controller: topology_task: discard false neighbors
Sometimes MAC addresses belonging to a 1905 device are reported as non1905 neighbors
by some Agents. Therefore some Agents 1905 are added in the database as neighbors.

One solution could be to prevent Agent from sending false neighbor to Controller, but
Agents don't have the list of all the Agents. The other solution is to have the
Controller filter the list of neighbors upon reception.

We choose to filter the list of neighbors in the Controller in handle_topology_response.

https://prplfoundationcloud.atlassian.net/browse/PPM-3456
Signed-off-by: Florent COUZON <florent.couzon-ext@sagemcom.com>
2025-09-01 09:49:17 +02:00
Vinu Bharath R
544b4b346a controller: handle AP MLD Configuration Response Message
Added handling of AP MLD Configuration Response Message on Controller.
Only Agent APMLD Configuration TLV has been handled here.

Closes PPM-3223

Signed-off-by: Vinu Bharath R <vinubhar@qti.qualcomm.com>
2025-08-28 13:53:02 +00:00
Vincent Aymé
f73c39c4f9 Merge branch 'feature/PPM-3232' into 'master'
controller: Handle bSTA MLO status through Topology response

Closes PPM-3232

See merge request prpl-foundation/prplmesh/prplMesh!4004
2025-08-28 10:22:45 +00:00
Nicolas HENRIQUES
37efccc87f master: send agent ap mld configuration tlv in m2
Add a AgentAPMLDConfigurationTLV containing the informations stored in
the BSSs and MLDs configurations to the M2 message sent by the controller

Closes PPM-3229

Signed-off-by: Nicolas HENRIQUES <nicolas.henriques-ext@sagemcom.com>
2025-08-27 14:49:35 +02:00
Nicolas Henriques
ea38480b62 Merge branch 'feature/PPM-3230_send_bsta_mld_configuration_m2' into 'master'
master: send bsta mld configuration tlv in m2

Closes PPM-3230

See merge request prpl-foundation/prplmesh/prplMesh!4009
2025-08-27 10:19:03 +00:00
Nicolas HENRIQUES
5b6e6ea868 master: send bsta mld configuration tlv in m2
Add a BackhaulStaMLDConfigurationTLV containing the informations stored in
the BSSs and MLDs configurations to the M2 message sent by the controller

Closes PPM-3230

Signed-off-by: Nicolas HENRIQUES <nicolas.henriques-ext@sagemcom.com>
2025-08-27 10:56:42 +02:00
Dmytro Kysil
0dc6cec9b5 controller: changed Device Inventory TLV handling
In the past, we accepted the Device Inventory TLV only on profile 3. In the
prplMesh 6.0 specification, we need to accept it on profile 1 and higher.

Closes PPM-2333

Signed-off-by: Dmytro Kysil <d.kysil@inango-systems.com>
2025-08-20 10:59:18 +03:00
Vinu Bharath R
a88df97dc5 Controller: Handle Affiliated AP Metrics TLV
Signed-off-by: Vinu Bharath R <vinubhar@qti.qualcomm.com>
2025-08-18 21:31:34 +05:30
Vincent Ayme
3778ec3067 controller: Handle bSTA MLO status through Topology response
Use bSTA MLO status through topology response to fill bSTAMLD node
and IsbSTA for STAMLD entry.

https://prplfoundationcloud.atlassian.net/browse/PPM-3232

Signed-off-by: Vincent Ayme <vincent.ayme@sagemcom.com>
2025-08-14 10:12:09 +02:00
Praveen Babu
84965ae87f common: add missing 320MHz and 11be enums
Add missing 320MHz and 11be enums to support 6GHz MLO

Closes PPM-3343

Signed-off-by: Praveen Babu <pravbabu@qti.qualcomm.com>
2025-08-07 15:36:28 +00:00
Praveen Babu
5a1eb5ab89 common: agent: add support for WPA3 macros
Add WPA3 macros for 6GHz MLO support

Closes PPM-3342

Signed-off-by: Praveen Babu <pravbabu@qti.qualcomm.com>
2025-08-06 20:59:23 +00:00
Volodymyr Pavlenko
b3d96b1715 Disable PCM in prplMesh
There is crash issue related to usage of PCM.
It was decided to disable PCM in prplmesh for now and
reenable it when it will be fixed

In general PCM is not used in prplMesh in terms
of achieving upgrade/downgrade persistence, so
there is no impact on that by this changes

Will be reenabled in scope of PPM-3447

Closes PPM-3412

Signed-off-by: Volodymyr Pavlenko <pavlenko.vv@pm.me>
2025-08-06 12:10:30 +03:00
Dmytro Kysil
30be91d34c Merge branch 'feature/PPM-353-eliminated-eClientSelectedBands' into 'master'
common: controller: Eliminated eClientSelectedBands and BML_CLIENT_SELECTED_BANDS_*

Closes PPM-353

See merge request prpl-foundation/prplmesh/prplMesh!4019
2025-07-18 14:56:10 +00:00
Dmytro Kysil
9dbcfd6270 common: controller: Eliminated eClientSelectedBands and BML_CLIENT_SELECTED_BANDS_*
eFreqType, eClientSelectedBands and BLM_CLIENT_SELECTED_BANDS_* were
describing the same thing. Use eFreqType instead.

PPM-353

Signed-off-by: Dmytro Kysil <d.kysil@inango-systems.com>
2025-07-10 11:25:20 +03:00
Dmytro Puz
dd35656861 client_steering_task: send BACKHAUL_STEERING_REQUEST to STA’s agent
Previously, BACKHAUL_STEERING_REQUEST_MESSAGE was sent to the agent
of the target BSSID, so no one ever acted on it. Per PPM-2118, we must
steer the backhaul-station by talking to the agent that currently
manages that station’s link.

- Move the lookup of m_original_bssid → original_radio_mac → source_agent
  to the top of steer_sta(), early‐returning on failure.
- Send BACKHAUL_STEERING_REQUEST_MESSAGE to source_agent/original_radio_mac.

Signed-off-by: Dmytro Puz <d.puz@inango-systems.com>
2025-07-10 10:18:03 +03:00
Maarten De Decker
5227d29bac Merge branch 'feature/PPM-3378-add-missing-capabilities-mibs' into 'master'
nbapi: add HT, VHT, and WiFi6 capabilities to Capabilities, STA, and AssociationEvent

Closes PPM-3378

See merge request prpl-foundation/prplmesh/prplMesh!4011
2025-07-02 15:53:32 +02:00