diff options
| author | syeh <syeh@qca.qualcomm.com> | 2014-11-07 23:21:20 +0800 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2014-11-13 17:52:56 +0530 |
| commit | c26ca565a53434f77879b801838635fbb52d4733 (patch) | |
| tree | 8ad0648b627b35c8d9522fe92677cd767c9b8b67 | |
| parent | 104022d5889a7eb92b27a31ccd5ca3f852878fbb (diff) | |
qcacld: Support the customization of DHCP client IP range
Provide the customization of client IP address range for DHCP Server
Offload via qcom_cfg.ini.
Change-Id: I933965787eaaa905df467cb4f3f4f7d3dea83165
CRs-Fixed: 752558
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 7 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 10 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 2 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 1 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 2 |
5 files changed, 21 insertions, 1 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index c3c7028759f2..4206549eb7f8 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -2577,6 +2577,12 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */ #define CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX ( 8 ) #define CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT ( CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX ) +/* Starting address assigned to DHCP client */ +#define CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_NAME "gDHCPClientStartIP" +#define CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_MIN ( 100 ) +#define CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_MAX ( 255 ) +#define CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_DEFAULT ( CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_MIN ) + /* DHCP Server IP*/ #define CFG_DHCP_SERVER_IP_NAME "gDHCPServerIP" #define CFG_DHCP_SERVER_IP_DEFAULT "" @@ -3141,6 +3147,7 @@ typedef struct #ifdef DHCP_SERVER_OFFLOAD v_BOOL_t enableDHCPServerOffload; v_U32_t dhcpMaxNumClients; + uint32_t dhcp_client_start_ip; v_U8_t dhcpServerIP[IPADDR_STRING_LENGTH]; #endif /* DHCP_SERVER_OFFLOAD */ bool enable_mac_spoofing; diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index a937954c96e9..7187440ca078 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -3371,6 +3371,13 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN, CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX ), + REG_VARIABLE( CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_NAME, + WLAN_PARAM_Integer, hdd_config_t, dhcp_client_start_ip, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_DEFAULT, + CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_MIN, + CFG_DHCP_SERVER_OFFLOAD_CLIENT_IPBASE_MAX ), + REG_VARIABLE_STRING( CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String, hdd_config_t, dhcpServerIP, VAR_FLAGS_OPTIONAL, @@ -4003,6 +4010,9 @@ void print_hdd_cfg(hdd_context_t *pHddCtx) "Name = [gDHCPMaxNumClients] Value = [%u]", pHddCtx->cfg_ini->dhcpMaxNumClients); VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, + "Name = [gDHCPClientStartIP] Value = [%u]", + pHddCtx->cfg_ini->dhcp_client_start_ip); + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gDHCPServerIP] Value = [%s]", pHddCtx->cfg_ini->dhcpServerIP); #endif diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index d56a6aa5ae90..11e9d51fdc4b 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -5745,6 +5745,8 @@ static void wlan_hdd_set_dhcp_server_offload(hdd_adapter_t *pHostapdAdapter) pDhcpSrvInfo->vdev_id = pHostapdAdapter->sessionId; pDhcpSrvInfo->dhcpSrvOffloadEnabled = TRUE; pDhcpSrvInfo->dhcpClientNum = pHddCtx->cfg_ini->dhcpMaxNumClients; + pDhcpSrvInfo->dhcp_client_start_ip = + pHddCtx->cfg_ini->dhcp_client_start_ip; hdd_string_to_u8_array(pHddCtx->cfg_ini->dhcpServerIP, srv_ip, diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index d97a48c11289..b7294cc10d13 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -5533,6 +5533,7 @@ typedef struct tANI_U32 dhcpSrvOffloadEnabled; tANI_U32 dhcpClientNum; tANI_U32 dhcpSrvIP; + tANI_U32 dhcp_client_start_ip; } tSirDhcpSrvOffloadInfo, *tpSirDhcpSrvOffloadInfo; #endif /* DHCP_SERVER_OFFLOAD */ diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index cb1d3da56c4e..d4b0427f1aea 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -22149,7 +22149,7 @@ static int wma_process_dhcpserver_offload(tp_wma_handle wma_handle, cmd->enable = pDhcpSrvOffloadInfo->dhcpSrvOffloadEnabled; cmd->num_client = pDhcpSrvOffloadInfo->dhcpClientNum; cmd->srv_ipv4 = pDhcpSrvOffloadInfo->dhcpSrvIP; - cmd->start_lsb = 0; + cmd->start_lsb = pDhcpSrvOffloadInfo->dhcp_client_start_ip; err = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, sizeof(*cmd), WMI_SET_DHCP_SERVER_OFFLOAD_CMDID); if (err) { |
