blob: 8fe44a8e9600dd4d6f5c8fd1e7d69d1b62726a17 [file] [log] [blame]
/*
* Copyright (c) 2013-2014 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
#if !defined(WLAN_HDD_MIB_h__)
#define WLAN_HDD_MIB_h__
#include <cdf_types.h>
typedef enum {
eMib_dot11DesiredBssType_infrastructure = 1,
eMib_dot11DesiredBssType_independent = 2,
eMib_dot11DesiredBssType_infra_ap = 3,
eMib_dot11DesiredBssType_any = 4
} eMib_dot11DesiredBssType;
/** This is the maximum number of BSSIDs supported in the
dot11DesiredBssidList. All the code operates off of
this maximum BSSID list count. */
#define MIB_DOT11_DESIRED_BSSID_LIST_MAX_COUNT 1
typedef struct {
uint32_t cEntries;
struct cdf_mac_addr BSSIDs[MIB_DOT11_DESIRED_BSSID_LIST_MAX_COUNT];
} sMib_dot11DesiredBssidList;
/** This is the maximum number of SSIDs supported in the
dot11DesiredSsidList. All the code operates off of
this maximum SSID list count. */
#define MIB_DOT11_DESIRED_SSID_LIST_MAX_COUNT 1
#define MIB_DOT11_SSID_MAX_LENGTH 32
typedef struct {
uint32_t ssidLength;
uint8_t ssid[MIB_DOT11_SSID_MAX_LENGTH];
} sDot11Ssid;
typedef struct {
uint32_t cEntries;
sDot11Ssid SSIDs[MIB_DOT11_DESIRED_SSID_LIST_MAX_COUNT];
} sMib_dot11DesiredSsidList;
typedef enum {
/* these are bitmasks.... */
eMib_dot11AutoConfigEnabled_None = 0U,
eMib_dot11AutoConfigEnabled_Phy = 0x00000001U,
eMib_dot11AutoConfigEnabled_Mac = 0x00000002U
} eMib_dot11AutoConfigEnabled;
#define MIB_DOT11_SUPPORTED_PHY_TYPES_MAX_COUNT 3
typedef enum tagMib_dot11PhyType {
eMib_dot11PhyType_11b,
eMib_dot11PhyType_11a,
eMib_dot11PhyType_11g,
eMib_dot11PhyType_all
} eMib_dot11PhyType;
typedef struct tagMib_dot11SupportedPhyTypes {
uint32_t cEntries;
eMib_dot11PhyType phyTypes[MIB_DOT11_SUPPORTED_PHY_TYPES_MAX_COUNT];
} sMib_dot11SupportedPhyTypes;
typedef enum {
eMib_DevicePowerState_D0,
eMib_DevicePowerState_D1,
eMib_DevicePowerState_D2,
eMib_DevicePowerState_D3
} eMib_DevicePowerState;
typedef enum {
eMib_dot11NICPowerState_OFF = false,
eMib_dot11NICPowerState_ON = true
} eMib_dot11NICPowerState;
typedef enum {
eMib_dot11HardwarePHYState_OFF = false,
eMib_dot11HardwarePHYState_ON = true
} eMib_dot11HardwarePHYState;
typedef enum {
eMib_dot11PowerSavingLevel_None,
eMib_dot11PowerSavingLevel_MaxPS,
eMib_dot11PowerSavingLevel_FastPS,
eMib_dot11PowerSavingLevel_MaximumLevel
} eMib_dot11PowerSavingLevel;
#define MIB_DOT11_MAC_EXCLUSION_LIST_MAX_COUNT 4
typedef struct {
uint32_t cEntries;
struct cdf_mac_addr macAddrs[MIB_DOT11_MAC_EXCLUSION_LIST_MAX_COUNT];
} sMib_dot11MacExcludeList;
#define MIB_DOT11_PRIVACY_EXEMPT_LIST_MAX_COUNT 32
typedef enum {
eMib_dot11ExemptionAction_Always,
eMib_dot11ExemptionAction_OnKeyMapUnavailable
} eMib_dot11ExemptAction;
typedef enum {
eMib_dot11ExemptPacket_Unicast,
eMib_dot11ExemptPacket_Multicast,
eMib_dot11ExemptPacket_Both
} eMib_dot11ExemptPacket;
typedef struct {
uint16_t uEtherType;
eMib_dot11ExemptAction exemptAction;
eMib_dot11ExemptPacket exemptPacket;
} sMib_dot11PrivacyExemption;
typedef struct {
uint32_t cEntries;
sMib_dot11PrivacyExemption
privacyExemptList[MIB_DOT11_PRIVACY_EXEMPT_LIST_MAX_COUNT];
} sMib_dot11PrivacyExemptionList;
typedef struct sHddMib_s {
eMib_dot11DesiredBssType mibDot11DesiredBssType;
sMib_dot11DesiredBssidList mibDot11DesiredBssidList;
sMib_dot11DesiredSsidList mibDot11DesiredSsidList;
eMib_dot11AutoConfigEnabled mibDot11AutoConfigEnabled;
/* the device power state for the device (the D-state... you know D0, D1, D2, etc. */
eMib_DevicePowerState mibDevicePowerState;
/* dot11NICPowerState is really the on/off state of the PHY. This can be */
/* mamipulated through OIDs like a software control for radio on/off. */
eMib_dot11NICPowerState mibDot11NICPowerState;
/* Hardware PHY state is the on/off state of the hardware PHY. */
eMib_dot11HardwarePHYState mibDot11HardwarePHYState;
/* dot11 Power Saving level is the 802.11 power saving level/state for the 802.11 */
/* NIC. Typically this is mapped to 802.11 BMPS in some fashion. We are not going */
/* to disappoint; the Libra NIC maps these to different BMPS settings. */
eMib_dot11PowerSavingLevel mibDot11PowerSavingLevel;
sMib_dot11MacExcludeList mibDot11MacExcludeList;
sMib_dot11PrivacyExemptionList mibDot11PrivacyExemptionList;
sMib_dot11SupportedPhyTypes mibDot11SupportedPhyTypes;
eMib_dot11PhyType mibDot11CurrentPhyType;
bool dot11IbssJoinOnly;
bool HiddenNetworkEnabled;
} sHddMib_t;
#endif