| /* |
| * Copyright (c) 2013-2016 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 <qdf_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 qdf_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 qdf_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 |