qcacld-3.0: Interfacing files for LFR Subnet Detection support

Add interfacing files and configuration options to enable
LFR subnet detection feature support.

Change-Id: I46756dfb2dd8071fd2bb762038414709e6212c1c
CRs-fixed: 876335
This commit is contained in:
Ravi Joshi
2015-11-09 18:41:20 -08:00
committed by Satish Singh
parent 4acb24c8ce
commit 61c3c7a927
8 changed files with 61 additions and 1 deletions

11
Kbuild
View File

@@ -130,6 +130,9 @@ ifeq ($(KERNEL_BUILD), 0)
CONFIG_WLAN_LRO := n
endif
endif
# Flag to enable LFR Subnet Detection
CONFIG_LFR_SUBNET_DETECTION := y
endif
ifneq ($(CONFIG_MOBILE_ROUTER), y)
@@ -338,6 +341,10 @@ ifeq ($(CONFIG_WLAN_FEATURE_MEMDUMP),y)
HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_memdump.o
endif
ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y)
HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_subnet_detect.o
endif
########### HOST DIAG LOG ###########
HOST_DIAG_LOG_DIR := core/utils/host_diag_log
@@ -1317,6 +1324,10 @@ ifeq ($(CONFIG_STATICALLY_ADD_11P_CHANNELS),y)
CDEFINES += -DFEATURE_STATICALLY_ADD_11P_CHANNELS
endif
ifeq ($(CONFIG_LFR_SUBNET_DETECTION), y)
CDEFINES += -DFEATURE_LFR_SUBNET_DETECTION
endif
KBUILD_CPPFLAGS += $(CDEFINES)
# Currently, for versions of gcc which support it, the kernel Makefile

View File

@@ -107,4 +107,8 @@ config WLAN_FEATURE_RX_WAKELOCK
bool "Enable RX wake lock feature"
default n
config FEATURE_LFR_SUBNET_DETECTION
bool "Enable LFR Subnet Change Detection"
default n
endif # QCA_CLD_WLAN

View File

@@ -353,6 +353,7 @@ struct cdf_mac_addr {
#define CDF_MAC_ADDR_ZERO_INITIALIZER { { 0, 0, 0, 0, 0, 0 } }
#define CDF_IPV4_ADDR_SIZE (4)
#define CDF_IPV6_ADDR_SIZE (16)
/**
* struct cdf_tso_frag_t - fragments of a single TCP segment

View File

@@ -5395,6 +5395,33 @@ enum powersave_mode {
PS_QPOWER_DEEPSLEEP = 4,
PS_DUTY_CYCLING_QPOWER = 5
};
#ifdef FEATURE_LFR_SUBNET_DETECTION
/**
* struct gateway_param_update_req - gateway parameter update request
* @request_id: request id
* @session_id: session id
* @max_retries: Max ARP/NS retry attempts
* @timeout: Retry interval
* @ipv4_addr_type: on ipv4 network
* @ipv6_addr_type: on ipv6 network
* @gw_mac_addr: gateway mac addr
* @ipv4_addr: ipv4 addr
* @ipv6_addr: ipv6 addr
*/
struct gateway_param_update_req {
uint32_t request_id;
uint32_t session_id;
uint32_t max_retries;
uint32_t timeout;
uint32_t ipv4_addr_type;
uint32_t ipv6_addr_type;
struct cdf_mac_addr gw_mac_addr;
uint8_t ipv4_addr[CDF_IPV4_ADDR_SIZE];
uint8_t ipv6_addr[CDF_IPV6_ADDR_SIZE];
};
#else
struct gateway_param_update_req;
#endif /* FEATURE_LFR_SUBNET_DETECTION */
/**
* struct sir_sme_ext_change_chan_req - channel change request

View File

@@ -579,7 +579,7 @@ typedef struct sSirMbMsgP2p {
#define SIR_HAL_EXIT_PS_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 236)
#define SIR_HAL_ENABLE_UAPSD_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 237)
#define SIR_HAL_DISABLE_UAPSD_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 238)
#define SIR_HAL_GATEWAY_PARAM_UPDATE_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 239)
#define SIR_HAL_SET_EPNO_LIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 313)
#define SIR_HAL_SET_PASSPOINT_LIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 316)
#define SIR_HAL_RESET_PASSPOINT_LIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 317)

View File

@@ -1075,4 +1075,9 @@ sme_get_opclass(tHalHandle hal, uint8_t channel, uint8_t bw_offset,
}
#endif
#ifdef FEATURE_LFR_SUBNET_DETECTION
CDF_STATUS sme_gateway_param_update(tHalHandle hHal,
struct gateway_param_update_req *request);
#endif
#endif /* #if !defined( __SME_API_H ) */

View File

@@ -2008,6 +2008,17 @@ int wma_mgmt_tx_completion_handler(void *handle, uint8_t *cmpl_event_params,
void wma_set_dfs_region(tp_wma_handle wma, uint8_t dfs_region);
uint32_t wma_get_vht_ch_width(void);
#ifdef FEATURE_LFR_SUBNET_DETECTION
CDF_STATUS wma_set_gateway_params(tp_wma_handle wma,
struct gateway_param_update_req *req);
#else
static inline CDF_STATUS wma_set_gateway_params(tp_wma_handle wma,
struct gateway_param_update_req *req)
{
return CDF_STATUS_SUCCESS;
}
#endif /* FEATURE_LFR_SUBNET_DETECTION */
#if defined(FEATURE_LRO)
CDF_STATUS wma_lro_config_cmd(tp_wma_handle wma_handle,
struct wma_lro_config_cmd_t *wma_lro_cmd);

View File

@@ -447,6 +447,7 @@
#define WMA_SET_IE_INFO SIR_HAL_SET_IE_INFO
#define WMA_LRO_CONFIG_CMD SIR_HAL_LRO_CONFIG_CMD
#define WMA_GW_PARAM_UPDATE_REQ SIR_HAL_GATEWAY_PARAM_UPDATE_REQ
/* Bit 6 will be used to control BD rate for Management frames */
#define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40