From 588410643be77f965c72704bbef313459c24b9ed Mon Sep 17 00:00:00 2001 From: Sourav Mohapatra Date: Mon, 19 Nov 2018 16:33:27 +0530 Subject: [PATCH] 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 --- core/hdd/inc/hdd_config.h | 444 ++++++++++++++++++++++++++++++++++- core/hdd/inc/wlan_hdd_cfg.h | 427 +-------------------------------- core/hdd/src/wlan_hdd_cfg.c | 61 ----- core/hdd/src/wlan_hdd_main.c | 28 ++- 4 files changed, 470 insertions(+), 490 deletions(-) diff --git a/core/hdd/inc/hdd_config.h b/core/hdd/inc/hdd_config.h index 7ec968ae5c8d..0bf9f12899eb 100644 --- a/core/hdd/inc/hdd_config.h +++ b/core/hdd/inc/hdd_config.h @@ -30,6 +30,7 @@ #endif #define CFG_QDF_TRACE_ENABLE_DEFAULT (0xffff) +#include /** * enum hdd_wext_control - knob for wireless extensions @@ -568,21 +569,462 @@ enum hdd_wext_control { "", \ "DBS Scan Selection") + +/* + * + * Intf0MacAddress - Interface address + * @Default: 000AF58989FF + * + * Related: None + * + * Supported Feature: N/A + * + * Usage: External + * + * + */ +#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") + +/* + * + * Intf1MacAddress - Interface address + * @Default: 000AF58989FE + * + * Related: None + * + * Supported Feature: N/A + * + * Usage: External + * + * + */ +#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") + +/* + * + * Intf2MacAddress - Interface address + * @Default: 000AF58989FD + * + * Related: None + * + * Supported Feature: N/A + * + * Usage: External + * + * + */ +#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") + +/* + * + * Intf3MacAddress - Interface address + * @Default: 000AF58989FC + * + * Related: None + * + * Supported Feature: N/A + * + * Usage: External + * + * + */ +#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: + * ..... (maximum 10) + * + * whereas, each Extension is separated by space and have the following format: + * + * 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 + * + * 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. + * + * is mandatory field and should give length of + * the if present else zero + * + * Presence of is controlled by , if is 0, + * then 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. + * + * is mandatory if is present and length of the + * Data mask string depends on the + * If 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 has to be constructed from left to right. + * + * Presence of and is + * controlled by which is mandatory + * 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) + * + * for should be constructed from left to right + * + * 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) + * is present if atleast one of the bit is set + * from b2 - b6 in + * + * 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 + +/* + * + * 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 + * + * + */ +#define CFG_ENABLE_ACTION_OUI CFG_INI_BOOL( \ + "gEnableActionOUI", \ + 1, \ + "Enable/Disable action oui feature") + +/* + * + * 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 + * + * + */ +#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") + +/* + * + * 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 + * + * + */ +#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") + +/* + * + * 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 + * + * + */ +#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") + +/* + * + * 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 + * + * + */ +#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") + +/* + * + * 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 + * + * + */ +#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") + +/* + * + * 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 + * + * + */ +#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) \ diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index df2379486822..bfce4b53e3be 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -1494,102 +1494,6 @@ enum hdd_dot11_mode { #define CFG_LATENCY_FLAGS_ULTRALOW_MAX (0xffffffff) #define CFG_LATENCY_FLAGS_ULTRALOW_DEFAULT (0xc83) -/* - * - * 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 - * - * - */ - -#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" - -/* - * - * 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 - * - * - */ - -#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" - -/* - * - * 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 - * - * - */ - -#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" - -/* - * - * 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 - * - * - */ - -#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" - /* * * 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: - * ..... (maximum 10) - * - * whereas, each Extension is separated by space and have the following format: - * - * 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 - * - * 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. - * - * is mandatory field and should give length of - * the if present else zero - * - * Presence of is controlled by , if is 0, - * then 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. - * - * is mandatory if is present and length of the - * Data mask string depends on the - * If 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 has to be constructed from left to right. - * - * Presence of and is - * controlled by which is mandatory - * 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) - * - * for should be constructed from left to right - * - * 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) - * is present if atleast one of the bit is set - * from b2 - b6 in - * - * 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 - * - */ - -/* - * - * 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 - * - * - */ -#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) - -/* - * - * 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 - * - * - */ -#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" - -/* - * - * 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 - * - * - */ -#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" - -/* - * - * 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 - * - * - */ -#define CFG_ACTION_OUI_CCKM_1X1_NAME "gActionOUICCKM1X1" -#define CFG_ACTION_OUI_CCKM_1X1_DEFAULT "" - -/* - * - * 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 - * - * - */ - #define CFG_ACTION_OUI_ITO_ALTERNATE_NAME "gActionOUIITOAlternate" - #define CFG_ACTION_OUI_ITO_ALTERNATE_DEFAULT "001018 06 0202001c0000 FC 01" - -/* - * - * 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 - * - * - */ -#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" - -/* - * - * 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 - * - * - */ -#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 */ - - /* * * 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)) diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index e466fe242305..8f695ef08891 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -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, diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 89afee44b53c..6daa728ae9d8 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -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);