Morse Micro IoT SDK  2.10.4
Morse Micro Wireless LAN (mmwlan) API

Detailed Description

Wireless LAN control and datapath.

Warning
Aside from specific exceptions, the functions in this API must not be called concurrently (e.g., from different thread contexts). The exception to this is the TX API (mmwlan_tx(), mmwlan_tx_tid(), and mmwlan_tx_pkt()).

Thread priorities

The following table documents the threads created by the Morse WLAN driver and Upper MAC included in morselib.

Thread Thread Name Priority
SPI driver spi_irq MMOSAL_TASK_PRI_HIGH
Morse driver drv MMOSAL_TASK_PRI_HIGH
WLAN event loop evtloop MMOSAL_TASK_PRI_HIGH
Morse health check health MMOSAL_TASK_PRI_LOW

Note that to get the best performance, the WLAN driver/UMAC threads run at a high priority while it is expected that application threads run at a lower priority.

Modules

 WLAN Regulatory Database API
 API for configuration of the regulatory domain.
 
 WLAN General Control API
 API for general control and configuration that is not linked to a specific operational mode.
 
 WLAN Control API for Scan
 API for performing WLAN Scan operations.
 
 WLAN Control API for Station (STA) mode
 API for configuration and control of Station (STA) mode.
 
 WLAN Control API for Device Provisioning Protocol (DPP)
 API for executing Device Provisioning Protocol (DPP), also known as Wi-Fi Easy Connect.
 
 WLAN Control API for Access Point (AP) mode
 API for configuration and control of Access Point (AP) mode.
 
 WLAN Beacon Vendor Specific IE Filter API
 API for accessing Vendor Specific information elements (IEs) in beacons.
 
 WLAN Initialization/Deinitialization API
 
 WLAN Datapath API
 Datapath API that is typically hooked up to the network stack.
 
 WLAN Statistics API
 API for retrieving statistics information from the WLAN subsystem.
 
 WLAN Test (ATE) API
 Extended API particularly intended for test use cases.
 

Macros

#define MMWLAN_SSID_MAXLEN   (32)
 Maximum allowable length of an SSID. More...
 
#define MMWLAN_PASSPHRASE_MAXLEN   (100)
 Maximum allowable length of a passphrase when connecting to an AP. More...
 
#define MMWLAN_MAC_ADDR_LEN   (6)
 Length of a WLAN MAC address. More...
 
#define MMWLAN_MAX_EC_GROUPS   (4)
 Maximum allowable number of EC Groups. More...
 
#define MMWLAN_OUI_SIZE   (3)
 Size of an 802.11 OUI element in octets. More...
 

Enumerations

enum  mmwlan_status {
  MMWLAN_SUCCESS , MMWLAN_ERROR , MMWLAN_INVALID_ARGUMENT , MMWLAN_UNAVAILABLE ,
  MMWLAN_CHANNEL_LIST_NOT_SET , MMWLAN_NO_MEM , MMWLAN_TIMED_OUT , MMWLAN_SHUTDOWN_BLOCKED ,
  MMWLAN_CHANNEL_INVALID , MMWLAN_NOT_FOUND , MMWLAN_NOT_RUNNING , MMWLAN_NOT_INITIALIZED ,
  MMWLAN_VIF_ERROR
}
 Enumeration of status return codes. More...
 
enum  mmwlan_vif { MMWLAN_VIF_UNSPECIFIED = 0 , MMWLAN_VIF_STA = 1 , MMWLAN_VIF_AP = 2 }
 Enumeration of Virtual Interfaces supported by the MMWLAN API. More...
 
enum  mmwlan_security_type { MMWLAN_OPEN , MMWLAN_OWE , MMWLAN_SAE }
 Enumeration of supported security types. More...
 
enum  mmwlan_pmf_mode { MMWLAN_PMF_REQUIRED , MMWLAN_PMF_DISABLED }
 Enumeration of Protected Management Frame (PMF) modes (802.11w). More...
 

Macro Definition Documentation

◆ MMWLAN_MAC_ADDR_LEN

#define MMWLAN_MAC_ADDR_LEN   (6)

Length of a WLAN MAC address.

Definition at line 92 of file mmwlan.h.

◆ MMWLAN_MAX_EC_GROUPS

#define MMWLAN_MAX_EC_GROUPS   (4)

Maximum allowable number of EC Groups.

Definition at line 95 of file mmwlan.h.

◆ MMWLAN_OUI_SIZE

#define MMWLAN_OUI_SIZE   (3)

Size of an 802.11 OUI element in octets.

Definition at line 98 of file mmwlan.h.

◆ MMWLAN_PASSPHRASE_MAXLEN

#define MMWLAN_PASSPHRASE_MAXLEN   (100)

Maximum allowable length of a passphrase when connecting to an AP.

Definition at line 89 of file mmwlan.h.

◆ MMWLAN_SSID_MAXLEN

#define MMWLAN_SSID_MAXLEN   (32)

Maximum allowable length of an SSID.

Definition at line 86 of file mmwlan.h.

Enumeration Type Documentation

◆ mmwlan_pmf_mode

Enumeration of Protected Management Frame (PMF) modes (802.11w).

Enumerator
MMWLAN_PMF_REQUIRED 

Protected management frames must be used.

MMWLAN_PMF_DISABLED 

No protected management frames.

Definition at line 125 of file mmwlan.h.

◆ mmwlan_security_type

Enumeration of supported security types.

Enumerator
MMWLAN_OPEN 

Open (no security)

MMWLAN_OWE 

Opportunistic Wireless Encryption (OWE)

MMWLAN_SAE 

Simultaneous Authentication of Equals (SAE)

Definition at line 114 of file mmwlan.h.

◆ mmwlan_status

Enumeration of status return codes.

Enumerator
MMWLAN_SUCCESS 

The operation was successful.

MMWLAN_ERROR 

The operation failed with an unspecified error.

MMWLAN_INVALID_ARGUMENT 

The operation failed due to an invalid argument.

MMWLAN_UNAVAILABLE 

Functionality is temporarily unavailable.

MMWLAN_CHANNEL_LIST_NOT_SET 

Unable to proceed because channel list has not been set.

See also
mmwlan_set_channel_list().
MMWLAN_NO_MEM 

Failed due to memory allocation failure.

MMWLAN_TIMED_OUT 

Failed due to timeout.

MMWLAN_SHUTDOWN_BLOCKED 

Used to indicate that a call to mmwlan_sta_disable() did not shutdown the transceiver.

MMWLAN_CHANNEL_INVALID 

Attempted to tune to a channel that was not in the regulatory database or not supported.

MMWLAN_NOT_FOUND 

The request could not be completed because the given resource was not found.

MMWLAN_NOT_RUNNING 

Indicates that the operation failed because the UMAC was not running (e.g., the device was not booted).


MMWLAN_NOT_INITIALIZED 

Indicates that the operation failed because MMWLAN has not been initialized, see mmwlan_init()

MMWLAN_VIF_ERROR 

Indicates that the specified VIF is not active or that no VIF was specified and a VIF could not be automatically inferred.

Definition at line 50 of file mmwlan.h.

◆ mmwlan_vif

enum mmwlan_vif

Enumeration of Virtual Interfaces supported by the MMWLAN API.

Enumerator
MMWLAN_VIF_UNSPECIFIED 

VIF is unspecified.

The use of this value depends on the context in which it is used.

MMWLAN_VIF_STA 

STA VIF.

MMWLAN_VIF_AP 

AP VIF.

Definition at line 103 of file mmwlan.h.