Morse Micro IoT SDK  2.6.4-esp32
mmwlan.h
1/*
2 * Copyright 2021-2024 Morse Micro
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
34#pragma once
35
36#include <stdarg.h>
37#include <stdint.h>
38#include <stdlib.h>
39#include <stdbool.h>
40#include <string.h>
41
42#include "mmpkt.h"
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
50{
76};
77
79#define MMWLAN_SSID_MAXLEN (32)
80
82#define MMWLAN_PASSPHRASE_MAXLEN (100)
83
85#define MMWLAN_RAW_MAX_PRIORITY (7)
86
88#define MMWLAN_MAC_ADDR_LEN (6)
89
91#define MMWLAN_MAX_EC_GROUPS (4)
92
94#define MMWLAN_OUI_SIZE (3)
95
98#define DEFAULT_BGSCAN_SHORT_INTERVAL_S (0)
99
101#define DEFAULT_BGSCAN_THRESHOLD_DBM (0)
102
105#define DEFAULT_BGSCAN_LONG_INTERVAL_S (0)
106
108#define DEFAULT_TWT_WAKE_INTERVAL_US (300000000)
109
111#define DEFAULT_TWT_MIN_WAKE_DURATION_US (65280)
112
117#define MMWLAN_STANDBY_STATUS_FRAME_USER_PAYLOAD_MAXLEN (64)
118
120#define MMWLAN_STANDBY_WAKE_FRAME_USER_FILTER_MAXLEN (64)
121
124{
131};
132
135{
141
144{
150
153{
159
166{
174
177{
185
196#define MMWLAN_SKIP_OP_CLASS_CHECK -1
197
200{
214 uint8_t bw_mhz;
223};
224
227{
229 uint8_t country_code[3];
231 unsigned num_channels;
234};
235
241{
243 unsigned num_domains;
244
247};
248
258static inline const struct mmwlan_s1g_channel_list *
260{
261 unsigned ii;
262
263 if (db == NULL)
264 {
265 return NULL;
266 }
267
268 for (ii = 0; ii < db->num_domains; ii++)
269 {
270 const struct mmwlan_s1g_channel_list *channel_list = db->domains[ii];
271 if (channel_list->country_code[0] == country_code[0] &&
272 channel_list->country_code[1] == country_code[1])
273 {
274 return channel_list;
275 }
276 }
277 return NULL;
278}
279
297
307#define MMWLAN_MORSELIB_VERSION_MAXLEN (32)
309#define MMWLAN_FW_VERSION_MAXLEN (32)
310
313{
320};
321
333
335#define MMWLAN_BCF_BOARD_DESC_MAXLEN (31)
337#define MMWLAN_BCF_BUILD_VERSION_MAXLEN (31)
338
341{
343 struct
344 {
346 uint16_t major;
348 uint8_t minor;
350 uint8_t patch;
352
360
368};
369
378
379
397enum mmwlan_status mmwlan_override_max_tx_power(uint16_t tx_power_dbm);
398
409enum mmwlan_status mmwlan_set_rts_threshold(unsigned rts_threshold);
410
426
441enum mmwlan_status mmwlan_set_subbands_enabled(bool subbands_enabled);
442
451
463
468#define MMWLAN_MINIMUM_FRAGMENT_THRESHOLD (256)
469
489enum mmwlan_status mmwlan_set_fragment_threshold(unsigned fragment_threshold);
490
503{
511};
512
514#define MMWLAN_SCAN_CONFIG_INIT { MMWLAN_SCAN_DEFAULT_DWELL_TIME_MS }
515
524
527{
550};
551
561#define MMWLAN_TWT_CONFIG_ARGS_INIT { MMWLAN_TWT_DISABLED, DEFAULT_TWT_WAKE_INTERVAL_US, 0, 0, \
562 DEFAULT_TWT_MIN_WAKE_DURATION_US, MMWLAN_TWT_SETUP_REQUEST }
563
575 const struct mmwlan_twt_config_args *twt_config_args);
576
595{
597 uint8_t reserved;
598};
599
605#define MMWLAN_BOOT_ARGS_INIT { 0 }
606
621
631
636{
637 MMWLAN_STA_DISABLED,
638 MMWLAN_STA_CONNECTING,
639 MMWLAN_STA_CONNECTED,
640};
641
646{
647 MMWLAN_STA_TYPE_SENSOR = 0x01,
648 MMWLAN_STA_TYPE_NON_SENSOR = 0x02,
649};
650
653{
655 int16_t rssi;
657 const uint8_t *bssid;
659 const uint8_t *ssid;
661 const uint8_t *ies;
667 uint16_t ies_len;
669 uint8_t ssid_len;
673 uint8_t bw_mhz;
675 uint8_t op_bw_mhz;
677 uint64_t tsf;
678};
679
681typedef void (*mmwlan_scan_rx_cb_t)(const struct mmwlan_scan_result *result, void *arg);
682
684typedef void (*mmwlan_sta_status_cb_t)(enum mmwlan_sta_state sta_state);
685
701{
705 uint16_t ssid_len;
763};
764
770#define MMWLAN_STA_ARGS_INIT \
771 { { 0 }, 0, { 0 }, MMWLAN_OPEN, { 0 }, 0, MMWLAN_PMF_REQUIRED, -1, MMWLAN_STA_TYPE_NON_SENSOR, \
772 { 0 }, MMWLAN_CAC_DISABLED, DEFAULT_BGSCAN_SHORT_INTERVAL_S, DEFAULT_BGSCAN_THRESHOLD_DBM, \
773 DEFAULT_BGSCAN_LONG_INTERVAL_S, NULL, NULL }
774
793 mmwlan_sta_status_cb_t sta_status_cb);
794
807
814
817#define MMWLAN_SCAN_DEFAULT_DWELL_TIME_MS (105)
818
820#define MMWLAN_SCAN_MIN_DWELL_TIME_MS (15)
821
826{
834};
835
837typedef void (*mmwlan_scan_complete_cb_t)(enum mmwlan_scan_state scan_state, void *arg);
838
844{
855 uint8_t *extra_ies;
864 uint16_t ssid_len;
865};
866
876#define MMWLAN_SCAN_ARGS_INIT { MMWLAN_SCAN_DEFAULT_DWELL_TIME_MS, NULL, 0, { 0 }, 0 }
877
882{
891};
892
902#define MMWLAN_SCAN_REQ_INIT { NULL, NULL, NULL, MMWLAN_SCAN_ARGS_INIT }
903
922
932
950enum mmwlan_status mmwlan_get_mac_addr(uint8_t *mac_addr);
951
957uint16_t mmwlan_get_aid(void);
958
967enum mmwlan_status mmwlan_get_bssid(uint8_t *bssid);
968
976int32_t mmwlan_get_rssi(void);
977
1004
1020enum mmwlan_status mmwlan_enable_arp_refresh_offload(uint32_t interval_s, uint32_t dest_ip,
1021 bool send_as_garp);
1022
1027{
1029 uint32_t ip4_addr;
1031 uint32_t mask4_addr;
1033 uint32_t gw4_addr;
1035 uint32_t dns4_addr;
1036};
1037
1039typedef void (*mmwlan_dhcp_lease_update_cb_t)(const struct mmwlan_dhcp_lease_info *lease_info,
1040 void *arg);
1041
1061 void *arg);
1062
1068{
1087};
1088
1101{
1106 uint8_t set_cfgs;
1111 uint16_t period_s;
1123 uint32_t src_ip;
1127 uint16_t src_port;
1131 uint32_t dest_ip;
1135 uint16_t dest_port;
1136};
1137
1143#define MMWLAN_TCP_KEEPALIVE_OFFLOAD_ARGS_INIT { 0 }
1144
1162 const struct mmwlan_tcp_keepalive_offload_args *args);
1163
1172
1177#define MMWLAN_WHITELIST_FLAGS_CLEAR 0x01
1178
1183{
1185 uint8_t flags;
1191 uint32_t src_ip;
1193 uint32_t dest_ip;
1195 uint32_t netmask;
1197 uint16_t src_port;
1199 uint16_t dest_port;
1200};
1201
1221
1268{
1281};
1282
1289typedef void (*mmwlan_standby_exit_cb_t)(uint8_t reason, void *arg);
1290
1293{
1298};
1299
1315
1328
1331{
1338 uint32_t payload_len;
1339};
1340
1361 const struct mmwlan_standby_set_status_payload_args *args);
1362
1365{
1372 uint32_t filter_len;
1374 uint32_t offset;
1375};
1376
1400 const struct mmwlan_standby_set_wake_filter_args *args);
1401
1407{
1411 uint32_t src_ip;
1413 uint32_t dst_ip;
1418 uint16_t dst_port;
1438};
1439
1448
1449
1494{
1499};
1500
1510#define MMWLAN_SET_WNM_SLEEP_ENABLED_ARGS_INIT { false, false }
1511
1539 const struct mmwlan_set_wnm_sleep_enabled_args *args);
1540
1566static inline enum mmwlan_status mmwlan_set_wnm_sleep_enabled(bool wnm_sleep_enabled)
1567{
1568 struct mmwlan_set_wnm_sleep_enabled_args wnm_sleep_args =
1570 wnm_sleep_args.wnm_sleep_enabled = wnm_sleep_enabled;
1571 return mmwlan_set_wnm_sleep_enabled_ext(&wnm_sleep_args);
1572}
1573
1590#define MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS (5)
1591
1600typedef void (*mmwlan_beacon_vendor_ie_filter_cb_t)(const uint8_t *ies, uint32_t ies_len,
1601 void *arg);
1602
1605
1608{
1619 void *cb_arg;
1622 uint8_t n_ouis;
1625};
1626
1639 const struct mmwlan_beacon_vendor_ie_filter *filter);
1640
1641
1644/*
1645 * ---------------------------------------------------------------------------------------------
1646 */
1647
1662void mmwlan_init(void);
1663
1664
1672void mmwlan_deinit(void);
1673
1690#define MMWLAN_DEFAULT_MIN_HEALTH_CHECK_INTERVAL_MS 60000
1691
1699#define MMWLAN_DEFAULT_MAX_HEALTH_CHECK_INTERVAL_MS 120000
1700
1726 uint32_t max_interval_ms);
1727
1730/*
1731 * ---------------------------------------------------------------------------------------------
1732 */
1733
1742{
1745};
1746
1753typedef void (*mmwlan_link_state_cb_t)(enum mmwlan_link_state link_state, void *arg);
1754
1770
1780typedef void (*mmwlan_rx_cb_t)(uint8_t *header, unsigned header_len,
1781 uint8_t *payload, unsigned payload_len,
1782 void *arg);
1783
1798
1806typedef void (*mmwlan_rx_pkt_cb_t)(struct mmpkt *mmpkt, void *arg);
1807
1820
1831
1845struct mmpkt *mmwlan_alloc_mmpkt_for_tx(uint32_t payload_len, uint8_t tid);
1846
1848#define MMWLAN_TX_DEFAULT_TIMEOUT_MS (1000)
1849
1851#define MMWLAN_TX_DEFAULT_QOS_TID (0)
1852
1854#define MMWLAN_MAX_QOS_TID (7)
1855
1871{
1876 uint8_t tid;
1877};
1878
1882#define MMWLAN_TX_METADATA_INIT { MMWLAN_TX_DEFAULT_QOS_TID }
1883
1917enum mmwlan_status mmwlan_tx_pkt(struct mmpkt *pkt, const struct mmwlan_tx_metadata *metadata);
1918
1944static inline enum mmwlan_status mmwlan_tx_tid(const uint8_t *data, unsigned len, uint8_t tid)
1945{
1946 enum mmwlan_status status;
1947 struct mmpkt *pkt;
1948 struct mmpktview *pktview;
1950
1952 if (status != MMWLAN_SUCCESS)
1953 {
1954 return status;
1955 }
1956
1957 pkt = mmwlan_alloc_mmpkt_for_tx(len, tid);
1958 if (pkt == NULL)
1959 {
1960 return MMWLAN_NO_MEM;
1961 }
1962
1963 pktview = mmpkt_open(pkt);
1964 mmpkt_append_data(pktview, data, len);
1965 mmpkt_close(&pktview);
1966
1967 metadata.tid = tid;
1968 return mmwlan_tx_pkt(pkt, &metadata);
1969}
1970
1995static inline enum mmwlan_status mmwlan_tx(const uint8_t *data, unsigned len)
1996{
1997 return mmwlan_tx_tid(data, len, MMWLAN_TX_DEFAULT_QOS_TID);
1998}
1999
2005{
2008};
2009
2022typedef void (*mmwlan_tx_flow_control_cb_t)(enum mmwlan_tx_flow_control_state state, void *arg);
2023
2037
2040/*
2041 * ---------------------------------------------------------------------------------------------
2042 */
2043
2054{
2056 uint32_t n_entries;
2058 uint32_t *rate_info;
2060 uint32_t *total_sent;
2062 uint32_t *total_success;
2063};
2064
2081{
2082 MMWLAN_RC_STATS_RATE_INFO_BW_OFFSET = 0,
2083 MMWLAN_RC_STATS_RATE_INFO_RATE_OFFSET = 4,
2084 MMWLAN_RC_STATS_RATE_INFO_GUARD_OFFSET = 8,
2085};
2086
2095
2102
2108{
2110 uint8_t *buf;
2112 uint32_t len;
2113};
2114
2127struct mmwlan_morse_stats *mmwlan_get_morse_stats(uint32_t core_num, bool reset);
2128
2135
2138/*
2139 * ---------------------------------------------------------------------------------------------
2140 */
2141
2153{
2165
2168{
2175};
2176
2179{
2184};
2185
2199 enum mmwlan_bw bandwidth_override,
2200 enum mmwlan_gi gi_override);
2201
2217enum mmwlan_status mmwlan_ate_execute_command(uint8_t *command, uint32_t command_len,
2218 uint8_t *response, uint32_t *response_len);
2219
2222#ifdef __cplusplus
2223}
2224#endif
2225
static void mmpkt_append_data(struct mmpktview *view, const uint8_t *data, uint32_t len)
Appends the given data to the data already in the mmpkt.
Definition: mmpkt.h:395
static void mmpkt_close(struct mmpktview **view)
Close the given view.
Definition: mmpkt.h:229
static struct mmpktview * mmpkt_open(struct mmpkt *mmpkt)
Open a view of the given mmpkt.
Definition: mmpkt.h:218
enum mmwlan_status mmwlan_update_beacon_vendor_ie_filter(const struct mmwlan_beacon_vendor_ie_filter *filter)
Function to update the filter used to pass beacon back.
#define MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS
Max number of OUIs supported in vendor IE OUI filter, mmwlan_beacon_vendor_ie_filter.
Definition: mmwlan.h:1590
void(* mmwlan_beacon_vendor_ie_filter_cb_t)(const uint8_t *ies, uint32_t ies_len, void *arg)
Beacon vendor ie filter callback function prototype.
Definition: mmwlan.h:1600
uint8_t mmwlan_oui_t[MMWLAN_OUI_SIZE]
24-bit OUI type.
Definition: mmwlan.h:1604
mmwlan_scan_state
Enumeration of states in Scan mode.
Definition: mmwlan.h:826
void(* mmwlan_scan_rx_cb_t)(const struct mmwlan_scan_result *result, void *arg)
mmwlan scan rx callback function prototype.
Definition: mmwlan.h:681
enum mmwlan_status mmwlan_get_version(struct mmwlan_version *version)
Retrieve version information from morselib and the connected Morse transceiver.
int32_t mmwlan_get_rssi(void)
Gets the RSSI measured from the AP.
enum mmwlan_status mmwlan_boot(const struct mmwlan_boot_args *args)
Boot the Morse Micro transceiver and leave it in an idle state.
enum mmwlan_status mmwlan_scan_abort(void)
Abort in progress or pending scans.
enum mmwlan_status mmwlan_set_ampdu_enabled(bool ampdu_enabled)
Sets whether or not Aggregated MAC Protocol Data Unit (A-MPDU) support is enabled.
mmwlan_sta_state
Enumeration of states in STA mode.
Definition: mmwlan.h:636
enum mmwlan_sta_state mmwlan_get_sta_state(void)
Gets the current WLAN STA state.
enum mmwlan_status mmwlan_set_scan_config(const struct mmwlan_scan_config *config)
Update the scan configuration with the given settings.
void(* mmwlan_sta_status_cb_t)(enum mmwlan_sta_state sta_state)
STA status callback function prototype.
Definition: mmwlan.h:684
enum mmwlan_status mmwlan_set_sgi_enabled(bool sgi_enabled)
Sets whether or not Short Guard Interval (SGI) support is enabled.
#define MMWLAN_BCF_BOARD_DESC_MAXLEN
Maximum length of a BCF board description string (excluding null terminator).
Definition: mmwlan.h:335
enum mmwlan_status mmwlan_get_bssid(uint8_t *bssid)
Gets the BSSID of the AP to which the STA is associated.
mmwlan_station_type
Enumeration of S1G non-AP STA types.
Definition: mmwlan.h:646
enum mmwlan_status mmwlan_shutdown(void)
Perform a clean shutdown of the Morse Micro transceiver, including cleanly disconnecting from a conne...
enum mmwlan_status mmwlan_set_power_save_mode(enum mmwlan_ps_mode mode)
Sets whether or not the 802.11 power save is enabled.
#define MMWLAN_BCF_BUILD_VERSION_MAXLEN
Maximum length of a BCF build version string (excluding null terminator).
Definition: mmwlan.h:337
enum mmwlan_status mmwlan_twt_add_configuration(const struct mmwlan_twt_config_args *twt_config_args)
Add configurations for Target Wake Time (TWT).
enum mmwlan_status mmwlan_get_bcf_metadata(struct mmwlan_bcf_metadata *metadata)
Read the metadata from the board configuration file (BCF)r.
void(* mmwlan_scan_complete_cb_t)(enum mmwlan_scan_state scan_state, void *arg)
mmwlan scan complete callback function prototype.
Definition: mmwlan.h:837
enum mmwlan_status mmwlan_sta_enable(const struct mmwlan_sta_args *args, mmwlan_sta_status_cb_t sta_status_cb)
Enable station mode.
enum mmwlan_status mmwlan_set_subbands_enabled(bool subbands_enabled)
Sets whether or not sub-band support is enabled for transmit.
enum mmwlan_status mmwlan_set_fragment_threshold(unsigned fragment_threshold)
Set the Fragmentation threshold.
enum mmwlan_status mmwlan_override_max_tx_power(uint16_t tx_power_dbm)
Override the maximum TX power.
enum mmwlan_status mmwlan_set_rts_threshold(unsigned rts_threshold)
Set the RTS threshold.
enum mmwlan_status mmwlan_scan_request(const struct mmwlan_scan_req *scan_req)
Request a scan.
uint16_t mmwlan_get_aid(void)
Gets the station's AID.
enum mmwlan_status mmwlan_sta_disable(void)
Disable station mode.
enum mmwlan_status mmwlan_get_mac_addr(uint8_t *mac_addr)
Gets the MAC address of this device.
#define MMWLAN_FW_VERSION_MAXLEN
Maximum length of the firmware version string.
Definition: mmwlan.h:309
#define MMWLAN_MORSELIB_VERSION_MAXLEN
Maximum length of the Morselib version string.
Definition: mmwlan.h:307
@ MMWLAN_SCAN_SUCCESSFUL
Scan was successful and all channels were scanned.
Definition: mmwlan.h:828
@ MMWLAN_SCAN_RUNNING
Scanning in progress.
Definition: mmwlan.h:833
@ MMWLAN_SCAN_TERMINATED
Scan was incomplete.
Definition: mmwlan.h:831
static enum mmwlan_status mmwlan_tx_tid(const uint8_t *data, unsigned len, uint8_t tid)
Transmit the given packet using the given QoS Traffic ID (TID).
Definition: mmwlan.h:1944
enum mmwlan_status mmwlan_register_rx_cb(mmwlan_rx_cb_t callback, void *arg)
Register a receive callback.
enum mmwlan_status mmwlan_tx_wait_until_ready(uint32_t timeout_ms)
Blocks until the transmit path is ready for transmit.
enum mmwlan_status mmwlan_register_rx_pkt_cb(mmwlan_rx_pkt_cb_t callback, void *arg)
Register a receive callback which consumes an mmpkt.
void(* mmwlan_link_state_cb_t)(enum mmwlan_link_state link_state, void *arg)
Prototype for link state change callbacks.
Definition: mmwlan.h:1753
#define MMWLAN_TX_DEFAULT_QOS_TID
Default QoS Traffic ID (TID) to use for transmit (mmwlan_tx()).
Definition: mmwlan.h:1851
enum mmwlan_status mmwlan_register_link_state_cb(mmwlan_link_state_cb_t callback, void *arg)
Register a link status callback.
enum mmwlan_status mmwlan_register_tx_flow_control_cb(mmwlan_tx_flow_control_cb_t cb, void *arg)
Register a transmit flow control callback.
mmwlan_tx_flow_control_state
Enumeration of states that can be returned by the transmit flow control callback (as registered by mm...
Definition: mmwlan.h:2005
mmwlan_link_state
Enumeration of link states.
Definition: mmwlan.h:1742
struct mmpkt * mmwlan_alloc_mmpkt_for_tx(uint32_t payload_len, uint8_t tid)
Allocate an mmpkt data structure for transmission with at least enough space for the given payload le...
void(* mmwlan_rx_cb_t)(uint8_t *header, unsigned header_len, uint8_t *payload, unsigned payload_len, void *arg)
Receive data packet callback function.
Definition: mmwlan.h:1780
void(* mmwlan_tx_flow_control_cb_t)(enum mmwlan_tx_flow_control_state state, void *arg)
Transmit flow control callback function type.
Definition: mmwlan.h:2022
static enum mmwlan_status mmwlan_tx(const uint8_t *data, unsigned len)
Transmit the given packet using MMWLAN_TX_DEFAULT_QOS_TID.
Definition: mmwlan.h:1995
enum mmwlan_status mmwlan_tx_pkt(struct mmpkt *pkt, const struct mmwlan_tx_metadata *metadata)
Transmit the given packet.
#define MMWLAN_TX_METADATA_INIT
Initializer for mmwlan_tx_metadata.
Definition: mmwlan.h:1882
void(* mmwlan_rx_pkt_cb_t)(struct mmpkt *mmpkt, void *arg)
Receive data packet callback function, consuming an mmpkt.
Definition: mmwlan.h:1806
#define MMWLAN_TX_DEFAULT_TIMEOUT_MS
Default transmit timeout.
Definition: mmwlan.h:1848
@ MMWLAN_TX_READY
Transmit data path ready for packets (not paused).
Definition: mmwlan.h:2006
@ MMWLAN_TX_PAUSED
Transmit data path paused (blocked).
Definition: mmwlan.h:2007
@ MMWLAN_LINK_UP
The link is up.
Definition: mmwlan.h:1744
@ MMWLAN_LINK_DOWN
The link is down.
Definition: mmwlan.h:1743
enum mmwlan_status mmwlan_set_health_check_interval(uint32_t min_interval_ms, uint32_t max_interval_ms)
Specify the periodic health check intervals.
void mmwlan_deinit(void)
Deinitialize the MMWLAN subsystem, freeing any allocated memory.
void mmwlan_init(void)
Initialize the MMWLAN subsystem.
enum mmwlan_status mmwlan_disable_tcp_keepalive_offload(void)
Disables the TCP keep-alive offload feature.
enum mmwlan_status mmwlan_enable_arp_refresh_offload(uint32_t interval_s, uint32_t dest_ip, bool send_as_garp)
Enables ARP refresh offload.
enum mmwlan_status mmwlan_enable_tcp_keepalive_offload(const struct mmwlan_tcp_keepalive_offload_args *args)
Enables TCP keep-alive offload.
enum mmwlan_status mmwlan_enable_dhcp_offload(mmwlan_dhcp_lease_update_cb_t dhcp_lease_update_cb, void *arg)
Enables DHCP offload.
void(* mmwlan_dhcp_lease_update_cb_t)(const struct mmwlan_dhcp_lease_info *lease_info, void *arg)
DHCP Lease update callback function prototype - this is called whenever a lease is updated.
Definition: mmwlan.h:1039
mmwlan_tcp_keepalive_offload_cfg
Keep-alive offload configuration options for mmwlan_tcp_keepalive_offload_args::set_cfgs bitmap.
Definition: mmwlan.h:1068
enum mmwlan_status mmwlan_enable_arp_response_offload(uint32_t arp_addr)
Enables ARP response offload.
enum mmwlan_status mmwlan_set_whitelist_filter(const struct mmwlan_config_whitelist *whitelist)
Sets and enables the IP whitelist filter.
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_DEST_PORT
Bitmap for TCP keep alive destination port parameter.
Definition: mmwlan.h:1082
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_DEST_IP_ADDR
Bitmap for TCP keep alive destination IP parameter.
Definition: mmwlan.h:1078
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_IP_ADDR
Bitmap for TCP keep alive source IP parameter.
Definition: mmwlan.h:1076
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_RETRY_COUNT
Bitmap for TCP keep alive retry count parameter.
Definition: mmwlan.h:1072
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_SRC_PORT
Bitmap for TCP keep alive source port parameter.
Definition: mmwlan.h:1080
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_TIMING_ONLY
Bitmap for TCP keep alive timing parameters only.
Definition: mmwlan.h:1084
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_RETRY_INTERVAL
Bitmap for TCP keep alive retry interval parameter.
Definition: mmwlan.h:1074
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_ALL
Bitmap for all TCP keep alive parameters.
Definition: mmwlan.h:1086
@ MMWLAN_TCP_KEEPALIVE_SET_CFG_PERIOD
Bitmap for TCP keep alive period parameter.
Definition: mmwlan.h:1070
static const struct mmwlan_s1g_channel_list * mmwlan_lookup_regulatory_domain(const struct mmwlan_regulatory_db *db, const char *country_code)
Look up the given country code in the regulatory database and return the matching channel list if fou...
Definition: mmwlan.h:259
enum mmwlan_status mmwlan_set_channel_list(const struct mmwlan_s1g_channel_list *channel_list)
Set the list of channels that are supported by the regulatory domain in which the device resides.
enum mmwlan_status mmwlan_standby_set_status_payload(const struct mmwlan_standby_set_status_payload_args *args)
Sets the user payload in the standby status packet.
enum mmwlan_status mmwlan_standby_exit(void)
Forces the Morse chip to exit standby mode.
enum mmwlan_status mmwlan_standby_set_config(const struct mmwlan_standby_config *config)
Sets the configuration for standby mode.
enum mmwlan_status mmwlan_standby_set_wake_filter(const struct mmwlan_standby_set_wake_filter_args *args)
Configures the standby mode UDP wake packet filter.
mmwlan_standby_exit_reason
Reasons we can exit standby mode.
Definition: mmwlan.h:1268
enum mmwlan_status mmwlan_standby_enter(const struct mmwlan_standby_enter_args *args)
This function puts the Morse chip into standby mode allowing the host processor to go to sleep.
void(* mmwlan_standby_exit_cb_t)(uint8_t reason, void *arg)
Standby mode callback whenever an event requiring an exit from standby mode occurs.
Definition: mmwlan.h:1289
@ MMWLAN_STANDBY_EXIT_REASON_WAKEUP_FRAME
The STA has received the wake-up frame.
Definition: mmwlan.h:1272
@ MMWLAN_STANDBY_EXIT_REASON_EXT_INPUT
The external input pin has fired.
Definition: mmwlan.h:1276
@ MMWLAN_STANDBY_EXIT_REASON_WHITELIST_PKT
Whitelisted packet received.
Definition: mmwlan.h:1278
@ MMWLAN_STANDBY_EXIT_REASON_TCP_CONNECTION_LOST
TCP connection lost.
Definition: mmwlan.h:1280
@ MMWLAN_STANDBY_EXIT_REASON_ASSOCIATE
The STA needs to (re)associate.
Definition: mmwlan.h:1274
@ MMWLAN_STANDBY_EXIT_REASON_NONE
No specific reason for exiting standby mode.
Definition: mmwlan.h:1270
void mmwlan_free_rc_stats(struct mmwlan_rc_stats *stats)
Free a mmwlan_rc_stats structure that was allocated with mmwlan_get_rc_stats().
mmwlan_rc_stats_rate_info_offsets
Enumeration defined offsets into the bit field of rate information (rate_info in mmwlan_rc_stats).
Definition: mmwlan.h:2081
struct mmwlan_rc_stats * mmwlan_get_rc_stats(void)
Retrieves WLAN rate control statistics.
struct mmwlan_morse_stats * mmwlan_get_morse_stats(uint32_t core_num, bool reset)
Retrieves statistics from the Morse transceiver.
void mmwlan_free_morse_stats(struct mmwlan_morse_stats *stats)
Frees a mmwlan_morse_stats instance that was returned by mmwlan_get_morse_stats().
enum mmwlan_status mmwlan_ate_override_rate_control(enum mmwlan_mcs tx_rate_override, enum mmwlan_bw bandwidth_override, enum mmwlan_gi gi_override)
Enable/disable override of rate control parameters.
mmwlan_mcs
Enumeration of MCS rates.
Definition: mmwlan.h:2153
enum mmwlan_status mmwlan_ate_execute_command(uint8_t *command, uint32_t command_len, uint8_t *response, uint32_t *response_len)
Execute a test/debug command.
mmwlan_bw
Enumeration of bandwidths.
Definition: mmwlan.h:2168
mmwlan_gi
Enumeration of guard intervals.
Definition: mmwlan.h:2179
@ MMWLAN_MCS_7
MCS7.
Definition: mmwlan.h:2162
@ MMWLAN_MCS_3
MCS3.
Definition: mmwlan.h:2158
@ MMWLAN_MCS_NONE
Use-case specific special value.
Definition: mmwlan.h:2154
@ MMWLAN_MCS_0
MCS0.
Definition: mmwlan.h:2155
@ MMWLAN_MCS_4
MCS4.
Definition: mmwlan.h:2159
@ MMWLAN_MCS_6
MCS6.
Definition: mmwlan.h:2161
@ MMWLAN_MCS_MAX
Maximum supported MCS rate.
Definition: mmwlan.h:2163
@ MMWLAN_MCS_5
MCS5.
Definition: mmwlan.h:2160
@ MMWLAN_MCS_2
MCS2.
Definition: mmwlan.h:2157
@ MMWLAN_MCS_1
MCS1.
Definition: mmwlan.h:2156
@ MMWLAN_BW_NONE
Use-case specific special value.
Definition: mmwlan.h:2169
@ MMWLAN_BW_2MHZ
2 MHz bandwidth
Definition: mmwlan.h:2171
@ MMWLAN_BW_4MHZ
4 MHz bandwidth
Definition: mmwlan.h:2172
@ MMWLAN_BW_MAX
Maximum supported bandwidth.
Definition: mmwlan.h:2174
@ MMWLAN_BW_8MHZ
8 MHz bandwidth
Definition: mmwlan.h:2173
@ MMWLAN_BW_1MHZ
1 MHz bandwidth
Definition: mmwlan.h:2170
@ MMWLAN_GI_MAX
Maximum valid value of this enum.
Definition: mmwlan.h:2183
@ MMWLAN_GI_LONG
Long guard interval.
Definition: mmwlan.h:2182
@ MMWLAN_GI_SHORT
Short guard interval.
Definition: mmwlan.h:2181
@ MMWLAN_GI_NONE
Use-case specific special value.
Definition: mmwlan.h:2180
static enum mmwlan_status mmwlan_set_wnm_sleep_enabled(bool wnm_sleep_enabled)
Sets whether WNM sleep mode is enabled.
Definition: mmwlan.h:1566
#define MMWLAN_SET_WNM_SLEEP_ENABLED_ARGS_INIT
Initializer for mmwlan_set_wnm_sleep_enabled_args.
Definition: mmwlan.h:1510
enum mmwlan_status mmwlan_set_wnm_sleep_enabled_ext(const struct mmwlan_set_wnm_sleep_enabled_args *args)
Sets extended WNM sleep mode.
mmwlan_status
Enumeration of status return codes.
Definition: mmwlan.h:50
#define MMWLAN_PASSPHRASE_MAXLEN
Maximum allowable length of a passphrase when connecting to an AP.
Definition: mmwlan.h:82
mmwlan_pmf_mode
Enumeration of Protected Management Frame (PMF) modes (802.11w).
Definition: mmwlan.h:144
#define MMWLAN_STANDBY_STATUS_FRAME_USER_PAYLOAD_MAXLEN
The maximum length of a user-specified payload (bytes) for Standby status frames.
Definition: mmwlan.h:117
#define MMWLAN_MAX_EC_GROUPS
Maximum allowable number of EC Groups.
Definition: mmwlan.h:91
mmwlan_security_type
Enumeration of supported security types.
Definition: mmwlan.h:124
#define MMWLAN_OUI_SIZE
Size of an 802.11 OUI element in octets.
Definition: mmwlan.h:94
#define MMWLAN_SSID_MAXLEN
Maximum allowable length of an SSID.
Definition: mmwlan.h:79
mmwlan_twt_setup_command
Enumeration of Target Wake Time (TWT) setup commands.
Definition: mmwlan.h:177
#define MMWLAN_MAC_ADDR_LEN
Length of a WLAN MAC address.
Definition: mmwlan.h:88
mmwlan_ps_mode
Enumeration of supported 802.11 power save modes.
Definition: mmwlan.h:135
mmwlan_twt_mode
Enumeration of Target Wake Time (TWT) modes.
Definition: mmwlan.h:166
#define MMWLAN_STANDBY_WAKE_FRAME_USER_FILTER_MAXLEN
The maximum allowed length of a user filter to apply to wake frames.
Definition: mmwlan.h:120
mmwlan_cac_mode
Enumeration of Centralized Authentication Control (CAC) modes.
Definition: mmwlan.h:153
@ MMWLAN_INVALID_ARGUMENT
The operation failed due to an invalid argument.
Definition: mmwlan.h:56
@ MMWLAN_NOT_RUNNING
Indicates that the operation failed because the UMAC was not running (e.g., the device was not booted...
Definition: mmwlan.h:75
@ MMWLAN_TIMED_OUT
Failed due to timeout.
Definition: mmwlan.h:65
@ MMWLAN_SHUTDOWN_BLOCKED
Used to indicate that a call to mmwlan_sta_disable() did not shutdown the transceiver.
Definition: mmwlan.h:68
@ MMWLAN_SUCCESS
The operation was successful.
Definition: mmwlan.h:52
@ MMWLAN_CHANNEL_INVALID
Attempted to tune to a channel that was not in the regulatory database or not supported.
Definition: mmwlan.h:70
@ MMWLAN_NO_MEM
Failed due to memory allocation failure.
Definition: mmwlan.h:63
@ MMWLAN_CHANNEL_LIST_NOT_SET
Unable to proceed because channel list has not been set.
Definition: mmwlan.h:61
@ MMWLAN_ERROR
The operation failed with an unspecified error.
Definition: mmwlan.h:54
@ MMWLAN_UNAVAILABLE
Functionality is temporarily unavailable.
Definition: mmwlan.h:58
@ MMWLAN_NOT_FOUND
The request could not be completed because the given resource was not found.
Definition: mmwlan.h:72
@ MMWLAN_PMF_DISABLED
No protected management frames.
Definition: mmwlan.h:148
@ MMWLAN_PMF_REQUIRED
Protected management frames must be used.
Definition: mmwlan.h:146
@ MMWLAN_OPEN
Open (no security)
Definition: mmwlan.h:126
@ MMWLAN_SAE
Simultaneous Authentication of Equals (SAE)
Definition: mmwlan.h:130
@ MMWLAN_OWE
Opportunistic Wireless Encryption (OWE)
Definition: mmwlan.h:128
@ MMWLAN_TWT_SETUP_SUGGEST
TWT setup suggest command.
Definition: mmwlan.h:181
@ MMWLAN_TWT_SETUP_REQUEST
TWT setup request command.
Definition: mmwlan.h:179
@ MMWLAN_TWT_SETUP_DEMAND
TWT setup demand command.
Definition: mmwlan.h:183
@ MMWLAN_PS_DISABLED
Power save disabled.
Definition: mmwlan.h:137
@ MMWLAN_PS_ENABLED
Power save enabled.
Definition: mmwlan.h:139
@ MMWLAN_TWT_DISABLED
TWT disabled.
Definition: mmwlan.h:168
@ MMWLAN_TWT_RESPONDER
TWT enabled as a responder.
Definition: mmwlan.h:172
@ MMWLAN_TWT_REQUESTER
TWT enabled as a requester.
Definition: mmwlan.h:170
@ MMWLAN_CAC_DISABLED
CAC disabled.
Definition: mmwlan.h:155
@ MMWLAN_CAC_ENABLED
CAC enabled.
Definition: mmwlan.h:157
Core mmpkt data structure.
Definition: mmpkt.h:79
Board configuration file (BCF) metadata.
Definition: mmwlan.h:341
struct mmwlan_bcf_metadata::@0 version
BCF semantic version.
char board_desc[MMWLAN_BCF_BOARD_DESC_MAXLEN+1]
Board description string.
Definition: mmwlan.h:359
uint8_t patch
Patch version field.
Definition: mmwlan.h:350
uint16_t major
Major version field.
Definition: mmwlan.h:346
uint8_t minor
Minor version field.
Definition: mmwlan.h:348
char build_version[MMWLAN_BCF_BUILD_VERSION_MAXLEN+1]
Build version string.
Definition: mmwlan.h:367
Structure for storing beacon vendor ie filter parameter.
Definition: mmwlan.h:1608
void * cb_arg
Opaque argument to be passed to the callbacks.
Definition: mmwlan.h:1619
mmwlan_beacon_vendor_ie_filter_cb_t cb
Callback that will be executed upon reception of a beacon containing a Vendor Specific information el...
Definition: mmwlan.h:1617
mmwlan_oui_t ouis[MMWLAN_BEACON_VENDOR_IE_MAX_OUI_FILTERS]
List of OUIs to filter on.
Definition: mmwlan.h:1624
uint8_t n_ouis
Number of OUIs contained within ouis.
Definition: mmwlan.h:1622
Arguments data structure for mmwlan_boot().
Definition: mmwlan.h:595
uint8_t reserved
Note this field should not be used and will be removed in future.
Definition: mmwlan.h:597
Whitelist filter configuration.
Definition: mmwlan.h:1183
uint16_t src_port
The source TCP or UDP port to match, 0 for any.
Definition: mmwlan.h:1197
uint32_t netmask
The netmask to apply to the source or destination IP, 0.0.0.0 for any.
Definition: mmwlan.h:1195
uint32_t src_ip
The IPv4 source address to match, 0.0.0.0 for any.
Definition: mmwlan.h:1191
uint16_t dest_port
The destination TCP or UDP port to match, 0 for any.
Definition: mmwlan.h:1199
uint32_t dest_ip
The IPv4 destination address to match, 0.0.0.0 for any - this is usually our IP address.
Definition: mmwlan.h:1193
uint16_t llc_protocol
The LLC protocol to match - 0x0800 for IPv4 and 0x86DD for IPv6, 0 for any.
Definition: mmwlan.h:1189
uint8_t flags
Flags - clear any active whitelist filters if bit 0 is set.
Definition: mmwlan.h:1185
uint8_t ip_protocol
The IP protocol to match - 6 for TCP, 17 for UDP, 0 for any.
Definition: mmwlan.h:1187
DHCP lease info structure.
Definition: mmwlan.h:1027
uint32_t ip4_addr
local IP address
Definition: mmwlan.h:1029
uint32_t mask4_addr
Netmask address.
Definition: mmwlan.h:1031
uint32_t dns4_addr
DNS address.
Definition: mmwlan.h:1035
uint32_t gw4_addr
Gateway address.
Definition: mmwlan.h:1033
Data structure used to represent an opaque buffer containing Morse statistics.
Definition: mmwlan.h:2108
uint8_t * buf
Buffer containing the stats.
Definition: mmwlan.h:2110
uint32_t len
Length of stats in buf.
Definition: mmwlan.h:2112
Rate control statistics data structure.
Definition: mmwlan.h:2054
uint32_t * total_success
Total successes for each rate table entry.
Definition: mmwlan.h:2062
uint32_t n_entries
The number of rate table entries.
Definition: mmwlan.h:2056
uint32_t * rate_info
Rate info for each rate table entry.
Definition: mmwlan.h:2058
uint32_t * total_sent
Total number of packets sent for each rate table entry.
Definition: mmwlan.h:2060
Regulatory database data structure.
Definition: mmwlan.h:241
unsigned num_domains
Number of regulatory domains in the database.
Definition: mmwlan.h:243
const struct mmwlan_s1g_channel_list ** domains
The regulatory domain data.
Definition: mmwlan.h:246
A list of S1G channels supported by a given regulatory domain.
Definition: mmwlan.h:227
unsigned num_channels
The number of channels in the list.
Definition: mmwlan.h:231
uint8_t country_code[3]
Two character country code (null-terminated) used to identify the regulatory domain.
Definition: mmwlan.h:229
const struct mmwlan_s1g_channel * channels
The channel data.
Definition: mmwlan.h:233
Regulatory domain information about an S1G channel.
Definition: mmwlan.h:200
int8_t max_tx_eirp_dbm
Maximum transmit power (EIRP in dBm).
Definition: mmwlan.h:216
uint32_t airtime_min_us
The minimum packet airtime duration to trigger spacing (in microseconds).
Definition: mmwlan.h:220
int16_t s1g_operating_class
S1G operating class.
Definition: mmwlan.h:210
int16_t global_operating_class
Global operating class.
Definition: mmwlan.h:208
uint32_t airtime_max_us
The maximum allowable packet airtime duration (in microseconds).
Definition: mmwlan.h:222
uint32_t centre_freq_hz
Center frequency of the channel (in Hz).
Definition: mmwlan.h:202
bool duty_cycle_omit_ctrl_resp
Boolean indicating whether to omit control response frames from duty cycle.
Definition: mmwlan.h:206
uint16_t duty_cycle_sta
STA Duty Cycle (in 100th of %).
Definition: mmwlan.h:204
uint8_t s1g_chan_num
S1G channel number.
Definition: mmwlan.h:212
uint32_t pkt_spacing_us
The length of time to close the tx window between packets (in microseconds).
Definition: mmwlan.h:218
uint8_t bw_mhz
Channel operating bandwidth (in MHz).
Definition: mmwlan.h:214
Structure to hold scan arguments.
Definition: mmwlan.h:844
uint8_t * extra_ies
Extra Information Elements to include in Probe Request frames.
Definition: mmwlan.h:855
uint8_t ssid[MMWLAN_SSID_MAXLEN]
SSID used for scan.
Definition: mmwlan.h:862
size_t extra_ies_len
Length of extra_ies.
Definition: mmwlan.h:857
uint16_t ssid_len
Length of the SSID.
Definition: mmwlan.h:864
uint32_t dwell_time_ms
Time to dwell on a channel waiting for probe responses/beacons.
Definition: mmwlan.h:850
Scan configuration data structure.
Definition: mmwlan.h:503
uint32_t dwell_time_ms
Set the per-channel dwell time to use for scans that are requested internally within the mmwlan drive...
Definition: mmwlan.h:510
Structure to hold arguments specific to a given instance of a scan.
Definition: mmwlan.h:882
mmwlan_scan_rx_cb_t scan_rx_cb
Scan response receive callback.
Definition: mmwlan.h:884
void * scan_cb_arg
Opaque argument to be passed to the callbacks.
Definition: mmwlan.h:888
mmwlan_scan_complete_cb_t scan_complete_cb
Scan complete callback.
Definition: mmwlan.h:886
struct mmwlan_scan_args args
Scan arguments to be used mmwlan_scan_args.
Definition: mmwlan.h:890
Result of the scan request.
Definition: mmwlan.h:653
uint8_t ssid_len
Length of the SSID (ssid).
Definition: mmwlan.h:669
uint8_t bw_mhz
Bandwidth, in MHz, where the frame was received.
Definition: mmwlan.h:673
const uint8_t * ies
Pointer to the start of the Information Elements within the Probe Response frame.
Definition: mmwlan.h:661
uint16_t capability_info
Value of the Capability Information field.
Definition: mmwlan.h:665
uint16_t ies_len
Length of the Information Elements (ies).
Definition: mmwlan.h:667
const uint8_t * bssid
Pointer to the BSSID field within the Probe Response frame.
Definition: mmwlan.h:657
uint32_t channel_freq_hz
Center frequency in Hz of the channel where the frame was received.
Definition: mmwlan.h:671
uint16_t beacon_interval
Value of the Beacon Interval field.
Definition: mmwlan.h:663
uint64_t tsf
TSF timestamp in the Probe Response frame.
Definition: mmwlan.h:677
uint8_t op_bw_mhz
Operating bandwidth, in MHz, of the access point.
Definition: mmwlan.h:675
int16_t rssi
RSSI of the received frame.
Definition: mmwlan.h:655
const uint8_t * ssid
Pointer to the SSID within the SSID IE of the Probe Response frame.
Definition: mmwlan.h:659
Structure for storing WNM sleep extended arguments.
Definition: mmwlan.h:1494
bool wnm_sleep_enabled
Boolean indicating whether WNM sleep is enabled.
Definition: mmwlan.h:1496
bool chip_powerdown_enabled
Boolean indicating whether chip should be powered down during WNM sleep.
Definition: mmwlan.h:1498
Arguments data structure for mmwlan_sta_enable().
Definition: mmwlan.h:701
mmwlan_scan_rx_cb_t scan_rx_cb
Optional callback for scan results which are received during the connection process.
Definition: mmwlan.h:760
int bgscan_signal_threshold_dbm
Background scan signal strength threshold that switches between short and long intervals.
Definition: mmwlan.h:747
int16_t raw_sta_priority
Priority used by the AP to assign a STA to a Restricted Access Window (RAW) group.
Definition: mmwlan.h:723
int sae_owe_ec_groups[MMWLAN_MAX_EC_GROUPS]
Preference list of enabled elliptic curve groups for SAE and OWE.
Definition: mmwlan.h:730
uint8_t ssid[MMWLAN_SSID_MAXLEN]
SSID of the AP to connect to.
Definition: mmwlan.h:703
char passphrase[MMWLAN_PASSPHRASE_MAXLEN+1]
Passphrase (only used if security_type is MMWLAN_SAE, otherwise ignored.
Definition: mmwlan.h:714
enum mmwlan_pmf_mode pmf_mode
Protected Management Frame mode to use (802.11w)
Definition: mmwlan.h:718
enum mmwlan_security_type security_type
Type of security to use.
Definition: mmwlan.h:712
uint16_t passphrase_len
Length of passphrase.
Definition: mmwlan.h:716
uint16_t bgscan_long_interval_s
Background scan long interval, measured in seconds.
Definition: mmwlan.h:758
uint16_t bgscan_short_interval_s
Background scan short interval, measured in seconds.
Definition: mmwlan.h:743
enum mmwlan_cac_mode cac_mode
Whether Centralized Authentication Controlled is enabled on the STA.
Definition: mmwlan.h:732
uint8_t bssid[MMWLAN_MAC_ADDR_LEN]
BSSID of the AP to connect to.
Definition: mmwlan.h:710
void * scan_rx_cb_arg
Opaque argument to be passed to scan_rx_cb.
Definition: mmwlan.h:762
uint16_t ssid_len
Length of the SSID.
Definition: mmwlan.h:705
enum mmwlan_station_type sta_type
S1G non-AP STA type.
Definition: mmwlan.h:725
Standby mode configuration parameters.
Definition: mmwlan.h:1407
uint16_t dst_port
Destination UDP Port for the standby status packets, also used the source port for outgoing UDP port ...
Definition: mmwlan.h:1418
uint32_t src_ip
Source IP address to use for the standby status packets.
Definition: mmwlan.h:1411
uint32_t bss_inactivity_before_snooze_s
The interval in seconds to wait after beacon loss before entering snooze.
Definition: mmwlan.h:1423
uint32_t snooze_period_s
The interval in seconds to wake periodically from snooze and check for beacons.
Definition: mmwlan.h:1429
uint32_t snooze_increment_s
The amount in seconds to increase successive snooze intervals.
Definition: mmwlan.h:1435
uint32_t dst_ip
Destination IP address for the standby status packets.
Definition: mmwlan.h:1413
uint32_t snooze_max_s
The maximum time in seconds to snooze for after increments.
Definition: mmwlan.h:1437
uint32_t notify_period_s
Interval in seconds for transmitting Standby status packets.
Definition: mmwlan.h:1409
Arguments for mmwlan_standby_enter
Definition: mmwlan.h:1293
mmwlan_standby_exit_cb_t standby_exit_cb
Callback function to call when we exit standby mode.
Definition: mmwlan.h:1295
void * standby_exit_arg
Arguments to pass to callback function.
Definition: mmwlan.h:1297
Arguments for mmwlan_standby_set_status_payload
Definition: mmwlan.h:1331
uint8_t payload[MMWLAN_STANDBY_STATUS_FRAME_USER_PAYLOAD_MAXLEN]
User data to append to the standby status packets.
Definition: mmwlan.h:1333
uint32_t payload_len
The length of the payload in bytes.
Definition: mmwlan.h:1338
Arguments for mmwlan_standby_set_wake_filter
Definition: mmwlan.h:1365
uint8_t filter[MMWLAN_STANDBY_WAKE_FRAME_USER_FILTER_MAXLEN]
Data to match with for filtering.
Definition: mmwlan.h:1367
uint32_t offset
The offset within the packet to search for the filter match.
Definition: mmwlan.h:1374
uint32_t filter_len
The length of the filter data in bytes.
Definition: mmwlan.h:1372
Arguments data structure for TCP keep-alive arguments.
Definition: mmwlan.h:1101
uint16_t src_port
The source port for the keep alive packet.
Definition: mmwlan.h:1127
uint16_t period_s
The interval in seconds to send the keep alive in.
Definition: mmwlan.h:1111
uint32_t src_ip
The source IP for the keep alive packet.
Definition: mmwlan.h:1123
uint8_t retry_interval_s
The time to wait between retries in seconds.
Definition: mmwlan.h:1119
uint8_t set_cfgs
A bitmap specifying which configs to set.
Definition: mmwlan.h:1106
uint8_t retry_count
Number of times to retry before giving up.
Definition: mmwlan.h:1115
uint32_t dest_ip
The destination IP for the keep alive packet.
Definition: mmwlan.h:1131
uint16_t dest_port
The destination port for the keep alive packet.
Definition: mmwlan.h:1135
Structure for storing Target Wake Time (TWT) configuration arguments.
Definition: mmwlan.h:527
enum mmwlan_twt_setup_command twt_setup_command
TWT setup command, mmwlan_twt_setup_command.
Definition: mmwlan.h:549
uint64_t twt_wake_interval_us
TWT service period interval in micro seconds.
Definition: mmwlan.h:535
uint32_t twt_min_wake_duration_us
Minimum TWT wake duration in micro seconds.
Definition: mmwlan.h:547
uint8_t twt_wake_interval_exponent
TWT Wake interval exponent If non-zero, this parameter will be used to calculate twt_wake_interval_us...
Definition: mmwlan.h:545
uint16_t twt_wake_interval_mantissa
TWT Wake interval mantissa If non-zero, this parameter will be used to calculate twt_wake_interval_us...
Definition: mmwlan.h:540
enum mmwlan_twt_mode twt_mode
Target Wake Time (TWT) modes, mmwlan_twt_mode.
Definition: mmwlan.h:529
Metadata for TX packets.
Definition: mmwlan.h:1871
uint8_t tid
Traffic ID (TID) to use.
Definition: mmwlan.h:1876
Structure for retrieving version information from the mmwlan subsystem.
Definition: mmwlan.h:313
char morselib_version[MMWLAN_MORSELIB_VERSION_MAXLEN]
Morselib version string.
Definition: mmwlan.h:315
char morse_fw_version[MMWLAN_FW_VERSION_MAXLEN]
Morse transceiver firmware version string.
Definition: mmwlan.h:317
uint32_t morse_chip_id
Morse transceiver chip ID.
Definition: mmwlan.h:319