/*
 *      Header file of AP mib
 *      Authors: David Hsu	<davidhsu@realtek.com.tw>
 *
 *      $Id: apmib.h,v 1.54 2009/09/15 02:12:24 bradhuang Exp $
 *
 */


#ifndef INCLUDE_APMIB_H
#define INCLUDE_APMIB_H

/* Forrest, 2007.11.07.
 * If you want to let APMIB adopt shared memory mechanism, define it to 1.
 * Or define it to 0 will go back to original local copy mechanism.
 * Note: 
 *   1. I only use shared memory for HW Configuration (pHwSetting), Default 
 *      Configuration (pMibDef) and Current Configuration (pMib). There is
 *      no shared memory for each linkchain now.
 *   2. Because uClibc does not support POSIX inter-process semaphore, I have
 *      to use SYSTEM V semaphore and shared memory. So if you want to adopt
 *      shared memory mechanism, you must go to turn on CONFIG_SYSVIPC 
 *      kernel config to support it.
 */
#ifdef CONFIG_APMIB_SHARED 
	#define CONFIG_APMIB_SHARED_MEMORY	1
#else
	#define CONFIG_APMIB_SHARED_MEMORY	0
#endif

// added by rock /////////////////////////////////////////
#ifdef VOIP_SUPPORT
#include "voip_flash.h"
#include "voip_flash_mib.h"
#endif

#if defined(CONFIG_DOMAIN_NAME_QUERY_SUPPORT)
//#define LOGDEBUG_ENABLED
#endif

#define MBSSID

//hf
//#define CONFIG_RTL_BT_CLIENT

#define COMPRESS_MIB_SETTING
#define MIB_TLV

#ifdef MIB_TLV
#define MIB_TABLE_LIST 0x8000
#else
#define MIB_TABLE_LIST 0x0
#endif

//#ifdef HOME_GATEWAY
//#define GW_QOS_ENGINE
//#endif
#ifdef ENABLE_QOS // thru makefile
	#ifndef QOS_BY_BANDWIDTH
		#define GW_QOS_ENGINE
	#endif
#endif
#ifdef VOIP_SUPPORT
#ifndef HEADER_LEN_INT
#define HEADER_LEN_INT
#endif
#endif
#if defined(CONFIG_RTL_92D_SUPPORT)||defined(HAVE_RTK_DUAL_BAND_SUPPORT)
#define NUM_WLAN_INTERFACE		2	// number of wlan interface supported
#else
#define NUM_WLAN_INTERFACE		1	// number of wlan interface supported
#endif

#if defined(CONFIG_RTL_819X)
#define NUM_WLAN_MULTIPLE_SSID	8	// number of wlan ssid support
#else
//!CONFIG_RTL_8196B => rtl8651c+rtl8190
#define NUM_WLAN_MULTIPLE_SSID	5	// number of wlan ssid support
#endif

#ifdef MBSSID 
#define NUM_VWLAN		4	// number of virtual wlan interface supported
#else
#define NUM_VWLAN		0
#endif

#if defined(UNIVERSAL_REPEATER) && defined(CONFIG_RTL_ULINKER)
	#define NUM_VWLAN_INTERFACE		NUM_VWLAN+4  //+4 is ulinker_ap, ulinker_cl, ulinker_rpt, repeater(vxd)
#elif defined(CONFIG_RTL_ULINKER)
	#define NUM_VWLAN_INTERFACE		NUM_VWLAN+2  //+2 is ulinker_ap, ulinker_cl
#elif defined(UNIVERSAL_REPEATER)
#define NUM_VWLAN_INTERFACE		NUM_VWLAN+1
#else
#define NUM_VWLAN_INTERFACE		NUM_VWLAN
#endif

#if defined(UNIVERSAL_REPEATER) && defined(CONFIG_RTL_ULINKER)
	#define ULINKER_AP_MIB	(NUM_VWLAN_INTERFACE-3)
	#define ULINKER_CL_MIB	(NUM_VWLAN_INTERFACE-2)
	#define ULINKER_RPT_MIB (NUM_VWLAN_INTERFACE-1)
#elif defined(CONFIG_RTL_ULINKER)
	#define ULINKER_AP_MIB	(NUM_VWLAN_INTERFACE-1)
	#define ULINKER_CL_MIB	(NUM_VWLAN_INTERFACE)
#endif

// WLAN MIB id
#define MIB_WLAN_SSID			1
#define MIB_WLAN_CHANNEL		2
#define MIB_WLAN_WEP			3
#define MIB_WLAN_WEP64_KEY1		4
#define MIB_WLAN_WEP64_KEY2		5
#define MIB_WLAN_WEP64_KEY3		6
#define MIB_WLAN_WEP64_KEY4		7
#define MIB_WLAN_WEP128_KEY1		8
#define MIB_WLAN_WEP128_KEY2		9
#define MIB_WLAN_WEP128_KEY3		10
#define MIB_WLAN_WEP128_KEY4		11
#define MIB_WLAN_WEP_KEY_TYPE		12
#define MIB_WLAN_WEP_DEFAULT_KEY	13
#define MIB_WLAN_FRAG_THRESHOLD		14
#define MIB_WLAN_SUPPORTED_RATES		15
#define MIB_WLAN_BEACON_INTERVAL	16
#define MIB_WLAN_PREAMBLE_TYPE		17
#define MIB_WLAN_BASIC_RATES		18
#define MIB_WLAN_RTS_THRESHOLD		19
#define MIB_WLAN_AUTH_TYPE		20
#define MIB_WLAN_HIDDEN_SSID		21
#define MIB_WLAN_WLAN_DISABLED		22
#define MIB_ELAN_MAC_ADDR		23
#define MIB_WLAN_WLAN_MAC_ADDR		24
#define MIB_WLAN_ENCRYPT		25
#define MIB_WLAN_ENABLE_SUPP_NONWPA	26
#define MIB_WLAN_SUPP_NONWPA		27
#define MIB_WLAN_WPA_AUTH		28
#define MIB_WLAN_WPA_CIPHER_SUITE	29
#define MIB_WLAN_WPA_PSK		30
#define MIB_WLAN_WPA_GROUP_REKEY_TIME	31
#define MIB_WLAN_RS_IP			32
#define MIB_WLAN_RS_PORT		33
#define MIB_WLAN_RS_PASSWORD		34
#define MIB_WLAN_ENABLE_1X		35
#define MIB_WLAN_PSK_FORMAT		36
#define MIB_WLAN_WPA2_PRE_AUTH		37
#define MIB_WLAN_WPA2_CIPHER_SUITE	38
#define MIB_WLAN_ACCOUNT_RS_ENABLED	39
#define MIB_WLAN_ACCOUNT_RS_IP		40
#define MIB_WLAN_ACCOUNT_RS_PORT	41
#define MIB_WLAN_ACCOUNT_RS_PASSWORD	42
#define MIB_WLAN_ACCOUNT_RS_UPDATE_ENABLED	43
#define MIB_WLAN_ACCOUNT_RS_UPDATE_DELAY	44
#define MIB_WLAN_MAC_AUTH_ENABLED	45
#define MIB_WLAN_RS_MAXRETRY		46
#define MIB_WLAN_RS_INTERVAL_TIME	47
#define MIB_WLAN_ACCOUNT_RS_MAXRETRY	48
#define MIB_WLAN_ACCOUNT_RS_INTERVAL_TIME 49

#define MIB_WLAN_INACTIVITY_TIME	50
#define MIB_WLAN_RATE_ADAPTIVE_ENABLED	51
#define MIB_WLAN_MACAC_ENABLED		52
#define MIB_WLAN_MACAC_NUM			53
#define MIB_WLAN_MACAC_ADDR			((MIB_WLAN_MACAC_NUM+1)|MIB_TABLE_LIST)
#define MIB_WLAN_AC_ADDR_ADD		((MIB_WLAN_MACAC_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_WLAN_AC_ADDR_DEL		((MIB_WLAN_MACAC_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_WLAN_AC_ADDR_DELALL		((MIB_WLAN_MACAC_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_WLAN_DTIM_PERIOD		58
#define MIB_WLAN_MODE			59
#define MIB_WLAN_NETWORK_TYPE		60
#define MIB_WLAN_DEFAULT_SSID		61	// used while configured as Ad-hoc and no any other Ad-hoc could be joined
						// it will use this default SSID to start BSS
#define MIB_WLAN_IAPP_DISABLED		62
#define MIB_WLAN_WDS_ENABLED		63
#define MIB_WLAN_WDS_NUM		64
#define MIB_WLAN_WDS			((MIB_WLAN_WDS_NUM+1)|MIB_TABLE_LIST)
#define MIB_WLAN_WDS_ADD		((MIB_WLAN_WDS_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_WLAN_WDS_DEL		((MIB_WLAN_WDS_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_WLAN_WDS_DELALL		((MIB_WLAN_WDS_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_WLAN_WDS_ENCRYPT		69
#define MIB_WLAN_WDS_WEP_FORMAT		70
#define MIB_WLAN_WDS_WEP_KEY		71
#define MIB_WLAN_WDS_PSK_FORMAT		72
#define MIB_WLAN_WDS_PSK		73
#define MIB_WLAN_BAND			74
#define MIB_WLAN_FIX_RATE		75
#define MIB_WLAN_BLOCK_RELAY		76
#define MIB_WLAN_MACCLONE_ENABLED	77
#define MIB_WLAN_PROTECTION_DISABLED 	78
#ifdef TLS_CLIENT
//sc_yang for client mode TLS
#define MIB_CERTROOT_TBL_NUM			79
#define MIB_CERTROOT_TBL			((MIB_CERTROOT_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_CERTROOT_ADD			((MIB_CERTROOT_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)	
#define MIB_CERTROOT_DEL			((MIB_CERTROOT_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_CERTROOT_DELALL			((MIB_CERTROOT_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_CERTUSER_TBL_NUM			84
#define MIB_CERTUSER_TBL			((MIB_CERTUSER_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_CERTUSER_ADD			((MIB_CERTUSER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)	
#define MIB_CERTUSER_DEL			((MIB_CERTUSER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_CERTUSER_DELALL			((MIB_CERTUSER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#endif

// for WMM
#define MIB_WLAN_WMM_ENABLED 89

#ifdef WLAN_EASY_CONFIG
#define MIB_WLAN_EASYCFG_ENABLED	90
#define MIB_WLAN_EASYCFG_MODE		91
#define MIB_WLAN_EASYCFG_SSID		92
#define MIB_WLAN_EASYCFG_KEY		93
#define MIB_WLAN_EASYCFG_ALG_REQ	94
#define MIB_WLAN_EASYCFG_ALG_SUPP	95
#define MIB_WLAN_EASYCFG_DIGEST		96
#define MIB_WLAN_EASYCFG_ROLE		97
#define MIB_WLAN_EASYCFG_SCAN_SSID	98
#define MIB_WLAN_EASYCFG_WLAN_MODE	99
#endif // WLAN_EASY_CONFIG

#ifdef MIB_TLV
#define MIB_ROOT	(100|MIB_TABLE_LIST)
#define MIB_WLAN_ROOT	(101|MIB_TABLE_LIST)
#else  //etop modify
#define MIB_ROOT	(100|MIB_TABLE_LIST)
#define MIB_WLAN_ROOT	(101|MIB_TABLE_LIST)

#endif
#if defined(CONFIG_RTL_8198_AP_ROOT) || defined(CONFIG_RTL_8197D_AP)
#define MIB_NTP_ENABLED                 151
#define MIB_NTP_SERVER_ID               152
#define MIB_NTP_TIMEZONE                153
#define MIB_NTP_SERVER_IP1              154
#define MIB_NTP_SERVER_IP2              155
#endif

#define MIB_WAN_MAC_ADDR		100
#define MIB_WAN_IP_ADDR			101
#define MIB_WAN_SUBNET_MASK		102
#define MIB_WAN_DEFAULT_GATEWAY		103
#define MIB_WAN_DHCP			104
#define MIB_DNS_MODE		105
#define MIB_PPP_USER_NAME			106
#define MIB_PPP_PASSWORD		107
#define MIB_PPP_IDLE_TIME		108
#define MIB_PPP_CONNECT_TYPE		109

#ifdef HOME_GATEWAY

#define MIB_PORTFW_ENABLED		110
#define MIB_PORTFW_TBL_NUM			111
#define MIB_PORTFW_TBL			((MIB_PORTFW_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_PORTFW_ADD			((MIB_PORTFW_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_PORTFW_DEL			((MIB_PORTFW_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_PORTFW_MOD			((MIB_PORTFW_TBL_NUM+3)|MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)
#define MIB_PORTFW_DELALL		((MIB_PORTFW_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_IPFILTER_ENABLED		116
#define MIB_IPFILTER_TBL_NUM		117
#define MIB_IPFILTER_TBL		((MIB_IPFILTER_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_IPFILTER_ADD		((MIB_IPFILTER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_IPFILTER_DEL		((MIB_IPFILTER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_IPFILTER_DELALL		((MIB_IPFILTER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_MACFILTER_ENABLED		122
#define MIB_MACFILTER_TBL_NUM		123
#define MIB_MACFILTER_TBL			((MIB_MACFILTER_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_MACFILTER_ADD		((MIB_MACFILTER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_MACFILTER_DEL		((MIB_MACFILTER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_MACFILTER_DELALL		((MIB_MACFILTER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_PORTFILTER_ENABLED		128
#define MIB_PORTFILTER_TBL_NUM		129
#define MIB_PORTFILTER_TBL			((MIB_PORTFILTER_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_PORTFILTER_ADD		((MIB_PORTFILTER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_PORTFILTER_DEL		((MIB_PORTFILTER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_PORTFILTER_DELALL		((MIB_PORTFILTER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_TRIGGERPORT_ENABLED		134
#define MIB_TRIGGERPORT_TBL_NUM		135
#define MIB_TRIGGERPORT_TBL			((MIB_TRIGGERPORT_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_TRIGGERPORT_ADD		((MIB_TRIGGERPORT_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_TRIGGERPORT_DEL		((MIB_TRIGGERPORT_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_TRIGGERPORT_DELALL		((MIB_TRIGGERPORT_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_DMZ_ENABLED			140
#define MIB_DMZ_HOST			141
#define MIB_UPNP_ENABLED		142
#define MIB_UPNP_IGD_NAME		143
#endif //#ifdef HOME_GATEWAY

#define MIB_PPP_MTU_SIZE		144
#define MIB_PPTP_IP_ADDR			145
#define MIB_PPTP_SUBNET_MASK		146
#define MIB_PPTP_SERVER_IP_ADDR		147
#define MIB_PPTP_USER_NAME			148
#define MIB_PPTP_PASSWORD		149
#define MIB_PPTP_MTU_SIZE		150
#define MIB_NTP_ENABLED 		151
#define MIB_NTP_SERVER_ID 		152
#define MIB_NTP_TIMEZONE 		153
#define MIB_NTP_SERVER_IP1		154
#define MIB_NTP_SERVER_IP2		155
#define MIB_PPTP_SECURITY_ENABLED 	156
#define MIB_FIXED_IP_MTU_SIZE	157
#define MIB_DHCP_MTU_SIZE		158
#define MIB_PPTP_MPPC_ENABLED	159

#ifdef HOME_GATEWAY

#ifdef VPN_SUPPORT
#define MIB_IPSECTUNNEL_ENABLED		160
#define MIB_IPSECTUNNEL_TBL_NUM		161
#define MIB_IPSECTUNNEL_TBL		((MIB_IPSECTUNNEL_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_IPSECTUNNEL_ADD		((MIB_IPSECTUNNEL_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_IPSECTUNNEL_DEL		((MIB_IPSECTUNNEL_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_IPSECTUNNEL_DELALL		((MIB_IPSECTUNNEL_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_IPSEC_NATT_ENABLED		167
#define MIB_IPSEC_RSA_FILE 		168
#endif
#endif // HOME_GATEWAY

#define MIB_IP_ADDR			170
#define MIB_SUBNET_MASK			171
#define MIB_DEFAULT_GATEWAY		172
#define MIB_DHCP			173
#define MIB_DHCP_CLIENT_START		174
#define MIB_DHCP_CLIENT_END		175
#define MIB_DNS1			176
#define MIB_DNS2			177
#define MIB_DNS3			178
#define MIB_STP_ENABLED			179
#ifdef SUPER_NAME_SUPPORT
#define MIB_SUPER_NAME			180
#define MIB_SUPER_PASSWORD		181
#endif
#define MIB_USER_NAME			182
#define	MIB_USER_PASSWORD		183
#define MIB_SCRLOG_ENABLED			184
#define MIB_AUTO_DISCOVERY_ENABLED	185
#define MIB_DEVICE_NAME			186

#ifdef HOME_GATEWAY			
#define MIB_DDNS_ENABLED		187
#define MIB_DDNS_TYPE			188
#define MIB_DDNS_DOMAIN_NAME		189
#define MIB_DDNS_USER			190
#define MIB_DDNS_PASSWORD		191
#endif
#define MIB_OP_MODE			192
#define MIB_WISP_WAN_ID			193

#ifdef HOME_GATEWAY
#define	MIB_WEB_WAN_ACCESS_ENABLED		194
#define	MIB_PING_WAN_ACCESS_ENABLED		195
#define MIB_HOST_NAME			197
#endif

#define MIB_DOMAIN_NAME			198

#ifdef MIB_TLV
//#define MIB_TABLE_LIST 0x8000
#define MIB_ID_MASK (0x8000-1)
#define MIB_HW_ROOT	(200|MIB_TABLE_LIST)
#define MIB_HW_WLAN_ROOT	(201|MIB_TABLE_LIST)
#define MIB_ADD_TBL_ENTRY 		0x10000
#define MIB_DEL_TBL_ENTRY 		0x20000
#define MIB_DELALL_TBL_ENTRY 	        0x40000
#define MIB_MOD_TBL_ENTRY 		0x100000
#define MIB_WLAN_TBL  			0x80000
#else //etop modify :for config
//#define MIB_TABLE_LIST 0x8000
#define MIB_ID_MASK (0x8000-1)
#define MIB_HW_ROOT	(200|MIB_TABLE_LIST)
#define MIB_HW_WLAN_ROOT	(201|MIB_TABLE_LIST)
#define MIB_ADD_TBL_ENTRY 		0x10000
#define MIB_DEL_TBL_ENTRY 		0x20000
#define MIB_MOD_TBL_ENTRY 		0x100000
#define MIB_DELALL_TBL_ENTRY 	        0x40000
#define MIB_WLAN_TBL  			0x80000
#endif // #ifdef MIB_TLV

// Hardware setting MIB
#define MIB_HW_BOARD_VER		200
#define MIB_HW_NIC0_ADDR		201
#define MIB_HW_NIC1_ADDR		202
#define MIB_HW_WLAN_ADDR		203
#define MIB_HW_REG_DOMAIN		204
#define MIB_HW_RF_TYPE			205
#define MIB_HW_TX_POWER_CCK		206
#define MIB_HW_TX_POWER_OFDM		207
#define MIB_HW_ANT_DIVERSITY		208
#define MIB_HW_TX_ANT			209
#define MIB_HW_CCA_MODE			210
#define MIB_HW_PHY_TYPE			211
#define MIB_HW_LED_TYPE			212
#define MIB_HW_INIT_GAIN		213


#ifdef TLS_CLIENT
#define MIB_ROOT_IDX			214
#define MIB_USER_IDX			215
#endif
#ifdef ROUTE_SUPPORT
#define MIB_STATICROUTE_ENABLED         216
#define MIB_STATICROUTE_TBL_NUM         217
#define MIB_STATICROUTE_TBL             ((MIB_STATICROUTE_TBL_NUM+1)|MIB_TABLE_LIST) /*218*/
#define MIB_STATICROUTE_ADD             ((MIB_STATICROUTE_TBL_NUM+2) | MIB_ADD_TBL_ENTRY)
#define MIB_STATICROUTE_DEL             ((MIB_STATICROUTE_TBL_NUM+3) | MIB_DEL_TBL_ENTRY)
#define MIB_STATICROUTE_MOD             ((MIB_STATICROUTE_TBL_NUM+3) | MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)
#define MIB_STATICROUTE_DELALL          ((MIB_STATICROUTE_TBL_NUM+4) | MIB_DELALL_TBL_ENTRY)/*221*/
#define MIB_RIP_ENABLED			222
#define MIB_RIP_LAN_TX 			223
#define MIB_RIP_LAN_RX 			224
#define MIB_RIP_WAN_TX 			225
#define MIB_RIP_WAN_RX 			226
#ifdef RIP6_SUPPORT
#define MIB_RIP6_ENABLED			222+2254
#endif
#endif

#define MIB_REMOTELOG_ENABLED 		227
#define MIB_REMOTELOG_SERVER		228

#ifdef HOME_GATEWAY
#ifdef DOS_SUPPORT
#define MIB_DOS_ENABLED 			229
#define MIB_DOS_SYSSYN_FLOOD 		230
#define MIB_DOS_SYSFIN_FLOOD 		231
#define MIB_DOS_SYSUDP_FLOOD 		232
#define MIB_DOS_SYSICMP_FLOOD 	233
#define MIB_DOS_PIPSYN_FLOOD 		234
#define MIB_DOS_PIPFIN_FLOOD 		235
#define MIB_DOS_PIPUDP_FLOOD 		236
#define MIB_DOS_PIPICMP_FLOOD 		237
#define MIB_DOS_BLOCK_TIME 		238
#endif
#define MIB_URLFILTER_ENABLED		239
#define MIB_URLFILTER_TBL_NUM			240
#define MIB_URLFILTER_TBL			((MIB_URLFILTER_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_URLFILTER_ADD			((MIB_URLFILTER_TBL_NUM+2) | MIB_ADD_TBL_ENTRY)
#define MIB_URLFILTER_DEL			((MIB_URLFILTER_TBL_NUM+3) | MIB_DEL_TBL_ENTRY)
#define MIB_URLFILTER_DELALL		        ((MIB_URLFILTER_TBL_NUM+4)| MIB_DELALL_TBL_ENTRY)
//#define MIB_URLFILTER_MODE		255

#define MIB_VPN_PASSTHRU_IPSEC_ENABLED	245
#define MIB_VPN_PASSTHRU_PPTP_ENABLED	246
#define MIB_VPN_PASSTHRU_L2TP_ENABLED	247
#define MIB_CUSTOM_PASSTHRU_ENABLED		386
#endif

//#ifdef SNMP_SUPPORT Keith remove
#define MIB_SNMP_RO_COMMUNITY           248
#define MIB_SNMP_RW_COMMUNITY           249
//#endif Keith remove
#ifdef UNIVERSAL_REPEATER
#define MIB_REPEATER_ENABLED1		250
#define MIB_REPEATER_SSID1		251
#define MIB_REPEATER_ENABLED2		252
#define MIB_REPEATER_SSID2		253
#endif

// added by rock /////////////////////////////////////////
#ifdef VOIP_SUPPORT
#define MIB_VOIP_CFG			254
#endif // VOIP_SUPPORT

#define MIB_URLFILTER_MODE		255

#define MIB_WIFI_SPECIFIC		260

#define MIB_PPP_SERVICE_NAME			261

#define MIB_WLAN_TURBO_MODE			262
#define MIB_WLAN_RFPOWER_SCALE		263

#if defined(WIFI_SIMPLE_CONFIG) || defined(HAVE_WIFI_SIMPLE_CONFIG)
#define MIB_WLAN_WSC_DISABLE 		270
#define MIB_WLAN_WSC_METHOD			271
#define MIB_WLAN_WSC_CONFIGURED		272
#define MIB_HW_WSC_PIN				273
#define MIB_WLAN_WSC_AUTH			274
#define MIB_WLAN_WSC_ENC				275
#define MIB_WLAN_WSC_MANUAL_ENABLED 	276
#define MIB_WLAN_WSC_PSK				277
#define MIB_WLAN_WSC_SSID			278
#define MIB_WLAN_WSC_UPNP_ENABLED	279
#define MIB_WLAN_WSC_REGISTRAR_ENABLED 	280
#define MIB_WLAN_WSC_CONFIGBYEXTREG 	281
#endif
//Brad addd
#define MIB_DAYLIGHT_SAVE		282
#define MIB_IGMP_PROXY_DISABLED		283
//Brad add for 11N
#define MIB_WLAN_CHANNEL_BONDING 284
#define MIB_WLAN_CONTROL_SIDEBAND 285
#define MIB_WLAN_AGGREGATION 286
#define MIB_WLAN_SHORT_GI 287
//Brad define 
#define MIB_WLAN_WEP64_KEY		288
#define MIB_WLAN_WEP128_KEY		289

#define MIB_HW_11N_XCAP			290
#define MIB_HW_11N_RXIMR		291
#define MIB_DHCPRSVDIP_ENABLED		292
#define MIB_DHCPRSVDIP_TBL_NUM		293
#define MIB_DHCPRSVDIP_TBL			((MIB_DHCPRSVDIP_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_DHCPRSVDIP_ADD       	((MIB_DHCPRSVDIP_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_DHCPRSVDIP_DEL        	((MIB_DHCPRSVDIP_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_DHCPRSVDIP_DELALL		((MIB_DHCPRSVDIP_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)
#define MIB_HW_11N_LOFDMPWD    298
#define MIB_HW_11N_ANTPWD_B     299
#define MIB_HW_11N_ANTPWD_C     300
#define MIB_HW_11N_ANTPWD_D     301
#define MIB_HW_11N_THER_RFIC        302
#define MIB_HW_WLAN_ADDR1		303
#define MIB_HW_WLAN_ADDR2		304
#define MIB_HW_WLAN_ADDR3		305
#define MIB_HW_WLAN_ADDR4		306

// GW_QOS_ENGINE
#define MIB_QOS_ENABLED		       307
#define MIB_QOS_AUTO_UPLINK_SPEED      308
#define MIB_QOS_MANUAL_UPLINK_SPEED    309
#define MIB_QOS_RULE_TBL_NUM	       310
#define MIB_QOS_RULE_TBL		      ((MIB_QOS_RULE_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_QOS_ADD		       		((MIB_QOS_RULE_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_QOS_DEL		            ((MIB_QOS_RULE_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_QOS_DELALL		        ((MIB_QOS_RULE_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

#define MIB_WLAN_ACCESS			315
#define MIB_WLAN_PRIORITY		316

#define MIB_START_MP	317

#define MIB_SYSTIME_YEAR	321
#define MIB_SYSTIME_MON	322
#define MIB_SYSTIME_DAY		323
#define MIB_SYSTIME_HOUR	324
#define MIB_SYSTIME_MIN		325
#define MIB_SYSTIME_SEC		326

/* # keith: add l2tp support. 20080515 */
#define MIB_L2TP_IP_ADDR					331
#define MIB_L2TP_SUBNET_MASK			332
#define MIB_L2TP_SERVER_IP_ADDR			333
#define MIB_L2TP_USER_NAME				334
#define MIB_L2TP_PASSWORD			335
#define MIB_L2TP_MTU_SIZE			336
#define MIB_L2TP_CONNECTION_TYPE	337
#define MIB_L2TP_IDLE_TIME 			338

// Patch for our router under another router to dial up l2tp
#define MIB_L2TP_DEFAULT_GW		339

// Patch for our router under another router to dial up pptp
#define MIB_PPTP_DEFAULT_GW	340
#define MIB_PPTP_WAN_IP_DYNAMIC 	341
#ifdef CONFIG_GET_SERVER_IP_BY_DOMAIN
#define MIB_PPTP_SERVER_DOMAIN	342
#define MIB_PPTP_GET_SERV_BY_DOMAIN 343
#endif
#ifndef _PATH_PROCNET_DEV
#define _PATH_PROCNET_DEV "/proc/net/dev"
#endif
#ifndef _PATH_PROCNET_IFINET6
#define _PATH_PROCNET_IFINET6 "/proc/net/if_inet6"
#endif
#define MIB_HAME_LANG 16029
#ifdef CONFIG_IPV6
#ifdef CONFIG_IPV6_CE_ROUTER_SUPPORT
#define	MIB_IPV6_ULA_ENABLE		350
#define	MIB_IPV6_ULA_MODE		351
#define MIB_IPV6_ADDR_ULA_PARAM	352
#endif
#define MIB_IPV6_ID                        370
#define MIB_IPV6_RADVD_PARAM 		(MIB_IPV6_ID)
#define MIB_IPV6_DNSV6_PARAM 		(MIB_IPV6_ID+1)
#define MIB_IPV6_DHCPV6S_PARAM 		(MIB_IPV6_ID+2)
#define MIB_IPV6_ADDR_PARAM 		(MIB_IPV6_ID+3)
#define MIB_IPV6_TUNNEL_PARAM 		(MIB_IPV6_ID+4)
#define MIB_IPV6_DHCPV6C_PARAM 		(MIB_IPV6_ID+5)
#define MIB_IPV6_ADDR6_PARAM 		(MIB_IPV6_ID+6)
#define MIB_IPV6_ADDR_LAN_PARAM 	(MIB_IPV6_ID+7)
#define MIB_IPV6_ADDR_WAN_PARAM 	(MIB_IPV6_ID+8)
#define MIB_IPV6_ADDR_GW_PARAM		(MIB_IPV6_ID+9)
#define MIB_IPV6_ADDR_PFEFIX_PARAM	(MIB_IPV6_ID+10)
#define MIB_IPV6_ADDR_DNS_PARAM		(MIB_IPV6_ID+11)
#define MIB_IPV6_ADDR_DNS_SECONDARY	369
#define MIB_IPV6_ORIGIN_TYPE		(MIB_IPV6_ID+12)
#define MIB_IPV6_LINK_TYPE			(MIB_IPV6_ID+13)
#define MIB_IPV6_WAN_ENABLE			(MIB_IPV6_ID+14)
#define MIB_IPV6_DNS_AUTO			(MIB_IPV6_ID+15)
#define MIB_MLD_PROXY_DISABLED		(MIB_IPV6_ID+16)
#define MIB_IPV6_DHCP_MODE			(MIB_IPV6_ID+17)
#define MIB_IPV6_DHCP_PD_ENABLE		(MIB_IPV6_ID+18)
#define MIB_IPV6_DHCP_RAPID_COMMIT_ENABLE		(MIB_IPV6_ID+19)
#define MIB_IPV6_DHCPC_RAPID_COMMIT		(MIB_IPV6_ID+20)
#ifdef TR181_SUPPORT
#define IPV6_DHCPC_SENDOPT_NUM	10
#define IPV6_DHCPC_RCVOPT_NUM	16
#define MIB_IPV6_DHCPC_REQUEST_ADDR	(MIB_IPV6_ID+21)
#define MIB_IPV6_DHCPC_SUGGESTEDT1		(MIB_IPV6_ID+22)
#define MIB_IPV6_DHCPC_SUGGESTEDT2		(MIB_IPV6_ID+23)
#define MIB_IPV6_DHCPC_SENDOPT_TBL_NUM	(MIB_IPV6_ID+25)
#define MIB_IPV6_DHCPC_SENDOPT_TBL  ((MIB_IPV6_DHCPC_SENDOPT_TBL_NUM+1)|MIB_TABLE_LIST) 
#define MIB_IPV6_DHCPC_SENDOPT_MOD  ((MIB_IPV6_DHCPC_SENDOPT_TBL_NUM+3) | MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)

#define MIB_IPV6_DHCPC_SENDOPT_ENABLE	(MIB_IPV6_ID+31)
#define MIB_IPV6_DHCPC_SENDOPT_TAG		(MIB_IPV6_ID+32)
#define MIB_IPV6_DHCPC_SENDOPT_VALUE	(MIB_IPV6_ID+33)
#define MIB_IPV6_DHCPC_IFACE			(MIB_IPV6_ID+34)
#define MIB_IPV6_DHCPC_SENDOPT_INDEX	(MIB_IPV6_ID+35)


#endif
typedef enum IPV6_ORIGIN_T_
{
	IPV6_ORIGIN_DHCP =0,
	IPV6_ORIGIN_STATIC =1,
	IPV6_ORIGIN_NONE =3
} IPV6_ORIGIN_T;

typedef enum IPV6_LINKTYPE_T_
{
	IPV6_LINKTYPE_IP=0,
	IPV6_LINKTYPE_PPP=1
}IPV6_LINKTYPE_T;

typedef enum IPV6_DHCP_MODE_T_
{
	IPV6_DHCP_STATELESS=0,
	IPV6_DHCP_STATEFUL=1
}IPV6_DHCP_MODE_T;


#endif

#ifdef TR181_SUPPORT
/* add for Device.DNS. Device.DNS.Client. and Device.DNS.Client.Server.{i}. */
#define MIB_DNS_CLIENT_ENABLE 406
#ifdef CONFIG_IPV6
#define DNS_CLIENT_SERVER_NUM 10
#else
#define DNS_CLIENT_SERVER_NUM 6
#endif
#define MIB_DNS_CLIENT_SERVER_TBL_NUM	408
#define MIB_DNS_CLIENT_SERVER_TBL  ((MIB_DNS_CLIENT_SERVER_TBL_NUM+1)|MIB_TABLE_LIST) 
#define MIB_DNS_CLIENT_SERVER_MOD  ((MIB_DNS_CLIENT_SERVER_TBL_NUM+3) | MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)

#define MIB_DNS_CLIENT_SERVER_INDEX 414
#define MIB_DNS_CLIENT_SERVER_ENABLE 415
#define MIB_DNS_CLIENT_SERVER_STATUS 416
//#define MIB_DNS_CLIENT_SERVER_ALIAS MIB_IPV6_ID+47
#define MIB_DNS_CLIENT_SERVER_IPADDR 418
//#define MIB_DNS_CLIENT_SERVER_IF MIB_IPV6_ID+49
#define MIB_DNS_CLIENT_SERVER_TYPE 420
#endif

#ifdef CONFIG_RTL_8198C
#define MIB_IPV6_ADDR_AFTR_PARAM	421
#define MIB_DSLITE_MODE				422
#define MIB_IPV6_6RD_PREFIX_PARAM	423
#define MIB_IPV4_6RD_MASK_LEN		424
#define MIB_IPV4_6RD_BR_ADDR		425
#endif


// SNMP, Forrest added, 2007.10.25.
#ifdef CONFIG_SNMP
#define MIB_SNMP_ENABLED		435
#define MIB_SNMP_NAME			436
#define MIB_SNMP_LOCATION		437
#define MIB_SNMP_CONTACT		438
#define MIB_SNMP_RWCOMMUNITY	439
#define MIB_SNMP_ROCOMMUNITY	440
#define MIB_SNMP_TRAP_RECEIVER1	441
#define MIB_SNMP_TRAP_RECEIVER2	442
#define MIB_SNMP_TRAP_RECEIVER3	443
#endif

//### add by sen_liu 2011.3.29 TX Beamforming added to mib in 92D
#define MIB_WLAN_TX_BEAMFORMING	450
//### end

/*hf add for country str*/
#define MIB_WLAN_COUNTRY_STRING 451
/*end*/

#define MIB_WLAN_TX_RESTRICT 452
#define MIB_WLAN_RX_RESTRICT 453

/* # keith: add l2tp support. 20080515 */
#ifdef CONFIG_GET_SERVER_IP_BY_DOMAIN
#define MIB_L2TP_GET_SERV_BY_DOMAIN 499
#define MIB_L2TP_SERVER_DOMAIN		500
#endif
#define MIB_L2TP_WAN_IP_DYNAMIC		501
#define MIB_L2TP_GATEWAY		502
//SCHEDULE

#define MIB_WLAN_SCHEDULE_ENABLED		503
#define MIB_WLAN_SCHEDULE_TBL_NUM			504
#define MIB_WLAN_SCHEDULE_TBL			((MIB_WLAN_SCHEDULE_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_WLAN_SCHEDULE_ADD			((MIB_WLAN_SCHEDULE_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_WLAN_SCHEDULE_DEL			((MIB_WLAN_SCHEDULE_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_WLAN_SCHEDULE_DELALL			((MIB_WLAN_SCHEDULE_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

#define MIB_PPTP_CONNECTION_TYPE	509
#define MIB_PPTP_IDLE_TIME 			510


//NewAdd For rtl8196B
#define MIB_HW_WLAN_ADDR5		511
#define MIB_HW_WLAN_ADDR6		512
#define MIB_HW_WLAN_ADDR7		513

#define MIB_HW_TX_POWER_OFDM_1S 514
#define MIB_HW_TX_POWER_OFDM_2S 515
#define MIB_HW_11N_LOFDMPWDA    516
#define MIB_HW_11N_LOFDMPWDB    517
#define MIB_HW_11N_TSSI1     518
#define MIB_HW_11N_TSSI2     519
#define MIB_HW_11N_THER 520
#define MIB_HW_11N_TRSWITCH 521        //MIB_HW_11N_ESERVED1->MIB_HW_11N_TRSWITCH
#define MIB_HW_11N_TRSWPAPE_C9 522
#define MIB_HW_11N_TRSWPAPE_CC 523
#define MIB_HW_11N_TARGET_PWR 524
#define MIB_HW_11N_PA_TYPE 525
#define MIB_HW_11N_THER_2 526
#define MIB_HW_11N_XCAP_2 527
#define MIB_HW_11N_RESERVED8 528

/*-----end-----*/

// SNMP maximum length of fields, Forrest added, 2007.10.25.
#ifdef CONFIG_SNMP
#define MAX_SNMP_NAME_LEN		64
#define MAX_SNMP_LOCATION_LEN		64
#define MAX_SNMP_CONTACT_LEN		64
#define MAX_SNMP_COMMUNITY_LEN          64
#endif

//=========add for MESH=========
//#ifdef CONFIG_RTK_MESH Keith remove
#define MIB_WLAN_MESH_ENABLE    644	//new feature:Mesh enable/disable
#define MIB_WLAN_MESH_ROOT_ENABLE   551
#define MIB_WLAN_MESH_ID			554
#define MIB_WLAN_MESH_MAX_NEIGHTBOR	555
#define MIB_WLAN_MESH_ENCRYPT		559
#define MIB_WLAN_MESH_PSK_FORMAT	560
#define MIB_WLAN_MESH_WPA_PSK		561
#define MIB_WLAN_MESH_WPA_AUTH		562
#define MIB_WLAN_MESH_WPA2_CIPHER_SUITE	563

//#ifdef _MESH_ACL_ENABLE_ Keith remove
#define MIB_WLAN_MESH_ACL_ENABLED		580
#define MIB_WLAN_MESH_ACL_NUM			581
#define MIB_WLAN_MESH_ACL_ADDR			((MIB_WLAN_MESH_ACL_NUM+1)|MIB_TABLE_LIST)
#define MIB_WLAN_MESH_ACL_ADDR_ADD		((MIB_WLAN_MESH_ACL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_WLAN_MESH_ACL_ADDR_DEL		((MIB_WLAN_MESH_ACL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_WLAN_MESH_ACL_ADDR_DELALL	((MIB_WLAN_MESH_ACL_NUM+4)|MIB_DELALL_TBL_ENTRY)
//#endif Keith remove

//#ifdef 	_11s_TEST_MODE_	 Keith remove
#define MIB_WLAN_MESH_TEST_PARAM1		600
#define MIB_WLAN_MESH_TEST_PARAM2		601
#define MIB_WLAN_MESH_TEST_PARAM3		602
#define MIB_WLAN_MESH_TEST_PARAM4		603
#define MIB_WLAN_MESH_TEST_PARAM5		604
#define MIB_WLAN_MESH_TEST_PARAM6		605
#define MIB_WLAN_MESH_TEST_PARAM7		606
#define MIB_WLAN_MESH_TEST_PARAM8		607
#define MIB_WLAN_MESH_TEST_PARAM9		608
#define MIB_WLAN_MESH_TEST_PARAMA		609
#define MIB_WLAN_MESH_TEST_PARAMB		610
#define MIB_WLAN_MESH_TEST_PARAMC		611
#define MIB_WLAN_MESH_TEST_PARAMD		612
#define MIB_WLAN_MESH_TEST_PARAME		613
#define MIB_WLAN_MESH_TEST_PARAMF		614
#define MIB_WLAN_MESH_TEST_PARAMSTR1		615
//#endif Keith remove
//#endif // CONFIG_RTK_MESH Keith remove
//=========add for MESH=========

#define MIB_VLANCONFIG_ENABLED		616
#define MIB_VLANCONFIG_TBL_NUM		617
#define MIB_VLANCONFIG_TBL			((MIB_VLANCONFIG_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_VLANCONFIG_ADD       	((MIB_VLANCONFIG_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_VLANCONFIG_DEL        	((MIB_VLANCONFIG_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_VLANCONFIG_DELALL		((MIB_VLANCONFIG_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

//#ifdef CONFIG_RTL_WAPI_SUPPORT Keith remove
//WAPI start from 630
#define MIB_WLAN_WAPI_PSK   				630
#define MIB_WLAN_WAPI_PSKLEN   			631
#define MIB_WLAN_WAPI_PSK_FORMAT		632
#define MIB_WLAN_WAPI_AUTH				633
#define MIB_WLAN_WAPI_ASIPADDR    			634
#define MIB_WLAN_WAPI_SEARCHINFO    635
#define MIB_WLAN_WAPI_SEARCHINDEX    636
#define MIB_WLAN_WAPI_MCASTREKEY    637
#define MIB_WLAN_WAPI_MCAST_TIME    638
#define MIB_WLAN_WAPI_MCAST_PACKETS    639
#define MIB_WLAN_WAPI_UCASTREKEY    640
#define MIB_WLAN_WAPI_UCAST_TIME    641
#define MIB_WLAN_WAPI_UCAST_PACKETS    642
#define MIB_WLAN_WAPI_CA_INIT                 643

//Added to support two remote as and one local as at the same time
#define MIB_WLAN_WAPI_CERT_SEL    		656

#define MIB_WLAN_WAPI_AUTH_MODE_2or3_CERT 657

#define MIB_NAT_ENABLED 645
#define MIB_WLAN_STBC_ENABLED 646
#define MIB_WLAN_COEXIST_ENABLED 647
#define MIB_WLAN_LDPC_ENABLED 648
#define MIB_SAMBA_ENABLED 650
#define MIB_WLAN_LOWEST_MLCST_RATE 663
#define MIB_WLAN_MC2U_DISABLED	664
#define MIB_MIB_VER 655

//#ifdef CONFIG_RTL_WAPI_SUPPORT Keith remove
#define CERTS_DATABASE  "/var/myca/index.txt"
#define ONE_DAY_SECONDS 86400
#define USER_NAME_LEN 32
typedef struct _CertsDbEntry_ {
        unsigned char userName[USER_NAME_LEN];  //user name of this user cert
        unsigned long serial;                   //serial of this cert
        unsigned short validDays;               //total valid days of this cert
        unsigned short validDaysLeft;           //the left valid days of this cert
        unsigned char certType;                 //0(default): X.509; others: reserved
        unsigned char certStatus;               //0(default): valid; 1: expired; 2: revoked
} CERTS_DB_ENTRY_T, *CERTS_DB_ENTRY_Tp;
//#endif Keith remove
//WAPI END

// GW_QOS_ENGINE
#define MIB_QOS_AUTO_DOWNLINK_SPEED      651
#define MIB_QOS_MANUAL_DOWNLINK_SPEED      652

//11n onoff TKIP
#define MIB_WLAN_11N_ONOFF_TKIP		660

#if (defined CONFIG_RTL_BT_CLIENT) || (defined CONFIG_RTL_TRANSMISSION)
#define MIB_BT_UPLOAD_DIR	680
#define MIB_BT_DOWNLOAD_DIR 681
#define MIB_BT_TOTAL_ULIMIT 682
#define MIB_BT_TOTAL_DLIMIT 683
#define MIB_BT_REFRESH_TIME 684
#define MIB_BT_ENABLED 685
#endif

#define MIB_WLAN_ACK_TIMEOUT	686

#ifdef WLAN_HS2_CONFIG
#define MIB_WLAN_HS2_ENABLE	687
#endif


#define BRIDGE_ETHERNET		0
#define BRIDGE_PPPOE		1
#define BRIDGE_DISABLE		2
typedef enum { IP_BRIDGE=0, IP_ROUTE=1, IP_PPP=2} CMODE_T; //WANIface Mode Not the Method of getting IP address
/*+++++added by Jack for Tr-069 configuration+++++*/
#ifdef CONFIG_APP_TR069
/* Keith add for tr069 --start */
#undef mib_get
#undef mib_set
#undef mib_update
#define MAX_WAN_NAME_LEN				40	// E8 WAN connection name
// resv | media | ppp | vc
#define MAX_VC_NUM					8
#define MAX_PPP_NUM					8
#define PHY_INTF(x)				(x | 0xff00)/*physical interface*/
#define VC_INDEX(x)				(x & 0x0ff)
#define ETH_INDEX(x)				(x & 0x0ff)
#define PPP_INDEX(x)				((x  >> 8) & 0x0ff)
#define MEDIA_INDEX(x)				((x >> 16) & 0x0ff)
#define TO_IFINDEX(x,y,z)			((x<<16) | (y<<8) | z)
#define DUMMY_VC_INDEX				0xff
#define DUMMY_PPP_INDEX				0xff
#define DUMMY_IFINDEX				0xffff
#define NA_PPP			0xefff
#define NA_VC			0xffff
#define MAX_POE_PER_VC		5
#define STR_LEN_64    64



typedef enum { MEDIA_ATM, MEDIA_ETH } MEDIA_TYPE_T;
typedef enum { APPTYPE_TR069_INTERNET, APPTYPE_INTERNET, APPTYPE_TR069,
		 APPTYPE_OTHER, APPTYPE_VOICE, APPTYPE_TR069_VOICE,
		 APPTYPE_VOICE_INTERNET, APPTYPE_TR069_VOICE_INTERNET } APPTYPE_T;
typedef enum { PPP_AUTH_AUTO=0, PPP_AUTH_PAP, PPP_AUTH_CHAP, PPP_AUTH_NONE } PPP_AUTH_T;		 

#define mib_get(S, T)  apmib_get(S, T)
#define mib_set(S, T)  apmib_set(S, T)
#define mib_update(S)  apmib_update(S)
#define LANDEVNAME2BR0(a) do{ if(a && (strncmp(a, "eth0", 4)==0||strncmp(a, "wlan0", 5)==0||strncmp(a, "usb0", 4)==0)) strcpy(a, "br0"); }while(0)
	
#ifdef CONFIG_USER_CWMP_WITH_SSL
#define _CWMP_WITH_SSL_				1
#endif //CONFIG_USER_CWMP_WITH_SSL

#if defined(CONFIG_USER_CWMP_WITH_TR143)
#define _PRMT_TR143_				1
#endif

#define TIME_ZONE
#define _PRMT_USERINTERFACE_
#define WLAN_SUPPORT

#ifdef MBSSID
#define WLAN_MBSSID			1
#endif

#ifdef UNIVERSAL_REPEATER
#define WLAN_REPEATER
#endif

#define MAC_FILTER
#define ENABLE_WPAAES_WPA2TKIP

//--- for TR098 -------------------------------
#define MOD_FOR_TR098 /* brucehou */
#if defined(MOD_FOR_TR098)
	#define MOD_FOR_TR098_LAYER3FWD
	#define MOD_FOR_TR098_LANDEVICE
	#define MOD_FOR_TR098_VAP
	#define MOD_FOR_TR098_PORTMAP

	
	#if defined(CONFIG_RTL_92D_SUPPORT)
		#define MOD_FOR_TR098_DUALBAND
	#endif

#endif	/* #if defined(MOD_FOR_TR098) */
//--- for TR098 -------------------------------

/* Keith add for tr069 --end */
///////////////////////////////////////////////////////////////////////////Enable for E8C 
#define ALIASNAME_VC   "vc" 
#define ALIASNAME_BR   "br" 
#define ALIASNAME_NAS  "nas"
#define ALIASNAME_DSL  "dsl"
#define ALIASNAME_ETH  "eth"
#define ALIASNAME_WLAN "wlan"
#define ALIASNAME_PPP  "ppp"
#define ALIASNAME_MWNAS  "nas0_"
#define ALIASNAME_ETH0DOT  "eth0."

#if defined(_PRMT_TR143_)
#define RTL_DEV_NAME_NUM(name,num)	name#num

#define ALIASNAME_VC0   RTL_DEV_NAME_NUM(ALIASNAME_VC,0)//"vc0" 
#define ALIASNAME_BR0   RTL_DEV_NAME_NUM(ALIASNAME_BR,0)//"br0" 
#define ALIASNAME_WLAN0  RTL_DEV_NAME_NUM(ALIASNAME_WLAN,0)//"wlan0"
#define ALIASNAME_WLAN1  RTL_DEV_NAME_NUM(ALIASNAME_WLAN,1)//"wlan1"
#define ALIASNAME_NAS0  RTL_DEV_NAME_NUM(ALIASNAME_NAS,0)//nas0
#define ALIASNAME_DSL0  RTL_DEV_NAME_NUM(ALIASNAME_DSL,0)//dsl0
#define ALIASNAME_ETH0  RTL_DEV_NAME_NUM(ALIASNAME_ETH,0)//eth0
#define ALIASNAME_PPP0  RTL_DEV_NAME_NUM(ALIASNAME_PPP,0)//ppp0

#define ALIASNAME_VAP   "-vap" //must include '-' at fast
#define ALIASNAME_WLAN0_VAP  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0,-vap)//"wlan0-vap"
#define ALIASNAME_WLAN1_VAP  RTL_DEV_NAME_NUM(ALIASNAME_WLAN1,-vap)//"wlan1-vap"
#define ALIASNAME_WLAN0__VAP  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0,_vap)//"wlan0_vap"
#define ALIASNAME_WLAN0__VAP0  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0__VAP,0)//"wlan0_vap0"
#define ALIASNAME_WLAN0__VAP1  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0__VAP,1)//"wlan0_vap1"
#define ALIASNAME_WLAN0__VAP2  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0__VAP,2)//"wlan0_vap2"
#define ALIASNAME_WLAN0__VAP3  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0__VAP,3)//"wlan0_vap3"

#define ALIASNAME_WLAN0_VAP0  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0_VAP,0)//"wlan0-vap0"
#define ALIASNAME_WLAN0_VAP1  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0_VAP,1)//"wlan0-vap1"
#define ALIASNAME_WLAN0_VAP2  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0_VAP,2)//"wlan0-vap2"
#define ALIASNAME_WLAN0_VAP3  RTL_DEV_NAME_NUM(ALIASNAME_WLAN0_VAP,3)//"wlan0-vap3"

#define ALIASNAME_WLAN1_VAP0  RTL_DEV_NAME_NUM(ALIASNAME_WLAN1_VAP,0)//"wlan0-vap0"
#define ALIASNAME_WLAN1_VAP1  RTL_DEV_NAME_NUM(ALIASNAME_WLAN1_VAP,1)//"wlan0-vap0"
#define ALIASNAME_WLAN1_VAP2  RTL_DEV_NAME_NUM(ALIASNAME_WLAN1_VAP,2)//"wlan0-vap0"
#define ALIASNAME_WLAN1_VAP3  RTL_DEV_NAME_NUM(ALIASNAME_WLAN1_VAP,3)//"wlan0-vap0"

#define ALIASNAME_ETH0DOT2  RTL_DEV_NAME_NUM(ALIASNAME_ETH0DOT,2)
#define ALIASNAME_ETH0DOT3  RTL_DEV_NAME_NUM(ALIASNAME_ETH0DOT,3)
#define ALIASNAME_ETH0DOT4  RTL_DEV_NAME_NUM(ALIASNAME_ETH0DOT,4)
#define ALIASNAME_ETH0DOT5  RTL_DEV_NAME_NUM(ALIASNAME_ETH0DOT,5)

#define ALIASNAME_ETH0_SW  RTL_DEV_NAME_NUM(ALIASNAME_ETH0,_sw)
#define ALIASNAME_ETH0_SW0  RTL_DEV_NAME_NUM(ALIASNAME_ETH0_SW,0)
#define ALIASNAME_ETH0_SW1  RTL_DEV_NAME_NUM(ALIASNAME_ETH0_SW,1)
#define ALIASNAME_ETH0_SW2  RTL_DEV_NAME_NUM(ALIASNAME_ETH0_SW,2)
#define ALIASNAME_ETH0_SW3 RTL_DEV_NAME_NUM(ALIASNAME_ETH0_SW,3)

#define ALIASNAME_BR00  RTL_DEV_NAME_NUM(ALIASNAME_BR0,:0)
#define ALIASNAME_BR01  RTL_DEV_NAME_NUM(ALIASNAME_BR0,:1)

typedef enum
{
	ITF_ALL=0,
	ITF_WAN,	//wan pppx or vcx
	ITF_LAN,	//br0

	ITF_ETH0,	//eth0
	ITF_ETH0_SW0,	//eth0_sw0
	ITF_ETH0_SW1,	//eth0_sw1
	ITF_ETH0_SW2,	//eth0_sw2
	ITF_ETH0_SW3,	//eth0_sw3
	
	ITF_WLAN0,	//wlan0
	ITF_WLAN0_VAP0,	//wlan0-vap0
	ITF_WLAN0_VAP1,	//wlan0-vap1
	ITF_WLAN0_VAP2,	//wlan0-vap2
	ITF_WLAN0_VAP3,	//wlan0-vap3
	
	ITF_WLAN1,	//wlan0
	ITF_WLAN1_VAP0,	//wlan0-vap0
	ITF_WLAN1_VAP1,	//wlan0-vap1
	ITF_WLAN1_VAP2,	//wlan0-vap2
	ITF_WLAN1_VAP3,	//wlan0-vap3
	
	ITF_USB0,	//usb0
	
	ITF_END		//last one
} ITF_T;
extern char *strItf[];
#endif //_PRMT_TR143_

#define DEF_MANUFACTURER_STR		"REALTEK SEMICONDUCTOR CORP."
#define DEF_MANUFACTUREROUI_STR		"00E04C" 

#define DEF_PRODUCTCLASS_STR		"IGD"

#define CWMP_ID						700 
#define MIB_CWMP_ENABLED						CWMP_ID + 0 
#define MIB_CWMP_PROVISIONINGCODE				CWMP_ID + 1	//069
#define MIB_CWMP_ACS_URL					CWMP_ID + 2			//069
#define MIB_CWMP_ACS_USERNAME				CWMP_ID + 3		//069
#define MIB_CWMP_ACS_PASSWORD				CWMP_ID + 4		//069
#define MIB_CWMP_INFORM_ENABLE				CWMP_ID + 5		//069
#define MIB_CWMP_INFORM_INTERVAL				CWMP_ID + 6		//069
#define MIB_CWMP_INFORM_TIME				CWMP_ID + 7
#define MIB_CWMP_CONREQ_USERNAME				CWMP_ID + 8
#define MIB_CWMP_CONREQ_PASSWORD				CWMP_ID + 9
#define MIB_CWMP_ACS_UPGRADESMANAGED			CWMP_ID + 10	//069
#define MIB_CWMP_LAN_CONFIGPASSWD				CWMP_ID + 11
#define MIB_CWMP_SERIALNUMBER					CWMP_ID + 12		//069
#define MIB_CWMP_DHCP_SERVERCONF				CWMP_ID + 13
#define MIB_CWMP_LAN_IPIFENABLE					CWMP_ID + 14
#define MIB_CWMP_LAN_ETHIFENABLE				CWMP_ID + 15
#define MIB_CWMP_WLAN_BASICENCRY				CWMP_ID + 16
#define MIB_CWMP_WLAN_WPAENCRY					CWMP_ID + 17
#define MIB_CWMP_DL_COMMANDKEY				CWMP_ID + 18
#define MIB_CWMP_DL_STARTTIME				CWMP_ID + 19
#define MIB_CWMP_DL_COMPLETETIME				CWMP_ID + 20
#define MIB_CWMP_DL_FAULTCODE				CWMP_ID + 21
#define MIB_CWMP_INFORM_EVENTCODE				CWMP_ID + 22
#define MIB_CWMP_RB_COMMANDKEY				CWMP_ID + 23
#define MIB_CWMP_ACS_PARAMETERKEY				CWMP_ID + 24
#define MIB_CWMP_CERT_PASSWORD				CWMP_ID + 25
#define MIB_CWMP_FLAG					CWMP_ID + 26
#define MIB_CWMP_SI_COMMANDKEY				CWMP_ID + 27	/*ScheduleInform's commandkey*/

#ifdef _PRMT_USERINTERFACE_						/*InternetGatewayDevice.UserInterface.*/
#define MIB_UIF_PW_REQUIRED					CWMP_ID + 28 	/*PasswordRequired*/
#define MIB_UIF_PW_USER_SEL					CWMP_ID + 29	/*PasswordUserSelectable*/
#define MIB_UIF_UPGRADE					CWMP_ID + 30	/*UpgradeAvailable*/
#define MIB_UIF_WARRANTYDATE				CWMP_ID + 31	/*WarrantyDate*/
#define MIB_UIF_AUTOUPDATESERVER				CWMP_ID + 32	/*AutoUpdateServer*/
#define MIB_UIF_USERUPDATESERVER				CWMP_ID + 33	/*UserUpdateServer*/
#endif /*_PRMT_USERINTERFACE_*/

#define MIB_CWMP_ACS_KICKURL				CWMP_ID + 74
#define MIB_CWMP_ACS_DOWNLOADURL				CWMP_ID + 75
#define MIB_CWMP_CONREQ_PORT				CWMP_ID + 76 /*port for connection request*/
#define MIB_CWMP_CONREQ_PATH				CWMP_ID + 77 /*path for connection request*/
#define MIB_CWMP_FLAG2					CWMP_ID + 78 

//#ifdef _PRMT_TR143_
#define MIB_TR143_UDPECHO_ENABLE				CWMP_ID + 79
#define MIB_TR143_UDPECHO_ITFTYPE				CWMP_ID + 80
#define MIB_TR143_UDPECHO_SRCIP				CWMP_ID + 81
#define MIB_TR143_UDPECHO_PORT				CWMP_ID + 82
#define MIB_TR143_UDPECHO_PLUS				CWMP_ID + 83
//#endif //_PRMT_TR143_

#define MIB_CWMP_NOTIFY_LIST					CWMP_ID + 84
#define MIB_CWMP_ACS_URL_OLD					CWMP_ID + 85			//069

#define MIB_CWMP_USERINFO_RESULT				CWMP_ID + 92
#define MIB_CWMP_NEED_REBOOT					CWMP_ID + 93
#define MIB_CWMP_PERSISTENT_DATA				CWMP_ID + 97

#define MIB_CWMP_PARAMETERKEY			CWMP_ID + 109

#define MIB_CWMP_PPPCON_INSTNUM			CWMP_ID + 110
#define MIB_CWMP_IPCON_INSTNUM			CWMP_ID + 111
#define MIB_CWMP_PPPCON_CREATED			CWMP_ID + 112
#define MIB_CWMP_IPCON_CREATED			CWMP_ID + 113
#define MIB_CWMP_LAN_ETHIFDISABLE		CWMP_ID + 114
#define MIB_CWMP_WAN_ETHIFDISABLE		CWMP_ID + 115

#define MIB_CWMP_SW_PORT1_DISABLE		CWMP_ID + 116
#define MIB_CWMP_SW_PORT1_MAXBITRATE	CWMP_ID + 117
#define MIB_CWMP_SW_PORT1_DUPLEXMODE	CWMP_ID + 118

#define MIB_CWMP_SW_PORT2_DISABLE		CWMP_ID + 119
#define MIB_CWMP_SW_PORT2_MAXBITRATE	CWMP_ID + 120
#define MIB_CWMP_SW_PORT2_DUPLEXMODE	CWMP_ID + 121

#define MIB_CWMP_SW_PORT3_DISABLE		CWMP_ID + 122
#define MIB_CWMP_SW_PORT3_MAXBITRATE	CWMP_ID + 123
#define MIB_CWMP_SW_PORT3_DUPLEXMODE	CWMP_ID + 124

#define MIB_CWMP_SW_PORT4_DISABLE		CWMP_ID + 125
#define MIB_CWMP_SW_PORT4_MAXBITRATE	CWMP_ID + 126
#define MIB_CWMP_SW_PORT4_DUPLEXMODE	CWMP_ID + 127

#define MIB_CWMP_SW_PORT5_DISABLE		CWMP_ID + 128
#define MIB_CWMP_SW_PORT5_MAXBITRATE	CWMP_ID + 129
#define MIB_CWMP_SW_PORT5_DUPLEXMODE	CWMP_ID + 130

#define MIB_CWMP_RETRY_MIN_WAIT_INTERVAL	CWMP_ID + 131
#define MIB_CWMP_RETRY_INTERVAL_MUTIPLIER	CWMP_ID + 132

#define MIB_CWMP_UDP_CONN_REQ_ADDR			CWMP_ID + 133
#define MIB_CWMP_STUN_EN					CWMP_ID + 134
#define MIB_CWMP_STUN_SERVER_ADDR			CWMP_ID + 135
#define MIB_CWMP_STUN_SERVER_PORT			CWMP_ID + 136
#define MIB_CWMP_STUN_USERNAME				CWMP_ID + 137
#define MIB_CWMP_STUN_PASSWORD				CWMP_ID + 138
#define MIB_CWMP_STUN_MAX_KEEP_ALIVE_PERIOD	CWMP_ID + 139
#define MIB_CWMP_STUN_MIN_KEEP_ALIVE_PERIOD	CWMP_ID + 140
#define MIB_CWMP_NAT_DETECTED				CWMP_ID + 141

#define MIB_CWMP_MIB_END				CWMP_ID + 200	/* Reserve 200 mib for tr069*/
#endif /*CONFIG_APP_TR069*/

#define MIB_TEST_DATA		10000

#define MIB_DHCPRSVDIP_IPADDR		1001
#define MIB_DHCPRSVDIP_MACADDR		1002
#define MIB_DHCPRSVDIP_HOSTNAME		1003

#define MIB_SCHEDULE_TEXT		1011
#define MIB_SCHEDULE_ECO		1012
#define MIB_SCHEDULE_FTIME		1013
#define MIB_SCHEDULE_TTIME		1014
#define MIB_SCHEDULE_DAY		1015

#define MIB_PORTFW_IPADDR		1021
#define MIB_PORTFW_FROMPORT		1022
#define MIB_PORTFW_TOPORT		1023
#define MIB_PORTFW_PROTOTYPE		1024
#define MIB_PORTFW_COMMENT		1025
#define MIB_PORTFW_SVRPORT		1026
#define MIB_PORTFW_SVRNAME		1027
#define MIB_PORTFW_INSTANCENUM		1028
#define MIB_PORTFW_WANIFACE_ID		1029

#define MIB_IPFILTER_IPADDR		1031
#define MIB_IPFILTER_PROTOTYPE		1032
#define MIB_IPFILTER_COMMENT		1033
#define MIB_IPFILTER_IP6ADDR		1034
#define MIB_IPFILTER_IP_VERSION		1035

#define MIB_PORTFILTER_FROMPORT		1041
#define MIB_PORTFILTER_TOPORT		1042
#define MIB_PORTFILTER_PROTOTYPE		1043
#define MIB_PORTFILTER_COMMENT		1044
#define MIB_PORTFILTER_IPVERSION	1045

#define MIB_MACFILTER_MACADDR		1051
#define MIB_MACFILTER_COMMENT		1052

#define MIB_TRIGGERPORT_TRI_FROMPORT		1061
#define MIB_TRIGGERPORT_TRI_TOPORT	1062
#define MIB_TRIGGERPORT_TRI_PROTOTYPE		1063
#define MIB_TRIGGERPORT_INC_FROMPORT	1064
#define MIB_TRIGGERPORT_INC_TOPORT	1065
#define MIB_TRIGGERPORT_INC_PROTOTYPE		1066
#define MIB_TRIGGERPORT_COMMENT	1067

#define MIB_URLFILTER_URLADDR	1071
#define MIB_URLFILTER_RULE_MODE	1072
#ifdef URL_FILTER_USER_MODE_SUPPORT
#define MIB_URLFILTER_IPADDR	1073
#define MIB_URLFILTER_MACADDR   1074
#define MIB_URLFILTER_USR_MODE  1075
#endif

#define MIB_VLANCONFIG_ENTRY_ENABLED	1081
#define MIB_VLANCONFIG_NETIFACE	1082
#define MIB_VLANCONFIG_TAGGED	1083
#define MIB_VLANCONFIG_UNTAGGED	1084
#define MIB_VLANCONFIG_PRIORITY	1085
#define MIB_VLANCONFIG_CFI	1086
#define MIB_VLANCONFIG_GROUPID	1087
#define MIB_VLANCONFIG_VLANID	1088
#if defined(CONFIG_RTK_VLAN_NEW_FEATURE) || defined(CONFIG_RTL_HW_VLAN_SUPPORT)
#define MIB_VLANCONFIG_FORWARDING_RULE 1089
#endif

#define MIB_STATICROUTE_DSTADDR	1091
#define MIB_STATICROUTE_NETMASK	1092
#define MIB_STATICROUTE_GATEWAY	1093
#define MIB_STATICROUTE_INTERFACE	1094
#define MIB_STATICROUTE_METRIC	1095

#define MIB_IPSECTUNNEL_TUNNELID	1101
#define MIB_IPSECTUNNEL_AUTHTYPE	1102
#define MIB_IPSECTUNNEL_LCTYPE	1103
#define MIB_IPSECTUNNEL_LC_IPADDR	1104
#define MIB_IPSECTUNNEL_LC_MASKLEN	1105
#define MIB_IPSECTUNNEL_RTTYPE	1106
#define MIB_IPSECTUNNEL_RT_IPADDR	1107
#define MIB_IPSECTUNNEL_RT_MASKLEN	1108
#define MIB_IPSECTUNNEL_RT_GWADDR	1109
#define MIB_IPSECTUNNEL_KEYMODE	1110
#define MIB_IPSECTUNNEL_ESPAH	1111
#define MIB_IPSECTUNNEL_ESPENCR	1112
#define MIB_IPSECTUNNEL_ESPAUTH	1113
#define MIB_IPSECTUNNEL_AHAUTH	1114
#define MIB_IPSECTUNNEL_CONTYPE	1115
#define MIB_IPSECTUNNEL_PSKEY	1116
#define MIB_IPSECTUNNEL_RSAKEY	1117
#define MIB_IPSECTUNNEL_SPI	1118
#define MIB_IPSECTUNNEL_ENCRKEY	1119
#define MIB_IPSECTUNNEL_AUTHKEY	1120
#define MIB_IPSECTUNNEL_ENABLE	1121
#define MIB_IPSECTUNNEL_CONNNAME	1122
#define MIB_IPSECTUNNEL_LCIDTYPE	1123
#define MIB_IPSECTUNNEL_RTIDTYPE	1124
#define MIB_IPSECTUNNEL_LCID	1125
#define MIB_IPSECTUNNEL_RTID	1126
#define MIB_IPSECTUNNEL_IKELIFETIME	1127
#define MIB_IPSECTUNNEL_IKEENCR	1128
#define MIB_IPSECTUNNEL_IKEAUTH	1129
#define MIB_IPSECTUNNEL_IKEKEYGROUP	1130
#define MIB_IPSECTUNNEL_IPSECLIFETIME	1131
#define MIB_IPSECTUNNEL_IPSECPFS	1132

#define MIB_CERTROOT_COMMENT	1151

#define MIB_CERTUSER_COMMENT	1161
#define MIB_CERTROOT_PASS	1162

#define MIB_QOS_ENTRY_NAME 1171
#define MIB_QOS_ENTRY_ENABLED 1172
#define MIB_QOS_PRIORITY 1173
#define MIB_QOS_PROTOCOL 1174
#define MIB_QOS_LOCAL_IP_START 1175
#define MIB_QOS_LOCAL_IP_END 1176
#define MIB_QOS_LOCAL_PORT_START 1177
#define MIB_QOS_LOCAL_PORT_END 1178
#define MIB_QOS_REMOTE_IP_START 1179
#define MIB_QOS_REMOTE_IP_END 1180
#define MIB_QOS_REMOTE_PORT_START 1181
#define MIB_QOS_REMOTE_PORT_END 1182

#define MIB_IPQOS_ENTRY_NAME 1191
#define MIB_IPQOS_ENABLED 1192
#define MIB_IPQOS_MAC 1193
#define MIB_IPQOS_MODE 1194
#define MIB_IPQOS_LOCAL_IP_START 1195
#define MIB_IPQOS_LOCAL_IP_END 1196
#define MIB_IPQOS_BANDWIDTH 1197
#define MIB_IPQOS_BANDWIDTH_DOWNLINK 1198
#define MIB_IPQOS_LAYER7_PROTOCOL 1199
#define MIB_IPQOS_IPV6_SRC 1200

#define MIB_MECH_ACL_MACADDR 1201
#define MIB_MECH_ACL_COMMENT 1202

#define MIB_WLAN_ACL_ADDR_MACADDR 1211
#define MIB_WLAN_ACL_ADDR_COMMENT 1212

#define MIB_WLAN_WDS_MACADDR 1221
#define MIB_WLAN_WDS_FIXEDTXRATE 1222
#define MIB_WLAN_WDS_COMMENT 1223


//#ifdef CONFIG_RTL_FLASH_DUAL_IMAGE_ENABLE
#define MIB_DUALBANK_ENABLED			1300
#define MIB_WLAN_PHY_BAND_SELECT			1301
#define MIB_WLAN_MAC_PHY_MODE			1302
#define MIB_WLAN_BAND2G5G_SELECT			1303
//#endif

//MIBs for 802.1x wlan client mode
#ifdef CONFIG_RTL_802_1X_CLIENT_SUPPORT
#define MIB_WLAN_EAP_TYPE 				1311
#define MIB_WLAN_EAP_INSIDE_TYPE 		1312
#define MIB_WLAN_EAP_USER_ID				1313
#define MIB_WLAN_RS_USER_NAME			1314
#define MIB_WLAN_RS_USER_PASSWD			1315
#define MIB_WLAN_RS_USER_CERT_PASSWD	1316
#define MIB_WLAN_RS_BAND_SEL 				1317
#endif

/* USB3G */
#define MIB_USB3G_USER              1400
#define MIB_USB3G_PASS              1401
#define MIB_USB3G_PIN               1402
#define MIB_USB3G_APN               1403
#define MIB_USB3G_DIALNUM           1404
#define MIB_USB3G_CONN_TYPE         1405
#define MIB_USB3G_IDLE_TIME         1406
#define MIB_USB3G_MTU_SIZE          1407
/*for P2P_SUPPORT*/
#define MIB_WLAN_P2P_TYPE          			1450
#define MIB_WLAN_P2P_INTENT         		1451
#define MIB_WLAN_P2P_LISTEN_CHANNEL         1452
#define MIB_WLAN_P2P_OPERATION_CHANNEL      1453
#define MIB_WLAN_RS2_IP			1454
#define MIB_WLAN_RS2_PORT		1455
#define MIB_WLAN_RS2_PASSWORD		1456
#define MIB_WLAN_RS2_MAXRETRY		1457
#define MIB_WLAN_RS2_INTERVAL_TIME	1458
#define MIB_WLAN_ACCOUNT_RS2_IP		1459
#define MIB_WLAN_ACCOUNT_RS2_PORT	1460
#define MIB_WLAN_ACCOUNT_RS2_PASSWORD	1461
#define MIB_WLAN_RS_REAUTH_TO	1462
#define MIB_WLAN_FUNC_OFF	1463


#if defined(CONFIG_RTL_ULINKER)
#define MIB_ULINKER_AUTO     1470
#define MIB_ULINKER_CURRENT_MODE	1471
#define MIB_ULINKER_LATEST_MODE	1472
#define MIB_ULINKER_CURRENT_WLAN_MODE	1473
#define MIB_ULINKER_LATEST_WLAN_MODE	1474

#define MIB_ULINKER_REPEATER_ENABLED1	1475
#define MIB_ULINKER_REPEATER_ENABLED2	1476

#endif


/*multi pppoe*/
//dzh begin
//#define MIB_PPP_USER_NAME			106
#define MIB_PPP_CONNECT_COUNT		1499

#define MIB_PPP_USER_NAME2			1500
#define MIB_PPP_PASSWORD2			1501
#define MIB_PPP_USER_NAME3			1502
#define MIB_PPP_PASSWORD3			1503
#define MIB_PPP_USER_NAME4			1504
#define MIB_PPP_PASSWORD4			1505


#define MIB_PPP_SERVICE_NAME2		1506
#define MIB_PPP_SERVICE_NAME3		1507
#define MIB_PPP_SERVICE_NAME4		1508

#define MIB_PPP_IDLE_TIME2			1509
#define MIB_PPP_CONNECT_TYPE2		1510
#define MIB_PPP_IDLE_TIME3			1511
#define MIB_PPP_CONNECT_TYPE3		1512
#define MIB_PPP_IDLE_TIME4			1513
#define MIB_PPP_CONNECT_TYPE4		1514

#define MIB_PPP_MTU_SIZE2			1515
#define MIB_PPP_MTU_SIZE3			1516
#define MIB_PPP_MTU_SIZE4			1517


#define MIB_PPP_SESSION_NUM2		1522
#define MIB_PPP_SERVER_MAC2			1523
#define MIB_PPP_SESSION_NUM3		1524
#define MIB_PPP_SERVER_MAC3			1525
#define MIB_PPP_SESSION_NUM4		1526
#define MIB_PPP_SERVER_MAC4			1527

//add for subnet
#define MIB_SUBNET1_COUNT			1528
#define MIB_SUBNET1_F1_START		1529
#define MIB_SUBNET1_F1_END			1530
#define MIB_SUBNET1_F2_START		1531
#define MIB_SUBNET1_F2_END			1532
#define MIB_SUBNET1_F3_START		1533
#define MIB_SUBNET1_F3_END			1534
#define MIB_SUBNET2_COUNT			1535
#define MIB_SUBNET2_F1_START		1536
#define MIB_SUBNET2_F1_END			1537
#define MIB_SUBNET2_F2_START		1538
#define MIB_SUBNET2_F2_END			1539
#define MIB_SUBNET2_F3_START		1540
#define MIB_SUBNET2_F3_END			1541
#define MIB_SUBNET3_COUNT			1542
#define MIB_SUBNET3_F1_START		1543
#define MIB_SUBNET3_F1_END			1544
#define MIB_SUBNET3_F2_START		1545
#define MIB_SUBNET3_F2_END			1546
#define MIB_SUBNET3_F3_START		1547
#define MIB_SUBNET3_F3_END			1548
#define MIB_SUBNET4_COUNT			1549
#define MIB_SUBNET4_F1_START		1550
#define MIB_SUBNET4_F1_END			1551
#define MIB_SUBNET4_F2_START		1552
#define MIB_SUBNET4_F2_END			1553
#define MIB_SUBNET4_F3_START		1554
#define MIB_SUBNET4_F3_END			1555


#define MIB_PPP_SUBNET1				1556
#define MIB_PPP_SUBNET2				1557
#define MIB_PPP_SUBNET3				1558
#define MIB_PPP_SUBNET4				1559

#ifdef CONFIG_CPU_UTILIZATION
#define MIB_ENABLE_CPU_UTILIZATION		1580
#define MIB_CPU_UTILIZATION_INTERVAL	1581
#endif




#define MIB_LAN_DHCP_CONFIGURABLE					1749

#define MIB_STATICROUTE_ENABLE			1776
#define MIB_STATICROUTE_TYPE				1777
#define MIB_STATICROUTE_SRCADDR			1778
#define MIB_STATICROUTE_SRCNETMASK		1779
#define MIB_STATICROUTE_IFACEINDEX		1780
#define MIB_STATICROUTE_INSTANCENUM	1781
#define MIB_STATICROUTE_FLAGS			1782

#define MIB_WLAN_CWMP_WLANCONFIG_INSTNUM 	1783


//////////////////////////////////////////////////////////////////////////
#define MIB_CWMP_WLANCONF_ENABLED		1784
#define MIB_CWMP_WLANCONF_TBL_NUM		1785
#define MIB_CWMP_WLANCONF_TBL			((MIB_CWMP_WLANCONF_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_CWMP_WLANCONF_ADD		((MIB_CWMP_WLANCONF_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_CWMP_WLANCONF_DEL		((MIB_CWMP_WLANCONF_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_CWMP_WLANCONF_MOD			((MIB_CWMP_WLANCONF_TBL_NUM+3)|MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY) //brucehou
#define MIB_CWMP_WLANCONF_DELALL		((MIB_CWMP_WLANCONF_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

#define MAX_CWMP_WLANCONF_NUM			12

#define MIB_CWMP_WLANCONF_INSTANCENUM		1790
#define MIB_CWMP_WLANCONF_ROOT_IDX			1791
#define MIB_CWMP_WLANCONF_VWLAN_IDX		1792
#define MIB_CWMP_WLANCONF_ISCONFIGURED		1793
#define MIB_CWMP_WLANCONF_RFBAND			1794

#define VLAN_WAN								2000
#define MIB_VLAN_WAN_ENALE                      VLAN_WAN  + 1
#define MIB_VLAN_WAN_TAG                        VLAN_WAN  + 2

#define MIB_VLAN_WAN_BRIDGE_ENABLE              VLAN_WAN  + 3
#define MIB_VLAN_WAN_BRIDGE_TAG                 VLAN_WAN  + 4
#define MIB_VLAN_WAN_BRIDGE_PORT                VLAN_WAN  + 5
#define MIB_VLAN_WAN_BRIDGE_MULTICAST_ENABLE    VLAN_WAN  + 6
#define MIB_VLAN_WAN_BRIDGE_MULTICAST_TAG       VLAN_WAN  + 7

#define MIB_VLAN_WAN_HOST_ENABLE				VLAN_WAN  + 8
#define MIB_VLAN_WAN_HOST_TAG					VLAN_WAN  + 9
#define MIB_VLAN_WAN_HOST_PRI					VLAN_WAN  + 10
#define MIB_VLAN_WAN_WIFI_ROOT_ENABLE			VLAN_WAN  + 11
#define MIB_VLAN_WAN_WIFI_ROOT_TAG				VLAN_WAN  + 12
#define MIB_VLAN_WAN_WIFI_ROOT_PRI				VLAN_WAN  + 13
#define MIB_VLAN_WAN_WIFI_VAP0_ENABLE			VLAN_WAN  + 14
#define MIB_VLAN_WAN_WIFI_VAP0_TAG				VLAN_WAN  + 15
#define MIB_VLAN_WAN_WIFI_VAP0_PRI				VLAN_WAN  + 16
#define MIB_VLAN_WAN_WIFI_VAP1_ENABLE			VLAN_WAN  + 17
#define MIB_VLAN_WAN_WIFI_VAP1_TAG				VLAN_WAN  + 18
#define MIB_VLAN_WAN_WIFI_VAP1_PRI				VLAN_WAN  + 19
#define MIB_VLAN_WAN_WIFI_VAP2_ENABLE			VLAN_WAN  + 20
#define MIB_VLAN_WAN_WIFI_VAP2_TAG				VLAN_WAN  + 21
#define MIB_VLAN_WAN_WIFI_VAP2_PRI				VLAN_WAN  + 22
#define MIB_VLAN_WAN_WIFI_VAP3_ENABLE			VLAN_WAN  + 23
#define MIB_VLAN_WAN_WIFI_VAP3_TAG				VLAN_WAN  + 24
#define MIB_VLAN_WAN_WIFI_VAP3_PRI				VLAN_WAN  + 25

// Reserve 100 mib for vlan wan tag
#define MIB_VLAN_WAN_TAG_ID_END					VLAN_WAN  + 99 // 2099


#ifdef WLAN_PROFILE
#define WLAN_PROFILE_ID							2100
#define MIB_PROFILE_ENABLED1					(WLAN_PROFILE_ID+0)
#define MIB_PROFILE_NUM1						(WLAN_PROFILE_ID+1)
#define MIB_PROFILE_TBL1						((WLAN_PROFILE_ID+2)|MIB_TABLE_LIST)
#define MIB_PROFILE_ADD1						((WLAN_PROFILE_ID+3)|MIB_ADD_TBL_ENTRY)
#define MIB_PROFILE_DEL1						((WLAN_PROFILE_ID+4)|MIB_DEL_TBL_ENTRY)
#define MIB_PROFILE_MOD1			                      ((WLAN_PROFILE_ID+4) | MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)
#define MIB_PROFILE_DELALL1						((WLAN_PROFILE_ID+5)|MIB_DELALL_TBL_ENTRY)
#define MIB_PROFILE_SSID						(WLAN_PROFILE_ID+6)
#define MIB_PROFILE_ENC							(WLAN_PROFILE_ID+7)
#define MIB_PROFILE_AUTH						(WLAN_PROFILE_ID+8)
#define MIB_PROFILE_WPA_CIPHER					(WLAN_PROFILE_ID+9)
#define MIB_PROFILE_WPA_PSK						(WLAN_PROFILE_ID+10)
#define MIB_PROFILE_WEP_DEFAULT_KEY				(WLAN_PROFILE_ID+11)
#define MIB_PROFILE_WEP_KEY1					(WLAN_PROFILE_ID+12)
#define MIB_PROFILE_WEP_KEY2					(WLAN_PROFILE_ID+13)
#define MIB_PROFILE_WEP_KEY3					(WLAN_PROFILE_ID+14)
#define MIB_PROFILE_WEP_KEY4					(WLAN_PROFILE_ID+15)
#define MIB_PROFILE_ENABLED2					(WLAN_PROFILE_ID+16)
#define MIB_PROFILE_WEP_KEY_TYPE					(WLAN_PROFILE_ID+17)
#define MIB_PROFILE_PSK_FORMAT					(WLAN_PROFILE_ID+18)
#define MIB_PROFILE_NUM2						(WLAN_PROFILE_ID+19)
#define MIB_PROFILE_TBL2						((WLAN_PROFILE_ID+20)|MIB_TABLE_LIST)
#define MIB_PROFILE_ADD2						((WLAN_PROFILE_ID+21)|MIB_ADD_TBL_ENTRY)
#define MIB_PROFILE_DEL2						((WLAN_PROFILE_ID+22)|MIB_DEL_TBL_ENTRY)
#define MIB_PROFILE_MOD2			                      ((WLAN_PROFILE_ID+22) | MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)
#define MIB_PROFILE_DELALL2						((WLAN_PROFILE_ID+23)|MIB_DELALL_TBL_ENTRY)
#endif // WLAN_PROFILE

#define IP6_ADDR_LEN					16
#define MAX_PPP_NAME_LEN				63
//dzh end
#ifdef CONFIG_APP_TR069
/* define the len of the entities */
#define CWMP_LANCONF_PASSWD_LEN	64
#define CWMP_SERIALNUMBER_LEN	64
#define CWMP_COMMAND_KEY_LEN	32

/* define the len of the entities */
#define CWMP_PROVISION_CODE_LEN	32 //64 in spec
#define CWMP_ACS_URL_LEN	64 //256 in spec
#define CWMP_ACS_USERNAME_LEN	32 //256 in spec
#define CWMP_ACS_PASSWD_LEN	32 //256 in spec
#define CWMP_CONREQ_USERNAME_LEN	32 //256 in spec
#define CWMP_CONREQ_PASSWD_LEN	32 //256 in spec
#define CONN_REQ_PATH_LEN	32 //32 in spec
#define CWMP_KICK_URL 32 //64 in spec
#define CWMP_DOWNLOAD_URL 32 //64 in spec
#define CWMP_CERT_PASSWD_LEN	32 //64 in spec
#define CWMP_NOTIFY_LIST_LEN (2) //No limitation in spec
#define CWMP_UDP_CONN_REQ_ADDR_LEN	256
#define CWMP_STUN_SERVER_ADDR_LEN	256
#define CWMP_STUN_USERNAME_LEN	256
#define CWMP_STUN_PASSWORD_LEN	256
#define IP_ADDR_LEN 4
/* define the cwmp_flag */
#define CWMP_FLAG_DEBUG_MSG	0x01
#define CWMP_FLAG_CERT_AUTH      0x02
#define CWMP_FLAG_SENDGETRPC    0x04
#define CWMP_FLAG_SKIPMREBOOT   0x08
#define CWMP_FLAG_DELAY         	0x10
#define CWMP_FLAG_AUTORUN          0x20
#define CWMP_FLAG_CTINFORMEXT	0x40
#define CWMP_FLAG_SELFREBOOT    0x80
/*flag for CWMP_FLAG2 setting*/
#define CWMP_FLAG2_DIS_CONREQ_AUTH		0x01  /*disable connection request authentication*/
#define CWMP_FLAG2_DEFAULT_WANIP_IN_INFORM	0x02  /*bring the default wan ip in the inform*/
#define CWMP_FLAG2_NULL_TO_SKIP_AUTH 0x04
/*action type for applying new values*/
#define CWMP_NONE		0
#define CWMP_START		1
#define CWMP_STOP		2
#define CWMP_RESTART		3

/*EC_xxxxx event must consist with those defined in cwmp_rpc.h*/
#define EC_X_CT_COM_ACCOUNT	0x10000	/*X_CT-COM_ACCOUNTCHANGE*/

#endif /*CONFIG_APP_TR069*/

#if defined(CONFIG_RTL_8198C)||defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) || defined(CONFIG_RTL_8198B)  || defined(CONFIG_RTL_8881A) || defined(CONFIG_WLAN_HAL_8197F)
/*new add since new platform rtl8196c*/
#define MIB_HW_TX_POWER_CCK_A 901
#define MIB_HW_TX_POWER_CCK_B 902
#define MIB_HW_TX_POWER_HT40_1S_A 903
#define MIB_HW_TX_POWER_HT40_1S_B 904
#define MIB_HW_TX_POWER_DIFF_HT40_2S 905
#define MIB_HW_TX_POWER_DIFF_HT20 906
#define MIB_HW_TX_POWER_DIFF_OFDM 907
#define MIB_HW_11N_RESERVED9 908
#define MIB_HW_11N_RESERVED10 909
#define MIB_HW_TX_POWER_5G_HT40_1S_A 910
#define MIB_HW_TX_POWER_5G_HT40_1S_B 911
#define MIB_HW_TX_POWER_DIFF_5G_HT40_2S 912
#define MIB_HW_TX_POWER_DIFF_5G_HT20 913
#define MIB_HW_TX_POWER_DIFF_5G_OFDM 914
/*new add end*/
#endif

#if defined(CONFIG_WLAN_HAL_8814AE) || defined(HAVE_RTK_4T4R_AC_SUPPORT)
#define MIB_HW_TX_POWER_CCK_C 2336
#define MIB_HW_TX_POWER_CCK_D 2337
#define MIB_HW_TX_POWER_HT40_1S_C 2338
#define MIB_HW_TX_POWER_HT40_1S_D 2339
#define MIB_HW_TX_POWER_5G_HT40_1S_C 2340
#define MIB_HW_TX_POWER_5G_HT40_1S_D 2341
#endif

#if defined(CONFIG_RTL_8812_SUPPORT) || defined(HAVE_RTK_AC_SUPPORT) || defined(HAVE_RTK_4T4R_AC_SUPPORT)
#define MIB_HW_TX_POWER_DIFF_20BW1S_OFDM1T_A		2200		
#define MIB_HW_TX_POWER_DIFF_40BW2S_20BW2S_A		2201
#define MIB_HW_TX_POWER_DIFF_OFDM2T_CCK2T_A			2202
#define MIB_HW_TX_POWER_DIFF_40BW3S_20BW3S_A		2203
#define MIB_HW_TX_POWER_DIFF_OFDM3T_CCK3T_A			2204
#define MIB_HW_TX_POWER_DIFF_40BW4S_20BW4S_A		2205
#define MIB_HW_TX_POWER_DIFF_OFDM4T_CCK4T_A			2206

#define MIB_HW_TX_POWER_DIFF_5G_20BW1S_OFDM1T_A		2207
#define MIB_HW_TX_POWER_DIFF_5G_40BW2S_20BW2S_A		2208
#define MIB_HW_TX_POWER_DIFF_5G_40BW3S_20BW3S_A		2209
#define MIB_HW_TX_POWER_DIFF_5G_40BW4S_20BW4S_A		2210
#define MIB_HW_TX_POWER_DIFF_5G_RSVD_OFDM4T_A		2211
#define MIB_HW_TX_POWER_DIFF_5G_80BW1S_160BW1S_A	2212
#define MIB_HW_TX_POWER_DIFF_5G_80BW2S_160BW2S_A	2213
#define MIB_HW_TX_POWER_DIFF_5G_80BW3S_160BW3S_A	2214
#define MIB_HW_TX_POWER_DIFF_5G_80BW4S_160BW4S_A	2215


#define MIB_HW_TX_POWER_DIFF_20BW1S_OFDM1T_B		2220		
#define MIB_HW_TX_POWER_DIFF_40BW2S_20BW2S_B		2221
#define MIB_HW_TX_POWER_DIFF_OFDM2T_CCK2T_B			2222
#define MIB_HW_TX_POWER_DIFF_40BW3S_20BW3S_B		2223
#define MIB_HW_TX_POWER_DIFF_OFDM3T_CCK3T_B			2224
#define MIB_HW_TX_POWER_DIFF_40BW4S_20BW4S_B		2225
#define MIB_HW_TX_POWER_DIFF_OFDM4T_CCK4T_B			2226

#define MIB_HW_TX_POWER_DIFF_5G_20BW1S_OFDM1T_B		2227
#define MIB_HW_TX_POWER_DIFF_5G_40BW2S_20BW2S_B		2228
#define MIB_HW_TX_POWER_DIFF_5G_40BW3S_20BW3S_B		2229
#define MIB_HW_TX_POWER_DIFF_5G_40BW4S_20BW4S_B		2230
#define MIB_HW_TX_POWER_DIFF_5G_RSVD_OFDM4T_B		2231
#define MIB_HW_TX_POWER_DIFF_5G_80BW1S_160BW1S_B	2232
#define MIB_HW_TX_POWER_DIFF_5G_80BW2S_160BW2S_B	2233
#define MIB_HW_TX_POWER_DIFF_5G_80BW3S_160BW3S_B	2234
#define MIB_HW_TX_POWER_DIFF_5G_80BW4S_160BW4S_B	2235
#endif

#if defined(CONFIG_WLAN_HAL_8814AE) || defined(HAVE_RTK_4T4R_AC_SUPPORT)
#define MIB_HW_TX_POWER_DIFF_20BW1S_OFDM1T_C		2300
#define MIB_HW_TX_POWER_DIFF_40BW2S_20BW2S_C		2301
#define MIB_HW_TX_POWER_DIFF_OFDM2T_CCK2T_C			2302
#define MIB_HW_TX_POWER_DIFF_40BW3S_20BW3S_C		2303
#define MIB_HW_TX_POWER_DIFF_OFDM3T_CCK3T_C			2304
#define MIB_HW_TX_POWER_DIFF_40BW4S_20BW4S_C		2305
#define MIB_HW_TX_POWER_DIFF_OFDM4T_CCK4T_C			2306

#define MIB_HW_TX_POWER_DIFF_5G_20BW1S_OFDM1T_C		2307
#define MIB_HW_TX_POWER_DIFF_5G_40BW2S_20BW2S_C		2308
#define MIB_HW_TX_POWER_DIFF_5G_40BW3S_20BW3S_C		2309
#define MIB_HW_TX_POWER_DIFF_5G_40BW4S_20BW4S_C		2310
#define MIB_HW_TX_POWER_DIFF_5G_RSVD_OFDM4T_C		2311
#define MIB_HW_TX_POWER_DIFF_5G_80BW1S_160BW1S_C	2312
#define MIB_HW_TX_POWER_DIFF_5G_80BW2S_160BW2S_C	2313
#define MIB_HW_TX_POWER_DIFF_5G_80BW3S_160BW3S_C	2314
#define MIB_HW_TX_POWER_DIFF_5G_80BW4S_160BW4S_C	2315

#define MIB_HW_TX_POWER_DIFF_20BW1S_OFDM1T_D		2320
#define MIB_HW_TX_POWER_DIFF_40BW2S_20BW2S_D		2321
#define MIB_HW_TX_POWER_DIFF_OFDM2T_CCK2T_D			2322
#define MIB_HW_TX_POWER_DIFF_40BW3S_20BW3S_D		2323
#define MIB_HW_TX_POWER_DIFF_OFDM3T_CCK3T_D			2324
#define MIB_HW_TX_POWER_DIFF_40BW4S_20BW4S_D		2325
#define MIB_HW_TX_POWER_DIFF_OFDM4T_CCK4T_D			2326

#define MIB_HW_TX_POWER_DIFF_5G_20BW1S_OFDM1T_D		2327
#define MIB_HW_TX_POWER_DIFF_5G_40BW2S_20BW2S_D		2328
#define MIB_HW_TX_POWER_DIFF_5G_40BW3S_20BW3S_D		2329
#define MIB_HW_TX_POWER_DIFF_5G_40BW4S_20BW4S_D		2330
#define MIB_HW_TX_POWER_DIFF_5G_RSVD_OFDM4T_D		2331
#define MIB_HW_TX_POWER_DIFF_5G_80BW1S_160BW1S_D	2332
#define MIB_HW_TX_POWER_DIFF_5G_80BW2S_160BW2S_D	2333
#define MIB_HW_TX_POWER_DIFF_5G_80BW3S_160BW3S_D	2334
#define MIB_HW_TX_POWER_DIFF_5G_80BW4S_160BW4S_D	2335
#endif
#define MIB_WLAN_RETRY_LIMIT	2252
#define MIB_WLAN_UAPSD_ENABLED	2253
#define MIB_WLAN_REGULATORY_DOMAIN	2254
#ifdef SAMBA_WEB_SUPPORT
#define MIB_STORAGE_USER_TBL_NUM					2300
#define MIB_STORAGE_USER_TBL			((MIB_STORAGE_USER_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_STORAGE_USER_ADD			((MIB_STORAGE_USER_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_STORAGE_USER_DEL			((MIB_STORAGE_USER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_STORAGE_USER_MOD			((MIB_STORAGE_USER_TBL_NUM+3)|MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)
#define MIB_STORAGE_USER_DELALL			((MIB_STORAGE_USER_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)


#define MIB_STORAGE_GROUP_TBL_NUM					2400
#define MIB_STORAGE_GROUP_TBL			((MIB_STORAGE_GROUP_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_STORAGE_GROUP_ADD			((MIB_STORAGE_GROUP_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_STORAGE_GROUP_DEL			((MIB_STORAGE_GROUP_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_STORAGE_GROUP_MOD			((MIB_STORAGE_GROUP_TBL_NUM+3)|MIB_DEL_TBL_ENTRY | MIB_MOD_TBL_ENTRY)
#define MIB_STORAGE_GROUP_DELALL		((MIB_STORAGE_GROUP_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

#define MIB_STORAGE_USER_NAME						2501
#define MIB_STORAGE_USER_PASSWD						2502
#define MIB_STORAGE_USER_GROUP						2503

#define MIB_STORAGE_GROUP_NAME						2511
#define MIB_STORAGE_GROUP_ACCESS					2512
#define MIB_STORAGE_GROUP_SHAREFOLDER_FLAG			2513
#define MIB_STORAGE_GROUP_DISPLAYNAME				2514
#define	MIB_STORAGE_GROUP_SHAREFOLDER				2515

#define MIB_STORAGE_ANON_ENABLE						2520
//#define MIB_STORAGE_ANON_FTP_ENABLE					2521
#define MIB_STORAGE_ANON_DISK_ENABLE				2522

#define MIB_STORAGE_FOLDER_LOCAL					2523
#define MIB_STORAGE_GROUP_EDIT_INDEX				2524
#define MIB_STORAGE_USER_EDIT_INDEX					2525
#define MIB_STORAGE_FOLDER_EDIT_NAME				2526

#endif
#ifdef CONFIG_RTL_ETH_802DOT1X_SUPPORT
#define MIB_ELAN_RS_IP			3032
#define MIB_ELAN_RS_PORT		3033
#define MIB_ELAN_RS_PASSWORD		3034
#define MIB_ELAN_ENABLE_1X		3035
#define MIB_ELAN_RS_REAUTH_TO	3036
#define MIB_ELAN_ACCOUNT_RS_ENABLED	3039
#define MIB_ELAN_ACCOUNT_RS_IP		3040
#define MIB_ELAN_ACCOUNT_RS_PORT	3041
#define MIB_ELAN_ACCOUNT_RS_PASSWORD	3042
#define MIB_ELAN_ACCOUNT_RS_UPDATE_ENABLED	3043
#define MIB_ELAN_ACCOUNT_RS_UPDATE_DELAY	3044
#define MIB_ELAN_MAC_AUTH_ENABLED	3045
#define MIB_ELAN_RS_MAXRETRY		3046
#define MIB_ELAN_RS_INTERVAL_TIME	3047
#define MIB_ELAN_ACCOUNT_RS_MAXRETRY	3048
#define MIB_ELAN_ACCOUNT_RS_INTERVAL_TIME 3049
#define MIB_ELAN_DOT1X_MODE				  3050
#define MIB_ELAN_DOT1X_PROXY_TYPE		  3051
#define MIB_ELAN_DOT1X_CLIENT_MODE_PORT_MASK 3052
#define MIB_ELAN_DOT1X_PROXY_MODE_PORT_MASK	3053


#define MIB_ELAN_INACTIVITY_TIME	3054
#define MIB_ELAN_EAPOL_UNICAST_ENABLED 3055
#ifdef CONFIG_RTL_ETH_802DOT1X_CLIENT_MODE_SUPPORT
#define MIB_ELAN_EAP_TYPE 				3056
#define MIB_ELAN_EAP_INSIDE_TYPE 		3057
#define MIB_ELAN_EAP_USER_ID			3058
#define MIB_ELAN_RS_USER_NAME			3059
#define MIB_ELAN_RS_USER_PASSWD			3060
#define MIB_ELAN_RS_USER_CERT_PASSWD	3061
#define MIB_ELAN_EAP_PHASE2_TYPE		3062
#define MIB_ELAN_PHASE2_EAP_METHOD		3063
#endif
typedef enum {ETH_DOT1X_CLIENT_MODE=1,ETH_DOT1X_PROXY_MODE=2}ETH_DOT1X_MODE_T;
#define MIB_ELAN_DOT1X_PORT_ENABLED		3070
#define MIB_ELAN_DOT1X_PORT_NUMBER		3071
#define MIB_ELAN_DOT1X_SERVER_PORT		3072

#define MIB_ELAN_DOT1X_TBL_NUM	       	3073
#define MIB_ELAN_DOT1X_TBL		      ((MIB_ELAN_DOT1X_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_ELAN_DOT1X_ADD		      ((MIB_ELAN_DOT1X_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_ELAN_DOT1X_DEL		      ((MIB_ELAN_DOT1X_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_ELAN_DOT1X_DELALL		  ((MIB_ELAN_DOT1X_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

#define MAX_ELAN_DOT1X_PORTNUM (5) /* eth0~eth4 */
#define ETH_DOT1X_CLIENT_PORT	(4)
#define ETH_DOT1X_PROXY_SNOOPING_MODE_ENABLE_BIT	(1<<0)
#define ETH_DOT1X_CLIENT_MODE_ENABLE_BIT	(1<<1)
#define ETH_DOT1X_PROXY_MODE_ENABLE_BIT	(1<<0)


#define ETH_DOT1X_CLIENT_MODE_BIT			(1<<0)
#define ETH_DOT1X_PROXY_MODE_BIT			(1<<1)
#define ETH_DOT1X_SNOOPING_MODE_BIT			(1<<2)
#endif

#define MIB_WLAN_RETRY_LIMIT	2252
#define MIB_WLAN_UAPSD_ENABLED	2253
#define MIB_WLAN_REGULATORY_DOMAIN	2254


#define MAX_L2TP_BUFF_LEN		50

#define MIB_PPP_SESSION_NUM	940
#define MIB_PPP_SERVER_MAC	941
#define MIB_L2TP_PAYLOAD    942
#define MIB_L2TP_PAYLOAD_LENGTH	943
#define MIB_L2TP_NS 944
#define MIB_DHCP_LEASE_TIME     945

/* ==== CAPWAP start =======*/
#ifdef RTK_CAPWAP // currently use 2300~2329
#define MIB_CAPWAP_MODE			2300
	typedef enum {
		CAPWAP_DISABLE = 0,
		CAPWAP_WTP_ENABLE = (1<<0),
		CAPWAP_AC_ENABLE = (1<<1),
		CAPWAP_BOTH_ENABLE = (CAPWAP_WTP_ENABLE | CAPWAP_AC_ENABLE),
	} CAPWAP_MODE_T;

// for WTP (if WTP enabled or both enabled)
#define MIB_CAPWAP_WTP_ID		2301	// 0 is invalid
#define MIB_CAPWAP_AC_IP		2302

// for AC (if AC enabled or both enabled)
#define MIB_CAPWAP_WTP_CONFIG_TBL_NUM	2305	// <= MAX_CAPWAP_WTP_NUM
#define MIB_CAPWAP_WTP_CONFIG_TBL		((MIB_CAPWAP_WTP_CONFIG_TBL_NUM+1)|MIB_TABLE_LIST)
#define MIB_CAPWAP_WTP_CONFIG_ADD		((MIB_CAPWAP_WTP_CONFIG_TBL_NUM+2)|MIB_ADD_TBL_ENTRY)
#define MIB_CAPWAP_WTP_CONFIG_DEL		((MIB_CAPWAP_WTP_CONFIG_TBL_NUM+3)|MIB_DEL_TBL_ENTRY)
#define MIB_CAPWAP_WTP_CONFIG_DELALL	((MIB_CAPWAP_WTP_CONFIG_TBL_NUM+4)|MIB_DELALL_TBL_ENTRY)

#define MIB_CAPWAP_CFG_WTP_ID			2310	// 0 is invalid
#define MIB_CAPWAP_CFG_RADIO_NUM		2311	// radios per wtp <= MAX_CAPWAP_RADIO_NUM
#define MIB_CAPWAP_CFG_WLAN_NUM			2312	// wlans per radio <= MAX_CAPWAP_WLAN_NUM

#define MIB_CAPWAP_CFG_RFPOWER_SCALE	2313	// for multiple radios
/*
	typedef enum {
		POWER_SCALE_100 = 0,
		POWER_SCALE_70 = 1,
		POWER_SCALE_50 = 2,
		POWER_SCALE_35 = 3,
		POWER_SCALE_15 = 4,
	} WLAN_POWER_SCALE_T;
 */
#define MIB_CAPWAP_CFG_CHANNEL			2314	// for multiple radios
#define MIB_CAPWAP_CFG_WLAN				2315	// for multiple wlans (vaps)

#define MIB_CAPWAP_CFG_WLAN_ENABLE		2320	// for each wlan (vap)
#define MIB_CAPWAP_CFG_KEY_TYPE			2321	// for each wlan (vap)
	typedef enum {
		CAPWAP_KEY_TYPE_NONE = 0,
		CAPWAP_KEY_TYPE_SHARED_WEP40,
		CAPWAP_KEY_TYPE_SHARED_WEP104,
		CAPWAP_KEY_TYPE_SHARED_WPA_AES,
		CAPWAP_KEY_TYPE_SHARED_WPA_TKIP,
		CAPWAP_KEY_TYPE_SHARED_WPA2_AES,
		CAPWAP_KEY_TYPE_SHARED_WPA2_TKIP,
	} CAPWAP_KEY_TYPE_T;
#define MIB_CAPWAP_CFG_PSK_FORMAT		2322	// for each wlan (vap)
	typedef enum {
		PSK_FORMAT_PASSPHRASE = 0,
		PSK_FORMAT_HEX = 1,
	}PASK_FORMAT_T;
#define MIB_CAPWAP_CFG_KEY				2323	// for each wlan (vap)
#define MIB_CAPWAP_CFG_SSID				2324	// for each wlan (vap)
#define MIB_CAPWAP_CFG_BSSID			2325	// for each wlan (vap)

#define MAX_CAPWAP_WTP_NUM		4	// max wtps for one AC
#define MAX_CAPWAP_RADIO_NUM	2 	// radios per wtp
#define MAX_CAPWAP_WLAN_NUM		5	// max wlans per radio
#endif //#ifdef RTK_CAPWAP
/* ==== CAPWAP end =======*/

// MIB value and constant
#ifdef CONFIG_IPV6
#define IFNAMESIZE 32
#define MAX_PREFIX_NUM 2
#define RR_MAX_NUM 2
#define NAMSIZE 32
#define MAX_DNAME_SIZE 128
#endif
#define MAX_REGULATORY_DOMAIN	4
#define MAX_SSID_LEN			33
#define WEP64_KEY_LEN			5
#define WEP128_KEY_LEN			13
#define MAX_NAME_LEN			31
#define COMMENT_LEN			21
#define MAX_CCK_CHAN_NUM		14
#define MAX_OFDM_CHAN_NUM		162
#define MAX_SERVER_DOMAIN_LEN	32
#define MAX_2G_CHANNEL_NUM_MIB		14
#define MAX_5G_CHANNEL_NUM_MIB		196

#if defined(CONFIG_RTL_8812_SUPPORT) || defined(HAVE_RTK_AC_SUPPORT) || defined(HAVE_RTK_4T4R_AC_SUPPORT)
#define MAX_5G_DIFF_NUM		14
#endif
#define MIN_PSK_LEN			8
#define MAX_PSK_LEN			64
#define MAX_RS_PASS_LEN			65
#define MAX_DOMAIN_LEN			51
#define MAX_NAME_LEN_LONG		129

#define TX_RATE_1M			0x01
#define TX_RATE_2M			0x02
#define TX_RATE_5M			0x04
#define TX_RATE_11M			0x08

#define TX_RATE_6M			0x10
#define TX_RATE_9M			0x20
#define TX_RATE_12M			0x40
#define TX_RATE_18M			0x80
#define TX_RATE_24M			0x100
#define TX_RATE_36M			0x200
#define TX_RATE_48M			0x400
#define TX_RATE_54M			0x800

#define MAX_WLAN_AC_NUM			20

//#if defined(CONFIG_RTK_MESH) && defined(_MESH_ACL_ENABLE_) Keith remove
#define MAX_MESH_ACL_NUM	MAX_WLAN_AC_NUM
//#endif Keith remove

#define MAX_CERTROOT_NUM			5
#define MAX_CERTUSER_NUM			5	
#ifdef HOME_GATEWAY
#define MAX_FILTER_NUM			20
#define MAX_URLFILTER_NUM		16
#ifdef VPN_SUPPORT
#define MAX_TUNNEL_NUM			10
#define MAX_RSA_FILE_LEN		2048
#define MAX_RSA_KEY_LEN			380
#define MAX_ENCRKEY_LEN			49
#define MAX_AUTHKEY_LEN			41
#define MAX_SPI_LEN			5
#endif
#define MAX_QOS_RULE_NUM		10
#endif
#define MAX_ROUTE_NUM			10
#define MAX_DHCP_RSVD_IP_NUM 20
#define MAXFNAME			60

//#ifdef CONFIG_RTL8196B_GW_8M
//#define MAX_WDS_NUM			4
//#else
#define MAX_WDS_NUM			8
//#endif

#ifdef WLAN_EASY_CONFIG
#define MAX_ACF_KEY_LEN			64
#define MAX_ACF_DIGEST_LEN		32
#endif

//#ifdef SNMP_SUPPORT Keith remove
#define MAX_SNMP_COMMUNITY_LEN                  64
//#endif Keith remove

#if defined(WIFI_SIMPLE_CONFIG) || defined(HAVE_WIFI_SIMPLE_CONFIG)
#define PIN_LEN					8
#endif

#define IFNAMSIZE       16
#if defined(CONFIG_RTL_8198_AP_ROOT) && defined(GMII_ENABLED) || defined(CONFIG_RTK_VLAN_NEW_FEATURE)
#define MAX_IFACE_VLAN_CONFIG (7+5*2) /* eth0~eth6, 2*(wlanX,wlanX-va0~wlanX-va3)no wds and vxd*/
#else
#define MAX_IFACE_VLAN_CONFIG (6+5*2) /* eth0~eth5, 2*(wlanX,wlanX-va0~wlanX-va3)no wds and vxd*/
#endif

#ifdef WLAN_PROFILE
#define MAX_WLAN_PROFILE_NUM	5
#define PROFILE_BOTTOM_UP
#endif

#if defined(UNIVERSAL_REPEATER)
#define CONFIG_SMART_REPEATER
//#define CONFIG_REPEATER_WPS_SUPPORT
//#define CONFIG_WPS_EITHER_AP_OR_VXD //either one. When enable repeater, the wps is working for virtual client. Otherwise wps is working for root AP.
//#define CONFIG_ONLY_SUPPORT_CLIENT_REPEATER_WPS //if and only if root is client mode, the virtual vxd support wps
#endif

#define NEW_SCHEDULE_SUPPORT
#if defined(NEW_SCHEDULE_SUPPORT)
#define MAX_SCHEDULE_NUM 10
#else
/*Brad add for schedule*/
#define MAX_SCHEDULE_NUM 1
#endif

/* # keith: add l2tp support. 20080515 */
#define MAX_PPTP_HOST_NAME_LEN 64

#ifdef SAMBA_WEB_SUPPORT
#define MAX_USER_NUM			10
#define MAX_GROUP_NUM			10
#define MAX_USER_NAME_LEN		10
#define MAX_USER_PASSWD_LEN		10
#define MAX_GROUP_NAME_LEN		10
#define MAX_FOLDER_NAME_LEN		30
#define	MAX_DISPLAY_NAME_LEN	10
#endif

#ifdef __mips__
#ifdef CONFIG_MTD_NAND
#define FLASH_DEVICE_NAME		("/hw_setting/hw.bin")
#define FLASH_DEVICE_NAME1		("/hw_setting/hw1.bin")
#else
#define FLASH_DEVICE_NAME		("/dev/mtdblock0")
#define FLASH_DEVICE_NAME1		("/dev/mtdblock1")
#endif
#else
#define FLASH_DEVICE_NAME		("setting.bin")
#define FLASH_DEVICE_NAME1		("setting1.bin")
#endif

#ifdef CONFIG_RTL_FLASH_MAPPING_ENABLE
#define HW_SETTING_OFFSET		CONFIG_RTL_HW_SETTING_OFFSET
#define DEFAULT_SETTING_OFFSET          CONFIG_RTL_DEFAULT_SETTING_OFFSET
#define CURRENT_SETTING_OFFSET		CONFIG_RTL_CURRENT_SETTING_OFFSET
#define WEB_PAGE_OFFSET			CONFIG_RTL_WEB_PAGES_OFFSET
#define CODE_IMAGE_OFFSET               CONFIG_RTL_CODE_IMAGE_OFFSET
#define ROOT_IMAGE_OFFSET		CONFIG_RTL_ROOT_IMAGE_OFFSET
#else
#define HW_SETTING_OFFSET		0x6000
#define DEFAULT_SETTING_OFFSET	0x8000
#define CURRENT_SETTING_OFFSET		0xc000
#define WEB_PAGE_OFFSET			0x10000
#define CODE_IMAGE_OFFSET		0x20000
#define ROOT_IMAGE_OFFSET		0xE0000
#endif

#ifdef HOME_GATEWAY
	#define CERT_PAGE_OFFSET	0x3f0000
#else
	#define CERT_PAGE_OFFSET	0x1f0000
#endif

#ifdef CONFIG_RTL_FLASH_MAPPING_ENABLE
#define HW_SETTING_SECTOR_LEN (CONFIG_RTL_DEFAULT_SETTING_OFFSET-CONFIG_RTL_HW_SETTING_OFFSET)
#define DEFAULT_SETTING_SECTOR_LEN	(CONFIG_RTL_CURRENT_SETTING_OFFSET-CONFIG_RTL_DEFAULT_SETTING_OFFSET)
#define CURRENT_SETTING_SECTOR_LEN	(CONFIG_RTL_WEB_PAGES_OFFSET-CONFIG_RTL_CURRENT_SETTING_OFFSET)
#else
#define HW_SETTING_SECTOR_LEN           (0x8000-0x6000)
#define DEFAULT_SETTING_SECTOR_LEN      (0xc000-0x8000)
#define CURRENT_SETTING_SECTOR_LEN      (0x10000-0xc000)
#endif

#ifndef WIN32
#define __PACK__		__attribute__ ((packed))
#else
#define __PACK__
#endif


/* Config/fw image file header */

typedef enum { HW_SETTING=1, DEFAULT_SETTING=2, CURRENT_SETTING=4 } CONFIG_DATA_T;

#if defined(CONFIG_RTL_8196B)
// update tag
#define HW_SETTING_HEADER_TAG		((char *)"h6")
//Brad add for distinguish ap(da:default setting for ap) or gateway(dg: default setting for gateway) platform
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define DEFAULT_SETTING_HEADER_TAG	((char *)"6V")
#elif (defined(HOME_GATEWAY))
#define DEFAULT_SETTING_HEADER_TAG	((char *)"6G")
#else
#define DEFAULT_SETTING_HEADER_TAG	((char *)"6A")
#endif
//Brad add for distinguish ap(ca:current setting for ap) or gateway(cg: current setting for gateway) platform
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define CURRENT_SETTING_HEADER_TAG	((char *)"6v")
#elif (defined(HOME_GATEWAY))
#define CURRENT_SETTING_HEADER_TAG	((char *)"6g")
#else
#define CURRENT_SETTING_HEADER_TAG	((char *)"6a")
#endif
// force tag
#define HW_SETTING_HEADER_FORCE_TAG	((char *)"Hf")
#define DEFAULT_SETTING_HEADER_FORCE_TAG ((char *)"Df")
#define CURRENT_SETTING_HEADER_FORCE_TAG ((char *)"Cf")
// upgrade
#define HW_SETTING_HEADER_UPGRADE_TAG	((char *)"Hu")
#define DEFAULT_SETTING_HEADER_UPGRADE_TAG ((char *)"Du")
#define CURRENT_SETTING_HEADER_UPGRADE_TAG ((char *)"Cu")
#elif defined(CONFIG_RTL_8198C)||defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) || defined(CONFIG_RTL_8198B) || defined(CONFIG_RTL_8197F)
// update tag
#define HW_SETTING_HEADER_TAG		((char *)"H6")
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define DEFAULT_SETTING_HEADER_TAG	((char *)"6V")
#elif (defined(HOME_GATEWAY))
#define DEFAULT_SETTING_HEADER_TAG	((char *)"6G")
#else
#define DEFAULT_SETTING_HEADER_TAG	((char *)"6A")
#endif
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define CURRENT_SETTING_HEADER_TAG	((char *)"6v")
#elif (defined(HOME_GATEWAY))
#define CURRENT_SETTING_HEADER_TAG	((char *)"6g")
#else
#define CURRENT_SETTING_HEADER_TAG	((char *)"6a")
#endif
// force tag
#define HW_SETTING_HEADER_FORCE_TAG	((char *)"Hf")
#define DEFAULT_SETTING_HEADER_FORCE_TAG ((char *)"Df")
#define CURRENT_SETTING_HEADER_FORCE_TAG ((char *)"Cf")
// upgrade
#define HW_SETTING_HEADER_UPGRADE_TAG	((char *)"Hu")
#define DEFAULT_SETTING_HEADER_UPGRADE_TAG ((char *)"Du")
#define CURRENT_SETTING_HEADER_UPGRADE_TAG ((char *)"Cu")
#else
// update tag
#define HW_SETTING_HEADER_TAG		((char *)"hs")
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define DEFAULT_SETTING_HEADER_TAG	((char *)"dv")
#elif (defined(HOME_GATEWAY))
#define DEFAULT_SETTING_HEADER_TAG	((char *)"dg")
#else
#define DEFAULT_SETTING_HEADER_TAG	((char *)"da")
#endif
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define CURRENT_SETTING_HEADER_TAG	((char *)"cv")
#elif (defined(HOME_GATEWAY))
#define CURRENT_SETTING_HEADER_TAG	((char *)"cg")
#else
#define CURRENT_SETTING_HEADER_TAG	((char *)"ca")
#endif
// force tag
#define HW_SETTING_HEADER_FORCE_TAG	((char *)"hf")
#define DEFAULT_SETTING_HEADER_FORCE_TAG ((char *)"df")
#define CURRENT_SETTING_HEADER_FORCE_TAG ((char *)"cf")
// upgrade
#define HW_SETTING_HEADER_UPGRADE_TAG	((char *)"hu")
#define DEFAULT_SETTING_HEADER_UPGRADE_TAG ((char *)"du")
#define CURRENT_SETTING_HEADER_UPGRADE_TAG ((char *)"cu")
#endif //#if defined(CONFIG_RTL_8196B)


#if 0//def CONFIG_RTL8196B_GW_8M
#undef DEFAULT_SETTING_HEADER_TAG	
#define DEFAULT_SETTING_HEADER_TAG	((char *)"61")

#undef CURRENT_SETTING_HEADER_TAG	
#define CURRENT_SETTING_HEADER_TAG	((char *)"62")
#endif


#define TAG_LEN				2

#if defined(CONFIG_RTL_8196B)

#define HW_SETTING_VER			1	// hw setting version
#define DEFAULT_SETTING_VER		2	// default setting version
#define CURRENT_SETTING_VER		DEFAULT_SETTING_VER // current setting version

#elif defined(CONFIG_RTL_8198C)||defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) || defined(CONFIG_RTL_8198B) || defined(CONFIG_RTL_8197F)
#define HW_SETTING_VER			1	// hw setting version
#define DEFAULT_SETTING_VER		1	// default setting version
#define CURRENT_SETTING_VER		DEFAULT_SETTING_VER // current setting version
#else

#define HW_SETTING_VER			3	// hw setting version
#define DEFAULT_SETTING_VER		4	// default setting version
#define CURRENT_SETTING_VER		DEFAULT_SETTING_VER // current setting version

#endif

#if defined(CONFIG_RTL_8196B)
#define FW_HEADER_WITH_ROOT	((char *)"cr6b")
#define FW_HEADER			((char *)"cs6b")
#elif defined(CONFIG_RTL_8198C)||defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) || defined(CONFIG_RTL_8198B)
#define FW_HEADER_WITH_ROOT	((char *)"cr6c")
#define FW_HEADER			((char *)"cs6c")
#else
#define FW_HEADER_WITH_ROOT	((char *)"csro")
#define FW_HEADER			((char *)"csys")
#endif //#if defined(CONFIG_RTL_8196B)

#if defined(CONFIG_RTL_8196B)
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define WEB_HEADER			((char *)"w6bv")
#elif (defined(HOME_GATEWAY))
#define WEB_HEADER			((char *)"w6bg")
#else
#define WEB_HEADER			((char *)"w6ba")
#endif
#elif defined(CONFIG_RTL_8198C)||defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) || defined(CONFIG_RTL_8198B)
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define WEB_HEADER			((char *)"w6cv")
#elif (defined(HOME_GATEWAY))
#define WEB_HEADER			((char *)"w6cg")
#else
#define WEB_HEADER			((char *)"w6ca")
#endif
#else
#if (defined(HOME_GATEWAY) && defined(VPN_SUPPORT))
#define WEB_HEADER			((char *)"webv")
#elif (defined(HOME_GATEWAY))
#define WEB_HEADER			((char *)"webg")
#else
#define WEB_HEADER			((char *)"weba")
#endif
#endif //#if defined(CONFIG_RTL_8196B)

#if defined(CONFIG_RTL_8196B)
#define ROOT_HEADER			((char *)"r6br")
#elif defined(CONFIG_RTL_8198C)||defined(CONFIG_RTL_8196C) || defined(CONFIG_RTL_8198) || defined(CONFIG_RTL_819XD) || defined(CONFIG_RTL_8196E) || defined(CONFIG_RTL_8198B)
#define ROOT_HEADER			((char *)"r6cr")
#else
#define ROOT_HEADER			((char *)"root")
#endif //#if defined(CONFIG_RTL_8196B)

#define CERT_HEADER			((char *)"cert")
#define BOOT_HEADER			((char *)"boot")
#define ALL_HEADER			((char *)"allp")
#define SIGNATURE_LEN			4

/* wlan driver ioctl id */
#define SIOCGIWRTLSTAINFO   		0x8B30	// get station table information
#define SIOCGIWRTLSTANUM		0x8B31	// get the number of stations in table
#define SIOCGIWRTLSCANREQ		0x8B33	// scan request
#define SIOCGIWRTLGETBSSDB		0x8B34	// get bss data base
#define SIOCGIWRTLJOINREQ		0x8B35	// join request
#define SIOCGIWRTLJOINREQSTATUS		0x8B36	// get status of join request
#define SIOCGIWRTLGETBSSINFO		0x8B37	// get currnet bss info
#define SIOCGIWRTLGETWDSINFO		0x8B38
#define SIOCGMISCDATA	0x8B48	// get misc data

/*for P2P_SUPPORT*/
#define SIOCP2PSCANREQ   		0x8BD2	// p2p scan request
#define SIOCP2PGETRESULT  	0x8BD3 // get p2p discovery result
#define SIOCP2PPROVREQ		0x8BD4	// issue provision discovery request
#define SIOCP2WSCMETHODCONF	0x8BD5	// report event and state
#define SIOCP2PPGETEVNIND	0x8BD6	// report event and state

#define SIOCP2P_WSC_REPORT_STATE			0x8BD7
#define SIOCP2P_REPORT_CLIENT_STATE			0x8BD8	// report client connect state



//=========add for MESH=========
//#ifdef CONFIG_RTK_MESH Keith remove
// by GANTOE for site survey 2008/12/26 
#define SIOCJOINMESH 0x8B94 
#define SIOCCHECKMESHLINK 0x8B95
//#endif Keith remove
//=========add for MESH=========

#define MAC_ADDR_LEN    6
#define MAX_STA_NUM			64	// max support sta number

/* flag of sta info */
#define STA_INFO_FLAG_AUTH_OPEN     	0x01
#define STA_INFO_FLAG_AUTH_WEP      	0x02
#define STA_INFO_FLAG_ASOC          	0x04
#define STA_INFO_FLAG_ASLEEP        	0x08

// bit value for hw board id
#if 0
// Old code and no longer used
#define ETH_PHY_TYPE			1
#define BOOT_PORT_SELECT		2
#define USE_ETH0_WAN			4
#endif
#define WLAN_RF_2T2R			1

#ifdef WIFI_SIMPLE_CONFIG
enum { WSC_AUTH_OPEN=1, WSC_AUTH_WPAPSK=2, WSC_AUTH_SHARED=4, WSC_AUTH_WPA=8, WSC_AUTH_WPA2=0x10, WSC_AUTH_WPA2PSK=0x20, WSC_AUTH_WPA2PSKMIXED=0x22 };
enum { WSC_ENCRYPT_NONE=1, WSC_ENCRYPT_WEP=2, WSC_ENCRYPT_TKIP=4, WSC_ENCRYPT_AES=8, WSC_ENCRYPT_TKIPAES=12 };

enum { 	
CONFIG_METHOD_ETH=0x2, 
	CONFIG_METHOD_PIN=0x4, 	
	CONFIG_METHOD_DISPLAY=0x8  ,		
	CONFIG_METHOD_PBC=0x80 , 	
	CONFIG_METHOD_KEYPAD=0x100   
};

enum { CONFIG_BY_INTERNAL_REGISTRAR=1, CONFIG_BY_EXTERNAL_REGISTRAR=2};
#endif
typedef enum {
	ENCRYPT_WPA_TKIP = 2,
	ENCRYPT_WPA_AES = 3,
	ENCRYPT_WPA2_AES = 4,
	ENCRYPT_WPA2_TKIP = 5,
} WPAENCRYPT_T;
typedef enum { ENCRYPT_DISABLED=0, ENCRYPT_WEP=1, ENCRYPT_WPA=2, ENCRYPT_WPA2=4, ENCRYPT_WPA2_MIXED=6 ,ENCRYPT_WAPI=7} ENCRYPT_T;
typedef enum { WDS_ENCRYPT_DISABLED=0, WDS_ENCRYPT_WEP64=1, WDS_ENCRYPT_WEP128=2, WDS_ENCRYPT_TKIP=3, WDS_ENCRYPT_AES=4} WDS_ENCRYPT_T;
typedef enum { SUPP_NONWPA_NONE=0,SUPP_NONWPA_WEP=1,SUPP_NONWPA_1X=2} SUPP_NONWAP_T;
typedef enum { WPA_AUTH_AUTO=1, WPA_AUTH_PSK=2 } WPA_AUTH_T;
typedef enum { WAPI_AUTH_AUTO=1, WAPI_AUTH_PSK=2 } WAPI_AUTH_T;
typedef enum { WPA_CIPHER_TKIP=1, WPA_CIPHER_AES=2, WPA_CIPHER_MIXED=3 } WPA_CIPHER_T;
typedef enum { WEP_DISABLED=0, WEP64=1, WEP128=2 } WEP_T;
typedef enum { KEY_ASCII=0, KEY_HEX } KEY_TYPE_T;
typedef enum { LONG_PREAMBLE=0, SHORT_PREAMBLE=1 } PREAMBLE_T;
typedef enum { DHCP_DISABLED=0, DHCP_CLIENT=1, DHCP_SERVER=2, PPPOE=3, PPTP=4, DHCP_RELAY=5,L2TP=6, DHCP_AUTO=15 , USB3G=16, AFTR=17, DHCP_AUTO_WAN=19, DHCP_NONE=99  } DHCP_T; /* # keith: add l2tp support. 20080515 */
typedef enum { DHCP_LAN_NONE=0, DHCP_LAN_CLIENT=1, DHCP_LAN_SERVER=2, DHCP_LAN_RELAY=3 } DHCP_TYPE_T; //keith add. LAN SIDE DHCP TYPE
typedef enum { GATEWAY_MODE=0, BRIDGE_MODE=1, WISP_MODE=2 } OPMODE_T;
typedef enum { DISABLE_MODE=0, RIP1_MODE=1, RIP2_MODE=2 } RIP_OPMODE_T; 
#ifdef RIP6_SUPPORT
typedef enum { RIP6_DISABLE=0, RIP6_ENABLE=1 } RIP6_OPMODE_T;
#endif
typedef enum { FCC=1, IC, ETSI, SPAIN, FRANCE, MKK } REG_DOMAIN_T;
typedef enum { AUTH_OPEN=0, AUTH_SHARED, AUTH_BOTH } AUTH_TYPE_T;
typedef enum { DNS_AUTO=0, DNS_MANUAL } DNS_TYPE_T;
#if defined(CONFIG_DYNAMIC_WAN_IP)
typedef enum { DYNAMIC_IP=0, STATIC_IP } WAN_IP_TYPE_T;
#endif
typedef enum { CONTINUOUS=0, CONNECT_ON_DEMAND, MANUAL } PPP_CONNECT_TYPE_T;
typedef enum { RF_INTERSIL=1, RF_RFMD=2, RF_PHILIP=3, RF_MAXIM=4, RF_GCT=5,
 		RF_MAXIM_AG=6, RF_ZEBRA=7, RF_8255=8 } RF_TYPE_T;
typedef enum { LED_TX_RX=0, LED_LINK_TXRX=1, LED_LINKTXRX=2 } LED_TYPE_T;
typedef enum { VLAN_FORWARD_DISABLED=0, VLAN_FORWARD_BRIDGE=1, VLAN_FORWARD_NAT=2 } VLAN_FORWARD_TYPE_T;

typedef enum { CHIP_UNKNOWN=0, CHIP_RTL8188C=1, CHIP_RTL8192C=2, CHIP_RTL8192D=3, CHIP_RTL8192E=4,CHIP_RTL8188E=5, } CHIP_VERSION_T;

typedef enum { 
	AP_MODE=0, 
	CLIENT_MODE=1, 
	WDS_MODE=2, 
	AP_WDS_MODE=3, 
	AP_MESH_MODE=4, 
	MESH_MODE=5, 
	MP_MODE=7,
	P2P_SUPPORT_MODE=8
} WLAN_MODE_T;

//=========add for MESH=========

typedef enum { INFRASTRUCTURE=0, ADHOC=1 } NETWORK_TYPE_T;
typedef enum { BAND_11B=1, BAND_11G=2, BAND_11BG=3, BAND_11A=4, BAND_11N=8, BAND_5G_11AN=12, 
	BAND_5G_11AC=64,BAND_5G_11AAC=68,BAND_5G_11NAC=72,BAND_5G_11ANAC=76} BAND_TYPE_T;
typedef enum { DISABLED=0, A_MPDU=1, A_MSDU=2, A_MIXED=3} AGGREGATION_MODE_T;	// GANTOE & epopen: DISABLED=0 original is DISABLE=0, Because conflict with ../../auth/include/1x_common.h in AP/net-snmp-5.x.x
typedef enum { PHYBAND_OFF=0, PHYBAND_2G=1, PHYBAND_5G=2 } PHYBAND_TYPE_T;
typedef enum { SMACSPHY=0, DMACSPHY=1, DMACDPHY=2 } MACPHYMODE_TYPE_T;
typedef enum { BANDMODE2G=0, BANDMODE5G=1, BANDMODEBOTH=2, BANDMODESINGLE=3 } WLANBAND2G5GMODE_TYPE_T;

#ifdef HOME_GATEWAY
#ifdef VPN_SUPPORT
typedef enum { IKE_MODE=0, MANUAL_MODE=1} KEY_MODE_T;
typedef enum { SINGLE_ADDR=0, SUBNET_ADDR=1, ANY_ADDR=2, NATT_ADDR=3} ADDRESS_MODE_T;
typedef enum { INITIATOR=0, RESPONDER=1} CONN_TYPE_T;
typedef enum { MD5_ALGO=0, AUTH_ALGO=1} AUTH_MODE_T;
typedef enum { ESP_PROTO=0, AH_PROTO=1} IPSEC_PROTO_T;
typedef enum { TRI_DES_ALGO=0, AES_ALGO=1, NONE_ALGO=2} ENCR_MODE_T;
// DH1=768 bits, DH2=1024 bits, DH5= 1536
typedef enum { DH1_GRP=0, DH2_GRP=1, DH5_GRP=2} KEY_GROUP_T;
#endif // VPN_SUPPORT
typedef enum { PROTO_BOTH=3, PROTO_TCP=1, PROTO_UDP=2 } PROTO_TYPE_T;
typedef enum { IPv4=4, IPv6=6 } IP_VERSION_T;
#endif // HOME_GATEWAY

#ifdef WLAN_EASY_CONFIG
enum { MODE_BUTTON=1, MODE_QUESTION=2 };
enum {
	ACF_ALGORITHM_WEP64	= 0x01,
	ACF_ALGORITHM_WEP128	= 0x02,
	ACF_ALGORITHM_WPA_TKIP	= 0x04,
	ACF_ALGORITHM_WPA_AES	= 0x08,
	ACF_ALGORITHM_WPA2_TKIP	= 0x10,
	ACF_ALGORITHM_WPA2_AES	= 0x20,
};
enum {	ROLE_SERVER=1, ROLE_CLIENT=2, ROLE_ADHOC=4};
#endif // WLAN_EASY_CONFIG

enum {TURBO_AUTO=0, TURBO_ON=1, TURBO_OFF=2};


#if defined(CONFIG_RTL_802_1X_CLIENT_SUPPORT) || defined(CONFIG_RTL_ETH_802DOT1X_CLIENT_MODE_SUPPORT)

typedef enum { EAP_MD5=0, EAP_TLS=1, EAP_PEAP=2,EAP_TTLS=3 } EAP_TYPE_T;
typedef enum { INSIDE_MSCHAPV2=0 } INSIDE_TYPE_T;
#define MAX_EAP_USER_ID_LEN 64
#define MAX_RS_USER_NAME_LEN 64
#define MAX_RS_USER_PASS_LEN 64
#define MAX_RS_USER_CERT_PASS_LEN 64
#define RS_USER_CERT_5G	"/var/1x/client_5g.pem"
#define RS_ROOT_CERT_5G	"/var/1x/ca_5g.pem"
#define RS_USER_CERT_2G	"/var/1x/client_2g.pem"
#define RS_ROOT_CERT_2G	"/var/1x/ca_2g.pem"
#define RS_USER_CERT_TMP "/var/1x/client_tmp.pem"
#define RS_ROOT_CERT_TMP "/var/1x/ca_tmp.pem"
#if defined(CONFIG_RTL_ETH_802DOT1X_CLIENT_MODE_SUPPORT)
typedef enum { TTLS_PHASE2_EAP=0,TTLS_PHASE2_PAP=1,TTLS_PHASE2_CHAP=2,TTLS_PHASE2_MSCHAP=3,TTLS_PHASE2_MSCHAPV2=4 } TTLS_PHASE2_TYPE_T;
typedef enum { TTLS_PHASE2_EAP_MD5=0 } TTLS_PHASE2_EAP_METHOD_T;

#define RS_USER_CERT_ETH	"/var/1x/client_eth.pem"
#define RS_ROOT_CERT_ETH	"/var/1x/ca_eth.pem"
#define CERT_SIZE 0x12000	//48KB,for ethernet 1x should be sync with users/auth/src/rwCertSrc/rsCertCommon.h
#else
#define CERT_SIZE 0x8000	//32KB, should be sync with users/auth/src/rwCertSrc/rsCertCommon.h
#endif
#endif



#if defined(CONFIG_RTL_ULINKER)
#include "rtl_ulinker.h"
#endif



#define DWORD_SWAP(v) ( (((v&0xff)<<24)&0xff000000) | ((((v>>8)&0xff)<<16)&0xff0000) | \
				((((v>>16)&0xff)<<8)&0xff00) | (((v>>24)&0xff)&0xff) )
#define WORD_SWAP(v) ((unsigned short)(((v>>8)&0xff) | ((v<<8)&0xff00)))

#ifdef HEADER_LEN_INT
#define HEADER_SWAP(v) DWORD_SWAP(v)
#else 
#define HEADER_SWAP(v) WORD_SWAP(v)
#endif
/* scramble saved configuration data */
#define ENCODE_DATA(data,len) { \
	int i; \
	for (i=0; i<len; i++) \
		data[i] = ~ ( data[i] + 0x38); \
}

#define DECODE_DATA(data,len) { \
	int i; \
	for (i=0; i<len; i++) \
		data[i] = ~data[i] - 0x38;	\
}

/* Do checksum and verification for configuration data */
#ifndef WIN32
static inline unsigned char CHECKSUM(unsigned char *data, int len)
#else
__inline unsigned char CHECKSUM(unsigned char *data, int len)
#endif
{
	int i;
	unsigned char sum=0;

	for (i=0; i<len; i++)
		sum += data[i];

	sum = ~sum + 1;
	return sum;
}
#define CHECKSUM_LEN_MAX 0x800000
#ifndef WIN32
static inline int CHECKSUM_OK(unsigned char *data, int len)
#else
__inline int CHECKSUM_OK(unsigned char *data, int len)
#endif
{
	int i;
	unsigned char sum=0;

	if(len<0||len>CHECKSUM_LEN_MAX)
		return 0;
	for (i=0; i<len; i++)
		sum += data[i];

	if (sum == 0)
		return 1;
	else
		return 0;
}

/* WLAN sta info structure */
typedef struct wlan_sta_info {
	unsigned short	aid;
	unsigned char	addr[6];
	unsigned long	tx_packets;
	unsigned long	rx_packets;
	unsigned long	expired_time;	// 10 msec unit
	unsigned short	flag;
	unsigned char	txOperaRates;
	unsigned char	rssi;
	unsigned long	link_time;		// 1 sec unit
	unsigned long	tx_fail;
	unsigned long tx_bytes;
	unsigned long rx_bytes;
	unsigned char network;
	unsigned char ht_info;	// bit0: 0=20M mode, 1=40M mode; bit1: 0=longGI, 1=shortGI
	unsigned char	RxOperaRate;
	unsigned char 	resv[5];
} WLAN_STA_INFO_T, *WLAN_STA_INFO_Tp;

typedef struct wlan_rate{
unsigned int id;
unsigned char rate[20];
}WLAN_RATE_T, *WLAN_RATE_Tp;
typedef enum { 
	MCS0=0x80, 
	MCS1=0x81, 
	MCS2=0x82,
	MCS3=0x83,
	MCS4=0x84,
	MCS5=0x85,
	MCS6=0x86,
	MCS7=0x87,
	MCS8=0x88,
	MCS9=0x89,
	MCS10=0x8a,
	MCS11=0x8b,
	MCS12=0x8c,
	MCS13=0x8d,
	MCS14=0x8e,
	MCS15=0x8f
	} RATE_11N_T;

#ifdef WIN32
#pragma pack(1)
#endif



#ifdef CONFIG_RTL_P2P_SUPPORT
//#define P2P_DEBUG(fmt, args...) printf("(%s %d):"fmt,__FUNCTION__ , __LINE__ , ## args)
#define P2P_DEBUG(fmt, args...) 
typedef enum { 
	P2P_DEVICE=1, 
	P2P_PRE_CLIENT=2,
	P2P_CLIENT=3,
	P2P_PRE_GO=4,	 // after GO nego , we are GO and proceed WSC exchange
	P2P_TMP_GO=5	 // after GO nego , we are GO and proceed WSC exchange is done
} P2P_TPYE_ENUM_T;
#endif



//zj: eco featrue
#define ECO_LEDDIM_MASK		0x08
#define ECO_TIMER_MASK			0x04
#define ECO_EVERYDAY_MASK		0x02
#define ECO_24HOURS_MASK			0x01

#define ECO_DAY_MASK			0x0000007F
#define ECO_SUNDAY_MASK		0x00000001
#define ECO_MONDAY_MASK		0x00000002
#define ECO_TUESDAY_MASK		0x00000004
#define ECO_WEDNESDAY_MASK	0x00000008
#define ECO_THURSDAY_MASK		0x00000010
#define ECO_FRIDAY_MASK		0x00000020
#define ECO_SATURDAY_MASK		0x00000040

#define SCHEDULE_NAME_LEN		20
typedef struct schedule_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_SCHEDULE_IMPORT
#include "mibdef.h"
#undef MIB_SCHEDULE_IMPORT

#undef MIBDEF
}__PACK__ SCHEDULE_T, *SCHEDULE_Tp;



typedef struct macfilter_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_MACFILTER_IMPORT
#include "mibdef.h"
#undef MIB_MACFILTER_IMPORT

#undef MIBDEF
}__PACK__ MACFILTER_T, *MACFILTER_Tp;

#ifdef HOME_GATEWAY
typedef struct urlfilter_entry {	
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_URLFILTER_IMPORT
#include "mibdef.h"
#undef MIB_URLFILTER_IMPORT

#undef MIBDEF
}__PACK__ URLFILTER_T, *URLFILTER_Tp;

typedef struct portfw_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_PORTFW_IMPORT
#include "mibdef.h"
#undef MIB_PORTFW_IMPORT

#undef MIBDEF
}__PACK__ PORTFW_T, *PORTFW_Tp;

typedef struct ipfilter_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_IPFILTER_IMPORT
#include "mibdef.h"
#undef MIB_IPFILTER_IMPORT

#undef MIBDEF
}__PACK__ IPFILTER_T, *IPFILTER_Tp;

#ifdef SAMBA_WEB_SUPPORT
typedef struct storage_userentry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;
#define MIB_STORAGE_USER_IMPORT
#include "mibdef.h"
#undef MIB_STORAGE_USER_IMPORT

#undef MIBDEF
}__PACK__ STORAGE_USER_T, *STORAGE_USER_Tp;

typedef struct storage_groupentry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_STORAGE_GROUP_IMPORT
#include "mibdef.h"
#undef MIB_STORAGE_GROUP_IMPORT

#undef MIBDEF
}__PACK__ STORAGE_GROUP_T, *STORAGE_GROUP_Tp;
#endif

typedef struct portfilter_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_PORTFILTER_IMPORT
#include "mibdef.h"
#undef MIB_PORTFILTER_IMPORT

#undef MIBDEF
}__PACK__ PORTFILTER_T, *PORTFILTER_Tp;

typedef struct triggerport_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_TRIGGERPORT_IMPORT
#include "mibdef.h"
#undef MIB_TRIGGERPORT_IMPORT

#undef MIBDEF
}__PACK__ TRIGGERPORT_T, *TRIGGERPORT_Tp;

#ifdef GW_QOS_ENGINE
#define MAX_QOS_NAME_LEN    15
typedef struct qos_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_QOS_IMPORT
#include "mibdef.h"
#undef MIB_QOS_IMPORT

#undef MIBDEF
}__PACK__ QOS_T, *QOS_Tp;
#endif

#ifdef QOS_BY_BANDWIDTH
#define QOS_RESTRICT_MIN	0x01
#define QOS_RESTRICT_MAX	0x02
#define QOS_RESTRICT_IP		0x04
#define QOS_RESTRICT_MAC	0x08
#define QOS_RESTRICT_IPV6	0x10
#define QOS_RESTRICT_ALL	0x20
#define MAX_QOS_NAME_LEN    15

typedef struct qos_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_IPQOS_IMPORT
#include "mibdef.h"
#undef MIB_IPQOS_IMPORT

#undef MIBDEF
}__PACK__ IPQOS_T, *IPQOS_Tp;
#endif

#if defined(CONFIG_RTL_ETH_802DOT1X_SUPPORT)
typedef struct ethdot1x_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_ETH_DOT1X_IMPORT
#include "mibdef.h"
#undef MIB_ETH_DOT1X_IMPORT

#undef MIBDEF
}__PACK__ ETHDOT1X_T, *ETHDOT1X_Tp;
#endif

#ifdef VPN_SUPPORT
typedef struct ipsectunnel_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_IPSECTUNNEL_IMPORT
#include "mibdef.h"
#undef MIB_IPSECTUNNEL_IMPORT

#undef MIBDEF
}__PACK__ IPSECTUNNEL_T, *IPSECTUNNEL_Tp;
#endif // VPN_SUPPORT

#ifdef CONFIG_IPV6
#define uint16 unsigned short
#define uint8 unsigned char
#define uint32 unsigned int
#ifdef TR181_SUPPORT
typedef struct ipv6DhcpcSendOptTbl_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_IPV6_DHCPC_SENDOPT_IMPORT
#include "mibdef.h"
#undef MIB_IPV6_DHCPC_SENDOPT_IMPORT

#undef MIBDEF
}__PACK__ DHCPV6C_SENDOPT_T, *DHCPV6C_SENDOPT_Tp;
#endif
/*radvd*/
struct AdvPrefix {
        uint16    		Prefix[8];
        uint8                  PrefixLen;
        uint8                     AdvOnLinkFlag;
        uint8                     AdvAutonomousFlag;
        uint32                AdvValidLifetime;
        uint32                AdvPreferredLifetime;
 
        /* Mobile IPv6 extensions */
        uint8                     AdvRouterAddr;
 
        /* 6to4 extensions */
        char                    if6to4[IFNAMESIZE];
        uint8                     enabled;

#ifdef CONFIG_IPV6_CE_ROUTER_SUPPORT
		/* prefix mode: Manually, PD, ULA prefix */
		uint8			prefix_mode;
#endif
}__PACK__;

struct Interface {
	  char                    Name[IFNAMESIZE]; /* interface name */
        uint32                  MaxRtrAdvInterval;
        uint32                  MinRtrAdvInterval;
        uint32                  MinDelayBetweenRAs;
        uint8                    AdvManagedFlag;
        uint8                    AdvOtherConfigFlag;
        uint32                   AdvLinkMTU;
        uint32			   AdvReachableTime;
        uint32                  AdvRetransTimer;
        uint8                   AdvCurHopLimit;
        uint16                  AdvDefaultLifetime;
        char                    AdvDefaultPreference[IFNAMESIZE];
        uint8                       AdvSourceLLAddress;
        uint8                       UnicastOnly;
	 struct AdvPrefix prefix[MAX_PREFIX_NUM];
}__PACK__;

typedef struct radvdCfgParam_s
{
	uint8 enabled;
       /*support br0 only*/
	struct Interface interface;
}__PACK__ radvdCfgParam_t, *radvdCfgParam_Tp;

struct duid_t{
	uint16 duid_type;
	uint16 hw_type;
	uint8 mac[6];		
};


/*dnsv6*/
struct rrResource
{
	char domainName[MAX_DNAME_SIZE];
	uint16 address[8];
}__PACK__;

typedef struct dnsv6CfgParam_s
{
       uint8 enabled;
	/*default name myrouter*/
	char routerName[NAMSIZE];
	struct rrResource rr[RR_MAX_NUM];
}__PACK__ dnsv6CfgParam_t, *dnsv6CfgParam_Tp;

/*dhcp6s*/
typedef struct dhcp6sCfgParam_s
{
       uint8 	enabled; 
	 char  	DNSaddr6[48];
#ifdef CONFIG_IPV6_CE_ROUTER_SUPPORT
	uint8	addr6PrefixMode;
#endif
	 char  	addr6PoolS[48];
 	 char  	addr6PoolE[48];
	/*default name interface*/
	char interfaceNameds[NAMSIZE];
	
}__PACK__ dhcp6sCfgParam_t, *dhcp6sCfgParam_Tp;

/*dhcp6pd*/
typedef struct dhcp6pdCfgParam_s
{
	 uint32 sla_len;		/* SLA ID length in bits */
	 uint32 sla_id;			/* need more than 32bits? */
	 char 	ifName[NAMSIZE];
}__PACK__ dhcp6pdCfgParam_t, *dhcp6pdCfgParam_Tp;
	
/*dhcp6c*/
typedef struct dhcp6cCfgParam_s
{
    uint8 	enabled;
	dhcp6pdCfgParam_t	dhcp6pd;	
	char 	ifName[NAMSIZE];
}__PACK__ dhcp6cCfgParam_t, *dhcp6cCfgParam_Tp;



/*IPv6 Addr*/
typedef struct addrIPv6CfgParam_s
{
        int        enabled;      /* 0:off 1:on */
        int        prefix_len[2];
        uint16     addrIPv6[2][8];
}__PACK__ addrIPv6CfgParam_t,*daddrIPv6CfgParam_Tp;

/*IPv6 Addr*/
typedef struct addr6CfgParam_s
{
        int        prefix_len;
        uint16     addrIPv6[8];
}__PACK__ addr6CfgParam_t,*addr6CfgParam_Tp;

/*Tunnel*/
typedef struct tunnelCfgParam_s
{
       uint8 	enabled;	
}__PACK__ tunnelCfgParam_t, *tunnelCfgParam_Tp;
#endif

#ifdef TR181_SUPPORT
typedef struct dnsClientServerTbl_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_DNS_CLIENT_SERVER_IMPORT
#include "mibdef.h"
#undef MIB_DNS_CLIENT_SERVER_IMPORT

#undef MIBDEF
}__PACK__ DNS_CLIENT_SERVER_T, *DNS_CLIENT_SERVER_Tp;

#endif

#endif // HOME_GATEWAY

#ifdef TLS_CLIENT
typedef struct certroot_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_CERTROOT_IMPORT
#include "mibdef.h"
#undef MIB_CERTROOT_IMPORT

#undef MIBDEF
}__PACK__ CERTROOT_T, *CERTROOT_Tp;
typedef struct certUser_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_CERTUSER_IMPORT
#include "mibdef.h"
#undef MIB_CERTUSER_IMPORT

#undef MIBDEF
}__PACK__ CERTUSER_T, *CERTUSER_Tp;
#endif
#ifdef HOME_GATEWAY
#ifdef ROUTE_SUPPORT
typedef struct staticRoute_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_STATICROUTE_IMPORT
#include "mibdef.h"
#undef MIB_STATICROUTE_IMPORT

#undef MIBDEF
}__PACK__ STATICROUTE_T, *STATICROUTE_Tp;
#endif
#endif

typedef struct dhcpRsvdIP_entry {	
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_DHCPRSVDIP_IMPORT
#include "mibdef.h"
#undef MIB_DHCPRSVDIP_IMPORT

#undef MIBDEF
}__PACK__ DHCPRSVDIP_T, *DHCPRSVDIP_Tp;

typedef struct wlanwds_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_WDS_IMPORT
#include "mibdef.h"
#undef MIB_WDS_IMPORT
}__PACK__ WDS_T, *WDS_Tp;

#ifdef WLAN_PROFILE
typedef struct wlan_profile_entry {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_WLAN_PROFILE_IMPORT
#include "mibdef.h"
#undef MIB_WLAN_PROFILE_IMPORT
#undef MIBDEF
}__PACK__ WLAN_PROFILE_T, *WLAN_PROFILE_Tp;
#endif

#if defined(VLAN_CONFIG_SUPPORTED) 
typedef struct vlan_lanconfig_entry {	
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_VLAN_CONFIG_IMPORT
#include "mibdef.h"
#undef MIB_VLAN_CONFIG_IMPORT

#undef MIBDEF
}__PACK__ VLAN_CONFIG_T, *VLAN_CONFIG_Tp;
#endif

typedef struct hw_wlan_setting {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_HW_WLAN_IMPORT
#include "mibdef.h"
#undef MIB_HW_WLAN_IMPORT

#undef MIBDEF
}__PACK__ HW_WLAN_SETTING_T, *HW_WLAN_SETTING_Tp;

typedef struct hw_setting {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_HW_IMPORT
#include "mibdef.h"
#undef MIB_HW_IMPORT

#undef MIBDEF
}__PACK__ HW_SETTING_T, *HW_SETTING_Tp;

typedef struct config_wlan_setting {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_CONFIG_WLAN_SETTING_IMPORT
#include "mibdef.h"
#undef MIB_CONFIG_WLAN_SETTING_IMPORT

#undef MIBDEF	
}__PACK__ CONFIG_WLAN_SETTING_T, *CONFIG_WLAN_SETTING_Tp;


#ifdef CONFIG_APP_TR069
#if defined(WLAN_SUPPORT)
typedef struct cwmp_wlanconf_entry {

 #define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
	_ctype _cname _crepeat;

#define MIB_CWMP_WLANCONF_IMPORT
#include "mibdef.h"
#undef MIB_CWMP_WLANCONF_IMPORT

#undef MIBDEF		
	
} __PACK__ CWMP_WLANCONF_T, *CWMP_WLANCONF_Tp;
#endif //#if defined(WLAN_SUPPORT)
#endif//#ifdef CONFIG_APP_TR069

#ifdef RTK_CAPWAP
typedef struct {
#define MIBDEF(_ctype,	  _cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
		  _ctype _cname _crepeat;
  #define MIB_CAPWAP_WLAN_CONFIG_IMPORT
	#include "mibdef.h"
  #undef MIB_CAPWAP_WLAN_CONFIG_IMPORT
#undef MIBDEF	  
} __PACK__ CAPWAP_WLAN_CONFIG_T, *CAPWAP_WLAN_CONFIG_Tp;
typedef struct {
  #define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
		_ctype _cname _crepeat;
    #define MIB_CAPWAP_WTP_CONFIG_IMPORT
      #include "mibdef.h"
    #undef MIB_CAPWAP_WTP_CONFIG_IMPORT
  #undef MIBDEF		
} __PACK__ CAPWAP_WTP_CONFIG_T, *CAPWAP_WTP_CONFIG_Tp;
#endif // #ifdef RTK_CAPWAP


typedef struct config_setting {
#define MIBDEF(_ctype,	_cname, _crepeat, _mib_name, _mib_type, _mib_parents_ctype, _default_value, _next_tbl ) \
_ctype _cname _crepeat;

#define MIB_IMPORT
#include "mibdef.h"
#undef MIB_IMPORT

#undef MIBDEF
}__PACK__ APMIB_T, *APMIB_Tp;

#ifdef HEADER_LEN_INT
typedef struct hw_param_header {
	unsigned char signature[SIGNATURE_LEN];  // Tag + version
	unsigned short len;
}__PACK__ HW_PARAM_HEADER_T, *HW_PARAM_HEADER_Tp;
#endif

/* Config file header */
typedef struct param_header {
	unsigned char signature[SIGNATURE_LEN];  // Tag + version
#ifdef HEADER_LEN_INT
	unsigned int len;
#else
	unsigned short len;
#endif
}__PACK__ PARAM_HEADER_T, *PARAM_HEADER_Tp;

/* Firmware image file header */
typedef struct img_header {
	unsigned char signature[SIGNATURE_LEN];
	unsigned int startAddr;
	unsigned int burnAddr;
	unsigned int len;
}__PACK__ IMG_HEADER_T, *IMG_HEADER_Tp;

/* Web page file header */
typedef IMG_HEADER_T WEB_HEADER_T;
typedef IMG_HEADER_Tp WEB_HEADER_Tp;
#ifdef TLS_CLIENT
typedef IMG_HEADER_T CERT_HEADER_T;
typedef IMG_HEADER_Tp CERT_HEADER_Tp;
#endif
typedef struct _file_entry {
	char name[MAXFNAME];
	unsigned int size;
}__PACK__ FILE_ENTRY_T, *FILE_ENTRY_Tp;

#ifdef COMPRESS_MIB_SETTING
/* Compress config setting file header */
#if 1
#define	COMP_TRACE	fprintf
#else
#define COMP_TRACE(...) do {} while(0)
#endif

#define COMP_SIGNATURE_LEN			6
#define COMP_HS_SIGNATURE			"COMPHS"
#define COMP_CS_SIGNATURE			"COMPCS"
#define COMP_DS_SIGNATURE			"COMPDS"
typedef struct compress_mib_header {
	unsigned char signature[COMP_SIGNATURE_LEN];
	unsigned short compRate;
	unsigned int compLen;
}__PACK__ COMPRESS_MIB_HEADER_T, *COMPRESS_MIB_HEADER_Tp;

#endif // #ifdef COMPRESS_MIB_SETTING

#ifdef WIN32
#pragma pack()
#endif
typedef enum { 
		BYTE_T, 
		WORD_T, 
		STRING_T, 
		BYTE5_T, 
		BYTE6_T, 
		BYTE13_T, 
		IA_T, 
		DWORD_T, 
		BYTE_ARRAY_T, 	
#ifdef HOME_GATEWAY
#ifdef CONFIG_IPV6
		RADVDPREFIX_T,
		DNSV6_T,
		DHCPV6S_T,
		DHCPV6C_T,
		ADDR6_T,
		ADDRV6_T,
		TUNNEL6_T,
#endif
#endif
#ifdef VOIP_SUPPORT 
		VOIP_T,
#endif
#ifdef RTK_CAPWAP
		CAPWAP_ALL_WLANS_CONFIG_T,
#endif
	/* upper are Non-table array type */
		
	/* below are table array type */			
		TABLE_LIST_T,	
		WLAC_ARRAY_T,
#ifdef TR181_SUPPORT
#ifdef CONFIG_IPV6
		DHCPV6C_SENDOPT_ARRAY_T,
#endif
		DNS_CLIENT_SERVER_ARRAY_T,
#endif
	DHCPRSVDIP_ARRY_T,	
#ifdef HOME_GATEWAY
		PORTFW_ARRAY_T, 
		IPFILTER_ARRAY_T, 
		PORTFILTER_ARRAY_T, 
		MACFILTER_ARRAY_T, 
		URLFILTER_ARRAY_T,
		TRIGGERPORT_ARRAY_T,
#ifdef ROUTE_SUPPORT		
		STATICROUTE_ARRAY_T,
#endif		

#ifdef VPN_SUPPORT
		IPSECTUNNEL_ARRAY_T,
#endif
#endif // #ifdef HOME_GATEWAY		
		WDS_ARRAY_T,
#ifdef TLS_CLIENT		
		CERTROOT_ARRAY_T,
		CERTUSER_ARRAY_T,
#endif		

#if defined(GW_QOS_ENGINE) || defined(QOS_BY_BANDWIDTH)
		QOS_ARRAY_T,
#endif

//#if defined(CONFIG_RTK_MESH) && defined(_MESH_ACL_ENABLE_) Keith remove
		MESH_ACL_ARRAY_T,
//#endif
	        SCHEDULE_ARRAY_T, 
#if defined(VLAN_CONFIG_SUPPORTED)
	        VLANCONFIG_ARRAY_T,
#endif	        

#ifdef WLAN_PROFILE
		PROFILE_ARRAY_T,
#endif
#ifdef CONFIG_APP_TR069
#if defined(WLAN_SUPPORT)
	CWMP_WLANCONF_ARRAY_T,
#endif

#endif//#ifdef CONFIG_APP_TR069
#ifdef HOME_GATEWAY
#ifdef SAMBA_WEB_SUPPORT
	STORAGE_USER_ARRAY_T,
	STORAGE_GROUP_ARRAY_T,
#endif
#endif
#if defined(CONFIG_RTL_ETH_802DOT1X_SUPPORT)
	 ETHDOT1X_ARRAY_T,
#endif	     

#ifdef RTK_CAPWAP
	CAPWAP_WTP_CONFIG_ARRAY_T,
#endif
	     } TYPE_T;


//////////////////////////////////////////////////////////
int apmib_init_HW(void);
int apmib_init(void);
int apmib_reinit(void);
char *apmib_hwconf(void);
char * apmib_load_data_to_csconf(char* dataSource);
char *apmib_csconf(void);
char *apmib_dsconf(void);
int apmib_get(int id, void *value);
int apmib_getDef(int id, void *value);
int apmib_set(int id, void *value);
int apmib_setDef(int id, void *value);
int apmib_update(CONFIG_DATA_T type);
int apmib_updateDef(void);
int apmib_updateFlash(CONFIG_DATA_T type, char *data, int len, int force, int ver);
int update_linkchain(int fmt, void *Entry_old, void *Entry_new, int type_size);
int mibtbl_check(void);

extern APMIB_Tp pMib, pMibDef;
extern HW_SETTING_Tp pHwSetting;
#ifdef HEADER_LEN_INT
extern HW_PARAM_HEADER_T hsHeader;
extern PARAM_HEADER_T dsHeader, csHeader;
#else
extern PARAM_HEADER_T hsHeader, dsHeader, csHeader;
#endif
extern int wlan_idx;
extern int vwlan_idx;
#ifdef HTTP_FILE_SERVER_HTM_UI
#define PATH_MAX_LEN 256
#define FILE_INFO_MAX_LEN 64
extern char httpfile_dirpath[PATH_MAX_LEN];
extern char httpfile_type;
extern char httpfile_order;
#endif

#ifdef GW_QOS_ENGINE
extern void getVal12(char *value, char **p1, char **p2, char **p3, char **p4, char **p5, char **p6, char **p7,
                                char **p8, char **p9, char **p10, char **p11, char **p12);
#define QOS_FORMAT 	("%d, %d, %d, %s, %s, %d, %d, %s, %s, %d, %d, %s")
#endif

#ifdef QOS_BY_BANDWIDTH
//#define QOS_FORMAT 	("%d, %s, %d, %s, %s, %d, %s")
#define QOS_FORMAT 	("%d, %02x%02x%02x%02x%02x%02x, %d, %s, %s, %d, %d, %s, %s")
#endif

#if CONFIG_APMIB_SHARED_MEMORY == 1
#define HWCONF_SHM_KEY	0
#define DSCONF_SHM_KEY	1
#define CSCONF_SHM_KEY	2

int apmib_sem_lock(void);
int apmib_sem_unlock(void);
int apmib_shm_free(void *shm_memory, int shm_key);
#endif

//#ifdef CONFIG_IPV6
#ifdef TR181_SUPPORT
int tr181_ipv6_get(char * name,void * value);
int tr181_ipv6_set(char * name,void * value);
#endif
//#endif
//#if defined(CONFIG_USBDISK_UPDATE_IMAGE)
#define USB_UPLOAD_FORM_PATH "/tmp/usb/sda1/fw.bin"
//#endif
//### add by sen_liu 2011.4.21 sync the system log update (enlarge from 1 pcs to 8 pcs) to  SDKv2.5 from kernel 2.4
#define RINGLOG
#ifdef RINGLOG /* ring log */
#define MAX_LOG_SIZE	8  /* unit is kbyte */
#define LOG_SPLIT		7  /* can't greater than 99 */
	/*
		for /var/log/messages.(LOG_SPLIT-1) to /var/log/messages.0 and then  /var/log/messages
		ex: LOG_SPLIT = 7, we will have
		/var/log/messages.6
			...
		/var/log/messages.0
		/var/log/messages
	*/
#endif /* ring log */

//### end
void set_timeZone(void);
#endif // INCLUDE_APMIB_H
