Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions agents/unix/conf/base/conf.c
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,10 @@ extern te_errno ta_unix_conf_loadavg_init(void);
# include "conf_upnp_cp.h"
#endif /* WITH_UPNP_CP */

#ifdef WITH_WIFI
#include "ta_wifi.h"
#endif /* WITH_WIFI */

/**
* Determine family of the address in string representation.
*
Expand Down Expand Up @@ -1470,6 +1474,14 @@ rcf_ch_conf_init(void)
}
#endif /* WITH_UPNP_CP */

#ifdef WITH_WIFI
if (ta_unix_conf_wifi_init() != 0)
{
ERROR("Failed to add WiFi configuration subtree");
goto fail;
}
#endif /* WITH_WIFI */

#ifdef WITH_SOCKS
if (ta_unix_conf_socks_init() != 0)
{
Expand Down
4 changes: 4 additions & 0 deletions agents/unix/conf/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ endif
if conf.contains('upnp_cp')
c_args += [ '-DWITH_UPNP_CP' ]
endif
if conf.contains('wifi')
c_args += [ '-DWITH_WIFI' ]
endif

if conf.contains('tc')
c_args += [ '-DWITH_TC' ]
includes += include_directories('tc')
Expand Down
288 changes: 288 additions & 0 deletions doc/cm/cm_wifi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,288 @@
---
# SPDX-License-Identifier: Apache-2.0

- comment: |
WiFi AP and STA settings on Agents.

Copyright (C) 2025 Interpretica, Unipessoal Lda. All rights reserved.


- register:

- oid: "/agent/wifi"
access: read_only
type: none
d: |
Root object of the WiFi configuration tree.
Name: empty

- oid: "/agent/wifi/configurator"
access: read_write
type: string
d: |
Select configurator
Name: empty
Value: "uci" or "hostapd_wpa_supplicant"

- oid: "/agent/wifi/enable"
access: read_write
type: int32
d: |
Enable or disable WiFi
Name: empty
Value: 0 or 1

- oid: "/agent/wifi/status"
access: read_only
type: int32
volatile: true
d: |
Is WiFi enabled or not
Name: empty
Value: 0 or 1

- oid: "/agent/wifi/port"
access: read_create
type: none
d: |
WiFi port instance.
Name: any, typically 2_4 or 5

- oid: "/agent/wifi/port/enable"
access: read_write
type: int32
d: |
Port enable state
Name: empty
Value: 1 (true) or 0 (false)

- oid: "/agent/wifi/port/ifname"
access: read_write
type: string
d: |
Interface name
Name: empty
Value: Any supported by Linux

- oid: "/agent/wifi/port/standard"
access: read_write
type: string
d: |
WiFi standard.
Name: empty
Value: g, n, ac, ax

- oid: "/agent/wifi/port/channel"
access: read_write
type: uint8
d: |
WiFi channel.
Name: empty
Value: Channel number

- oid: "/agent/wifi/port/width"
access: read_write
type: uint32
d: |
Bandwidth
Name: empty
Value: 20, 40, 80, 160, 320

- oid: "/agent/wifi/port/max_a_msdu"
access: read_write
type: uint32
d: |
Max A-MSDU
Name: empty
Value: any supported value

- oid: "/agent/wifi/port/max_a_mpdu"
access: read_write
type: uint32
d: |
Max A-MPDU
Name: empty
Value: any supported value

- oid: "/agent/wifi/port/frag_threshold"
access: read_write
type: uint32
d: |
Fragmentation threshold.
Name: empty
Value: 0 (disable fragmentation) or 256 .. 2346

- oid: "/agent/wifi/port/rts_threshold"
access: read_write
type: uint32
d: |
RTS threshold.
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/short_retry_limit"
access: read_write
type: uint32
d: |
Short retry limit.
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/long_retry_limit"
access: read_write
type: uint32
d: |
Long retry limit.
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/guard_interval"
access: read_write
type: uint32
d: |
Guard interval
Name: empty
Value: Any supported value (in ns)

- oid: "/agent/wifi/port/aifs"
access: read_write
type: uint32
d: |
Arbitration Inter-Frame Space
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/contention_window_min"
access: read_write
type: uint32
d: |
Contention window minimum
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/contention_window_max"
access: read_write
type: uint32
d: |
Contention window maximum
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/txop_limit"
access: read_write
type: uint32
d: |
TXOP Limit
Name: empty
Value: Any supported value (in microseconds)

- oid: "/agent/wifi/port/tx_power"
access: read_write
type: uint32
d: |
TX power
Name: empty
Value: Any supported value (in DBM)

- oid: "/agent/wifi/port/max_nss"
access: read_write
type: uint32
d: |
Maximum number of spatial streams
Name: empty
Value: Any supported value

- oid: "/agent/wifi/port/option"
access: read_create
type: none
d: |
Additional options passed to underlying configurator.
Name: any
Value: none

- oid: "/agent/wifi/port/option/value"
access: read_write
type: string
d: |
Value of the option passed to underlying configurator.
Name: empty
Value: any option permitted by underlying configurator.

- oid: "/agent/wifi/port/ssid"
access: read_create
type: none
d: |
SSID instance.
Name: Internal SSID name

- oid: "/agent/wifi/port/ssid/enable"
access: read_write
type: int32
d: |
SSID enable status
Name: empty
Value: 1 (true) or 0 (false)

- oid: "/agent/wifi/port/ssid/ifname"
access: read_write
type: string
d: |
Interface name
Name: empty
Value: Any supported by Linux

- oid: "/agent/wifi/port/ssid/name"
access: read_write
type: string
d: |
SSID name.
Name: empty
Value: SSID name

- oid: "/agent/wifi/port/ssid/mode"
access: read_write
type: string
d: |
SSID mode
Name: empty
Value: ap/sta

- oid: "/agent/wifi/port/ssid/security"
access: read_write
type: string
d: |
SSID security.
Name: empty
Value: open, wpa, wpa2, wpa3

- oid: "/agent/wifi/port/ssid/protocol"
access: read_write
type: string
d: |
SSID protocol.
Name: empty
Value: ccmp, tkip

- oid: "/agent/wifi/port/ssid/passphrase"
access: read_write
type: string
d: |
SSID passphrase.
Name: empty
Value: Passphrase 8 to 63 characters long

- oid: "/agent/wifi/port/ssid/option"
access: read_create
type: none
d: |
Additional options passed to underlying configurator.
Name: any
Value: none

- oid: "/agent/wifi/port/ssid/option/value"
access: read_write
type: string
d: |
Value of the option passed to underlying configurator.
Name: empty
Value: any option permitted by underlying configurator.
1 change: 1 addition & 0 deletions doc/cm/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ cm_files = files(
'cm_vnc.yml',
'cm_volatile.yml',
'cm_vtun.yml',
'cm_wifi.yml',
'cm_xvfb.yml',
'cm_xen.yml'
)
Expand Down
15 changes: 15 additions & 0 deletions doc/sphinx/pages/group_ta_wifi.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
..
SPDX-License-Identifier: Apache-2.0
Copyright (C) 2025 Interpretica, Unipessoal Lda. All rights reserved.

.. index:: pair: group; WiFi control agent library
.. _doxid-group__ta__wifi:

WiFi control agent library
==========================

.. toctree::
:hidden:

/generated/group_tapi_cfg_wifi.rst
/generated/group_ta_wifi_agent.rst
2 changes: 2 additions & 0 deletions engine/builder/te_meson_build
Original file line number Diff line number Diff line change
Expand Up @@ -348,6 +348,8 @@ process_agent_unix_parms() {
conf="${conf} upnp_cp" ;;
--with-vcm)
conf="${conf} vcm" ;;
--with-wifi)
conf="${conf} wifi" ;;
--without-static-libc)
# default, in fact --with-static-libc is not supported yet
;;
Expand Down
1 change: 1 addition & 0 deletions lib/mainpage.dox
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,5 @@ Questions regarding this document may be forwarded to support@oktetlabs.ru
- @ref tapi_tcp_states
- @ref tapi_upnp
- @ref tapi_wifi
- @ref ta_wifi
*/
2 changes: 2 additions & 0 deletions lib/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ te_common_libs = [
'rpc_dpdk',
'rpc_types',
'ovs_flow',
'tapi_cfg_wifi',
]

# Test Engine libraries
Expand Down Expand Up @@ -92,6 +93,7 @@ te_agent_libs = [
'tad',
'ta_job',
'ta_restconf',
'ta_wifi',
'rpcs_bpf',
'rpcs_dpdk',
'rpcs_job',
Expand Down
Loading