diff options
| author | syeh <syeh@qca.qualcomm.com> | 2014-10-02 02:32:39 +0800 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2014-10-06 20:39:51 +0530 |
| commit | 48ea9feb5442d5239f4e6224ba04e4f6998b5308 (patch) | |
| tree | 3d84156e24adc83c23b102d13205e7731afa2269 | |
| parent | a256a80d56fe76345958d917f1ef5c892d408e3b (diff) | |
qcacld: Support DHCP Server Offload
Support DHCP Server Offload for SAP mode.
Change-Id: I94c35236e0c0092c733528504154c92b059ecdd6
CRs-Fixed: 733164
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 33 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 32 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 76 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 10 | ||||
| -rw-r--r-- | CORE/MAC/src/include/sirParams.h | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 47 | ||||
| -rw-r--r-- | CORE/SME/inc/sme_Api.h | 12 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Api.c | 54 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/macTrace.c | 3 | ||||
| -rw-r--r-- | CORE/WDA/inc/wlan_qct_wda.h | 4 | ||||
| -rw-r--r-- | Kbuild | 1 | ||||
| -rw-r--r-- | firmware_bin/WCNSS_qcom_cfg.usb.ini | 11 |
12 files changed, 285 insertions, 1 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index 7e0d02706f81..bc2ff029f4e2 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -49,6 +49,11 @@ #define FW_MODULE_LOG_LEVEL_STRING_LENGTH (255) +#ifdef DHCP_SERVER_OFFLOAD +#define IPADDR_NUM_ENTRIES (4) +#define IPADDR_STRING_LENGTH (16) +#endif + //Number of items that can be configured #define MAX_CFG_INI_ITEMS 512 @@ -2814,6 +2819,28 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */ #define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN ( 0 ) #define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX ( 1 ) #define CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT ( 0 ) + +#ifdef DHCP_SERVER_OFFLOAD +/* + * Enable/Disable DHCP Server Offload + * Default: Disable + */ +#define CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME "gDHCPServerOffloadEnable" +#define CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN ( 0 ) +#define CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX ( 1 ) +#define CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT ( CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN ) + +/* Max number of DHCP clients to be supported */ +#define CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME "gDHCPMaxNumClients" +#define CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN ( 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 ) + +/* DHCP Server IP*/ +#define CFG_DHCP_SERVER_IP_NAME "gDHCPServerIP" +#define CFG_DHCP_SERVER_IP_DEFAULT "" +#endif /* DHCP_SERVER_OFFLOAD */ + /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ @@ -3417,6 +3444,12 @@ typedef struct v_U32_t extWowApp2TcpRxTimeout; #endif v_BOOL_t gEnableDeauthToDisassocMap; + +#ifdef DHCP_SERVER_OFFLOAD + v_BOOL_t enableDHCPServerOffload; + v_U32_t dhcpMaxNumClients; + v_U8_t dhcpServerIP[IPADDR_STRING_LENGTH]; +#endif /* DHCP_SERVER_OFFLOAD */ } hdd_config_t; #ifdef WLAN_FEATURE_MBSSID diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index 28a407912b6d..c4d7ec634cec 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -3911,6 +3911,27 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT, CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN, CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX ), + +#ifdef DHCP_SERVER_OFFLOAD + REG_VARIABLE( CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer, + hdd_config_t, enableDHCPServerOffload, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT, + CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN, + CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX ), + + REG_VARIABLE( CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME, WLAN_PARAM_Integer, + hdd_config_t, dhcpMaxNumClients, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT, + CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN, + CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX ), + + REG_VARIABLE_STRING( CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String, + hdd_config_t, dhcpServerIP, + VAR_FLAGS_OPTIONAL, + (void *) CFG_DHCP_SERVER_IP_DEFAULT ), +#endif /* DHCP_SERVER_OFFLOAD */ }; #ifdef WLAN_FEATURE_MBSSID @@ -4517,6 +4538,17 @@ void print_hdd_cfg(hdd_context_t *pHddCtx) pHddCtx->cfg_ini->extWowApp2TcpRxTimeout); #endif +#ifdef DHCP_SERVER_OFFLOAD + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, + "Name = [gDHCPServerOffloadEnable] Value = [%u]", + pHddCtx->cfg_ini->enableDHCPServerOffload); + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, + "Name = [gDHCPMaxNumClients] Value = [%u]", + pHddCtx->cfg_ini->dhcpMaxNumClients); + VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, + "Name = [gDHCPServerIP] Value = [%s]", + pHddCtx->cfg_ini->dhcpServerIP); +#endif } #define CFG_VALUE_MAX_LEN 256 diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index da46c2f8dd5a..01065dbbd495 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -5330,6 +5330,76 @@ static void wlan_hdd_set_acs_allowed_channels( return; } +#ifdef DHCP_SERVER_OFFLOAD +static void wlan_hdd_set_dhcp_server_offload(hdd_adapter_t *pHostapdAdapter) +{ + hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pHostapdAdapter); + tpSirDhcpSrvOffloadInfo pDhcpSrvInfo; + tANI_U8 numEntries = 0; + tANI_U8 srv_ip[IPADDR_NUM_ENTRIES]; + tANI_U8 num; + tANI_U32 temp; + + /* Prepare the request to send to SME */ + pDhcpSrvInfo = vos_mem_malloc(sizeof(*pDhcpSrvInfo)); + if (NULL == pDhcpSrvInfo) { + hddLog(VOS_TRACE_LEVEL_ERROR, + "%s: could not allocate tDhcpSrvOffloadInfo!", __func__); + return; + } + + vos_mem_zero(pDhcpSrvInfo, sizeof(*pDhcpSrvInfo)); + + pDhcpSrvInfo->vdev_id = pHostapdAdapter->sessionId; + pDhcpSrvInfo->dhcpSrvOffloadEnabled = TRUE; + pDhcpSrvInfo->dhcpClientNum = pHddCtx->cfg_ini->dhcpMaxNumClients; + + hdd_string_to_u8_array(pHddCtx->cfg_ini->dhcpServerIP, + srv_ip, + &numEntries, + IPADDR_NUM_ENTRIES); + if (numEntries != IPADDR_NUM_ENTRIES) { + hddLog(VOS_TRACE_LEVEL_ERROR, + "%s: incorrect IP address (%s) assigned for DHCP server!", + __func__, pHddCtx->cfg_ini->dhcpServerIP); + goto end; + } + + if ((srv_ip[0] >= 224) && (srv_ip[0] <= 239)) { + hddLog(VOS_TRACE_LEVEL_ERROR, + "%s: invalid IP address (%s)! It could NOT be multicast IP address!", + __func__, pHddCtx->cfg_ini->dhcpServerIP); + goto end; + } + + if (srv_ip[IPADDR_NUM_ENTRIES-1] >= 100) { + hddLog(VOS_TRACE_LEVEL_ERROR, + "%s: invalid IP address (%s)! The last field must be less than 100!", + __func__, pHddCtx->cfg_ini->dhcpServerIP); + goto end; + } + + for (num = 0; num < numEntries; num++) { + temp = srv_ip[num]; + pDhcpSrvInfo->dhcpSrvIP |= (temp << (8 * num)); + } + + if (eHAL_STATUS_SUCCESS != + sme_setDhcpSrvOffload(pHddCtx->hHal, pDhcpSrvInfo)) { + hddLog(VOS_TRACE_LEVEL_ERROR, + "%s: sme_setDHCPSrvOffload fail!", __func__); + goto end; + } + + hddLog(VOS_TRACE_LEVEL_INFO_HIGH, + "%s: enable DHCP Server offload successfully!", __func__); + +end: + vos_mem_free(pDhcpSrvInfo); + return; +} +#endif /* DHCP_SERVER_OFFLOAD */ + #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, struct beacon_parameters *params) @@ -6099,6 +6169,12 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, set_bit(SOFTAP_BSS_STARTED, &pHostapdAdapter->event_flags); wlan_hdd_incr_active_session(pHddCtx, pHostapdAdapter->device_mode); +#ifdef DHCP_SERVER_OFFLOAD + /* set dhcp server offload */ + if (iniConfig->enableDHCPServerOffload) + wlan_hdd_set_dhcp_server_offload(pHostapdAdapter); +#endif /* DHCP_SERVER_OFFLOAD */ + #ifdef WLAN_FEATURE_P2P_DEBUG if (pHostapdAdapter->device_mode == WLAN_HDD_P2P_GO) { diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index 66d9ee949764..c7f351d8b0fa 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -5511,6 +5511,16 @@ typedef struct sAniGetLinkStatus tANI_U8 sessionId; } tAniGetLinkStatus, *tpAniGetLinkStatus; +#ifdef DHCP_SERVER_OFFLOAD +typedef struct +{ + tANI_U32 vdev_id; + tANI_U32 dhcpSrvOffloadEnabled; + tANI_U32 dhcpClientNum; + tANI_U32 dhcpSrvIP; +} tSirDhcpSrvOffloadInfo, *tpSirDhcpSrvOffloadInfo; +#endif /* DHCP_SERVER_OFFLOAD */ + /* find the size of given member within a structure */ #ifndef member_size #define member_size(type, member) (sizeof(((type *)0)->member)) diff --git a/CORE/MAC/src/include/sirParams.h b/CORE/MAC/src/include/sirParams.h index 4594e3844de9..9c5c6db54d77 100644 --- a/CORE/MAC/src/include/sirParams.h +++ b/CORE/MAC/src/include/sirParams.h @@ -656,6 +656,9 @@ typedef struct sSirMbMsgP2p #define SIR_HAL_GET_TEMPERATURE_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 290) #define SIR_HAL_SET_SCAN_MAC_OUI_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 291) +#ifdef DHCP_SERVER_OFFLOAD +#define SIR_HAL_SET_DHCP_SERVER_OFFLOAD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 292) +#endif /* DHCP_SERVER_OFFLOAD */ #define SIR_HAL_MSG_TYPES_END (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF) // CFG message types diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index f208256e0bb5..e116cd04ee49 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -21938,6 +21938,46 @@ VOS_STATUS wma_scan_probe_setoui(tp_wma_handle wma, return VOS_STATUS_SUCCESS; } +#ifdef DHCP_SERVER_OFFLOAD +static int wma_process_dhcpserver_offload(tp_wma_handle wma_handle, + tSirDhcpSrvOffloadInfo *pDhcpSrvOffloadInfo) +{ + wmi_set_dhcp_server_offload_cmd_fixed_param *cmd; + wmi_buf_t buf; + int err; + + buf = wmi_buf_alloc(wma_handle->wmi_handle, sizeof(*cmd)); + if (!buf) { + WMA_LOGE("Failed to allocate buffer to send " + "set_dhcp_server_offload cmd"); + return -ENOMEM; + } + + cmd = (wmi_set_dhcp_server_offload_cmd_fixed_param *)wmi_buf_data(buf); + vos_mem_zero(cmd, sizeof(*cmd)); + + WMITLV_SET_HDR(&cmd->tlv_header, + WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param, + WMITLV_GET_STRUCT_TLVLEN( + wmi_set_dhcp_server_offload_cmd_fixed_param)); + cmd->vdev_id = pDhcpSrvOffloadInfo->vdev_id; + cmd->enable = pDhcpSrvOffloadInfo->dhcpSrvOffloadEnabled; + cmd->num_client = pDhcpSrvOffloadInfo->dhcpClientNum; + cmd->srv_ipv4 = pDhcpSrvOffloadInfo->dhcpSrvIP; + cmd->start_lsb = 0; + err = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, + sizeof(*cmd), WMI_SET_DHCP_SERVER_OFFLOAD_CMDID); + if (err) { + WMA_LOGE("Failed to send set_dhcp_server_offload cmd"); + wmi_buf_free(buf); + return -EIO; + } + WMA_LOGD("Set dhcp server offload to vdevId %d", + pDhcpSrvOffloadInfo->vdev_id); + return 0; +} +#endif /* DHCP_SERVER_OFFLOAD */ + /* * function : wma_mc_process_msg * Description : @@ -22512,6 +22552,13 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg) wma_get_temperature(wma_handle); vos_mem_free(msg->bodyptr); break; +#ifdef DHCP_SERVER_OFFLOAD + case WDA_SET_DHCP_SERVER_OFFLOAD_CMD: + wma_process_dhcpserver_offload(wma_handle, + (tSirDhcpSrvOffloadInfo *)msg->bodyptr); + vos_mem_free(msg->bodyptr); + break; +#endif /* DHCP_SERVER_OFFLOAD */ default: WMA_LOGD("unknow msg type %x", msg->type); /* Do Nothing? MSG Body should be freed at here */ diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h index aa3c494e540c..b3f319412799 100644 --- a/CORE/SME/inc/sme_Api.h +++ b/CORE/SME/inc/sme_Api.h @@ -4069,4 +4069,16 @@ eHalStatus sme_GetTemperature(tHalHandle hHal, -------------------------------------------------------------------------*/ eHalStatus sme_SetScanningMacOui(tHalHandle hHal, tSirScanMacOui *pScanMacOui); +#ifdef DHCP_SERVER_OFFLOAD +/* --------------------------------------------------------------------------- + \fn sme_setDhcpSrvOffload + \brief SME API to set DHCP server offload info + \param hHal + \param pDhcpSrvInfo : DHCP server offload info struct + \- return eHalStatus + -------------------------------------------------------------------------*/ +eHalStatus sme_setDhcpSrvOffload(tHalHandle hHal, + tSirDhcpSrvOffloadInfo *pDhcpSrvInfo); +#endif /* DHCP_SERVER_OFFLOAD */ + #endif //#if !defined( __SME_API_H ) diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c index dd8729a01ba1..200637bdab10 100644 --- a/CORE/SME/src/sme_common/sme_Api.c +++ b/CORE/SME/src/sme_common/sme_Api.c @@ -14085,5 +14085,57 @@ eHalStatus sme_SetScanningMacOui(tHalHandle hHal, tSirScanMacOui *pScanMacOui) } return status; } - #endif + +#ifdef DHCP_SERVER_OFFLOAD +/* --------------------------------------------------------------------------- + \fn sme_setDhcpSrvOffload + \brief SME API to set DHCP server offload info + \param hHal + \param pDhcpSrvInfo : DHCP server offload info struct + \- return eHalStatus + -------------------------------------------------------------------------*/ +eHalStatus sme_setDhcpSrvOffload(tHalHandle hHal, + tSirDhcpSrvOffloadInfo *pDhcpSrvInfo) +{ + vos_msg_t vosMessage; + tSirDhcpSrvOffloadInfo *pSmeDhcpSrvInfo; + eHalStatus status = eHAL_STATUS_SUCCESS; + tpAniSirGlobal pMac = PMAC_STRUCT(hHal); + + pSmeDhcpSrvInfo = vos_mem_malloc(sizeof(*pSmeDhcpSrvInfo)); + + if (!pSmeDhcpSrvInfo) { + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, + "%s: Not able to allocate memory for WDA_SET_DHCP_SERVER_OFFLOAD_CMD", + __func__); + return eHAL_STATUS_E_MALLOC_FAILED; + } + + *pSmeDhcpSrvInfo = *pDhcpSrvInfo; + + status = sme_AcquireGlobalLock(&pMac->sme); + if (eHAL_STATUS_SUCCESS == status) { + /* serialize the req through MC thread */ + vosMessage.type = WDA_SET_DHCP_SERVER_OFFLOAD_CMD; + vosMessage.bodyptr = pSmeDhcpSrvInfo; + + if (!VOS_IS_STATUS_SUCCESS( + vos_mq_post_message(VOS_MODULE_ID_WDA, &vosMessage))) { + VOS_TRACE( VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, + "%s: Not able to post WDA_SET_DHCP_SERVER_OFFLOAD_CMD to WDA!", + __func__); + vos_mem_free(pSmeDhcpSrvInfo); + status = eHAL_STATUS_FAILURE; + } + sme_ReleaseGlobalLock(&pMac->sme); + } else { + VOS_TRACE( VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, + "%s: sme_AcquireGlobalLock error!", + __func__); + vos_mem_free(pSmeDhcpSrvInfo); + } + + return (status); +} +#endif /* DHCP_SERVER_OFFLOAD */ diff --git a/CORE/SYS/legacy/src/utils/src/macTrace.c b/CORE/SYS/legacy/src/utils/src/macTrace.c index 53a942e7b6cd..1351f0fcd94c 100644 --- a/CORE/SYS/legacy/src/utils/src/macTrace.c +++ b/CORE/SYS/legacy/src/utils/src/macTrace.c @@ -822,6 +822,9 @@ tANI_U8* macTraceGetWdaMsgString( tANI_U16 wdaMsg ) #endif CASE_RETURN_STRING(SIR_HAL_SET_BASE_MACADDR_IND); CASE_RETURN_STRING(WDA_LINK_STATUS_GET_REQ); +#ifdef DHCP_SERVER_OFFLOAD + CASE_RETURN_STRING(WDA_SET_DHCP_SERVER_OFFLOAD_CMD); +#endif default: return((tANI_U8*) "UNKNOWN" ); break; diff --git a/CORE/WDA/inc/wlan_qct_wda.h b/CORE/WDA/inc/wlan_qct_wda.h index e91a39acc4de..0181e7c3dc77 100644 --- a/CORE/WDA/inc/wlan_qct_wda.h +++ b/CORE/WDA/inc/wlan_qct_wda.h @@ -985,6 +985,10 @@ tSirRetStatus uMacPostCtrlMsg(void* pSirGlobal, tSirMbMsg* pMb); #define WDA_SET_SCAN_MAC_OUI_REQ SIR_HAL_SET_SCAN_MAC_OUI_REQ +#ifdef DHCP_SERVER_OFFLOAD +#define WDA_SET_DHCP_SERVER_OFFLOAD_CMD SIR_HAL_SET_DHCP_SERVER_OFFLOAD +#endif /* DHCP_SERVER_OFFLOAD */ + tSirRetStatus wdaPostCtrlMsg(tpAniSirGlobal pMac, tSirMsgQ *pMsg); #define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40 // Bit 6 will be used to control BD rate for Management frames @@ -918,6 +918,7 @@ endif ifeq ($(CONFIG_QCA_WIFI_SDIO), 1) CDEFINES += -DFEATURE_WLAN_FORCE_SAP_SCC +CDEFINES += -DDHCP_SERVER_OFFLOAD endif ifeq ($(CONFIG_ARCH_MSM), y) diff --git a/firmware_bin/WCNSS_qcom_cfg.usb.ini b/firmware_bin/WCNSS_qcom_cfg.usb.ini index 33eb4c3b2fce..58225c200c9b 100644 --- a/firmware_bin/WCNSS_qcom_cfg.usb.ini +++ b/firmware_bin/WCNSS_qcom_cfg.usb.ini @@ -516,6 +516,17 @@ gEnableSapSuspend=0 # Enable TxBF gTxBFEnable=1 + +# Enable or Disable DHCP Server offload +# 1=Enable, 0=Disable (default) +gDHCPServerOffloadEnable=0 +# Set max number of DHCP Clients +# Its value could not be greater than 8 +#gDHCPMaxNumClients=8 +# Set DHCP server IP +# 4th field could not be greater than 99, that is xxx,xxx,xxx,0 ~ xxx,xxx,xxx,99 +# 1st field could not be within the range of 224 ~ 239 (multicast IP address) +#gDHCPServerIP=192,168,1,2 END # Note: Configuration parser would not read anything past the END marker |
