diff options
Diffstat (limited to 'MdePkg/Include/Protocol/WiFi.h')
-rw-r--r-- | MdePkg/Include/Protocol/WiFi.h | 1144 |
1 files changed, 0 insertions, 1144 deletions
diff --git a/MdePkg/Include/Protocol/WiFi.h b/MdePkg/Include/Protocol/WiFi.h deleted file mode 100644 index 8e9fb3835d..0000000000 --- a/MdePkg/Include/Protocol/WiFi.h +++ /dev/null @@ -1,1144 +0,0 @@ -/** @file
- This file provides management service interfaces of 802.11 MAC layer. It is used by
- network applications (and drivers) to establish wireless connection with an access
- point (AP).
-
- Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
- This program and the accompanying materials
- are licensed and made available under the terms and conditions of the BSD License
- which accompanies this distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
- @par Revision Reference:
- This Protocol is introduced in UEFI Specification 2.5
-
-**/
-
-#ifndef __EFI_WIFI_PROTOCOL_H__
-#define __EFI_WIFI_PROTOCOL_H__
-
-#define EFI_WIRELESS_MAC_CONNECTION_PROTOCOL_GUID \
- { \
- 0xda55bc9, 0x45f8, 0x4bb4, {0x87, 0x19, 0x52, 0x24, 0xf1, 0x8a, 0x4d, 0x45 } \
- }
-
-typedef struct _EFI_WIRELESS_MAC_CONNECTION_PROTOCOL EFI_WIRELESS_MAC_CONNECTION_PROTOCOL;
-
-///
-/// EFI_80211_BSS_TYPE
-///
-typedef enum {
- IeeeInfrastructureBSS,
- IeeeIndependentBSS,
- IeeeMeshBSS,
- IeeeAnyBss
-} EFI_80211_BSS_TYPE;
-
-///
-/// EFI_80211_ACC_NET_TYPE
-///
-typedef enum {
- IeeePrivate = 0,
- IeeePrivatewithGuest = 1,
- IeeeChargeablePublic = 2,
- IeeeFreePublic = 3,
- IeeePersonal = 4,
- IeeeEmergencyServOnly = 5,
- IeeeTestOrExp = 14,
- IeeeWildcard = 15
-} EFI_80211_ACC_NET_TYPE;
-
-///
-/// EFI_80211_ASSOCIATE_RESULT_CODE
-///
-typedef enum {
- AssociateSuccess,
- AssociateRefusedReasonUnspecified,
- AssociateRefusedCapsMismatch,
- AssociateRefusedExtReason,
- AssociateRefusedAPOutOfMemory,
- AssociateRefusedBasicRatesMismatch,
- AssociateRejectedEmergencyServicesNotSupported,
- AssociateRefusedTemporarily
-} EFI_80211_ASSOCIATE_RESULT_CODE;
-
-///
-/// EFI_80211_SCAN_RESULT_CODE
-///
-typedef enum {
- ///
- /// The scan operation finished successfully.
- ///
- ScanSuccess,
- ///
- /// The scan operation is not supported in current implementation.
- ///
- ScanNotSupported
-} EFI_80211_SCAN_RESULT_CODE;
-
-///
-/// EFI_80211_REASON_CODE
-///
-typedef enum {
- Ieee80211UnspecifiedReason = 1,
- Ieee80211PreviousAuthenticateInvalid = 2,
- Ieee80211DeauthenticatedSinceLeaving = 3,
- Ieee80211DisassociatedDueToInactive = 4,
- Ieee80211DisassociatedSinceApUnable = 5,
- Ieee80211Class2FrameNonauthenticated = 6,
- Ieee80211Class3FrameNonassociated = 7,
- Ieee80211DisassociatedSinceLeaving = 8,
- // ...
-} EFI_80211_REASON_CODE;
-
-///
-/// EFI_80211_DISASSOCIATE_RESULT_CODE
-///
-typedef enum {
- ///
- /// Disassociation process completed successfully.
- ///
- DisassociateSuccess,
- ///
- /// Disassociation failed due to any input parameter is invalid.
- ///
- DisassociateInvalidParameters
-} EFI_80211_DISASSOCIATE_RESULT_CODE;
-
-///
-/// EFI_80211_AUTHENTICATION_TYPE
-///
-typedef enum {
- ///
- /// Open system authentication, admits any STA to the DS.
- ///
- OpenSystem,
- ///
- /// Shared Key authentication relies on WEP to demonstrate knowledge of a WEP
- /// encryption key.
- ///
- SharedKey,
- ///
- /// FT authentication relies on keys derived during the initial mobility domain
- /// association to authenticate the stations.
- ///
- FastBSSTransition,
- ///
- /// SAE authentication uses finite field cryptography to prove knowledge of a shared
- /// password.
- ///
- SAE
-} EFI_80211_AUTHENTICATION_TYPE;
-
-///
-/// EFI_80211_AUTHENTICATION_RESULT_CODE
-///
-typedef enum {
- AuthenticateSuccess,
- AuthenticateRefused,
- AuthenticateAnticLoggingTokenRequired,
- AuthenticateFiniteCyclicGroupNotSupported,
- AuthenticationRejected,
- AuthenticateInvalidParameter
-} EFI_80211_AUTHENTICATE_RESULT_CODE;
-
-///
-/// EFI_80211_MAC_ADDRESS
-///
-typedef struct {
- UINT8 Addr[6];
-} EFI_80211_MAC_ADDRESS;
-
-///
-/// EFI_80211_ELEMENT_HEADER
-///
-typedef struct {
- ///
- /// A unique element ID defined in IEEE 802.11 specification.
- ///
- UINT8 ElementID;
- ///
- /// Specifies the number of octets in the element body.
- ///
- UINT8 Length;
-} EFI_80211_ELEMENT_HEADER;
-
-///
-/// EFI_80211_ELEMENT_REQ
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Start of elements that are requested to be included in the Probe Response frame.
- /// The elements are listed in order of increasing element ID.
- ///
- UINT8 RequestIDs[1];
-} EFI_80211_ELEMENT_REQ;
-
-///
-/// EFI_80211_ELEMENT_SSID
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Service set identifier. If Hdr.Length is zero, this field is ignored.
- ///
- UINT8 SSId[32];
-} EFI_80211_ELEMENT_SSID;
-
-///
-/// EFI_80211_SCAN_DATA
-///
-typedef struct {
- ///
- /// Determines whether infrastructure BSS, IBSS, MBSS, or all, are included in the
- /// scan.
- ///
- EFI_80211_BSS_TYPE BSSType;
- ///
- /// Indicates a specific or wildcard BSSID. Use all binary 1s to represent all SSIDs.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Length in bytes of the SSId. If zero, ignore SSId field.
- ///
- UINT8 SSIdLen;
- ///
- /// Specifies the desired SSID or the wildcard SSID. Use NULL to represent all SSIDs.
- ///
- UINT8 *SSId;
- ///
- /// Indicates passive scanning if TRUE.
- ///
- BOOLEAN PassiveMode;
- ///
- /// The delay in microseconds to be used prior to transmitting a Probe frame during
- /// active scanning. If zero, the value can be overridden by an
- /// implementation-dependent default value.
- ///
- UINT32 ProbeDelay;
- ///
- /// Specifies a list of channels that are examined when scanning for a BSS. If set to
- /// NULL, all valid channels will be scanned.
- ///
- UINT32 *ChannelList;
- ///
- /// Indicates the minimum time in TU to spend on each channel when scanning. If zero,
- /// the value can be overridden by an implementation-dependent default value.
- ///
- UINT32 MinChannelTime;
- ///
- /// Indicates the maximum time in TU to spend on each channel when scanning. If zero,
- /// the value can be overridden by an implementation-dependent default value.
- ///
- UINT32 MaxChannelTime;
- ///
- /// Points to an optionally present element. This is an optional parameter and may be
- /// NULL.
- ///
- EFI_80211_ELEMENT_REQ *RequestInformation;
- ///
- /// Indicates one or more SSID elements that are optionally present. This is an
- /// optional parameter and may be NULL.
- ///
- EFI_80211_ELEMENT_SSID *SSIDList;
- ///
- /// Specifies a desired specific access network type or the wildcard access network
- /// type. Use 15 as wildcard access network type.
- ///
- EFI_80211_ACC_NET_TYPE AccessNetworkType;
- ///
- /// Specifies zero or more elements. This is an optional parameter and may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_SCAN_DATA;
-
-///
-/// EFI_80211_COUNTRY_TRIPLET_SUBBAND
-///
-typedef struct {
- ///
- /// Indicates the lowest channel number in the subband. It has a positive integer
- /// value less than 201.
- ///
- UINT8 FirstChannelNum;
- ///
- /// Indicates the number of channels in the subband.
- ///
- UINT8 NumOfChannels;
- ///
- /// Indicates the maximum power in dBm allowed to be transmitted.
- ///
- UINT8 MaxTxPowerLevel;
-} EFI_80211_COUNTRY_TRIPLET_SUBBAND;
-
-///
-/// EFI_80211_COUNTRY_TRIPLET_OPERATE
-///
-typedef struct {
- ///
- /// Indicates the operating extension identifier. It has a positive integer value of
- /// 201 or greater.
- ///
- UINT8 OperatingExtId;
- ///
- /// Index into a set of values for radio equipment set of rules.
- ///
- UINT8 OperatingClass;
- ///
- /// Specifies aAirPropagationTime characteristics used in BSS operation. Refer the
- /// definition of aAirPropagationTime in IEEE 802.11 specification.
- ///
- UINT8 CoverageClass;
-} EFI_80211_COUNTRY_TRIPLET_OPERATE;
-
-///
-/// EFI_80211_COUNTRY_TRIPLET
-///
-typedef union {
- ///
- /// The subband triplet.
- ///
- EFI_80211_COUNTRY_TRIPLET_SUBBAND Subband;
- ///
- /// The operating triplet.
- ///
- EFI_80211_COUNTRY_TRIPLET_OPERATE Operating;
-} EFI_80211_COUNTRY_TRIPLET;
-
-///
-/// EFI_80211_ELEMENT_COUNTRY
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Specifies country strings in 3 octets.
- ///
- UINT8 CountryStr[3];
- ///
- /// Indicates a triplet that repeated in country element. The number of triplets is
- /// determined by the Hdr.Length field.
- ///
- EFI_80211_COUNTRY_TRIPLET CountryTriplet[1];
-} EFI_80211_ELEMENT_COUNTRY;
-
-///
-/// EFI_80211_ELEMENT_DATA_RSN
-///
-typedef struct {
- ///
- /// Indicates the version number of the RSNA protocol. Value 1 is defined in current
- /// IEEE 802.11 specification.
- ///
- UINT16 Version;
- ///
- /// Specifies the cipher suite selector used by the BSS to protect group address frames.
- ///
- UINT32 GroupDataCipherSuite;
- ///
- /// Indicates the number of pairwise cipher suite selectors that are contained in
- /// PairwiseCipherSuiteList.
- ///
-//UINT16 PairwiseCipherSuiteCount;
- ///
- /// Contains a series of cipher suite selectors that indicate the pairwise cipher
- /// suites contained in this element.
- ///
-//UINT32 PairwiseCipherSuiteList[PairwiseCipherSuiteCount];
- ///
- /// Indicates the number of AKM suite selectors that are contained in AKMSuiteList.
- ///
-//UINT16 AKMSuiteCount;
- ///
- /// Contains a series of AKM suite selectors that indicate the AKM suites contained in
- /// this element.
- ///
-//UINT32 AKMSuiteList[AKMSuiteCount];
- ///
- /// Indicates requested or advertised capabilities.
- ///
-//UINT16 RSNCapabilities;
- ///
- /// Indicates the number of PKMIDs in the PMKIDList.
- ///
-//UINT16 PMKIDCount;
- ///
- /// Contains zero or more PKMIDs that the STA believes to be valid for the destination
- /// AP.
-//UINT8 PMKIDList[PMKIDCount][16];
- ///
- /// Specifies the cipher suite selector used by the BSS to protect group addressed
- /// robust management frames.
- ///
-//UINT32 GroupManagementCipherSuite;
-} EFI_80211_ELEMENT_DATA_RSN;
-
-///
-/// EFI_80211_ELEMENT_RSN
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Points to RSN element. The size of a RSN element is limited to 255 octets.
- ///
- EFI_80211_ELEMENT_DATA_RSN *Data;
-} EFI_80211_ELEMENT_RSN;
-
-///
-/// EFI_80211_ELEMENT_EXT_CAP
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Indicates the capabilities being advertised by the STA transmitting the element.
- /// This is a bit field with variable length. Refer to IEEE 802.11 specification for
- /// bit value.
- ///
- UINT8 Capabilities[1];
-} EFI_80211_ELEMENT_EXT_CAP;
-
-///
-/// EFI_80211_BSS_DESCRIPTION
-///
-typedef struct {
- ///
- /// Indicates a specific BSSID of the found BSS.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the SSID of the found BSS. If NULL, ignore SSIdLen field.
- ///
- UINT8 *SSId;
- ///
- /// Specifies the SSID of the found BSS. If NULL, ignore SSIdLen field.
- ///
- UINT8 SSIdLen;
- ///
- /// Specifies the type of the found BSS.
- ///
- EFI_80211_BSS_TYPE BSSType;
- ///
- /// The beacon period in TU of the found BSS.
- ///
- UINT16 BeaconPeriod;
- ///
- /// The timestamp of the received frame from the found BSS.
- ///
- UINT64 Timestamp;
- ///
- /// The advertised capabilities of the BSS.
- ///
- UINT16 CapabilityInfo;
- ///
- /// The set of data rates that shall be supported by all STAs that desire to join this
- /// BSS.
- ///
- UINT8 *BSSBasicRateSet;
- ///
- /// The set of data rates that the peer STA desires to use for communication within
- /// the BSS.
- ///
- UINT8 *OperationalRateSet;
- ///
- /// The information required to identify the regulatory domain in which the peer STA
- /// is located.
- ///
- EFI_80211_ELEMENT_COUNTRY *Country;
- ///
- /// The cipher suites and AKM suites supported in the BSS.
- ///
- EFI_80211_ELEMENT_RSN RSN;
- ///
- /// Specifies the RSSI of the received frame.
- ///
- UINT8 RSSI;
- ///
- /// Specifies the RCPI of the received frame.
- ///
- UINT8 RCPIMeasurement;
- ///
- /// Specifies the RSNI of the received frame.
- ///
- UINT8 RSNIMeasurement;
- ///
- /// Specifies the elements requested by the request element of the Probe Request frame.
- /// This is an optional parameter and may be NULL.
- ///
- UINT8 *RequestedElements;
- ///
- /// Specifies the BSS membership selectors that represent the set of features that
- /// shall be supported by all STAs to join this BSS.
- ///
- UINT8 *BSSMembershipSelectorSet;
- ///
- /// Specifies the parameters within the Extended Capabilities element that are
- /// supported by the MAC entity. This is an optional parameter and may be NULL.
- ///
- EFI_80211_ELEMENT_EXT_CAP *ExtCapElement;
-} EFI_80211_BSS_DESCRIPTION;
-
-///
-/// EFI_80211_SUBELEMENT_INFO
-///
-typedef struct {
- ///
- /// Indicates the unique identifier within the containing element or sub-element.
- ///
- UINT8 SubElementID;
- ///
- /// Specifies the number of octets in the Data field.
- ///
- UINT8 Length;
- ///
- /// A variable length data buffer.
- ///
- UINT8 Data[1];
-} EFI_80211_SUBELEMENT_INFO;
-
-///
-/// EFI_80211_MULTIPLE_BSSID
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Indicates the maximum number of BSSIDs in the multiple BSSID set. When Indicator
- /// is set to n, 2n is the maximum number.
- ///
- UINT8 Indicator;
- ///
- /// Contains zero or more sub-elements.
- ///
- EFI_80211_SUBELEMENT_INFO SubElement[1];
-} EFI_80211_MULTIPLE_BSSID;
-
-///
-/// EFI_80211_BSS_DESP_PILOT
-///
-typedef struct {
- ///
- /// Indicates a specific BSSID of the found BSS.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the type of the found BSS.
- ///
- EFI_80211_BSS_TYPE BSSType;
- ///
- /// One octet field to report condensed capability information.
- ///
- UINT8 ConCapInfo;
- ///
- /// Two octet's field to report condensed country string.
- ///
- UINT8 ConCountryStr[2];
- ///
- /// Indicates the operating class value for the operating channel.
- ///
- UINT8 OperatingClass;
- ///
- /// Indicates the operating channel.
- ///
- UINT8 Channel;
- ///
- /// Indicates the measurement pilot interval in TU.
- ///
- UINT8 Interval;
- ///
- /// Indicates that the BSS is within a multiple BSSID set.
- ///
- EFI_80211_MULTIPLE_BSSID *MultipleBSSID;
- ///
- /// Specifies the RCPI of the received frame.
- ///
- UINT8 RCPIMeasurement;
- ///
- /// Specifies the RSNI of the received frame.
- ///
- UINT8 RSNIMeasurement;
-} EFI_80211_BSS_DESP_PILOT;
-
-///
-/// EFI_80211_SCAN_RESULT
-///
-typedef struct {
- ///
- /// The number of EFI_80211_BSS_DESCRIPTION in BSSDespSet. If zero, BSSDespSet should
- /// be ignored.
- ///
- UINTN NumOfBSSDesp;
- ///
- /// Points to zero or more instances of EFI_80211_BSS_DESCRIPTION.
- ///
- EFI_80211_BSS_DESCRIPTION **BSSDespSet;
- ///
- /// The number of EFI_80211_BSS_DESP_PILOT in BSSDespFromPilotSet. If zero,
- /// BSSDespFromPilotSet should be ignored.
- ///
- UINTN NumofBSSDespFromPilot;
- ///
- /// Points to zero or more instances of EFI_80211_BSS_DESP_PILOT.
- ///
- EFI_80211_BSS_DESP_PILOT **BSSDespFromPilotSet;
- ///
- /// Specifies zero or more elements. This is an optional parameter and may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_SCAN_RESULT;
-
-///
-/// EFI_80211_SCAN_DATA_TOKEN
-///
-typedef struct {
- ///
- /// This Event will be signaled after the Status field is updated by the EFI Wireless
- /// MAC Connection Protocol driver. The type of Event must be EFI_NOTIFY_SIGNAL.
- ///
- EFI_EVENT Event;
- ///
- /// Will be set to one of the following values:
- /// EFI_SUCCESS: Scan operation completed successfully.
- /// EFI_NOT_FOUND: Failed to find available BSS.
- /// EFI_DEVICE_ERROR: An unexpected network or system error occurred.
- /// EFI_ACCESS_DENIED: The scan operation is not completed due to some underlying
- /// hardware or software state.
- /// EFI_NOT_READY: The scan operation is started but not yet completed.
- EFI_STATUS Status;
- ///
- /// Pointer to the scan data.
- ///
- EFI_80211_SCAN_DATA *Data;
- ///
- /// Indicates the scan state.
- ///
- EFI_80211_SCAN_RESULT_CODE ResultCode;
- ///
- /// Indicates the scan result. It is caller's responsibility to free this buffer.
- ///
- EFI_80211_SCAN_RESULT *Result;
-} EFI_80211_SCAN_DATA_TOKEN;
-
-///
-/// EFI_80211_ELEMENT_SUPP_CHANNEL_TUPLE
-///
-typedef struct {
- ///
- /// The first channel number in a subband of supported channels.
- ///
- UINT8 FirstChannelNumber;
- ///
- /// The number of channels in a subband of supported channels.
- ///
- UINT8 NumberOfChannels;
-} EFI_80211_ELEMENT_SUPP_CHANNEL_TUPLE;
-
-///
-/// EFI_80211_ELEMENT_SUPP_CHANNEL
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Indicates one or more tuples of (first channel, number of channels).
- ///
- EFI_80211_ELEMENT_SUPP_CHANNEL_TUPLE Subband[1];
-} EFI_80211_ELEMENT_SUPP_CHANNEL;
-
-///
-/// EFI_80211_ASSOCIATE_DATA
-///
-typedef struct {
- ///
- /// Specifies the address of the peer MAC entity to associate with.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the requested operational capabilities to the AP in 2 octets.
- ///
- UINT16 CapabilityInfo;
- ///
- /// Specifies a time limit in TU, after which the associate procedure is terminated.
- ///
- UINT32 FailureTimeout;
- ///
- /// Specifies if in power save mode, how often the STA awakes and listens for the next
- /// beacon frame in TU.
- ///
- UINT32 ListenInterval;
- ///
- /// Indicates a list of channels in which the STA is capable of operating.
- ///
- EFI_80211_ELEMENT_SUPP_CHANNEL *Channels;
- ///
- /// The cipher suites and AKM suites selected by the STA.
- ///
- EFI_80211_ELEMENT_RSN RSN;
- ///
- /// Specifies the parameters within the Extended Capabilities element that are
- /// supported by the MAC entity. This is an optional parameter and may be NULL.
- ///
- EFI_80211_ELEMENT_EXT_CAP *ExtCapElement;
- ///
- /// Specifies zero or more elements. This is an optional parameter and may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_ASSOCIATE_DATA;
-
-///
-/// EFI_80211_ELEMENT_TIMEOUT_VAL
-///
-typedef struct {
- ///
- /// Common header of an element.
- ///
- EFI_80211_ELEMENT_HEADER Hdr;
- ///
- /// Specifies the timeout interval type.
- ///
- UINT8 Type;
- ///
- /// Specifies the timeout interval value.
- ///
- UINT32 Value;
-} EFI_80211_ELEMENT_TIMEOUT_VAL;
-
-///
-/// EFI_80211_ASSOCIATE_RESULT
-///
-typedef struct {
- ///
- /// Specifies the address of the peer MAC entity from which the association request
- /// was received.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the operational capabilities advertised by the AP.
- ///
- UINT16 CapabilityInfo;
- ///
- /// Specifies the association ID value assigned by the AP.
- ///
- UINT16 AssociationID;
- ///
- /// Indicates the measured RCPI of the corresponding association request frame. It is
- /// an optional parameter and is set to zero if unavailable.
- ///
- UINT8 RCPIValue;
- ///
- /// Indicates the measured RSNI at the time the corresponding association request
- /// frame was received. It is an optional parameter and is set to zero if unavailable.
- ///
- UINT8 RSNIValue;
- ///
- /// Specifies the parameters within the Extended Capabilities element that are
- /// supported by the MAC entity. This is an optional parameter and may be NULL.
- ///
- EFI_80211_ELEMENT_EXT_CAP *ExtCapElement;
- ///
- /// Specifies the timeout interval when the result code is AssociateRefusedTemporarily.
- ///
- EFI_80211_ELEMENT_TIMEOUT_VAL TimeoutInterval;
- ///
- /// Specifies zero or more elements. This is an optional parameter and may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_ASSOCIATE_RESULT;
-
-///
-/// EFI_80211_ASSOCIATE_DATA_TOKEN
-///
-typedef struct {
- ///
- /// This Event will be signaled after the Status field is updated by the EFI Wireless
- /// MAC Connection Protocol driver. The type of Event must be EFI_NOTIFY_SIGNAL.
- ///
- EFI_EVENT Event;
- ///
- /// Will be set to one of the following values:
- /// EFI_SUCCESS: Association operation completed successfully.
- /// EFI_DEVICE_ERROR: An unexpected network or system error occurred.
- ///
- EFI_STATUS Status;
- ///
- /// Pointer to the association data.
- ///
- EFI_80211_ASSOCIATE_DATA *Data;
- ///
- /// Indicates the association state.
- ///
- EFI_80211_ASSOCIATE_RESULT_CODE ResultCode;
- ///
- /// Indicates the association result. It is caller's responsibility to free this
- /// buffer.
- ///
- EFI_80211_ASSOCIATE_RESULT *Result;
-} EFI_80211_ASSOCIATE_DATA_TOKEN;
-
-///
-/// EFI_80211_DISASSOCIATE_DATA
-///
-typedef struct {
- ///
- /// Specifies the address of the peer MAC entity with which to perform the
- /// disassociation process.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the reason for initiating the disassociation process.
- ///
- EFI_80211_REASON_CODE ReasonCode;
- ///
- /// Zero or more elements, may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_DISASSOCIATE_DATA;
-
-///
-/// EFI_80211_DISASSOCIATE_DATA_TOKEN
-///
-typedef struct {
- ///
- /// This Event will be signaled after the Status field is updated by the EFI Wireless
- /// MAC Connection Protocol driver. The type of Event must be EFI_NOTIFY_SIGNAL.
- ///
- EFI_EVENT Event;
- ///
- /// Will be set to one of the following values:
- /// EFI_SUCCESS: Disassociation operation completed successfully.
- /// EFI_DEVICE_ERROR: An unexpected network or system error occurred.
- /// EFI_ACCESS_DENIED: The disassociation operation is not completed due to some
- /// underlying hardware or software state.
- /// EFI_NOT_READY: The disassociation operation is started but not yet completed.
- ///
- EFI_STATUS Status;
- ///
- /// Pointer to the disassociation data.
- ///
- EFI_80211_DISASSOCIATE_DATA *Data;
- ///
- /// Indicates the disassociation state.
- ///
- EFI_80211_DISASSOCIATE_RESULT_CODE ResultCode;
-} EFI_80211_DISASSOCIATE_DATA_TOKEN;
-
-///
-/// EFI_80211_AUTHENTICATION_DATA
-///
-typedef struct {
- ///
- /// Specifies the address of the peer MAC entity with which to perform the
- /// authentication process.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the type of authentication algorithm to use during the authentication
- /// process.
- ///
- EFI_80211_AUTHENTICATION_TYPE AuthType;
- ///
- /// Specifies a time limit in TU after which the authentication procedure is
- /// terminated.
- ///
- UINT32 FailureTimeout;
- ///
- /// Specifies the set of elements to be included in the first message of the FT
- /// authentication sequence, may be NULL.
- ///
- UINT8 *FTContent;
- ///
- /// Specifies the set of elements to be included in the SAE Commit Message or SAE
- /// Confirm Message, may be NULL.
- ///
- UINT8 *SAEContent;
- ///
- /// Zero or more elements, may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_AUTHENTICATE_DATA;
-
-///
-/// EFI_80211_AUTHENTICATION_RESULT
-///
-typedef struct {
- ///
- /// Specifies the address of the peer MAC entity from which the authentication request
- /// was received.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the set of elements to be included in the second message of the FT
- /// authentication sequence, may be NULL.
- ///
- UINT8 *FTContent;
- ///
- /// Specifies the set of elements to be included in the SAE Commit Message or SAE
- /// Confirm Message, may be NULL.
- ///
- UINT8 *SAEContent;
- ///
- /// Zero or more elements, may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_AUTHENTICATE_RESULT;
-
-///
-/// EFI_80211_AUTHENTICATE_DATA_TOKEN
-///
-typedef struct {
- ///
- /// This Event will be signaled after the Status field is updated by the EFI Wireless
- /// MAC Connection Protocol driver. The type of Event must be EFI_NOTIFY_SIGNAL.
- ///
- EFI_EVENT Event;
- ///
- /// Will be set to one of the following values:
- /// EFI_SUCCESS: Authentication operation completed successfully.
- /// EFI_PROTOCOL_ERROR: Peer MAC entity rejects the authentication.
- /// EFI_NO_RESPONSE: Peer MAC entity does not response the authentication request.
- /// EFI_DEVICE_ERROR: An unexpected network or system error occurred.
- /// EFI_ACCESS_DENIED: The authentication operation is not completed due to some
- /// underlying hardware or software state.
- /// EFI_NOT_READY: The authentication operation is started but not yet completed.
- ///
- EFI_STATUS Status;
- ///
- /// Pointer to the authentication data.
- ///
- EFI_80211_AUTHENTICATE_DATA *Data;
- ///
- /// Indicates the association state.
- ///
- EFI_80211_AUTHENTICATE_RESULT_CODE ResultCode;
- ///
- /// Indicates the association result. It is caller's responsibility to free this
- /// buffer.
- ///
- EFI_80211_AUTHENTICATE_RESULT *Result;
-} EFI_80211_AUTHENTICATE_DATA_TOKEN;
-
-///
-/// EFI_80211_DEAUTHENTICATE_DATA
-///
-typedef struct {
- ///
- /// Specifies the address of the peer MAC entity with which to perform the
- /// deauthentication process.
- ///
- EFI_80211_MAC_ADDRESS BSSId;
- ///
- /// Specifies the reason for initiating the deauthentication process.
- ///
- EFI_80211_REASON_CODE ReasonCode;
- ///
- /// Zero or more elements, may be NULL.
- ///
- UINT8 *VendorSpecificInfo;
-} EFI_80211_DEAUTHENTICATE_DATA;
-
-///
-/// EFI_80211_DEAUTHENTICATE_DATA_TOKEN
-///
-typedef struct {
- ///
- /// This Event will be signaled after the Status field is updated by the EFI Wireless
- /// MAC Connection Protocol driver. The type of Event must be EFI_NOTIFY_SIGNAL.
- ///
- EFI_EVENT Event;
- ///
- /// Will be set to one of the following values:
- /// EFI_SUCCESS: Deauthentication operation completed successfully.
- /// EFI_DEVICE_ERROR: An unexpected network or system error occurred.
- /// EFI_ACCESS_DENIED: The deauthentication operation is not completed due to some
- /// underlying hardware or software state.
- /// EFI_NOT_READY: The deauthentication operation is started but not yet
- /// completed.
- ///
- EFI_STATUS Status;
- ///
- /// Pointer to the deauthentication data.
- ///
- EFI_80211_DEAUTHENTICATE_DATA *Data;
-} EFI_80211_DEAUTHENTICATE_DATA_TOKEN;
-
-/**
- Request a survey of potential BSSs that administrator can later elect to try to join.
-
- The Scan() function returns the description of the set of BSSs detected by the scan
- process. Passive scan operation is performed by default.
-
- @param[in] This Pointer to the EFI_WIRELESS_MAC_CONNECTION_PROTOCOL
- instance.
- @param[in] Data Pointer to the scan token.
-
- @retval EFI_SUCCESS The operation completed successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- This is NULL.
- Data is NULL.
- Data->Data is NULL.
- @retval EFI_UNSUPPORTED One or more of the input parameters are not supported
- by this implementation.
- @retval EFI_ALREADY_STARTED The scan operation is already started.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_WIRELESS_MAC_CONNECTION_SCAN)(
- IN EFI_WIRELESS_MAC_CONNECTION_PROTOCOL *This,
- IN EFI_80211_SCAN_DATA_TOKEN *Data
- );
-
-/**
- Request an association with a specified peer MAC entity that is within an AP.
-
- The Associate() function provides the capability for MAC layer to become associated
- with an AP.
-
- @param[in] This Pointer to the EFI_WIRELESS_MAC_CONNECTION_PROTOCOL
- instance.
- @param[in] Data Pointer to the association token.
-
- @retval EFI_SUCCESS The operation completed successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- This is NULL.
- Data is NULL.
- Data->Data is NULL.
- @retval EFI_UNSUPPORTED One or more of the input parameters are not supported
- by this implementation.
- @retval EFI_ALREADY_STARTED The association process is already started.
- @retval EFI_NOT_READY Authentication is not performed before this association
- process.
- @retval EFI_NOT_FOUND The specified peer MAC entity is not found.
- @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_WIRELESS_MAC_CONNECTION_ASSOCIATE)(
- IN EFI_WIRELESS_MAC_CONNECTION_PROTOCOL *This,
- IN EFI_80211_ASSOCIATE_DATA_TOKEN *Data
- );
-
-/**
- Request a disassociation with a specified peer MAC entity.
-
- The Disassociate() function is invoked to terminate an existing association.
- Disassociation is a notification and cannot be refused by the receiving peer except
- when management frame protection is negotiated and the message integrity check fails.
-
- @param[in] This Pointer to the EFI_WIRELESS_MAC_CONNECTION_PROTOCOL
- instance.
- @param[in] Data Pointer to the disassociation token.
-
- @retval EFI_SUCCESS The operation completed successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- This is NULL.
- Data is NULL.
- @retval EFI_ALREADY_STARTED The disassociation process is already started.
- @retval EFI_NOT_READY The disassociation service is invoked to a
- nonexistent association relationship.
- @retval EFI_NOT_FOUND The specified peer MAC entity is not found.
- @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_WIRELESS_MAC_CONNECTION_DISASSOCIATE)(
- IN EFI_WIRELESS_MAC_CONNECTION_PROTOCOL *This,
- IN EFI_80211_DISASSOCIATE_DATA_TOKEN *Data
- );
-
-/**
- Request the process of establishing an authentication relationship with a peer MAC
- entity.
-
- The Authenticate() function requests authentication with a specified peer MAC entity.
- This service might be time-consuming thus is designed to be invoked independently of
- the association service.
-
- @param[in] This Pointer to the EFI_WIRELESS_MAC_CONNECTION_PROTOCOL
- instance.
- @param[in] Data Pointer to the authentication token.
-
- @retval EFI_SUCCESS The operation completed successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- This is NULL.
- Data is NULL.
- Data.Data is NULL.
- @retval EFI_UNSUPPORTED One or more of the input parameters are not supported
- by this implementation.
- @retval EFI_ALREADY_STARTED The authentication process is already started.
- @retval EFI_NOT_FOUND The specified peer MAC entity is not found.
- @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_WIRELESS_MAC_CONNECTION_AUTHENTICATE)(
- IN EFI_WIRELESS_MAC_CONNECTION_PROTOCOL *This,
- IN EFI_80211_AUTHENTICATE_DATA_TOKEN *Data
- );
-
-/**
- Invalidate the authentication relationship with a peer MAC entity.
-
- The Deauthenticate() function requests that the authentication relationship with a
- specified peer MAC entity be invalidated. Deauthentication is a notification and when
- it is sent out the association at the transmitting station is terminated.
-
- @param[in] This Pointer to the EFI_WIRELESS_MAC_CONNECTION_PROTOCOL
- instance.
- @param[in] Data Pointer to the deauthentication token.
-
- @retval EFI_SUCCESS The operation completed successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:
- This is NULL.
- Data is NULL.
- Data.Data is NULL.
- @retval EFI_ALREADY_STARTED The deauthentication process is already started.
- @retval EFI_NOT_READY The deauthentication service is invoked to a
- nonexistent association or authentication relationship.
- @retval EFI_NOT_FOUND The specified peer MAC entity is not found.
- @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_WIRELESS_MAC_CONNECTION_DEAUTHENTICATE)(
- IN EFI_WIRELESS_MAC_CONNECTION_PROTOCOL *This,
- IN EFI_80211_DEAUTHENTICATE_DATA_TOKEN *Data
- );
-
-///
-/// The EFI_WIRELESS_MAC_CONNECTION_PROTOCOL is designed to provide management service
-/// interfaces for the EFI wireless network stack to establish wireless connection with
-/// AP. An EFI Wireless MAC Connection Protocol instance will be installed on each
-/// communication device that the EFI wireless network stack runs on.
-///
-struct _EFI_WIRELESS_MAC_CONNECTION_PROTOCOL {
- EFI_WIRELESS_MAC_CONNECTION_SCAN Scan;
- EFI_WIRELESS_MAC_CONNECTION_ASSOCIATE Associate;
- EFI_WIRELESS_MAC_CONNECTION_DISASSOCIATE Disassociate;
- EFI_WIRELESS_MAC_CONNECTION_AUTHENTICATE Authenticate;
- EFI_WIRELESS_MAC_CONNECTION_DEAUTHENTICATE Deauthenticate;
-};
-
-extern EFI_GUID gEfiWiFiProtocolGuid;
-
-#endif
|