qcacld-3.0: Relocate HDD ini items (2)

Relocate the following CFG INI Items to the new infrastructure.

1. CFG_INTF0_MAC_ADDR_NAME
2. CFG_INTF1_MAC_ADDR_NAME
3. CFG_INTF2_MAC_ADDR_NAME
4. CFG_INTF3_MAC_ADDR_NAME
5. CFG_ACTION_OUI_CONNECT_1X1_NAME
6. CFG_ACTION_OUI_ITO_EXTENSION_NAME
7. CFG_ACTION_OUI_CCKM_1X1_NAME
8. CFG_ACTION_OUI_ITO_ALTERNATE_NAME
9. CFG_ACTION_OUI_SWITCH_TO_11N_MODE_NAME
10. CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN_NAME
11. CFG_ENABLE_ACTION_OUI

Change-Id: I6984096719a5abd7fa4f0a4f6641a17d29348332
CRs-Fixed: 2357175
This commit is contained in:
Sourav Mohapatra 2018-11-19 16:33:27 +05:30 • committed by nshrivas
commit 588410643b
4 changed files with 470 additions and 490 deletions

View file

@ -30,6 +30,7 @@
#endif
#define CFG_QDF_TRACE_ENABLE_DEFAULT (0xffff)
#include <wlan_action_oui_public_struct.h>
/**
* enum hdd_wext_control - knob for wireless extensions
@ -568,21 +569,462 @@ enum hdd_wext_control {
"", \
"DBS Scan Selection")
/*
* <ini>
* Intf0MacAddress - Interface address
* @Default: 000AF58989FF
*
* Related: None
*
* Supported Feature: N/A
*
* Usage: External
*
* </ini>
*/
#define __CFG_INTF0_MAC_ADDR_DEFAULT \
{.bytes = {0x00, 0x0a, 0xf5, 0x89, 0x89, 0xff} }
#define CFG_INTF0_MAC_ADDR CFG_INI_MAC( \
"Intf0MacAddress", \
__CFG_INTF0_MAC_ADDR_DEFAULT, \
"Interface 0 MAC Address")
/*
* <ini>
* Intf1MacAddress - Interface address
* @Default: 000AF58989FE
*
* Related: None
*
* Supported Feature: N/A
*
* Usage: External
*
* </ini>
*/
#define __CFG_INTF1_MAC_ADDR_DEFAULT \
{.bytes = {0x00, 0x0a, 0xf5, 0x89, 0x89, 0xfe} }
#define CFG_INTF1_MAC_ADDR CFG_INI_MAC( \
"Intf1MacAddress", \
__CFG_INTF1_MAC_ADDR_DEFAULT, \
"Interface 1 MAC Address")
/*
* <ini>
* Intf2MacAddress - Interface address
* @Default: 000AF58989FD
*
* Related: None
*
* Supported Feature: N/A
*
* Usage: External
*
* </ini>
*/
#define __CFG_INTF2_MAC_ADDR_DEFAULT \
{.bytes = {0x00, 0x0a, 0xf5, 0x89, 0x89, 0xfd} }
#define CFG_INTF2_MAC_ADDR CFG_INI_MAC( \
"Intf2MacAddress", \
__CFG_INTF2_MAC_ADDR_DEFAULT, \
"Interface 2 MAC Address")
/*
* <ini>
* Intf3MacAddress - Interface address
* @Default: 000AF58989FC
*
* Related: None
*
* Supported Feature: N/A
*
* Usage: External
*
* </ini>
*/
#define __CFG_INTF3_MAC_ADDR_DEFAULT \
{.bytes = {0x00, 0x0a, 0xf5, 0x89, 0x89, 0xfc} }
#define CFG_INTF3_MAC_ADDR CFG_INI_MAC( \
"Intf3MacAddress", \
__CFG_INTF3_MAC_ADDR_DEFAULT, \
"Interface 3 MAC Address")
/*
* Start of action oui inis
*
* To enable action oui feature, set gEnableActionOUI
*
* Each action oui is expected in the following format:
* <Extension 1> <Extension 2> ..... <Extension 10> (maximum 10)
*
* whereas, each Extension is separated by space and have the following format:
* <Token1> <Token2> <Token3> <Token4> <Token5> <Token6> <Token7> <Token8>
* where each Token is a string of hexa-decimal digits and
* following are the details about each token
*
* Token1 = OUI
* Token2 = Data_Length
* Token3 = Data
* Token4 = Data_Mask
* Token5 = Info_Presence_Bit
* Token6 = MAC_Address
* Token7 = Mac_Address Mask
* Token8 = Capability
*
* <OUI> is mandatory and it can be either 3 or 5 bytes means 6 or 10
* hexa-decimal characters
* If the OUI and Data checks needs to be ignored, the oui FFFFFF
* needs to be provided as OUI and bit 0 of Info_Presence_Bit should
* be set to 0.
*
* <Data_Length> is mandatory field and should give length of
* the <Data> if present else zero
*
* Presence of <Data> is controlled by <Data_Length>, if <Data_Length> is 0,
* then <Data> is not expected else Data of the size Data Length bytes are
* expected which means the length of Data string is 2 * Data Length,
* since every byte constitutes two hexa-decimal characters.
*
* <Data_Mask> is mandatory if <Data> is present and length of the
* Data mask string depends on the <Data Length>
* If <Data Length> is 06, then length of Data Mask string is
* 2 characters (represents 1 byte)
* data_mask_length = ((Data_Length - (Data_Length % 8)) / 8) +
* ((Data_Length % 8) ? 1 : 0)
* and <Data_Mask> has to be constructed from left to right.
*
* Presence of <Mac_Address> and <Capability> is
* controlled by <Info_Presence_Bit> which is mandatory
* <Info_Presence_Bit> will give the information for
* OUI – bit 0 Should be set to 1
* Setting to 0 will ignore OUI and data check
* Mac Address present – bit 1
* NSS – bit 2
* HT check – bit 3
* VHT check – bit 4
* Band info – bit 5
* reserved – bit 6 (should always be zero)
* reserved – bit 7 (should always be zero)
* and should be constructed from right to left (b7b6b5b4b3b2b1b0)
*
* <Mac_Address_Mask> for <Mac_Address> should be constructed from left to right
*
* <Capability> is 1 byte long and it contains the below info
* NSS – 4 bits starting from LSB (b0 – b3)
* HT enabled – bit 4
* VHT enabled – bit 5
* 2G band – bit 6
* 5G band – bit 7
* and should be constructed from right to left (b7b6b5b4b3b2b1b0)
* <Capability> is present if atleast one of the bit is set
* from b2 - b6 in <Info_Presence_Bit>
*
* Example 1:
*
* OUI is 00-10-18, data length is 05 (hex form), data is 02-11-04-5C-DE and
* need to consider first 3 bytes and last byte of data for comparision
* mac-addr EE-1A-59-FE-FD-AF is present and first 3 bytes and last byte of
* mac address should be considered for comparision
* capability is not present
* then action OUI for gActionOUIITOExtension is as follows:
*
* gActionOUIITOExtension=001018 05 0211045CDE E8 03 EE1A59FEFDAF E4
*
* data mask calculation in above example:
* Data[0] = 02 ---- d0 = 1
* Data[1] = 11 ---- d1 = 1
* Data[2] = 04 ---- d2 = 1
* Data[3] = 5C ---- d3 = 0
* Data[4] = DE ---- d4 = 1
* data_mask = d0d1d2d3d4 + append with zeros to complete 8-bit = 11101000 = E8
*
* mac mask calculation in above example:
* mac_addr[0] = EE ---- m0 = 1
* mac_addr[1] = 1A ---- m1 = 1
* mac_addr[2] = 59 ---- m2 = 1
* mac_addr[3] = FE ---- m3 = 0
* mac_addr[4] = FD ---- m4 = 0
* mac_addr[5] = AF ---- m5 = 1
* mac_mask = m0m1m2m3m4m5 + append with zeros to complete 8-bit = 11100100 = E4
*
* Example 2:
*
* OUI is 00-10-18, data length is 00 and no Mac Address and capability
*
* gActionOUIITOExtension=001018 00 01
*
*/
#define CFG_ACTION_OUI_MAX_LEN 256
/*
* <ini>
* gEnableActionOUI - Enable/Disable action oui feature
* @Min: 0 (disable)
* @Max: 1 (enable)
* @Default: 1 (enable)
*
* This ini is used to enable the action oui feature to control
* mode of connection, connected AP's in-activity time, Tx rate etc.,
*
* Related: If gEnableActionOUI is set, then at least one of the following inis
* must be set with the proper action oui extensions:
* gActionOUIConnect1x1, gActionOUIITOExtension, gActionOUICCKM1X1
*
* Supported Feature: action ouis
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_ACTION_OUI CFG_INI_BOOL( \
"gEnableActionOUI", \
1, \
"Enable/Disable action oui feature")
/*
* <ini>
* gActionOUIConnect1x1 - Used to specify action OUIs for 1x1 connection
* @Default: 000C43 00 25 42 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C
* Note: User should strictly add new action OUIs at the end of this
* default value.
*
* Default OUIs: (All values in Hex)
* OUI 1 : 000C43
* OUI data Len : 00
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 42 - NSS == 2 && Band == 2G
* OUI 2 : 001018
* OUI data Len : 06
* OUI Data : 02FFF02C0000
* OUI data Mask: BC - 10111100
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 42 - NSS == 2 && Band == 2G
* OUI 3 : 001018
* OUI data Len : 06
* OUI Data : 02FF040C0000
* OUI data Mask: BC - 10111100
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 42 - NSS == 2 && Band == 2G
* OUI 4 : 00037F
* OUI data Len : 00
* Info Mask : 35 - Check for NSS, VHT Caps and Band
* Capabilities: 6C - (NSS == 3 or 4) && VHT Caps Preset && Band == 2G
*
* This ini is used to specify the AP OUIs with which only 1x1 connection
* is allowed.
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_CONNECT_1X1 CFG_INI_STRING( \
"gActionOUIConnect1x1", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"000C43 00 25 42 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C", \
"Used to specify action OUIs for 1x1 connection")
/*
* <ini>
* gActionOUIITOExtension - Used to extend in-activity time for specified APs
* @Default: 00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01
* Note: User should strictly add new action OUIs at the end of this
* default value.
*
* Default OUIs: (All values in Hex)
* OUI 1: 00037F
* OUI data Len: 06
* OUI Data: 01010000FF7F
* OUI data Mask: FC - 11111100
* Info Mask : 01 - only OUI present in Info mask
*
* OUI 2: 000AEB
* OUI data Len: 02
* OUI Data: 0100
* OUI data Mask: C0 - 11000000
* Info Mask : 01 - only OUI present in Info mask
*
* OUI 3: 000B86
* OUI data Len: 03
* OUI Data: 010408
* OUI data Mask: E0 - 11100000
* Info Mask : 01 - only OUI present in Info mask
*
* This ini is used to specify AP OUIs using which station's in-activity time
* can be extended with the respective APs
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_ITO_EXTENSION CFG_INI_STRING( \
"gActionOUIITOExtension", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01", \
"Used to extend in-activity time for specified APs")
/*
* <ini>
* gActionOUICCKM1X1 - Used to specify action OUIs to control station's TX rates
*
* This ini is used to specify AP OUIs for which station's CCKM TX rates
* should be 1x1 only.
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_CCKM_1X1 CFG_INI_STRING( \
"gActionOUICCKM1X1", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"", \
"Used to specify action OUIs to control station's TX rates")
/*
* <ini>
* gActionOUIITOAlternate - Used to specify action OUIs to have alternate ITO in
* weak RSSI state
*
* This ini is used to specify AP OUIs for which the stations will have
* alternate ITOs for the case when the RSSI is weak.
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_ITO_ALTERNATE CFG_INI_STRING( \
"gActionOUIITOAlternate", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"001018 06 0202001c0000 FC 01", \
"Used to specify action OUIs to have alternate ITO")
/*
* <ini>
* gActionOUISwitchTo11nMode - Used to specify action OUIs for switching to 11n
*
* This ini is used to specify which AP for which the connection has to be
* made in 2x2 mode with HT capabilities only and not VHT.
*
* Default OUIs: (All values in Hex)
* OUI 1 : 00904C
* OUI data Len : 03
* OUI Data : 0418BF
* OUI data Mask: E0 - 11100000
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE CFG_INI_STRING( \
"gActionOUISwitchTo11nMode", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"00904C 03 0418BF E0 21 40", \
"Used to specify action OUIs for switching to 11n")
/*
* <ini>
* gActionOUIConnect1x1with1TxRxChain - Used to specify action OUIs for
* 1x1 connection with one Tx/Rx Chain
* @Default:
* Note: User should strictly add new action OUIs at the end of this
* default value.
*
* Default OUIs: (All values in Hex)
* OUI 1 : 001018
* OUI data Len : 06
* OUI Data : 02FFF0040000
* OUI data Mask: BC - 10111100
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* OUI 2 : 001018
* OUI data Len : 06
* OUI Data : 02FFF0050000
* OUI data Mask: BC - 10111100
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* OUI 3 : 001018
* OUI data Len : 06
* OUI Data : 02FFF4050000
* OUI data Mask: BC - 10111100
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* This ini is used to specify the AP OUIs with which only 1x1 connection
* with one Tx/Rx Chain is allowed.
*
* Related: gEnableActionOUI
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN CFG_INI_STRING( \
"gActionOUIConnect1x1with1TxRxChain", \
0, \
ACTION_OUI_MAX_STR_LEN, \
"001018 06 02FFF0040000 BC 21 40 001018 06 02FFF0050000 BC 21 40 001018 06 02FFF4050000 BC 21 40", \
"Used to specify action OUIs for 1x1 connection with one Tx/Rx Chain")
/* End of action oui inis */
#define CFG_HDD_ALL \
CFG_ENABLE_PACKET_LOG_ALL \
CFG_ENABLE_RUNTIME_PM_ALL \
CFG_VC_MODE_BITMAP_ALL \
CFG_WLAN_AUTO_SHUTDOWN_ALL \
CFG_WLAN_LOGGING_SUPPORT_ALL \
CFG(CFG_ACTION_OUI_CCKM_1X1) \
CFG(CFG_ACTION_OUI_CONNECT_1X1) \
CFG(CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN) \
CFG(CFG_ACTION_OUI_ITO_ALTERNATE) \
CFG(CFG_ACTION_OUI_ITO_EXTENSION) \
CFG(CFG_ACTION_OUI_SWITCH_TO_11N_MODE) \
CFG(CFG_BUG_ON_REINIT_FAILURE) \
CFG(CFG_DBS_SCAN_SELECTION) \
CFG(CFG_ENABLE_CONCURRENT_STA) \
CFG(CFG_ENABLE_ACTION_OUI) \
CFG(CFG_ENABLE_FW_LOG) \
CFG(CFG_ENABLE_FW_UART_PRINT) \
CFG(CFG_ENABLE_RAMDUMP_COLLECTION) \
CFG(CFG_ENABLE_MCC_ENABLED) \
CFG(CFG_ENABLE_RAMDUMP_COLLECTION) \
CFG(CFG_INTERFACE_CHANGE_WAIT) \
CFG(CFG_INFORM_BSS_RSSI_RAW) \
CFG(CFG_INTF0_MAC_ADDR) \
CFG(CFG_INTF1_MAC_ADDR) \
CFG(CFG_INTF2_MAC_ADDR) \
CFG(CFG_INTF3_MAC_ADDR) \
CFG(CFG_MULTICAST_HOST_FW_MSGS) \
CFG(CFG_NUM_VDEV_ENABLE) \
CFG(CFG_OPERATING_CHANNEL) \

View file

@ -1494,102 +1494,6 @@ enum hdd_dot11_mode {
#define CFG_LATENCY_FLAGS_ULTRALOW_MAX (0xffffffff)
#define CFG_LATENCY_FLAGS_ULTRALOW_DEFAULT (0xc83)
/*
* <ini>
* Intf0MacAddress - Default MAC address of VIF0
* @Min: 000000000000
* @Max: ffffffffffff
* @Default: 000AF58989FF
*
* This ini is used to set the default MAC address of virtual interface 0
* created by WLAN driver.
*
* Related: None.
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INTF0_MAC_ADDR_NAME "Intf0MacAddress"
#define CFG_INTF0_MAC_ADDR_MIN "000000000000"
#define CFG_INTF0_MAC_ADDR_MAX "ffffffffffff"
#define CFG_INTF0_MAC_ADDR_DEFAULT "000AF58989FF"
/*
* <ini>
* Intf1MacAddress - Default MAC address of VIF1
* @Min: 000000000000
* @Max: ffffffffffff
* @Default: 000AF58989FE
*
* This ini is used to set the default MAC address of virtual interface 1
* created by WLAN driver.
*
* Related: None.
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INTF1_MAC_ADDR_NAME "Intf1MacAddress"
#define CFG_INTF1_MAC_ADDR_MIN "000000000000"
#define CFG_INTF1_MAC_ADDR_MAX "ffffffffffff"
#define CFG_INTF1_MAC_ADDR_DEFAULT "000AF58989FE"
/*
* <ini>
* Intf2MacAddress - Default MAC address of VIF2
* @Min: 000000000000
* @Max: ffffffffffff
* @Default: 000AF58989FD
*
* This ini is used to set the default MAC address of virtual interface 2
* created by WLAN driver.
*
* Related: None.
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INTF2_MAC_ADDR_NAME "Intf2MacAddress"
#define CFG_INTF2_MAC_ADDR_MIN "000000000000"
#define CFG_INTF2_MAC_ADDR_MAX "ffffffffffff"
#define CFG_INTF2_MAC_ADDR_DEFAULT "000AF58989FD"
/*
* <ini>
* Intf3MacAddress - Default MAC address of VIF3
* @Min: 000000000000
* @Max: ffffffffffff
* @Default: 000AF58989FC
*
* This ini is used to set the default MAC address of virtual interface 3
* created by WLAN driver.
*
* Related: None.
*
* Supported Feature: SAP
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_INTF3_MAC_ADDR_NAME "Intf3MacAddress"
#define CFG_INTF3_MAC_ADDR_MIN "000000000000"
#define CFG_INTF3_MAC_ADDR_MAX "ffffffffffff"
#define CFG_INTF3_MAC_ADDR_DEFAULT "000AF58989FC"
/*
* <ini>
* gDot11Mode - SAP phy mode
@ -4098,335 +4002,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_TX_SCH_DELAY_MAX (5)
#define CFG_TX_SCH_DELAY_DEFAULT (0)
/*
* Start of action oui inis
*
* To enable action oui feature, set gEnableActionOUI
*
* Each action oui is expected in the following format:
* <Extension 1> <Extension 2> ..... <Extension 10> (maximum 10)
*
* whereas, each Extension is separated by space and have the following format:
* <Token1> <Token2> <Token3> <Token4> <Token5> <Token6> <Token7> <Token8>
* where each Token is a string of hexa-decimal digits and
* following are the details about each token
*
* Token1 = OUI
* Token2 = Data_Length
* Token3 = Data
* Token4 = Data_Mask
* Token5 = Info_Presence_Bit
* Token6 = MAC_Address
* Token7 = Mac_Address Mask
* Token8 = Capability
*
* <OUI> is mandatory and it can be either 3 or 5 bytes means 6 or 10
* hexa-decimal characters
* If the OUI and Data checks needs to be ignored, the oui FFFFFF
* needs to be provided as OUI and bit 0 of Info_Presence_Bit should
* be set to 0.
*
* <Data_Length> is mandatory field and should give length of
* the <Data> if present else zero
*
* Presence of <Data> is controlled by <Data_Length>, if <Data_Length> is 0,
* then <Data> is not expected else Data of the size Data Length bytes are
* expected which means the length of Data string is 2 * Data Length,
* since every byte constitutes two hexa-decimal characters.
*
* <Data_Mask> is mandatory if <Data> is present and length of the
* Data mask string depends on the <Data Length>
* If <Data Length> is 06, then length of Data Mask string is
* 2 characters (represents 1 byte)
* data_mask_length = ((Data_Length - (Data_Length % 8)) / 8) +
* ((Data_Length % 8) ? 1 : 0)
* and <Data_Mask> has to be constructed from left to right.
*
* Presence of <Mac_Address> and <Capability> is
* controlled by <Info_Presence_Bit> which is mandatory
* <Info_Presence_Bit> will give the information for
* OUI – bit 0 Should be set to 1
* Setting to 0 will ignore OUI and data check
* Mac Address present – bit 1
* NSS – bit 2
* HT check – bit 3
* VHT check – bit 4
* Band info – bit 5
* reserved – bit 6 (should always be zero)
* reserved – bit 7 (should always be zero)
* and should be constructed from right to left (b7b6b5b4b3b2b1b0)
*
* <Mac_Address_Mask> for <Mac_Address> should be constructed from left to right
*
* <Capability> is 1 byte long and it contains the below info
* NSS – 4 bits starting from LSB (b0 – b3)
* HT enabled – bit 4
* VHT enabled – bit 5
* 2G band – bit 6
* 5G band – bit 7
* and should be constructed from right to left (b7b6b5b4b3b2b1b0)
* <Capability> is present if atleast one of the bit is set
* from b2 - b6 in <Info_Presence_Bit>
*
* Example 1:
*
* OUI is 00-10-18, data length is 05 (hex form), data is 02-11-04-5C-DE and
* need to consider first 3 bytes and last byte of data for comparision
* mac-addr EE-1A-59-FE-FD-AF is present and first 3 bytes and last byte of
* mac address should be considered for comparision
* capability is not present
* then action OUI for gActionOUIITOExtension is as follows:
*
* gActionOUIITOExtension=001018 05 0211045CDE E8 03 EE1A59FEFDAF E4
*
* data mask calculation in above example:
* Data[0] = 02 ---- d0 = 1
* Data[1] = 11 ---- d1 = 1
* Data[2] = 04 ---- d2 = 1
* Data[3] = 5C ---- d3 = 0
* Data[4] = DE ---- d4 = 1
* data_mask = d0d1d2d3d4 + append with zeros to complete 8-bit = 11101000 = E8
*
* mac mask calculation in above example:
* mac_addr[0] = EE ---- m0 = 1
* mac_addr[1] = 1A ---- m1 = 1
* mac_addr[2] = 59 ---- m2 = 1
* mac_addr[3] = FE ---- m3 = 0
* mac_addr[4] = FD ---- m4 = 0
* mac_addr[5] = AF ---- m5 = 1
* mac_mask = m0m1m2m3m4m5 + append with zeros to complete 8-bit = 11100100 = E4
*
* Example 2:
*
* OUI is 00-10-18, data length is 00 and no Mac Address and capability
*
* gActionOUIITOExtension=001018 00 01
*
*/
/*
* <ini>
* gEnableActionOUI - Enable/Disable action oui feature
* @Min: 0 (disable)
* @Max: 1 (enable)
* @Default: 1 (enable)
*
* This ini is used to enable the action oui feature to control
* mode of connection, connected AP's in-activity time, Tx rate etc.,
*
* Related: If gEnableActionOUI is set, then at least one of the following inis
* must be set with the proper action oui extensions:
* gActionOUIConnect1x1, gActionOUIITOExtension, gActionOUICCKM1X1
*
* Supported Feature: action ouis
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_ACTION_OUI "gEnableActionOUI"
#define CFG_ENABLE_ACTION_OUI_MIN (0)
#define CFG_ENABLE_ACTION_OUI_MAX (1)
#define CFG_ENABLE_ACTION_OUI_DEFAULT (1)
/*
* <ini>
* gActionOUIConnect1x1 - Used to specify action OUIs for 1x1 connection
* @Default: 000C43 00 25 42 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C
* Note: User should strictly add new action OUIs at the end of this
* default value.
*
* Default OUIs: (All values in Hex)
* OUI 1 : 000C43
* OUI data Len : 00
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 42 - NSS == 2 && Band == 2G
* OUI 2 : 001018
* OUI data Len : 06
* OUI Data : 02FFF02C0000
* OUI data Mask: BC - 10111100
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 42 - NSS == 2 && Band == 2G
* OUI 3 : 001018
* OUI data Len : 06
* OUI Data : 02FF040C0000
* OUI data Mask: BC - 10111100
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 42 - NSS == 2 && Band == 2G
* OUI 4 : 00037F
* OUI data Len : 00
* Info Mask : 35 - Check for NSS, VHT Caps and Band
* Capabilities: 6C - (NSS == 3 or 4) && VHT Caps Preset && Band == 2G
* OUI 5 : 001018
* OUI data Len : 06
* OUI Data : 02FF009C0000
* OUI data Mask: BC - 10111100
* Info Mask : 25 - Check for NSS and Band
* Capabilities: 48 - NSS == 4 && Band == 2G
* This ini is used to specify the AP OUIs with which only 1x1 connection
* is allowed.
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_CONNECT_1X1_NAME "gActionOUIConnect1x1"
#define CFG_ACTION_OUI_CONNECT_1X1_DEFAULT "000C43 00 25 42 001018 06 02FFF02C0000 BC 25 42 001018 06 02FF040C0000 BC 25 42 00037F 00 35 6C 001018 06 02FF009C0000 BC 25 48"
/*
* <ini>
* gActionOUIITOExtension - Used to extend in-activity time for specified APs
* @Default: 00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01
* Note: User should strictly add new action OUIs at the end of this
* default value.
*
* Default OUIs: (All values in Hex)
* OUI 1: 00037F
* OUI data Len: 06
* OUI Data: 01010000FF7F
* OUI data Mask: FC - 11111100
* Info Mask : 01 - only OUI present in Info mask
*
* OUI 2: 000AEB
* OUI data Len: 02
* OUI Data: 0100
* OUI data Mask: C0 - 11000000
* Info Mask : 01 - only OUI present in Info mask
*
* OUI 3: 000B86
* OUI data Len: 03
* OUI Data: 010408
* OUI data Mask: E0 - 11100000
* Info Mask : 01 - only OUI present in Info mask
*
* This ini is used to specify AP OUIs using which station's in-activity time
* can be extended with the respective APs
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_ITO_EXTENSION_NAME "gActionOUIITOExtension"
#define CFG_ACTION_OUI_ITO_EXTENSION_DEFAULT "00037F 06 01010000FF7F FC 01 000AEB 02 0100 C0 01 000B86 03 010408 E0 01"
/*
* <ini>
* gActionOUICCKM1X1 - Used to specify action OUIs to control station's TX rates
*
* This ini is used to specify AP OUIs for which station's CCKM TX rates
* should be 1x1 only.
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_CCKM_1X1_NAME "gActionOUICCKM1X1"
#define CFG_ACTION_OUI_CCKM_1X1_DEFAULT ""
/*
* <ini>
* gActionOUIITOAlternate - Used to specify action OUIs to have alternate ITO in
* weak RSSI state
*
* This ini is used to specify AP OUIs for which the stations will have
* alternate ITOs for the case when the RSSI is weak.
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_ITO_ALTERNATE_NAME "gActionOUIITOAlternate"
#define CFG_ACTION_OUI_ITO_ALTERNATE_DEFAULT "001018 06 0202001c0000 FC 01"
/*
* <ini>
* gActionOUISwitchTo11nMode - Used to specify action OUIs for switching to 11n
*
* This ini is used to specify which AP for which the connection has to be
* made in 2x2 mode with HT capabilities only and not VHT.
*
* Default OUIs: (All values in Hex)
* OUI 1 : 00904C
* OUI data Len : 03
* OUI Data : 0418BF
* OUI data Mask: E0 - 11100000
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* Related: None
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE_NAME "gActionOUISwitchTo11nMode"
#define CFG_ACTION_OUI_SWITCH_TO_11N_MODE_DEFAULT "00904C 03 0418BF E0 21 40"
/*
* <ini>
* gActionOUIConnect1x1with1TxRxChain - Used to specify action OUIs for
* 1x1 connection with one Tx/Rx Chain
* @Default:
* Note: User should strictly add new action OUIs at the end of this
* default value.
*
* Default OUIs: (All values in Hex)
* OUI 1 : 001018
* OUI data Len : 06
* OUI Data : 02FFF0040000
* OUI data Mask: BC - 10111100
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* OUI 2 : 001018
* OUI data Len : 06
* OUI Data : 02FFF0050000
* OUI data Mask: BC - 10111100
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* OUI 3 : 001018
* OUI data Len : 06
* OUI Data : 02FFF4050000
* OUI data Mask: BC - 10111100
* Info Mask : 21 - Check for Band
* Capabilities: 40 - Band == 2G
*
* This ini is used to specify the AP OUIs with which only 1x1 connection
* with one Tx/Rx Chain is allowed.
*
* Related: gEnableActionOUI
*
* Supported Feature: Action OUIs
*
* Usage: External
*
* </ini>
*/
#define CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN_NAME "gActionOUIConnect1x1with1TxRxChain"
#define CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN_DEFAULT "001018 06 02FFF0040000 BC 21 40 001018 06 02FFF0050000 BC 21 40 001018 06 02FFF4050000 BC 21 40"
/* End of action oui inis */
/*
* <ini>
* gEnableUnitTestFramework - Enable/Disable unit test framework
@ -4589,7 +4164,6 @@ struct hdd_config {
uint32_t AdHocChannel5G;
uint32_t AdHocChannel24G;
uint8_t intfAddrMask;
struct qdf_mac_addr intfMacAddr[QDF_MAX_CONCURRENCY_PERSONA];
bool apProtEnabled;
uint8_t nTxPowerCap; /* In dBm */
@ -4921,6 +4495,7 @@ struct hdd_config {
#endif
uint8_t enableMCC;
uint8_t inform_bss_rssi_raw;
struct qdf_mac_addr intfMacAddr[QDF_MAX_CONCURRENCY_PERSONA];
};
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))

View file

@ -140,26 +140,6 @@ struct reg_table_entry g_registry_table[] = {
VAR_FLAGS_OPTIONAL,
(void *)CFG_IBSS_BSSID_DEFAULT),
REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
struct hdd_config, intfMacAddr[0],
VAR_FLAGS_OPTIONAL,
(void *)CFG_INTF0_MAC_ADDR_DEFAULT),
REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
struct hdd_config, intfMacAddr[1],
VAR_FLAGS_OPTIONAL,
(void *)CFG_INTF1_MAC_ADDR_DEFAULT),
REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
struct hdd_config, intfMacAddr[2],
VAR_FLAGS_OPTIONAL,
(void *)CFG_INTF2_MAC_ADDR_DEFAULT),
REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
struct hdd_config, intfMacAddr[3],
VAR_FLAGS_OPTIONAL,
(void *)CFG_INTF3_MAC_ADDR_DEFAULT),
REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
struct hdd_config, apProtEnabled,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@ -978,47 +958,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_LPRx_MIN,
CFG_LPRx_MAX),
REG_VARIABLE(CFG_ENABLE_ACTION_OUI, WLAN_PARAM_Integer,
struct hdd_config, action_oui_enable,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_ACTION_OUI_DEFAULT,
CFG_ENABLE_ACTION_OUI_MIN,
CFG_ENABLE_ACTION_OUI_MAX),
REG_VARIABLE_STRING(CFG_ACTION_OUI_CONNECT_1X1_NAME, WLAN_PARAM_String,
struct hdd_config, action_oui_str[0],
VAR_FLAGS_OPTIONAL,
(void *)CFG_ACTION_OUI_CONNECT_1X1_DEFAULT),
REG_VARIABLE_STRING(CFG_ACTION_OUI_ITO_EXTENSION_NAME,
WLAN_PARAM_String,
struct hdd_config, action_oui_str[1],
VAR_FLAGS_OPTIONAL,
(void *)CFG_ACTION_OUI_ITO_EXTENSION_DEFAULT),
REG_VARIABLE_STRING(CFG_ACTION_OUI_CCKM_1X1_NAME, WLAN_PARAM_String,
struct hdd_config, action_oui_str[2],
VAR_FLAGS_OPTIONAL,
(void *)CFG_ACTION_OUI_CCKM_1X1_DEFAULT),
REG_VARIABLE_STRING(CFG_ACTION_OUI_ITO_ALTERNATE_NAME,
WLAN_PARAM_String,
struct hdd_config, action_oui_str[3],
VAR_FLAGS_OPTIONAL,
(void *)CFG_ACTION_OUI_ITO_ALTERNATE_DEFAULT),
REG_VARIABLE_STRING(CFG_ACTION_OUI_SWITCH_TO_11N_MODE_NAME,
WLAN_PARAM_String,
struct hdd_config, action_oui_str[4],
VAR_FLAGS_OPTIONAL,
(void *)CFG_ACTION_OUI_SWITCH_TO_11N_MODE_DEFAULT),
REG_VARIABLE_STRING(CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN_NAME,
WLAN_PARAM_String,
struct hdd_config, action_oui_str[5],
VAR_FLAGS_OPTIONAL,
(void *)
CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN_DEFAULT),
REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
struct hdd_config, scan_11d_interval,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,

View file

@ -9034,8 +9034,7 @@ static void hdd_override_ini_config(struct hdd_context *hdd_ctx)
if (hdd_ctx->config->action_oui_enable && !ucfg_action_oui_enabled()) {
hdd_ctx->config->action_oui_enable = 0;
hdd_err("Ignore ini: %s, since no action_oui component",
CFG_ENABLE_ACTION_OUI);
hdd_err("Ignore action oui ini, since no action_oui component");
}
}
@ -9355,6 +9354,31 @@ static void hdd_cfg_params_init(struct hdd_context *hdd_ctx)
CFG_DBS_SCAN_PARAM_LENGTH);
config->enableMCC = cfg_get(psoc, CFG_ENABLE_MCC_ENABLED);
config->inform_bss_rssi_raw = cfg_get(psoc, CFG_INFORM_BSS_RSSI_RAW);
config->intfMacAddr[0] = cfg_get(psoc, CFG_INTF0_MAC_ADDR);
config->intfMacAddr[1] = cfg_get(psoc, CFG_INTF1_MAC_ADDR);
config->intfMacAddr[2] = cfg_get(psoc, CFG_INTF2_MAC_ADDR);
config->intfMacAddr[3] = cfg_get(psoc, CFG_INTF3_MAC_ADDR);
config->action_oui_enable = cfg_get(psoc, CFG_ENABLE_ACTION_OUI);
qdf_str_lcopy(config->action_oui_str[0],
cfg_get(psoc, CFG_ACTION_OUI_CONNECT_1X1),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(config->action_oui_str[1],
cfg_get(psoc, CFG_ACTION_OUI_ITO_EXTENSION),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(config->action_oui_str[2],
cfg_get(psoc, CFG_ACTION_OUI_CCKM_1X1),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(config->action_oui_str[3],
cfg_get(psoc, CFG_ACTION_OUI_ITO_ALTERNATE),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(config->action_oui_str[4],
cfg_get(psoc, CFG_ACTION_OUI_SWITCH_TO_11N_MODE),
ACTION_OUI_MAX_STR_LEN);
qdf_str_lcopy(config->action_oui_str[5],
cfg_get(psoc,
CFG_ACTION_OUI_CONNECT_1X1_WITH_1_CHAIN),
ACTION_OUI_MAX_STR_LEN);
hdd_init_vc_mode_cfg_bitmap(config, psoc);
hdd_init_runtime_pm(config, psoc);