summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyeh <syeh@qca.qualcomm.com>2014-11-07 23:21:20 +0800
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2014-11-13 17:52:56 +0530
commitc26ca565a53434f77879b801838635fbb52d4733 (patch)
tree8ad0648b627b35c8d9522fe92677cd767c9b8b67
parent104022d5889a7eb92b27a31ccd5ca3f852878fbb (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.h7
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c10
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c2
-rw-r--r--CORE/MAC/inc/sirApi.h1
-rw-r--r--CORE/SERVICES/WMA/wma.c2
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) {