ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/kernel/realtek-wl/files/How_to_enable_multiple_AP.txt b/package/kernel/realtek-wl/files/How_to_enable_multiple_AP.txt
new file mode 100644
index 0000000..186ae6a
--- /dev/null
+++ b/package/kernel/realtek-wl/files/How_to_enable_multiple_AP.txt
@@ -0,0 +1,11 @@
+Multiple SSID For Realtek WiFi
+
+Take 8192ES for example:
+
+1. Enable Virtual AP
+In config_mac80211.mk, change RTL8192CD_NUM_VWLAN
+e.g. RTL8192CD_NUM_VWLAN := 1
+
+2. add AP1/AP2 interface to config file wrieless
+Refer to wireless_mac80211_multiple_ap in this dir.
+
diff --git a/package/kernel/realtek-wl/files/config_92fs_mac80211.mk b/package/kernel/realtek-wl/files/config_92fs_mac80211.mk
new file mode 100644
index 0000000..8259342
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_92fs_mac80211.mk
@@ -0,0 +1,512 @@
+#

+# RTL WLan AP Driver All In One Configure

+#

+

+#

+# Wireless LAN

+#

+

+# Driver Module/Build In Driver ==> :=m/:=y

+CONFIG_RTL8192CD :=m

+

+# RTK Platform ?

+RTK_BSP :=n

+

+# Select Support WLan Chip

+CONFIG_RTL_92C_SUPPORT :=n

+CONFIG_RTL_92D_SUPPORT :=n

+CONFIG_RTL_88E_SUPPORT :=n

+CONFIG_RTL_92E_SUPPORT :=n

+CONFIG_RTL_92F_SUPPORT :=y

+CONFIG_RTL_8812_SUPPORT :=n

+CONFIG_RTL_8814_SUPPORT :=n

+CONFIG_RTL_8822_SUPPORT :=n

+CONFIG_RTL_8822C_SUPPORT :=n

+CONFIG_RTL_8821_SUPPORT :=n

+CONFIG_RTL_8814B_SUPPORT :=n

+CONFIG_RTL_8812F_SUPPORT :=n

+

+CONCURRENT_MODE :=n

+

+# Bus Interface Type, PCIE / USB / SDIO

+CONFIG_PCI_HCI :=n

+CONFIG_USB_HCI :=n

+CONFIG_SDIO_HCI :=y

+

+# RTL Platform Support

+CONFIG_RTL_819X :=n

+CONFIG_RTL_819XD :=n

+

+# Driver Configuration

+CONFIG_RTL8190_PRIV_SKB :=n

+CONFIG_PREALLOC_MODULE :=n

+

+CONFIG_RTL_WAPI_SUPPORT :=n

+

+# If Use External PA, LNA ?

+CONFIG_EXT_PA :=n

+CONFIG_EXT_LNA :=n

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_LNA_TYPE := 3

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_PA_LNA_TYPE :=3

+

+# If Support Dynamic Freqence Selection ?

+CONFIG_RTL_DFS_SUPPORT :=n

+

+# Number of Virtual AP ?

+ifeq ($(RTL8192CD_NUM_VWLAN),)

+RTL8192CD_NUM_VWLAN := 0

+endif

+

+# If Support Client Mode ?

+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y

+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y

+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n

+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n

+

+# If Support Wireless Distribution System ?

+CONFIG_RTL_WDS_SUPPORT :=n

+

+# If Enable On-Chip EFuse ?

+CONFIG_ENABLE_EFUSE :=y

+

+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)

+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n

+

+CONFIG_RTL_COMAPI_CFGFILE :=n

+CONFIG_RTL_COMAPI_WLTOOLS :=n

+CONFIG_MP_PSD_SUPPORT :=n

+CONFIG_RTL_P2P_SUPPORT :=n

+CONFIG_RTL_MESH_SUPPORT :=n

+CONFIG_RTL_WLAN_DOS_FILTER :=n

+CONFIG_TXPWR_LMT :=n

+CONFIG_TX_BEAMFORMING :=n

+CONFIG_RTL_WPS2_SUPPORT :=y

+CONFIG_POWER_SAVE :=y

+CONFIG_DPK :=n

+

+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211

+CONFIG_WPAS_CLI :=2

+CONFIG_NL80211_AP :=y

+

+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually

+CONFIG_PHY_EAT_40MHZ :=y

+CONFIG_PHY_WLAN_EAT_40MHZ :=y

+

+CONFIG_IGMP_SNOOPING_SUPPORT:=y

+CONFIG_MLD_SNOOPING_SUPPORT:=y

+

+# 802.11w support

+CONFIG_RTL_11W_SUPPORT:=y

+CONFIG_RTL_11W_CLI_SUPPORT:=n

+

+# 802.11r support

+CONFIG_RTL_11R_SUPPORT:=n

+

+#802.11k support

+CONFIG_RTL_DOT11K_SUPPORT:=n

+

+#802.11v support

+CONFIG_RTL_11V_SUPPORT:=n

+

+# Thermal Control

+CONFIG_THERMAL_CONTROL:=n

+CONFIG_THERMAL_CONTROL_DAEMON:=n

+

+CONFIG_BEAMFORMING_SUPPORT:=n

+

+CONFIG_RTK_SMART_ROAMING:=n

+

+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n

+

+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n

+

+# Airtime Fairness support

+CONFIG_RTL_ATM_SUPPORT:=n

+

+# WPA3 support

+CONFIG_RTL_WPA3_SUPPORT:=y

+

+# Band Steering support

+CONFIG_RTL_STA_CONTROL_SUPPORT:=n

+

+######## Don't Modify Following Code ########

+

+EXTRA_CFLAGS += -DCONFIG_RTL8192CD

+

+ifeq ($(RTK_BSP),n)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP

+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE

+endif

+

+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT

+endif

+

+ifeq ($(CONFIG_DPK),y)

+	EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT

+endif

+

+ifeq ($(CONFIG_PCI_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI

+endif

+

+ifeq ($(CONFIG_USB_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_USB_HCI

+endif

+

+ifeq ($(CONFIG_SDIO_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI

+	# 0: No AP power saving 1: RF off  2: beacon offload

+	CONFIG_AP_PS := 0

+endif

+

+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT

+endif

+  

+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT

+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP

+endif

+

+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)

+#	CONFIG_RTL_DFS_SUPPORT :=n

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814AE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192EE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192FE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8822BE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE

+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+#	endif

+endif

+

+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8822CE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE

+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+#	endif

+endif

+

+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8821CE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE

+	

+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)

+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)

+	CONFIG_RTL_OFFLOAD_DRIVER :=y

+	CONFIG_ENABLE_EFUSE :=n

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814BE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V1 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE

+endif

+

+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8812FE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE

+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+#	endif

+endif

+

+ifeq ($(CONFIG_WLAN_HAL),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL

+

+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)

+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX

+	endif

+

+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)

+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A

+	endif

+else

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_WLAN_MACHAL_API),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER

+endif

+

+# TODO: We need to assign which NIC is using external PA and LNA

+ifeq ($(CONFIG_EXT_PA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA

+endif

+

+ifeq ($(CONFIG_EXT_LNA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA

+	ifeq ($(CONFIG_EXT_PA),y)

+            EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)

+    else

+            EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)

+    endif

+endif

+

+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT

+endif

+

+ifneq ($(RTL8192CD_NUM_VWLAN),0)

+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT

+endif

+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)

+

+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT

+else

+	CONFIG_WPAS_CLI :=0

+endif

+

+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DMAC_2_PORT

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE

+endif

+

+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT

+endif

+

+ifeq ($(CONFIG_ENABLE_EFUSE),y)

+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS

+endif

+

+ifeq ($(CONFIG_WPAS_CLI),1)		# wext

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+else

+ifeq ($(CONFIG_WPAS_CLI),2)		# nl80211

+	EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+	ifeq ($(CONFIG_NL80211_AP),n)

+		EXTRA_CFLAGS += -DNON_NL80211_AP

+	endif

+else

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			EXTRA_CFLAGS += -DNON_NL80211_WPAS

+		endif

+	endif

+endif

+endif

+

+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT

+endif

+

+ifeq ($(CONFIG_TXPWR_LMT),y)

+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT

+endif

+

+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER

+endif

+

+ifeq ($(CONCURRENT_MODE),y)

+	EXTRA_CFLAGS += -DCONCURRENT_MODE

+endif

+

+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB

+endif

+

+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT

+endif

+

+ifeq ($(CONFIG_TX_BEAMFORMING),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING

+endif

+

+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ

+endif

+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ

+endif

+

+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT

+endif

+

+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_POWER_SAVE),y)

+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE

+endif

+

+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)

+    ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+    	EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+    endif

+endif

+

+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)

+	#Enable 11k if 11v is enabled

+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)

+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING

+endif

+

+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)

+	EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT

+endif

+

+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER

+endif

+

+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT

+	ifeq ($(CONFIG_RTL_11W_SUPPORT),n)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+	endif

+	ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),n)

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			ifneq ($(CONFIG_WPAS_CLI),1)

+				EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+			endif

+		endif

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_STA_CONTROL_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_STA_CONTROL_SUPPORT

+endif

diff --git a/package/kernel/realtek-wl/files/config_92fs_wext.mk b/package/kernel/realtek-wl/files/config_92fs_wext.mk
new file mode 100644
index 0000000..6d44aa0
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_92fs_wext.mk
@@ -0,0 +1,512 @@
+#

+# RTL WLan AP Driver All In One Configure

+#

+

+#

+# Wireless LAN

+#

+

+# Driver Module/Build In Driver ==> :=m/:=y

+CONFIG_RTL8192CD :=m

+

+# RTK Platform ?

+RTK_BSP :=n

+

+# Select Support WLan Chip

+CONFIG_RTL_92C_SUPPORT :=n

+CONFIG_RTL_92D_SUPPORT :=n

+CONFIG_RTL_88E_SUPPORT :=n

+CONFIG_RTL_92E_SUPPORT :=n

+CONFIG_RTL_92F_SUPPORT :=y

+CONFIG_RTL_8812_SUPPORT :=n

+CONFIG_RTL_8814_SUPPORT :=n

+CONFIG_RTL_8822_SUPPORT :=n

+CONFIG_RTL_8822C_SUPPORT :=n

+CONFIG_RTL_8821_SUPPORT :=n

+CONFIG_RTL_8814B_SUPPORT :=n

+CONFIG_RTL_8812F_SUPPORT :=n

+

+CONCURRENT_MODE :=n

+

+# Bus Interface Type, PCIE / USB / SDIO

+CONFIG_PCI_HCI :=n

+CONFIG_USB_HCI :=n

+CONFIG_SDIO_HCI :=y

+

+# RTL Platform Support

+CONFIG_RTL_819X :=n

+CONFIG_RTL_819XD :=n

+

+# Driver Configuration

+CONFIG_RTL8190_PRIV_SKB :=n

+CONFIG_PREALLOC_MODULE :=n

+

+CONFIG_RTL_WAPI_SUPPORT :=n

+

+# If Use External PA, LNA ?

+CONFIG_EXT_PA :=n

+CONFIG_EXT_LNA :=n

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_LNA_TYPE := 3

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_PA_LNA_TYPE :=3

+

+# If Support Dynamic Freqence Selection ?

+CONFIG_RTL_DFS_SUPPORT :=n

+

+# Number of Virtual AP ?

+ifeq ($(RTL8192CD_NUM_VWLAN),)

+RTL8192CD_NUM_VWLAN := 0

+endif

+

+# If Support Client Mode ?

+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y

+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y

+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n

+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n

+

+# If Support Wireless Distribution System ?

+CONFIG_RTL_WDS_SUPPORT :=n

+

+# If Enable On-Chip EFuse ?

+CONFIG_ENABLE_EFUSE :=y

+

+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)

+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n

+

+CONFIG_RTL_COMAPI_CFGFILE :=n

+CONFIG_RTL_COMAPI_WLTOOLS :=n

+CONFIG_MP_PSD_SUPPORT :=n

+CONFIG_RTL_P2P_SUPPORT :=n

+CONFIG_RTL_MESH_SUPPORT :=n

+CONFIG_RTL_WLAN_DOS_FILTER :=n

+CONFIG_TXPWR_LMT :=n

+CONFIG_TX_BEAMFORMING :=n

+CONFIG_RTL_WPS2_SUPPORT :=y

+CONFIG_POWER_SAVE :=y

+CONFIG_DPK :=n

+

+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211

+CONFIG_WPAS_CLI :=0

+CONFIG_NL80211_AP :=n

+

+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually

+CONFIG_PHY_EAT_40MHZ :=y

+CONFIG_PHY_WLAN_EAT_40MHZ :=y

+

+CONFIG_IGMP_SNOOPING_SUPPORT:=y

+CONFIG_MLD_SNOOPING_SUPPORT:=y

+

+# 802.11w support

+CONFIG_RTL_11W_SUPPORT:=y

+CONFIG_RTL_11W_CLI_SUPPORT:=n

+

+# 802.11r support

+CONFIG_RTL_11R_SUPPORT:=n

+

+#802.11k support

+CONFIG_RTL_DOT11K_SUPPORT:=n

+

+#802.11v support

+CONFIG_RTL_11V_SUPPORT:=n

+

+# Thermal Control

+CONFIG_THERMAL_CONTROL:=n

+CONFIG_THERMAL_CONTROL_DAEMON:=n

+

+CONFIG_BEAMFORMING_SUPPORT:=n

+

+CONFIG_RTK_SMART_ROAMING:=n

+

+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n

+

+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n

+

+# Airtime Fairness support

+CONFIG_RTL_ATM_SUPPORT:=n

+

+# WPA3 support

+CONFIG_RTL_WPA3_SUPPORT:=y

+

+# Band Steering support

+CONFIG_RTL_STA_CONTROL_SUPPORT:=n

+

+######## Don't Modify Following Code ########

+

+EXTRA_CFLAGS += -DCONFIG_RTL8192CD

+

+ifeq ($(RTK_BSP),n)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP

+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE

+endif

+

+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT

+endif

+

+ifeq ($(CONFIG_DPK),y)

+	EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT

+endif

+

+ifeq ($(CONFIG_PCI_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI

+endif

+

+ifeq ($(CONFIG_USB_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_USB_HCI

+endif

+

+ifeq ($(CONFIG_SDIO_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI

+	# 0: No AP power saving 1: RF off  2: beacon offload

+	CONFIG_AP_PS := 0

+endif

+

+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT

+endif

+  

+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT

+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP

+endif

+

+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)

+#	CONFIG_RTL_DFS_SUPPORT :=n

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814AE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192EE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192FE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8822BE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE

+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+#	endif

+endif

+

+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8822CE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE

+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+#	endif

+endif

+

+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8821CE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE

+	

+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)

+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)

+	CONFIG_RTL_OFFLOAD_DRIVER :=y

+	CONFIG_ENABLE_EFUSE :=n

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814BE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V1 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE

+endif

+

+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8812FE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	CONFIG_WLAN_MACHAL_API_V0 :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE

+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+#	endif

+endif

+

+ifeq ($(CONFIG_WLAN_HAL),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL

+

+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)

+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX

+	endif

+

+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)

+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A

+	endif

+else

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_WLAN_MACHAL_API),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER

+endif

+

+# TODO: We need to assign which NIC is using external PA and LNA

+ifeq ($(CONFIG_EXT_PA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA

+endif

+

+ifeq ($(CONFIG_EXT_LNA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA

+	ifeq ($(CONFIG_EXT_PA),y)

+            EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)

+    else

+            EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)

+    endif

+endif

+

+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT

+endif

+

+ifneq ($(RTL8192CD_NUM_VWLAN),0)

+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT

+endif

+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)

+

+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT

+else

+	CONFIG_WPAS_CLI :=0

+endif

+

+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DMAC_2_PORT

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE

+endif

+

+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT

+endif

+

+ifeq ($(CONFIG_ENABLE_EFUSE),y)

+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS

+endif

+

+ifeq ($(CONFIG_WPAS_CLI),1)		# wext

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+else

+ifeq ($(CONFIG_WPAS_CLI),2)		# nl80211

+	EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+	ifeq ($(CONFIG_NL80211_AP),n)

+		EXTRA_CFLAGS += -DNON_NL80211_AP

+	endif

+else

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			EXTRA_CFLAGS += -DNON_NL80211_WPAS

+		endif

+	endif

+endif

+endif

+

+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT

+endif

+

+ifeq ($(CONFIG_TXPWR_LMT),y)

+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT

+endif

+

+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER

+endif

+

+ifeq ($(CONCURRENT_MODE),y)

+	EXTRA_CFLAGS += -DCONCURRENT_MODE

+endif

+

+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB

+endif

+

+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT

+endif

+

+ifeq ($(CONFIG_TX_BEAMFORMING),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING

+endif

+

+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ

+endif

+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ

+endif

+

+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT

+endif

+

+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_POWER_SAVE),y)

+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE

+endif

+

+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)

+    ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+    	EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+    endif

+endif

+

+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)

+	#Enable 11k if 11v is enabled

+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)

+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING

+endif

+

+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)

+	EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT

+endif

+

+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER

+endif

+

+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT

+	ifeq ($(CONFIG_RTL_11W_SUPPORT),n)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+	endif

+	ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),n)

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			ifneq ($(CONFIG_WPAS_CLI),1)

+				EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+			endif

+		endif

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_STA_CONTROL_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_STA_CONTROL_SUPPORT

+endif

diff --git a/package/kernel/realtek-wl/files/config_mac80211.mk b/package/kernel/realtek-wl/files/config_mac80211.mk
new file mode 100644
index 0000000..79b6114
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_mac80211.mk
@@ -0,0 +1,375 @@
+#

+# RTL WLan AP Driver All In One Configure

+#

+

+#

+# Wireless LAN

+#

+

+# Driver Module/Build In Driver ==> :=m/:=y

+CONFIG_RTL8192CD :=m

+

+# RTK Platform ?

+RTK_BSP :=n

+

+# Select Support WLan Chip

+CONFIG_RTL_92C_SUPPORT :=n

+CONFIG_RTL_92D_SUPPORT :=n

+CONFIG_RTL_88E_SUPPORT :=n

+CONFIG_RTL_92E_SUPPORT :=y

+CONFIG_RTL_8812_SUPPORT :=n

+CONFIG_RTL_8814_SUPPORT :=n

+

+CONCURRENT_MODE :=n

+

+# Bus Interface Type, PCIE / USB / SDIO

+CONFIG_PCI_HCI :=n

+CONFIG_USB_HCI :=n

+CONFIG_SDIO_HCI :=y

+

+# RTL Platform Support

+CONFIG_RTL_819X :=n

+CONFIG_RTL_819XD :=n

+

+# Driver Configuration

+CONFIG_RTL8190_PRIV_SKB :=n

+CONFIG_PREALLOC_MODULE :=n

+

+CONFIG_RTL_WAPI_SUPPORT :=n

+

+# If Use External PA, LNA ?

+CONFIG_EXT_PA :=n

+CONFIG_EXT_LNA :=n

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_LNA_TYPE := 3

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_PA_LNA_TYPE :=3

+

+# If Support Dynamic Freqence Selection ?

+CONFIG_RTL_DFS_SUPPORT :=n

+

+# Number of Virtual AP ?

+ifeq ($(RTL8192CD_NUM_VWLAN),)

+RTL8192CD_NUM_VWLAN := 0

+endif

+

+# If Support Client Mode ?

+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y

+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y

+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n

+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n

+

+# If Support Wireless Distribution System ?

+CONFIG_RTL_WDS_SUPPORT :=n

+

+# If Enable On-Chip EFuse ?

+CONFIG_ENABLE_EFUSE :=y

+

+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)

+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n

+

+CONFIG_MP_PSD_SUPPORT :=n

+CONFIG_RTL_P2P_SUPPORT :=n

+CONFIG_RTL_MESH_SUPPORT :=n

+CONFIG_RTL_WLAN_DOS_FILTER :=n

+CONFIG_TXPWR_LMT :=n

+CONFIG_RTL_WPS2_SUPPORT :=y

+CONFIG_POWER_SAVE :=y

+

+CONFIG_RTL_COMAPI_CFGFILE :=n

+CONFIG_RTL_COMAPI_WLTOOLS :=n

+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211

+CONFIG_WPAS_CLI :=2

+CONFIG_NL80211_AP :=y

+

+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually

+CONFIG_PHY_EAT_40MHZ :=y

+CONFIG_PHY_WLAN_EAT_40MHZ :=y

+

+CONFIG_IGMP_SNOOPING_SUPPORT:=y

+CONFIG_MLD_SNOOPING_SUPPORT:=y

+

+# 802.11w support

+CONFIG_RTL_11W_SUPPORT:=n

+

+# 802.11k support

+CONFIG_RTL_DOT11K_SUPPORT:=n

+

+# 802.11v support

+CONFIG_RTL_11V_SUPPORT:=n

+

+# 802.11r support

+CONFIG_RTL_11R_SUPPORT:=n

+

+# VLAN tag support

+CONFIG_RTL_VLAN_SUPPORT:=n

+

+# WPA3 support

+CONFIG_RTL_WPA3_SUPPORT :=y

+

+######## Don't Modify Following Code ########

+

+EXTRA_CFLAGS += -DCONFIG_RTL8192CD

+

+ifeq ($(RTK_BSP),n)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP

+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE

+endif

+

+ifeq ($(CONFIG_PCI_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI

+endif

+

+ifeq ($(CONFIG_USB_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_USB_HCI

+endif

+

+ifeq ($(CONFIG_SDIO_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI

+	# 0: No AP power saving 1: RF off  2: beacon offload

+	CONFIG_AP_PS := 0

+endif

+

+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT

+endif

+  

+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT

+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP

+endif

+

+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)

+#	CONFIG_RTL_DFS_SUPPORT :=n

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814AE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE

+endif

+

+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192EE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_WLAN_HAL),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL

+

+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)

+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX

+	endif

+

+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)

+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A

+	endif

+else

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER

+endif

+

+# TODO: We need to assign which NIC is using external PA and LNA

+ifeq ($(CONFIG_EXT_PA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA

+endif

+

+ifeq ($(CONFIG_EXT_LNA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA

+	ifeq ($(CONFIG_EXT_PA),y)

+		EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)

+	else

+		EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT

+endif

+

+ifneq ($(RTL8192CD_NUM_VWLAN),0)

+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT

+endif

+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)

+

+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT

+else

+	CONFIG_WPAS_CLI :=0

+endif

+

+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DSDIO_2_PORT

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE

+endif

+

+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT

+endif

+

+ifeq ($(CONFIG_ENABLE_EFUSE),y)

+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS

+endif

+

+ifeq ($(CONFIG_WPAS_CLI),1)		# wext

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+else

+ifeq ($(CONFIG_WPAS_CLI),2)		# nl80211

+	EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+	ifeq ($(CONFIG_NL80211_AP),n)

+		EXTRA_CFLAGS += -DNON_NL80211_AP

+	endif

+else

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			EXTRA_CFLAGS += -DNON_NL80211_WPAS

+		endif

+	endif

+endif

+endif

+

+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT

+endif

+

+ifeq ($(CONFIG_TXPWR_LMT),y)

+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT

+endif

+

+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER

+endif

+

+ifeq ($(CONCURRENT_MODE),y)

+	EXTRA_CFLAGS += -DCONCURRENT_MODE

+endif

+

+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB

+endif

+

+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT

+endif

+

+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ

+endif

+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ

+endif

+

+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT

+endif

+

+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_POWER_SAVE),y)

+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE

+endif

+

+ifeq ($(CONFIG_PREALLOC_MODULE),y)

+	EXTRA_CFLAGS += -DUSE_PREALLOC_MODULE

+endif

+

+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+	ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT

+endif

+

+ifeq ($(CONFIG_WIFI_SNIFFER),y)

+	EXTRA_CFLAGS += -DWIFI_SNIFFER

+endif

+

+ifeq ($(CONFIG_RTL_VLAN_SUPPORT),y)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP_VLAN

+endif

+

+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT

+	ifeq ($(CONFIG_RTL_11W_SUPPORT),n)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			ifneq ($(CONFIG_WPAS_CLI),1)

+				EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+			endif

+		endif

+	endif

+endif

+

diff --git a/package/kernel/realtek-wl/files/config_mac80211_rtl8822bs.mk b/package/kernel/realtek-wl/files/config_mac80211_rtl8822bs.mk
new file mode 100644
index 0000000..31d46d3
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_mac80211_rtl8822bs.mk
@@ -0,0 +1,398 @@
+#

+# RTL WLan AP Driver All In One Configure

+#

+

+#

+# Wireless LAN

+#

+

+# Driver Module/Build In Driver ==> :=m/:=y

+CONFIG_RTL8192CD :=m

+

+# RTK Platform ?

+RTK_BSP :=n

+

+# Select Support WLan Chip

+CONFIG_RTL_92C_SUPPORT :=n

+CONFIG_RTL_92D_SUPPORT :=n

+CONFIG_RTL_88E_SUPPORT :=n

+CONFIG_RTL_92E_SUPPORT :=n

+CONFIG_RTL_8812_SUPPORT :=n

+CONFIG_RTL_8814_SUPPORT :=n

+CONFIG_RTL_8822_SUPPORT :=y

+CONFIG_RTL_8821_SUPPORT :=n

+

+CONCURRENT_MODE :=n

+

+# Bus Interface Type, PCIE / USB / SDIO

+CONFIG_PCI_HCI :=n

+CONFIG_USB_HCI :=n

+CONFIG_SDIO_HCI :=y

+

+# RTL Platform Support

+CONFIG_RTL_819X :=n

+CONFIG_RTL_819XD :=n

+

+# Driver Configuration

+CONFIG_RTL8190_PRIV_SKB :=n

+CONFIG_PREALLOC_MODULE :=n

+

+CONFIG_RTL_WAPI_SUPPORT :=n

+

+# If Use External PA, LNA ?

+CONFIG_EXT_PA :=n

+CONFIG_EXT_LNA :=n

+

+# If Support Dynamic Freqence Selection ?

+CONFIG_RTL_DFS_SUPPORT :=n

+

+# Number of Virtual AP ?

+ifeq ($(RTL8192CD_NUM_VWLAN),)

+RTL8192CD_NUM_VWLAN := 0

+endif

+

+# If Support Client Mode ?

+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y

+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y

+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n

+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n

+

+CONFIG_RTL_SUPPORT_NL80211 :=n

+CONFIG_OPENWRT_SDK :=n

+# If Support Wireless Distribution System ?

+CONFIG_RTL_WDS_SUPPORT :=n

+

+# If Enable On-Chip EFuse ?

+CONFIG_ENABLE_EFUSE :=y

+

+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)

+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+

+

+CONFIG_RTL_COMAPI_CFGFILE :=n

+CONFIG_RTL_COMAPI_WLTOOLS :=n

+CONFIG_MP_PSD_SUPPORT :=n

+CONFIG_RTL_P2P_SUPPORT :=n

+CONFIG_RTL_MESH_SUPPORT :=n

+CONFIG_RTL_WLAN_DOS_FILTER :=n

+CONFIG_TXPWR_LMT :=n

+CONFIG_RTL_WPS2_SUPPORT :=y

+CONFIG_POWER_SAVE :=y

+

+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211

+CONFIG_WPAS_CLI :=2

+CONFIG_NL80211_AP :=y

+

+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually

+CONFIG_PHY_EAT_40MHZ :=y

+CONFIG_PHY_WLAN_EAT_40MHZ :=y

+

+CONFIG_IGMP_SNOOPING_SUPPORT:=y

+CONFIG_MLD_SNOOPING_SUPPORT:=y

+

+# 802.11w support

+CONFIG_RTL_11W_SUPPORT:=n

+

+# 802.11k support

+CONFIG_RTL_DOT11K_SUPPORT:=n

+

+# 802.11v support

+CONFIG_RTL_11V_SUPPORT:=n

+

+# 802.11r support

+CONFIG_RTL_11R_SUPPORT:=n

+

+CONFIG_BEAMFORMING_SUPPORT:=n

+

+CONFIG_RTK_SMART_ROAMING:=n

+

+# WPA3 support

+CONFIG_RTL_WPA3_SUPPORT:=n

+

+######## Don't Modify Following Code ########

+

+EXTRA_CFLAGS += -DCONFIG_RTL8192CD

+

+ifeq ($(RTK_BSP),n)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP

+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE

+endif

+

+ifeq ($(CONFIG_PCI_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI

+endif

+

+ifeq ($(CONFIG_USB_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_USB_HCI

+endif

+

+ifeq ($(CONFIG_SDIO_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI

+	# 0: No AP power saving 1: RF off  2: beacon offload

+	CONFIG_AP_PS := 0

+endif

+

+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT

+endif

+  

+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT

+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP

+endif

+

+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)

+#	CONFIG_RTL_DFS_SUPPORT :=n

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814AE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192EE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8822BE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE -DCONFIG_WLAN_MACHAL_API

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)

+        CONFIG_WLAN_HAL :=y

+        CONFIG_WLAN_HAL_88XX :=y

+        CONFIG_WLAN_HAL_8821CE :=y

+        CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE -DCONFIG_WLAN_MACHAL_API

+	

+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)

+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING

+	endif

+endif

+

+ifeq ($(CONFIG_WLAN_HAL),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL

+

+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)

+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX

+	endif

+

+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)

+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A

+	endif

+else

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER

+endif

+

+# TODO: We need to assign which NIC is using external PA and LNA

+ifeq ($(CONFIG_EXT_PA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA

+endif

+

+ifeq ($(CONFIG_EXT_LNA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA

+endif

+

+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT

+endif

+

+ifneq ($(RTL8192CD_NUM_VWLAN),0)

+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT

+endif

+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)

+

+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT

+else

+	CONFIG_WPAS_CLI :=0

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_NL80211),y)

+        EXTRA_CFLAGS += -DCONFIG_OPENWRT_SDK

+        EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+        EXTRA_CFLAGS += -DRTK_NRS_NL80211

+endif

+

+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE

+endif

+

+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT

+endif

+

+ifeq ($(CONFIG_ENABLE_EFUSE),y)

+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS

+endif

+

+ifeq ($(CONFIG_WPAS_CLI),1)		# wext

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+else

+ifeq ($(CONFIG_WPAS_CLI),2)		# nl80211

+	EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+	ifeq ($(CONFIG_NL80211_AP),n)

+		EXTRA_CFLAGS += -DNON_NL80211_AP

+	endif

+else

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+endif

+endif

+

+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT

+endif

+

+ifeq ($(CONFIG_TXPWR_LMT),y)

+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT

+endif

+

+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER

+endif

+

+ifeq ($(CONCURRENT_MODE),y)

+	EXTRA_CFLAGS += -DCONCURRENT_MODE

+endif

+

+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB

+endif

+

+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT

+endif

+

+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ

+endif

+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ

+endif

+

+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT

+endif

+

+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_POWER_SAVE),y)

+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE

+endif

+

+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+	ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)

+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING

+endif

+

+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT

+	ifeq ($(CONFIG_RTL_11W_SUPPORT),n)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			ifeq ($(CONFIG_WPAS_CLI),0)

+				EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+			endif

+		endif

+	endif

+endif

diff --git a/package/kernel/realtek-wl/files/config_wext.mk b/package/kernel/realtek-wl/files/config_wext.mk
new file mode 100644
index 0000000..ea322cb
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext.mk
@@ -0,0 +1,375 @@
+#

+# RTL WLan AP Driver All In One Configure

+#

+

+#

+# Wireless LAN

+#

+

+# Driver Module/Build In Driver ==> :=m/:=y

+CONFIG_RTL8192CD :=m

+

+# RTK Platform ?

+RTK_BSP :=n

+

+# Select Support WLan Chip

+CONFIG_RTL_92C_SUPPORT :=n

+CONFIG_RTL_92D_SUPPORT :=n

+CONFIG_RTL_88E_SUPPORT :=n

+CONFIG_RTL_92E_SUPPORT :=y

+CONFIG_RTL_8812_SUPPORT :=n

+CONFIG_RTL_8814_SUPPORT :=n

+

+CONCURRENT_MODE :=n

+

+# Bus Interface Type, PCIE / USB / SDIO

+CONFIG_PCI_HCI :=n

+CONFIG_USB_HCI :=n

+CONFIG_SDIO_HCI :=y

+

+# RTL Platform Support

+CONFIG_RTL_819X :=n

+CONFIG_RTL_819XD :=n

+

+# Driver Configuration

+CONFIG_RTL8190_PRIV_SKB :=n

+CONFIG_PREALLOC_MODULE :=n

+

+CONFIG_RTL_WAPI_SUPPORT :=n

+

+# If Use External PA, LNA ?

+CONFIG_EXT_PA :=n

+CONFIG_EXT_LNA :=n

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_LNA_TYPE := 3

+# 0:22dB LNA gain; 1:18dB LNA gain; 2:16dB LNA gain; 3:14dB LNA gain

+CONFIG_EXT_PA_LNA_TYPE :=3

+

+# If Support Dynamic Freqence Selection ?

+CONFIG_RTL_DFS_SUPPORT :=n

+

+# Number of Virtual AP ?

+ifeq ($(RTL8192CD_NUM_VWLAN),)

+RTL8192CD_NUM_VWLAN := 0

+endif

+

+# If Support Client Mode ?

+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y

+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y

+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n

+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n

+

+# If Support Wireless Distribution System ?

+CONFIG_RTL_WDS_SUPPORT :=n

+

+# If Enable On-Chip EFuse ?

+CONFIG_ENABLE_EFUSE :=y

+

+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)

+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n

+

+CONFIG_MP_PSD_SUPPORT :=n

+CONFIG_RTL_P2P_SUPPORT :=n

+CONFIG_RTL_MESH_SUPPORT :=n

+CONFIG_RTL_WLAN_DOS_FILTER :=n

+CONFIG_TXPWR_LMT :=n

+CONFIG_RTL_WPS2_SUPPORT :=y

+CONFIG_POWER_SAVE :=y

+

+CONFIG_RTL_COMAPI_CFGFILE :=n

+CONFIG_RTL_COMAPI_WLTOOLS :=n

+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211

+CONFIG_WPAS_CLI :=1

+CONFIG_NL80211_AP :=n

+

+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually

+CONFIG_PHY_EAT_40MHZ :=y

+CONFIG_PHY_WLAN_EAT_40MHZ :=y

+

+CONFIG_IGMP_SNOOPING_SUPPORT:=y

+CONFIG_MLD_SNOOPING_SUPPORT:=y

+

+# 802.11w support

+CONFIG_RTL_11W_SUPPORT:=n

+

+# 802.11k support

+CONFIG_RTL_DOT11K_SUPPORT:=n

+

+# 802.11v support

+CONFIG_RTL_11V_SUPPORT:=n

+

+# 802.11r support

+CONFIG_RTL_11R_SUPPORT:=n

+

+# VLAN tag support

+CONFIG_RTL_VLAN_SUPPORT:=n

+

+# WPA3 support

+CONFIG_RTL_WPA3_SUPPORT :=n

+

+######## Don't Modify Following Code ########

+

+EXTRA_CFLAGS += -DCONFIG_RTL8192CD

+

+ifeq ($(RTK_BSP),n)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP

+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE

+endif

+

+ifeq ($(CONFIG_PCI_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI

+endif

+

+ifeq ($(CONFIG_USB_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_USB_HCI

+endif

+

+ifeq ($(CONFIG_SDIO_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI

+	# 0: No AP power saving 1: RF off  2: beacon offload

+	CONFIG_AP_PS := 0

+endif

+

+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT

+endif

+  

+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT

+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP

+endif

+

+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)

+#	CONFIG_RTL_DFS_SUPPORT :=n

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814AE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE

+endif

+

+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192EE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_WLAN_HAL),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL

+

+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)

+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX

+	endif

+

+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)

+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A

+	endif

+else

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER

+endif

+

+# TODO: We need to assign which NIC is using external PA and LNA

+ifeq ($(CONFIG_EXT_PA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA

+endif

+

+ifeq ($(CONFIG_EXT_LNA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA

+	ifeq ($(CONFIG_EXT_PA),y)

+		EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_PA_LNA_TYPE)

+	else

+		EXTRA_CFLAGS += -DEXT_LNA_TYPE=$(CONFIG_EXT_LNA_TYPE)

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT

+endif

+

+ifneq ($(RTL8192CD_NUM_VWLAN),0)

+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT

+endif

+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)

+

+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT

+else

+	CONFIG_WPAS_CLI :=0

+endif

+

+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT -DSDIO_2_PORT

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE

+endif

+

+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT

+endif

+

+ifeq ($(CONFIG_ENABLE_EFUSE),y)

+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS

+endif

+

+ifeq ($(CONFIG_WPAS_CLI),1)		# wext

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+else

+ifeq ($(CONFIG_WPAS_CLI),2)		# nl80211

+	EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+	ifeq ($(CONFIG_NL80211_AP),n)

+		EXTRA_CFLAGS += -DNON_NL80211_AP

+	endif

+else

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			EXTRA_CFLAGS += -DNON_NL80211_WPAS

+		endif

+	endif

+endif

+endif

+

+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT

+endif

+

+ifeq ($(CONFIG_TXPWR_LMT),y)

+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT

+endif

+

+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER

+endif

+

+ifeq ($(CONCURRENT_MODE),y)

+	EXTRA_CFLAGS += -DCONCURRENT_MODE

+endif

+

+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB

+endif

+

+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT

+endif

+

+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ

+endif

+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ

+endif

+

+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT

+endif

+

+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_POWER_SAVE),y)

+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE

+endif

+

+ifeq ($(CONFIG_PREALLOC_MODULE),y)

+	EXTRA_CFLAGS += -DUSE_PREALLOC_MODULE

+endif

+

+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+	ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT

+endif

+

+ifeq ($(CONFIG_WIFI_SNIFFER),y)

+	EXTRA_CFLAGS += -DWIFI_SNIFFER

+endif

+

+ifeq ($(CONFIG_RTL_VLAN_SUPPORT),y)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP_VLAN

+endif

+

+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT

+	ifeq ($(CONFIG_RTL_11W_SUPPORT),n)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			ifneq ($(CONFIG_WPAS_CLI),1)

+				EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+			endif

+		endif

+	endif

+endif

+

diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8192fr.mk b/package/kernel/realtek-wl/files/config_wext_rtl8192fr.mk
new file mode 100644
index 0000000..86b3c8c
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8192fr.mk
@@ -0,0 +1,465 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=n
+
+CONCURRENT_MODE :=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT :=y
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=y
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=n
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=y
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_WPA_CLI :=n
+CONFIG_POWER_SAVE :=n
+CONFIG_DPK :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+endif
+
+ifeq ($(RTK_BSP),n)
+	EXTRA_CFLAGS += -DNOT_RTK_BSP
+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+	EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+	# 0: No AP power saving 1: RF off  2: beacon offload
+	CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+  
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+#	CONFIG_RTL_DFS_SUPPORT :=n
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8814AE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8192EE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8192FE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8822BE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8822CE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8821CE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+	
+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+	CONFIG_RTL_OFFLOAD_DRIVER :=y
+	CONFIG_ENABLE_EFUSE :=n
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8814BE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V1 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8812FE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)	
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+	endif
+
+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+	endif
+else
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)	
+	EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPA_CLI),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+	EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+    ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+    	EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+    endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+	#Enable 11k if 11v is enabled
+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+	EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8192fr_rtl8812fr.mk b/package/kernel/realtek-wl/files/config_wext_rtl8192fr_rtl8812fr.mk
new file mode 100644
index 0000000..522235f
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8192fr_rtl8812fr.mk
@@ -0,0 +1,458 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=y
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=y
+
+CONCURRENT_MODE :=y
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=y
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=n
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=y
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_WPA_CLI :=n
+CONFIG_POWER_SAVE :=n
+CONFIG_DPK :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(RTK_BSP),n)
+	EXTRA_CFLAGS += -DNOT_RTK_BSP
+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+	EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+	# 0: No AP power saving 1: RF off  2: beacon offload
+	CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+  
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+#	CONFIG_RTL_DFS_SUPPORT :=n
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8814AE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8192EE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8192FE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8822BE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8822CE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8821CE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+	
+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+	CONFIG_RTL_OFFLOAD_DRIVER :=y
+	CONFIG_ENABLE_EFUSE :=n
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8814BE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V1 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8812FE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)	
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+	endif
+
+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+	endif
+else
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)	
+	EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPA_CLI),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+	EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+    ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+    	EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+    endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+	#Enable 11k if 11v is enabled
+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+	EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8812fr.mk b/package/kernel/realtek-wl/files/config_wext_rtl8812fr.mk
new file mode 100644
index 0000000..c53ecfd
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8812fr.mk
@@ -0,0 +1,465 @@
+#
+# RTL WLan AP Driver All In One Configure
+#
+
+#
+# Wireless LAN
+#
+
+# Driver Module/Build In Driver ==> :=m/:=y
+CONFIG_RTL8192CD :=m
+
+# RTK Platform ?
+RTK_BSP :=n
+
+# Select Support WLan Chip
+CONFIG_RTL_92C_SUPPORT :=n
+CONFIG_RTL_92D_SUPPORT :=n
+CONFIG_RTL_88E_SUPPORT :=n
+CONFIG_RTL_92E_SUPPORT :=n
+CONFIG_RTL_92F_SUPPORT :=n
+CONFIG_RTL_8812_SUPPORT :=n
+CONFIG_RTL_8814_SUPPORT :=n
+CONFIG_RTL_8822_SUPPORT :=n
+CONFIG_RTL_8822C_SUPPORT :=n
+CONFIG_RTL_8821_SUPPORT :=n
+CONFIG_RTL_8814B_SUPPORT :=n
+CONFIG_RTL_8812F_SUPPORT :=y
+
+CONCURRENT_MODE :=n
+
+# WPA3 support
+CONFIG_RTL_WPA3_SUPPORT :=y
+
+# Bus Interface Type, PCIE / USB / SDIO
+CONFIG_PCI_HCI :=y
+CONFIG_USB_HCI :=n
+CONFIG_SDIO_HCI :=n
+
+# RTL Platform Support
+CONFIG_RTL_819X :=n
+CONFIG_RTL_819XD :=n
+
+# Driver Configuration
+CONFIG_RTL8190_PRIV_SKB :=n
+CONFIG_PREALLOC_MODULE :=n
+
+CONFIG_RTL_WAPI_SUPPORT :=n
+
+# If Use External PA, LNA ?
+CONFIG_EXT_PA :=n
+CONFIG_EXT_LNA :=n
+
+# If Support Dynamic Freqence Selection ?
+CONFIG_RTL_DFS_SUPPORT :=n
+
+# Number of Virtual AP ?
+ifeq ($(RTL8192CD_NUM_VWLAN),)
+RTL8192CD_NUM_VWLAN := 0
+endif
+
+# If Support Client Mode ?
+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y
+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y
+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n
+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n
+
+# If Support Wireless Distribution System ?
+CONFIG_RTL_WDS_SUPPORT :=n
+
+# If Enable On-Chip EFuse ?
+CONFIG_ENABLE_EFUSE :=y
+
+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)
+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=n
+
+CONFIG_RTL_COMAPI_CFGFILE :=n
+CONFIG_RTL_COMAPI_WLTOOLS :=n
+CONFIG_MP_PSD_SUPPORT :=n
+CONFIG_RTL_P2P_SUPPORT :=n
+CONFIG_RTL_MESH_SUPPORT :=n
+CONFIG_RTL_WLAN_DOS_FILTER :=n
+CONFIG_TXPWR_LMT :=n
+CONFIG_TX_BEAMFORMING :=y
+CONFIG_RTL_WPS2_SUPPORT :=y
+CONFIG_WPA_CLI :=n
+CONFIG_POWER_SAVE :=n
+CONFIG_DPK :=n
+
+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually
+CONFIG_PHY_EAT_40MHZ :=y
+CONFIG_PHY_WLAN_EAT_40MHZ :=y
+
+CONFIG_IGMP_SNOOPING_SUPPORT:=y
+CONFIG_MLD_SNOOPING_SUPPORT:=y
+
+# 802.11w support
+CONFIG_RTL_11W_SUPPORT:=y
+CONFIG_RTL_11W_CLI_SUPPORT:=n
+
+# 802.11r support
+CONFIG_RTL_11R_SUPPORT:=n
+
+#802.11k support
+CONFIG_RTL_DOT11K_SUPPORT:=n
+
+#802.11v support
+CONFIG_RTL_11V_SUPPORT:=n
+
+# Thermal Control
+CONFIG_THERMAL_CONTROL:=n
+CONFIG_THERMAL_CONTROL_DAEMON:=n
+
+CONFIG_BEAMFORMING_SUPPORT:=n
+
+CONFIG_RTK_SMART_ROAMING:=n
+
+CONFIG_SMP_LOAD_BALANCE_SUPPORT:=n
+
+CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT=n
+
+# Airtime Fairness support
+CONFIG_RTL_ATM_SUPPORT:=n
+
+######## Don't Modify Following Code ########
+
+EXTRA_CFLAGS += -DCONFIG_RTL8192CD
+
+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT
+endif
+
+ifeq ($(RTK_BSP),n)
+	EXTRA_CFLAGS += -DNOT_RTK_BSP
+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE
+endif
+
+ifeq ($(CONFIG_RTL_ATM_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_ATM_SUPPORT
+endif
+
+ifeq ($(CONFIG_DPK),y)
+	EXTRA_CFLAGS += -DCONFIG_RF_DPK_SETTING_SUPPORT
+endif
+
+ifeq ($(CONFIG_PCI_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI
+endif
+
+ifeq ($(CONFIG_USB_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_USB_HCI
+endif
+
+ifeq ($(CONFIG_SDIO_HCI),y)
+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI
+	# 0: No AP power saving 1: RF off  2: beacon offload
+	CONFIG_AP_PS := 0
+endif
+
+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT
+endif
+  
+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT
+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP
+endif
+
+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)
+#	CONFIG_RTL_DFS_SUPPORT :=n
+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8814AE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8192EE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_92F_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8192FE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192FE
+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8822BE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_RTL_8822C_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8822CE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822CE
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8821CE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE
+	
+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)
+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING
+	endif
+endif
+
+ifeq ($(CONFIG_RTL_8814B_SUPPORT),y)
+	CONFIG_RTL_OFFLOAD_DRIVER :=y
+	CONFIG_ENABLE_EFUSE :=n
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8814BE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V1 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814BE
+endif
+
+ifeq ($(CONFIG_RTL_8812F_SUPPORT),y)
+	CONFIG_WLAN_HAL :=y
+	CONFIG_WLAN_HAL_88XX :=y
+	CONFIG_WLAN_HAL_8812FE :=y
+	CONFIG_RTL_ODM_WLAN_DRIVER :=y
+	CONFIG_WLAN_MACHAL_API :=y
+	CONFIG_WLAN_MACHAL_API_V0 :=y
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8812FE
+
+#	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)
+#		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT
+#	endif
+endif
+
+ifeq ($(CONFIG_WLAN_HAL),y)	
+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL
+
+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)
+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX
+	endif
+
+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)
+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A
+	endif
+else
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_WLAN_MACHAL_API),y)	
+	EXTRA_CFLAGS += -DCONFIG_WLAN_MACHAL_API
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST
+endif
+
+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER
+endif
+
+# TODO: We need to assign which NIC is using external PA and LNA
+ifeq ($(CONFIG_EXT_PA),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA
+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA
+endif
+
+ifeq ($(CONFIG_EXT_LNA),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA
+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA
+endif
+
+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT
+endif
+
+ifneq ($(RTL8192CD_NUM_VWLAN),0)
+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT
+endif
+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)
+
+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE
+endif
+
+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT
+endif
+
+ifeq ($(CONFIG_ENABLE_EFUSE),y)
+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE
+endif
+
+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS
+endif
+
+ifeq ($(CONFIG_WPA_CLI),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI -DSDIO_2_PORT
+endif
+
+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT
+endif
+
+ifeq ($(CONFIG_TXPWR_LMT),y)
+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT
+endif
+
+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER
+endif
+
+ifeq ($(CONCURRENT_MODE),y)
+	EXTRA_CFLAGS += -DCONCURRENT_MODE
+endif
+
+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB
+endif
+
+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT
+endif
+
+ifeq ($(CONFIG_TX_BEAMFORMING),y)
+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_TX_BEAMFORMING
+endif
+
+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)
+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ
+endif
+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)
+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ
+endif
+
+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT
+endif
+
+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)
+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)
+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_
+endif
+
+ifeq ($(CONFIG_POWER_SAVE),y)
+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE
+endif
+
+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11W_CLI_SUPPORT),y)
+    ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)
+    	EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT
+    endif
+endif
+
+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)
+	#Enable 11k if 11v is enabled
+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)
+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING
+endif
+
+ifeq ($(CONFIG_SMP_LOAD_BALANCE_SUPPORT),y)
+	EXTRA_CFLAGS += -DSMP_LOAD_BALANCE_SUPPORT
+endif
+
+ifeq ($(CONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT),y)
+	EXTRA_CFLAGS += -DCONFIG_HWNAT_NETIF_RX_QUEUE_SUPPORT
+endif
+
+ifeq ($(CONFIG_RTL_OFFLOAD_DRIVER),y)
+	EXTRA_CFLAGS += -DCONFIG_RTL_OFFLOAD_DRIVER
+endif
diff --git a/package/kernel/realtek-wl/files/config_wext_rtl8822bs.mk b/package/kernel/realtek-wl/files/config_wext_rtl8822bs.mk
new file mode 100644
index 0000000..31d46d3
--- /dev/null
+++ b/package/kernel/realtek-wl/files/config_wext_rtl8822bs.mk
@@ -0,0 +1,398 @@
+#

+# RTL WLan AP Driver All In One Configure

+#

+

+#

+# Wireless LAN

+#

+

+# Driver Module/Build In Driver ==> :=m/:=y

+CONFIG_RTL8192CD :=m

+

+# RTK Platform ?

+RTK_BSP :=n

+

+# Select Support WLan Chip

+CONFIG_RTL_92C_SUPPORT :=n

+CONFIG_RTL_92D_SUPPORT :=n

+CONFIG_RTL_88E_SUPPORT :=n

+CONFIG_RTL_92E_SUPPORT :=n

+CONFIG_RTL_8812_SUPPORT :=n

+CONFIG_RTL_8814_SUPPORT :=n

+CONFIG_RTL_8822_SUPPORT :=y

+CONFIG_RTL_8821_SUPPORT :=n

+

+CONCURRENT_MODE :=n

+

+# Bus Interface Type, PCIE / USB / SDIO

+CONFIG_PCI_HCI :=n

+CONFIG_USB_HCI :=n

+CONFIG_SDIO_HCI :=y

+

+# RTL Platform Support

+CONFIG_RTL_819X :=n

+CONFIG_RTL_819XD :=n

+

+# Driver Configuration

+CONFIG_RTL8190_PRIV_SKB :=n

+CONFIG_PREALLOC_MODULE :=n

+

+CONFIG_RTL_WAPI_SUPPORT :=n

+

+# If Use External PA, LNA ?

+CONFIG_EXT_PA :=n

+CONFIG_EXT_LNA :=n

+

+# If Support Dynamic Freqence Selection ?

+CONFIG_RTL_DFS_SUPPORT :=n

+

+# Number of Virtual AP ?

+ifeq ($(RTL8192CD_NUM_VWLAN),)

+RTL8192CD_NUM_VWLAN := 0

+endif

+

+# If Support Client Mode ?

+CONFIG_RTL_CLIENT_MODE_SUPPORT :=y

+CONFIG_RTL_REPEATER_MODE_SUPPORT :=y

+CONFIG_RTL_SUPPORT_MULTI_PROFILE :=n

+CONFIG_RTL_MULTI_CLONE_SUPPORT :=n

+

+CONFIG_RTL_SUPPORT_NL80211 :=n

+CONFIG_OPENWRT_SDK :=n

+# If Support Wireless Distribution System ?

+CONFIG_RTL_WDS_SUPPORT :=n

+

+# If Enable On-Chip EFuse ?

+CONFIG_ENABLE_EFUSE :=y

+

+# If support non-HAL Chip ? (92C, 92D, 88E, 8812)

+CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+

+

+CONFIG_RTL_COMAPI_CFGFILE :=n

+CONFIG_RTL_COMAPI_WLTOOLS :=n

+CONFIG_MP_PSD_SUPPORT :=n

+CONFIG_RTL_P2P_SUPPORT :=n

+CONFIG_RTL_MESH_SUPPORT :=n

+CONFIG_RTL_WLAN_DOS_FILTER :=n

+CONFIG_TXPWR_LMT :=n

+CONFIG_RTL_WPS2_SUPPORT :=y

+CONFIG_POWER_SAVE :=y

+

+# [WPA Supplicant] 0:None; 1:wext; 2:nl80211

+CONFIG_WPAS_CLI :=2

+CONFIG_NL80211_AP :=y

+

+# Select WLan PHY Clock Source, 40MHz/25MHz. For WLan module, we use 40MHz usually

+CONFIG_PHY_EAT_40MHZ :=y

+CONFIG_PHY_WLAN_EAT_40MHZ :=y

+

+CONFIG_IGMP_SNOOPING_SUPPORT:=y

+CONFIG_MLD_SNOOPING_SUPPORT:=y

+

+# 802.11w support

+CONFIG_RTL_11W_SUPPORT:=n

+

+# 802.11k support

+CONFIG_RTL_DOT11K_SUPPORT:=n

+

+# 802.11v support

+CONFIG_RTL_11V_SUPPORT:=n

+

+# 802.11r support

+CONFIG_RTL_11R_SUPPORT:=n

+

+CONFIG_BEAMFORMING_SUPPORT:=n

+

+CONFIG_RTK_SMART_ROAMING:=n

+

+# WPA3 support

+CONFIG_RTL_WPA3_SUPPORT:=n

+

+######## Don't Modify Following Code ########

+

+EXTRA_CFLAGS += -DCONFIG_RTL8192CD

+

+ifeq ($(RTK_BSP),n)

+	EXTRA_CFLAGS += -DNOT_RTK_BSP

+	EXTRA_CFLAGS += -DCONFIG_WIRELESS_LAN_MODULE

+endif

+

+ifeq ($(CONFIG_PCI_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_PCI_HCI

+endif

+

+ifeq ($(CONFIG_USB_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_USB_HCI

+endif

+

+ifeq ($(CONFIG_SDIO_HCI),y)

+	EXTRA_CFLAGS += -DCONFIG_SDIO_HCI

+	# 0: No AP power saving 1: RF off  2: beacon offload

+	CONFIG_AP_PS := 0

+endif

+

+ifeq ($(CONFIG_RTL_92C_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92C_SUPPORT

+endif

+  

+ifeq ($(CONFIG_RTL_92D_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_92D_SUPPORT

+	#EXTRA_CFLAGS += -DCONFIG_RTL_92D_DMDP

+endif

+

+ifeq ($(CONFIG_RTL_88E_SUPPORT),y)

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_88E_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_8812_SUPPORT),y)

+#	CONFIG_RTL_DFS_SUPPORT :=n

+	CONFIG_RTL_WLAN_HAL_NOT_EXIST :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_RTL_8812_SUPPORT

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8814_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8814AE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8814AE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_92E_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8192EE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8192EE

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8822_SUPPORT),y)

+	CONFIG_WLAN_HAL :=y

+	CONFIG_WLAN_HAL_88XX :=y

+	CONFIG_WLAN_HAL_8822BE :=y

+	CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8822BE -DCONFIG_WLAN_MACHAL_API

+	ifeq ($(CONFIG_BEAMFORMING_SUPPORT), y)

+		EXTRA_CFLAGS += -DCONFIG_BEAMFORMING_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_8821_SUPPORT),y)

+        CONFIG_WLAN_HAL :=y

+        CONFIG_WLAN_HAL_88XX :=y

+        CONFIG_WLAN_HAL_8821CE :=y

+        CONFIG_RTL_ODM_WLAN_DRIVER :=y

+	CONFIG_WLAN_MACHAL_API :=y

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_8821CE -DCONFIG_WLAN_MACHAL_API

+	

+	ifeq ($(CONFIG_WLAN_HAL_8821CE), y)

+#		EXTRA_CFLAGS += -DCONFIG_PCIE_POWER_SAVING

+	endif

+endif

+

+ifeq ($(CONFIG_WLAN_HAL),y)	

+	EXTRA_CFLAGS += -DCONFIG_WLAN_HAL

+

+	ifeq ($(CONFIG_WLAN_HAL_88XX),y)

+		EXTRA_CFLAGS += -DCONFIG_WLAN_HAL_88XX

+	endif

+

+	ifeq ($(CONFIG_WLAN_HAL_8881A),y)

+		RTL_WLAN_DATA_DIR := WlanHAL/Data/8881A

+	endif

+else

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_HAL_NOT_EXIST),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_HAL_NOT_EXIST

+endif

+

+ifeq ($(CONFIG_RTL_ODM_WLAN_DRIVER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_ODM_WLAN_DRIVER

+endif

+

+# TODO: We need to assign which NIC is using external PA and LNA

+ifeq ($(CONFIG_EXT_PA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_PA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_PA

+endif

+

+ifeq ($(CONFIG_EXT_LNA),y)

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_EXT_LNA

+	EXTRA_CFLAGS += -DCONFIG_SLOT_1_EXT_LNA

+endif

+

+ifeq ($(CONFIG_RTL_DFS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DFS_SUPPORT

+endif

+

+ifneq ($(RTL8192CD_NUM_VWLAN),0)

+	EXTRA_CFLAGS += -DCONFIG_RTL_VAP_SUPPORT

+endif

+EXTRA_CFLAGS += -DRTL8192CD_NUM_VWLAN=$(RTL8192CD_NUM_VWLAN)

+

+ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_CLIENT_MODE_SUPPORT

+else

+	CONFIG_WPAS_CLI :=0

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_NL80211),y)

+        EXTRA_CFLAGS += -DCONFIG_OPENWRT_SDK

+        EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+        EXTRA_CFLAGS += -DRTK_NRS_NL80211

+endif

+

+ifeq ($(CONFIG_RTL_REPEATER_MODE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_REPEATER_MODE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_SUPPORT_MULTI_PROFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_SUPPORT_MULTI_PROFILE

+endif

+

+ifeq ($(CONFIG_RTL_MULTI_CLONE_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MULTI_CLONE_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WDS_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WDS_SUPPORT

+endif

+

+ifeq ($(CONFIG_ENABLE_EFUSE),y)

+	EXTRA_CFLAGS += -DCONFIG_ENABLE_EFUSE

+	EXTRA_CFLAGS += -DCONFIG_SLOT_0_ENABLE_EFUSE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_CFGFILE),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_CFGFILE

+endif

+

+ifeq ($(CONFIG_RTL_COMAPI_WLTOOLS),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS

+endif

+

+ifeq ($(CONFIG_WPAS_CLI),1)		# wext

+	EXTRA_CFLAGS += -DCONFIG_RTL_COMAPI_WLTOOLS -DWIFI_WPAS_CLI

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+else

+ifeq ($(CONFIG_WPAS_CLI),2)		# nl80211

+	EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE

+	ifeq ($(CONFIG_NL80211_AP),n)

+		EXTRA_CFLAGS += -DNON_NL80211_AP

+	endif

+else

+	ifeq ($(CONFIG_NL80211_AP),y)

+		EXTRA_CFLAGS += -DCPTCFG_CFG80211_MODULE -DNON_NL80211_WPAS

+	endif

+endif

+endif

+

+ifeq ($(CONFIG_MP_PSD_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_MP_PSD_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_P2P_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_P2P_SUPPORT

+endif

+

+ifeq ($(CONFIG_TXPWR_LMT),y)

+	EXTRA_CFLAGS += -DCONFIG_TXPWR_LMT

+endif

+

+ifeq ($(CONFIG_RTL_MESH_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_MESH_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_WLAN_DOS_FILTER),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WLAN_DOS_FILTER

+endif

+

+ifeq ($(CONCURRENT_MODE),y)

+	EXTRA_CFLAGS += -DCONCURRENT_MODE

+endif

+

+ifeq ($(CONFIG_RTL8190_PRIV_SKB),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL8190_PRIV_SKB

+endif

+

+ifeq ($(CONFIG_RTL_WPS2_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPS2_SUPPORT

+endif

+

+ifeq ($(CONFIG_PHY_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_EAT_40MHZ

+endif

+ifeq ($(CONFIG_PHY_WLAN_EAT_40MHZ),y)

+	EXTRA_CFLAGS += -DCONFIG_PHY_WLAN_EAT_40MHZ

+endif

+

+ifeq ($(CONFIG_RTL_WAPI_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WAPI_SUPPORT

+endif

+

+ifeq ($(CONFIG_IGMP_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_IGMP_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_MLD_SNOOPING_SUPPORT),y)

+	EXTRA_CFLAGS += -D_FULLY_WIFI_MLD_SNOOPING_SUPPORT_

+endif

+

+ifeq ($(CONFIG_POWER_SAVE),y)

+	EXTRA_CFLAGS += -DSDIO_AP_OFFLOAD -DCONFIG_POWER_SAVE

+endif

+

+ifeq ($(CONFIG_RTL_11W_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+	ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+	endif

+endif

+

+ifeq ($(CONFIG_RTL_DOT11K_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_DOT11K_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11V_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11V_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTL_11R_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_11R_SUPPORT

+endif

+

+ifeq ($(CONFIG_RTK_SMART_ROAMING),y)

+	EXTRA_CFLAGS += -DCONFIG_RTK_SMART_ROAMING

+endif

+

+ifeq ($(CONFIG_RTL_WPA3_SUPPORT),y)

+	EXTRA_CFLAGS += -DCONFIG_RTL_WPA3_SUPPORT

+	ifeq ($(CONFIG_RTL_11W_SUPPORT),n)

+		EXTRA_CFLAGS += -DCONFIG_RTL_11W_SUPPORT

+		ifeq ($(CONFIG_RTL_CLIENT_MODE_SUPPORT),y)

+			ifeq ($(CONFIG_WPAS_CLI),0)

+				EXTRA_CFLAGS += -DCONFIG_RTL_11W_CLI_SUPPORT

+			endif

+		endif

+	endif

+endif

diff --git a/package/kernel/realtek-wl/files/etc/init.d/mwlan b/package/kernel/realtek-wl/files/etc/init.d/mwlan
new file mode 100755
index 0000000..31173ea
--- /dev/null
+++ b/package/kernel/realtek-wl/files/etc/init.d/mwlan
@@ -0,0 +1,319 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2018 OpenWrt.org
+
+START=40
+
+SET_WLAN="iwpriv wlan1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+wlan_power_ctrl() {
+	local on=$1
+	local name
+	local power
+	local pcie_device
+
+	for name in  $(ls /sys/devices/platform | grep "rfkill"); do
+		[ ! -e "/sys/devices/platform/${name}/pwr_ctrl" ] && continue
+		power=0
+		$(cat /sys/devices/platform/${name}/pwr_ctrl | grep -q on) && power=1
+		[ "$power" == "$on" ] && continue
+		echo $on > /sys/devices/platform/${name}/pwr_ctrl
+	done
+}
+
+rtl8192fr_write_cali() {
+        $SET_WLAN  set_mib pwrlevelCCK_A=2828282828282828282828282828
+        $SET_WLAN set_mib pwrlevelCCK_B=2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+        $SET_WLAN set_mib pwrlevelHT40_1S_A=2727272727272727272727272727
+        $SET_WLAN set_mib pwrlevelHT40_1S_B=2A2A2A2A2A2A2A2A2A2A2A2A2A2A
+        $SET_WLAN set_mib pwrdiffOFDM=2828282828282828282828282828
+        $SET_WLAN set_mib xcap=23
+        $SET_WLAN set_mib thermal=35
+
+}
+rtl8812fr_write_cali() {
+	$SET_WLAN set_mib pwrlevel5GHT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+	$SET_WLAN set_mib pwrlevel5GHT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+	$SET_WLAN set_mib pwrdiff5GHT40_2S=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrdiff5GHT20=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrdiff5GOFDM=00000000000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+	$SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_B=0000000000000000000000000000000000000000000000000000000000000000000000FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+	$SET_WLAN set_mib xcap=32
+	$SET_WLAN set_mib thermal1=33
+	$SET_WLAN set_mib thermal2=32
+}
+rtl_write_cali() {
+	grep -l "RTL8192F" /proc/wlan1/mib_rf > /dev/null
+	if [ $? -eq 0 ]; then
+		rtl8192fr_write_cali
+	fi
+	grep -l "RTL8812" /proc/wlan1/mib_rf > /dev/null
+	if [ $? -eq 0 ]; then
+		rtl8812_write_cali
+	fi
+}
+wlan_ops_lock() {
+	echo mwlan > /sys/power/wake_lock
+}
+
+wlan_ops_unlock() {
+	echo mwlan > /sys/power/wake_unlock
+}
+
+wlan_ubus_event() {
+	case $1 in
+	start )
+		ubus send mwlan.stat.action ' { "stat" : "start" } ' ;;
+	up )
+		ubus send mwlan.stat.action ' { "stat" : "up" } ' ;;
+	down )
+		ubus send mwlan.stat.action ' { "stat" : "down" } ' ;;
+	* )
+		echo "unknown option ($1)" ;;
+	esac
+}
+
+
+wlan_enable_vap() {
+	local _device _disabled _ifname
+
+	_wlan_enable_vap() {
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get _ifname $1 ifname
+		[ 1 == "$disabled" ] && return
+
+		case $_ifname in
+		*-va[0-9])
+			iwpriv ${_ifname%-va*} set_mib vap_enable=1
+			;;
+		*)
+			;;
+		esac
+
+	}
+
+	config_foreach _wlan_enable_vap wifi-iface
+}
+
+find_phy() {
+	[ -n "$path" ] && {
+		for phy in /sys/devices/$path/ieee80211/phy*; do
+			[ -e "$phy" ] && {
+				phy="${phy##*/}"
+				return 0
+			}
+		done
+	}
+	[ -n "$macaddr" ] && {
+		for phy in $(ls /sys/class/ieee80211 2>/dev/null); do
+			grep -i -q "$macaddr" "/sys/class/ieee80211/${phy}/macaddress" && return 0
+		done
+	}
+	return 1
+}
+
+wlan_set_sta_channel_to_ap() {
+	local _device _disabled _ifname _ssid
+	local ap_device=$1 root_ifname=$2 ap_channel=$3 sta_channel=
+	local path macaddr phy
+
+	__wlan_set_sta_channel_to_ap() {
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get path $_device path
+		config_get _mode $1 mode
+		config_get _ifname $1 ifname
+		config_get _ssid $1 ssid
+		config_get macaddr $1 macaddr
+
+		[ 1 == "$_disabled" ] && return
+		[ "${_mode}" != "sta" ] && return
+		[ "$root_ifname" != "${_ifname%%-v*}" ] && return
+
+		find_phy || {
+			echo "Could not find PHY for device '$_device'"
+			return
+		}
+		for i in $( seq 1 10 ); do
+			iw phy "$phy" interface add "$root_ifname" type station
+			ifconfig "$root_ifname" hw ether "$macaddr"
+			ifconfig "$root_ifname" up 2>/dev/null && {
+				echo "==> $root_ifname is up for scan ssid" > /dev/kmsg
+				break
+			}
+			sleep 1
+		done
+		for i in $( seq 1 10 ); do
+			freq=$(iw dev "$root_ifname" scan ssid "$_ssid" | awk '/freq/{print $2}' | head -1)
+			if [ $freq -ge 2412 -a $freq -le 2472 ]; then
+				sta_channel=$((($freq - 2407)/5))
+			elif [ $freq -eq 2484 ]; then
+				sta_channel=14
+			elif [ $freq -ge 4900 -a $freq -lt 5000 ]; then
+				sta_channel=$((($freq - 4000)/5))
+			else
+				sta_channel=
+				sleep 1
+				echo "==> try $i times to scan ssid  $_ssid" > /dev/kmsg
+				continue
+			fi
+			break
+		done
+
+		echo "==> scan $_ssid, get channel = $sta_channel" > /dev/kmsg
+		[ -n "$sta_channel" ] && {
+			[ "$sta_channel" != "$ap_channel" ] && {
+				uci_set wireless $ap_device channel $sta_channel
+				uci_commit wireless
+				echo "==> $ap_device: set channel to $sta_channel" > /dev/kmsg
+			}
+			eval wifichannel_${root_ifname}=\${sta_channel}
+		}
+	}
+
+	eval wifichannel=\${wifichannel_${root_ifname}}
+	[ -n "$wifichannel" ] && {
+		echo "==> already set channel for root interface" > /dev/kmsg
+		[ "$wifichannel" !=  "$ap_channel" ] && {
+			echo "==> $ap_device: set channel to $wifichannel, same with ${root_ifname}" > /dev/kmsg
+			uci_set wireless $ap_device channel $wifichannel
+			uci_commit wireless
+		}
+		return
+	}
+
+	config_foreach __wlan_set_sta_channel_to_ap wifi-iface
+}
+
+wlan_updown() {
+	local act=up i=1
+	local _device _disabled _ifname _mode _up _isolate _channel
+	local ret
+
+	__wlan_updown() {
+		config_get _device $1 device
+		config_get _ifname $1 ifname
+		config_get _mode $1 mode
+		config_get _isolate $1 isolate
+
+		config_get _channel $_device channel
+		config_get _disabled $_device disabled
+		if [ "$act" == "down" ]; then
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") || return
+			/sbin/wifi down $_device
+		elif [ "$act" == "up" -a "$_disabled" != "1" ]; then
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && return
+
+			case $_ifname in
+			*-vxd)
+				iwpriv $_ifname copy_mib
+				;;
+			*)
+				;;
+			esac
+			if [ "${_mode}" == "sta" ]; then
+				iwpriv $_ifname set_mib opmode=8
+			else
+				iwpriv $_ifname set_mib opmode=16
+				# AP need to use same channel with STA
+				wlan_set_sta_channel_to_ap $_device ${_ifname%%-v*} $_channel
+			fi
+
+			/sbin/wifi up $_device
+		else
+			return
+		fi
+
+		while [ $i -lt 20 ]
+		do
+			_up=0
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && _up=1
+			if [ "$act" == "down" -a "$_up" == "0" ]; then
+				break;
+			elif [ "$act" == "up" -a "$_up" == "1" ]; then
+				if [ $_mode == "ap" ]; then
+					if [ $_isolate == "1" ]; then
+						iwpriv $_ifname set_mib block_relay=1
+					else
+						iwpriv $_ifname set_mib block_relay=0
+					fi
+				fi
+				break;
+			fi
+			sleep 1
+			i=$(($i+1))
+		done
+		[ "$i" -ge "20" ] && LOGE "wlan_updown $act ${_device} failed" && ret=1
+	}
+
+	ret=0
+	[ "$#" -ge "1" ] && act=$1
+
+	config_load wireless
+
+	[ "$act" == "up" ] && wlan_enable_vap
+	config_foreach __wlan_updown wifi-iface
+	return $ret
+}
+
+start() {
+	wlan_ops_lock
+	wlan_ubus_event start
+	wlan_power_ctrl 1
+	wlan_updown up
+	wlan_ubus_event up
+	wlan_ops_unlock
+}
+
+boot() {
+	wlan_check_wifi_exist() {
+		local _ifname _device
+
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get _ifname $1 ifname
+
+		if [ $_disabled == "1" ]; then
+			mkdir -p /var/wifi_ok
+			touch /var/wifi_ok/$_device
+		else
+			ifconfig -a | grep -q $_ifname && {
+				mkdir -p /var/wifi_ok
+				touch /var/wifi_ok/$_device
+			}
+		fi
+	}
+
+	start
+	sleep 1
+	config_load wireless
+	config_foreach wlan_check_wifi_exist wifi-iface
+}
+
+stop() {
+	wlan_ops_lock
+	wlan_updown down
+	sleep 1
+	wlan_power_ctrl 0
+	wlan_ubus_event down
+	wlan_ops_unlock
+}
+
+restart() {
+	wlan_ops_lock
+	wlan_power_ctrl 1
+	wlan_updown down
+	wlan_updown up
+	wlan_ops_unlock
+}
+
+reload() {
+	wlan_ops_lock
+	wlan_power_ctrl 1
+	wlan_updown down
+	wlan_updown up
+	wlan_ops_unlock
+}
diff --git a/package/kernel/realtek-wl/files/etc/uci-defaults/03_wireless-fixup b/package/kernel/realtek-wl/files/etc/uci-defaults/03_wireless-fixup
new file mode 100644
index 0000000..9affbce
--- /dev/null
+++ b/package/kernel/realtek-wl/files/etc/uci-defaults/03_wireless-fixup
@@ -0,0 +1,121 @@
+#!/bin/sh
+. /lib/functions.sh
+
+lookup_macaddr() {
+	local found=0
+
+	__lookup_macaddr() {
+		config_get macaddr $1 macaddr
+		[ -n "$macaddr" ] && found=1
+	}
+
+	config_load wireless
+	config_foreach __lookup_macaddr wifi-iface
+	return $found
+}
+
+#
+# Set the MAC address from MRD, if not exist generate
+# randomly and save it
+#
+set_wifi_if_mac() {
+	local _ifname rootif save_name gen_mac
+
+	config_get _ifname $1 ifname
+	case $_ifname in
+	*-vxd)
+		# VXD use same macaddr from root interface
+		rootif=${_ifname%-vxd*}
+		rootif=s_${rootif//[^0-9,a-z,A-Z]/_}
+		eval wifimac=\${wifimac_${rootif}}
+		gen_mac=1
+		;;
+	*-va[0-9])
+		# VA generate mac from root interface
+		rootif=${_ifname%-va*}
+		rootif=s_${rootif//[^0-9,a-z,A-Z]/_}
+		eval wifimac=\${wifimac_${rootif}}
+		wifimac=${wifimac%:*}
+		wifimac=${wifimac}:`eval $RANDOM`
+		gen_mac=1
+		;;
+	*)
+		gen_mac=0
+		wifimac=
+		;;
+	esac
+
+	# variable name should not has "-", make a change here
+	save_name=s_${_ifname//[^0-9,a-z,A-Z]/_}
+	[ -n "$wifimac_left" -a "$gen_mac" == "0" ] && {
+		eval wifimac=\${wifimac_${save_name}}
+		if [ "$wifimac" == "" ]; then
+			wifimac_left=$(echo ${wifimac_left} | sed 's/^[ \t]*//g')
+			wifimac_left=$(echo ${wifimac_left} | sed 's/[ \t]*$//g')
+			wifimac=${wifimac_left%% *}
+			wifimac_left=${wifimac_left}" "
+			wifimac_left=${wifimac_left#* }
+			eval wifimac_${save_name}=\${wifimac}
+		else
+			wifimac=${wifimac%:*}
+			wifimac=${wifimac}:`eval $RANDOM`
+		fi
+	}
+
+	[ -z "$wifimac" ] && {
+		eval wifimac=\${wifimac_${save_name}}
+		if [ "$wifimac" == "" ]; then
+			wifimac=00:`eval $RANDOM`:`eval $RANDOM`:`eval $RANDOM`:`eval $RANDOM`:`eval $RANDOM`
+			eval wifimac_${save_name}=\${wifimac}
+		else
+			wifimac=${wifimac%:*}
+			wifimac=${wifimac}:`eval $RANDOM`
+		fi
+		echo "$wifimac_file not exist, create it with random address: $wifimac"
+	}
+
+	uci_set wireless_tmp $1 macaddr $wifimac
+}
+
+wlan_fixup_wifi_iface() {
+	local wifimac_file="/NVM/wifi_addr"
+
+	__wlan_fixup_wifi_iface() {
+		local _ssid _macaddr
+
+		config_get mode $1 mode
+		config_get ssid $1 ssid
+
+		set_wifi_if_mac $1
+		[ "$mode" == "ap" ] && {
+			FILTER_MAC="echo \$wifimac | sed 's/://g'"
+			_macaddr=`eval ${FILTER_MAC}`
+			_macaddr=${_macaddr:8:4}
+			_ssid=${ssid%%#[0-9,a-f][0-9,a-f][0-9,a-f][0-9,a-f]}#${_macaddr}
+			uci_set wireless_tmp $1 ssid $_ssid
+		}
+	}
+
+	wifimac_left=`cat $wifimac_file 2>/dev/null`
+	RANDOM="head /dev/urandom | tr -dc "0123456789abcdef" | head -c2"
+
+	config_load wireless_tmp
+	config_foreach __wlan_fixup_wifi_iface wifi-iface
+	uci_commit wireless_tmp
+}
+
+[ -s /etc/config/wireless ] || return 1
+lookup_macaddr || return 1
+
+# Load AP_MRD before
+/bin/mrdloader
+
+UCI_CONFIG_DIR=/var/uci_conf
+mkdir -p $UCI_CONFIG_DIR
+cp /etc/config/wireless $UCI_CONFIG_DIR/wireless_tmp
+wlan_fixup_wifi_iface
+mv $UCI_CONFIG_DIR/wireless_tmp /etc/config/wireless
+rm -f /var/.uci/wireless_tmp
+rm -rf $UCI_CONFIG_DIR
+UCI_CONFIG_DIR=
+return 1
diff --git a/package/kernel/realtek-wl/files/lib/mwlan-1803dkb b/package/kernel/realtek-wl/files/lib/mwlan-1803dkb
new file mode 100755
index 0000000..b6c7c41
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/mwlan-1803dkb
@@ -0,0 +1,316 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2018 OpenWrt.org
+
+START=40
+
+SET_WLAN="iwpriv wlan1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+wlan_power_ctrl() {
+	local on=$1
+	local name
+	local power
+	for name in  $(ls /sys/devices | grep "rfkill"); do
+		[ ! -e "/sys/devices/${name}/pwr_ctrl" ] && continue
+		power=0
+		$(cat /sys/devices/${name}/pwr_ctrl | grep -q on) && power=1
+		[ "$power" == "$on" ] && continue
+		echo $on > /sys/devices/${name}/pwr_ctrl
+	done
+}
+
+rtl8192fr_write_cali() {
+        $SET_WLAN  set_mib pwrlevelCCK_A=2828282828282828282828282828
+        $SET_WLAN set_mib pwrlevelCCK_B=2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+        $SET_WLAN set_mib pwrlevelHT40_1S_A=2727272727272727272727272727
+        $SET_WLAN set_mib pwrlevelHT40_1S_B=2A2A2A2A2A2A2A2A2A2A2A2A2A2A
+        $SET_WLAN set_mib pwrdiffOFDM=2828282828282828282828282828
+        $SET_WLAN set_mib xcap=23
+        $SET_WLAN set_mib thermal=35
+
+}
+rtl8812fr_write_cali() {
+	$SET_WLAN set_mib pwrlevel5GHT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+	$SET_WLAN set_mib pwrlevel5GHT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+	$SET_WLAN set_mib pwrdiff5GHT40_2S=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrdiff5GHT20=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrdiff5GOFDM=00000000000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+	$SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_B=0000000000000000000000000000000000000000000000000000000000000000000000FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+	$SET_WLAN set_mib xcap=32
+	$SET_WLAN set_mib thermal1=33
+	$SET_WLAN set_mib thermal2=32
+}
+rtl_write_cali() {
+	grep -l "RTL8192F" /proc/wlan1/mib_rf > /dev/null
+	if [ $? -eq 0 ]; then
+		rtl8192fr_write_cali
+	fi
+	grep -l "RTL8812" /proc/wlan1/mib_rf > /dev/null
+	if [ $? -eq 0 ]; then
+		rtl8812_write_cali
+	fi
+}
+wlan_ops_lock() {
+	echo mwlan > /sys/power/wake_lock
+}
+
+wlan_ops_unlock() {
+	echo mwlan > /sys/power/wake_unlock	
+}
+
+wlan_ubus_event() {
+	case $1 in
+	start )
+		ubus send mwlan.stat.action ' { "stat" : "start" } ' ;;
+	up )
+		ubus send mwlan.stat.action ' { "stat" : "up" } ' ;;
+	down )
+		ubus send mwlan.stat.action ' { "stat" : "down" } ' ;;
+	* )
+		echo "unknown option ($1)" ;;
+	esac
+}
+
+wlan_enable_vap() {
+	local _device _disabled _ifname
+
+	_wlan_enable_vap() {
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get _ifname $1 ifname
+		[ 1 == "$disabled" ] && return
+
+		case $_ifname in
+		*-va[0-9])
+			iwpriv ${_ifname%-va*} set_mib vap_enable=1
+			;;
+		*)
+			;;
+		esac
+
+	}
+
+	config_foreach _wlan_enable_vap wifi-iface
+}
+
+find_phy() {
+	[ -n "$path" ] && {
+		for phy in /sys/devices/$path/ieee80211/phy*; do
+			[ -e "$phy" ] && {
+				phy="${phy##*/}"
+				return 0
+			}
+		done
+	}
+	[ -n "$macaddr" ] && {
+		for phy in $(ls /sys/class/ieee80211 2>/dev/null); do
+			grep -i -q "$macaddr" "/sys/class/ieee80211/${phy}/macaddress" && return 0
+		done
+	}
+	return 1
+}
+
+wlan_set_sta_channel_to_ap() {
+	local _device _disabled _ifname _ssid
+	local ap_device=$1 root_ifname=$2 ap_channel=$3 sta_channel=
+	local path macaddr phy
+
+	__wlan_set_sta_channel_to_ap() {
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get path $_device path
+		config_get _mode $1 mode
+		config_get _ifname $1 ifname
+		config_get _ssid $1 ssid
+		config_get macaddr $1 macaddr
+
+		[ 1 == "$_disabled" ] && return
+		[ "${_mode}" != "sta" ] && return
+		[ "$root_ifname" != "${_ifname%%-v*}" ] && return
+
+		find_phy || {
+			echo "Could not find PHY for device '$_device'"
+			return
+		}
+		for i in $( seq 1 10 ); do
+			iw phy "$phy" interface add "$root_ifname" type station
+			ifconfig "$root_ifname" hw ether "$macaddr"
+			ifconfig "$root_ifname" up 2>/dev/null && {
+				echo "==> $root_ifname is up for scan ssid" > /dev/kmsg
+				break
+			}
+			sleep 1
+		done
+		for i in $( seq 1 10 ); do
+			freq=$(iw dev "$root_ifname" scan ssid "$_ssid" | awk '/freq/{print $2}' | head -1)
+			if [ $freq -ge 2412 -a $freq -le 2472 ]; then
+				sta_channel=$((($freq - 2407)/5))
+			elif [ $freq -eq 2484 ]; then
+				sta_channel=14
+			elif [ $freq -ge 4900 -a $freq -lt 5000 ]; then
+				sta_channel=$((($freq - 4000)/5))
+			else
+				sta_channel=
+				sleep 1
+				echo "==> try $i times to scan ssid  $_ssid" > /dev/kmsg
+				continue
+			fi
+			break
+		done
+
+		echo "==> scan $_ssid, get channel = $sta_channel" > /dev/kmsg
+		[ -n "$sta_channel" ] && {
+			[ "$sta_channel" != "$ap_channel" ] && {
+				uci_set wireless $ap_device channel $sta_channel
+				uci_commit wireless
+				echo "==> $ap_device: set channel to $sta_channel" > /dev/kmsg
+			}
+			eval wifichannel_${root_ifname}=\${sta_channel}
+		}
+	}
+
+	eval wifichannel=\${wifichannel_${root_ifname}}
+	[ -n "$wifichannel" ] && {
+		echo "==> already set channel for root interface" > /dev/kmsg
+		[ "$wifichannel" !=  "$ap_channel" ] && {
+			echo "==> $ap_device: set channel to $wifichannel, same with ${root_ifname}" > /dev/kmsg
+			uci_set wireless $ap_device channel $wifichannel
+			uci_commit wireless
+		}
+		return
+	}
+
+	config_foreach __wlan_set_sta_channel_to_ap wifi-iface
+}
+
+wlan_updown() {
+	local act=up i=1
+	local _device _disabled _ifname _mode _up _isolate _channel
+	local ret
+
+	__wlan_updown() {
+		config_get _device $1 device
+		config_get _ifname $1 ifname
+		config_get _mode $1 mode
+		config_get _isolate $1 isolate
+
+		config_get _channel $_device channel
+		config_get _disabled $_device disabled
+		if [ "$act" == "down" ]; then
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") || return
+			/sbin/wifi down $_device
+		elif [ "$act" == "up" -a "$_disabled" != "1" ]; then
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && return
+
+			case $_ifname in
+			*-vxd)
+				iwpriv $_ifname copy_mib
+				;;
+			*)
+				;;
+			esac
+			if [ "${_mode}" == "sta" ]; then
+				iwpriv $_ifname set_mib opmode=8
+			else
+				iwpriv $_ifname set_mib opmode=16
+				# AP need to use same channel with STA
+				wlan_set_sta_channel_to_ap $_device ${_ifname%%-v*} $_channel
+			fi
+
+			/sbin/wifi up $_device
+		else
+			return
+		fi
+
+		while [ $i -lt 20 ]
+		do
+			_up=0
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && _up=1
+			if [ "$act" == "down" -a "$_up" == "0" ]; then
+				break;
+			elif [ "$act" == "up" -a "$_up" == "1" ]; then
+				if [ $_mode == "ap" ]; then
+					if [ $_isolate == "1" ]; then
+						iwpriv $_ifname set_mib block_relay=1
+					else
+						iwpriv $_ifname set_mib block_relay=0
+					fi
+				fi
+				break;
+			fi
+			sleep 1
+			i=$(($i+1))
+		done
+		[ "$i" -ge "20" ] && LOGE "wlan_updown $act ${_device} failed" && ret=1
+	}
+
+	ret=0
+	[ "$#" -ge "1" ] && act=$1
+
+	config_load wireless
+
+	[ "$act" == "up" ] && wlan_enable_vap
+	config_foreach __wlan_updown wifi-iface
+	return $ret
+}
+
+start() {
+	wlan_ops_lock
+	wlan_ubus_event start
+	wlan_power_ctrl 1
+	wlan_updown up
+	wlan_ubus_event up
+	wlan_ops_unlock
+}
+
+boot() {
+	wlan_check_wifi_exist() {
+		local _ifname _device _disabled
+
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get _ifname $1 ifname
+
+		if [ $_disabled == "1" ]; then
+			mkdir -p /var/wifi_ok
+			touch /var/wifi_ok/$_device
+		else
+			ifconfig -a | grep -q $_ifname && {
+				mkdir -p /var/wifi_ok
+				touch /var/wifi_ok/$_device
+			}
+		fi
+	}
+
+	start
+	sleep 1
+	config_load wireless
+	config_foreach wlan_check_wifi_exist wifi-iface
+}
+
+stop() {
+	wlan_ops_lock
+	wlan_updown down
+	sleep 1
+	wlan_power_ctrl 0
+	wlan_ubus_event down
+	wlan_ops_unlock
+}
+
+restart() {
+	wlan_ops_lock
+	wlan_power_ctrl 1
+	wlan_updown down
+	wlan_updown up
+	wlan_ops_unlock
+}
+
+reload() {
+	wlan_ops_lock
+	wlan_power_ctrl 1
+	wlan_updown down
+	wlan_updown up
+	wlan_ops_unlock
+}
diff --git a/package/kernel/realtek-wl/files/lib/mwlan-1826sp801 b/package/kernel/realtek-wl/files/lib/mwlan-1826sp801
new file mode 100755
index 0000000..aae009d
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/mwlan-1826sp801
@@ -0,0 +1,300 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010-2018 OpenWrt.org
+
+START=40
+
+SET_WLAN="iwpriv wlan1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+wlan_power_ctrl() {
+	local on=$1
+	local name
+	local power
+}
+
+rtl8192fr_write_cali() {
+        $SET_WLAN  set_mib pwrlevelCCK_A=2828282828282828282828282828
+        $SET_WLAN set_mib pwrlevelCCK_B=2D2D2D2D2D2D2D2D2D2D2D2D2D2D
+        $SET_WLAN set_mib pwrlevelHT40_1S_A=2727272727272727272727272727
+        $SET_WLAN set_mib pwrlevelHT40_1S_B=2A2A2A2A2A2A2A2A2A2A2A2A2A2A
+        $SET_WLAN set_mib pwrdiffOFDM=2828282828282828282828282828
+        $SET_WLAN set_mib xcap=23
+        $SET_WLAN set_mib thermal=35
+
+}
+rtl8812fr_write_cali() {
+	$SET_WLAN set_mib pwrlevel5GHT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+	$SET_WLAN set_mib pwrlevel5GHT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000005A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A54545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454
+	$SET_WLAN set_mib pwrdiff5GHT40_2S=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrdiff5GHT20=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrdiff5GOFDM=00000000000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+	$SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFAFAFAFAFAFAFAFAFBFBFBFBFBFBFBFBFCFCFCFCFCFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB
+	$SET_WLAN set_mib pwrlevel_TSSI5GHT40_1S_B=0000000000000000000000000000000000000000000000000000000000000000000000FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+	$SET_WLAN set_mib xcap=32
+	$SET_WLAN set_mib thermal1=33
+	$SET_WLAN set_mib thermal2=32
+}
+
+wlan_ops_lock() {
+	echo mwlan > /sys/power/wake_lock
+}
+
+wlan_ops_unlock() {
+	echo mwlan > /sys/power/wake_unlock	
+}
+
+wlan_ubus_event() {
+	case $1 in
+	start )
+		ubus send mwlan.stat.action ' { "stat" : "start" } ' ;;
+	up )
+		ubus send mwlan.stat.action ' { "stat" : "up" } ' ;;
+	down )
+		ubus send mwlan.stat.action ' { "stat" : "down" } ' ;;
+	* )
+		echo "unknown option ($1)" ;;
+	esac
+}
+
+wlan_enable_vap() {
+	local _device _disabled _ifname
+
+	_wlan_enable_vap() {
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get _ifname $1 ifname
+		[ 1 == "$disabled" ] && return
+
+		case $_ifname in
+		*-va[0-9])
+			iwpriv ${_ifname%-va*} set_mib vap_enable=1
+			;;
+		*)
+			;;
+		esac
+
+	}
+
+	config_foreach _wlan_enable_vap wifi-iface
+}
+
+find_phy() {
+	[ -n "$path" ] && {
+		for phy in /sys/devices/$path/ieee80211/phy*; do
+			[ -e "$phy" ] && {
+				phy="${phy##*/}"
+				return 0
+			}
+		done
+	}
+	[ -n "$macaddr" ] && {
+		for phy in $(ls /sys/class/ieee80211 2>/dev/null); do
+			grep -i -q "$macaddr" "/sys/class/ieee80211/${phy}/macaddress" && return 0
+		done
+	}
+	return 1
+}
+
+wlan_set_sta_channel_to_ap() {
+	local _device _disabled _ifname _ssid
+	local ap_device=$1 root_ifname=$2 ap_channel=$3 sta_channel=
+	local path macaddr phy
+
+	__wlan_set_sta_channel_to_ap() {
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get path $_device path
+		config_get _mode $1 mode
+		config_get _ifname $1 ifname
+		config_get _ssid $1 ssid
+		config_get macaddr $1 macaddr
+
+		[ 1 == "$_disabled" ] && return
+		[ "${_mode}" != "sta" ] && return
+		[ "$root_ifname" != "${_ifname%%-v*}" ] && return
+
+		find_phy || {
+			echo "Could not find PHY for device '$_device'"
+			return
+		}
+		for i in $( seq 1 10 ); do
+			iw phy "$phy" interface add "$root_ifname" type station
+			ifconfig "$root_ifname" hw ether "$macaddr"
+			ifconfig "$root_ifname" up 2>/dev/null && {
+				echo "==> $root_ifname is up for scan ssid" > /dev/kmsg
+				break
+			}
+			sleep 1
+		done
+		for i in $( seq 1 10); do
+			freq=$(iw dev "$root_ifname" scan ssid "$_ssid" | awk '/freq/{print $2}' | head -1)
+			if [ $freq -ge 2412 -a $freq -le 2472 ]; then
+				sta_channel=$((($freq - 2407)/5))
+			elif [ $freq -eq 2484 ]; then
+				sta_channel=14
+			elif [ $freq -ge 4900 -a $freq -lt 5000 ]; then
+				sta_channel=$((($freq - 4000)/5))
+			else
+				sta_channel=
+				sleep 1
+				echo "==> try $i times to scan ssid  $_ssid" > /dev/kmsg
+				continue
+			fi
+			break
+		done
+
+		echo "==> scan $_ssid, get channel = $sta_channel" > /dev/kmsg
+		[ -n "$sta_channel" ] && {
+			[ "$sta_channel" != "$ap_channel" ] && {
+				uci_set wireless $ap_device channel $sta_channel
+				uci_commit wireless
+				echo "==> $ap_device: set channel to $sta_channel" > /dev/kmsg
+			}
+			eval wifichannel_${root_ifname}=\${sta_channel}
+		}
+	}
+
+	eval wifichannel=\${wifichannel_${root_ifname}}
+	[ -n "$wifichannel" ] && {
+		echo "==> already set channel for root interface" > /dev/kmsg
+		[ "$wifichannel" !=  "$ap_channel" ] && {
+			echo "==> $ap_device: set channel to $wifichannel, same with ${root_ifname}" > /dev/kmsg
+			uci_set wireless $ap_device channel $wifichannel
+			uci_commit wireless
+		}
+		return
+	}
+
+	config_foreach __wlan_set_sta_channel_to_ap wifi-iface
+}
+
+wlan_updown() {
+	local act=up i=1
+	local _device _disabled _ifname _mode _up _isolate _channel
+	local ret
+
+	__wlan_updown() {
+		config_get _device $1 device
+		config_get _ifname $1 ifname
+		config_get _mode $1 mode
+		config_get _isolate $1 isolate
+
+		config_get _channel $_device channel
+		config_get _disabled $_device disabled
+		if [ "$act" == "down" ]; then
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") || return
+			/sbin/wifi down $_device
+		elif [ "$act" == "up" -a "$_disabled" != "1" ]; then
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && return
+
+			case $_ifname in
+			*-vxd)
+				iwpriv $_ifname copy_mib
+				;;
+			*)
+				;;
+			esac
+			if [ "${_mode}" == "sta" ]; then
+				iwpriv $_ifname set_mib opmode=8
+			else
+				iwpriv $_ifname set_mib opmode=16
+				# AP need to use same channel with STA
+				wlan_set_sta_channel_to_ap $_device ${_ifname%%-v*} $_channel
+			fi
+
+			/sbin/wifi up $_device
+		else
+			return
+		fi
+
+		while [ $i -lt 20 ]
+		do
+			_up=0
+			$(/sbin/wifi status $_device 2>/dev/null | grep -q "\"up\": true") && _up=1
+			if [ "$act" == "down" -a "$_up" == "0" ]; then
+				break;
+			elif [ "$act" == "up" -a "$_up" == "1" ]; then
+				if [ $_mode == "ap" ]; then
+					if [ $_isolate == "1" ]; then
+						iwpriv $_ifname set_mib block_relay=1
+					else
+						iwpriv $_ifname set_mib block_relay=0
+					fi
+				fi
+				break;
+			fi
+			sleep 1
+			i=$(($i+1))
+		done
+		[ "$i" -ge "20" ] && LOGE "wlan_updown $act ${_device} failed" && ret=1
+	}
+
+	ret=0
+	[ "$#" -ge "1" ] && act=$1
+
+	config_load wireless
+
+	[ "$act" == "up" ] && wlan_enable_vap
+	config_foreach __wlan_updown wifi-iface
+	return $ret
+}
+
+start() {
+	wlan_ops_lock
+	wlan_ubus_event start
+	wlan_power_ctrl 1
+	wlan_updown up
+	wlan_ubus_event up
+	wlan_ops_unlock
+}
+
+boot() {
+	wlan_check_wifi_exist() {
+		local _ifname _device _disabled
+
+		config_get _device $1 device
+		config_get _disabled $_device disabled
+		config_get _ifname $1 ifname
+
+		if [ $_disabled == "1" ]; then
+			mkdir -p /var/wifi_ok
+			touch /var/wifi_ok/$_device
+		else
+			ifconfig -a | grep -q $_ifname && {
+				mkdir -p /var/wifi_ok
+				touch /var/wifi_ok/$_device
+			}
+		fi
+	}
+
+	start
+	sleep 1
+	config_load wireless
+	config_foreach wlan_check_wifi_exist wifi-iface
+}
+
+stop() {
+	wlan_ops_lock
+	wlan_updown down
+	sleep 1
+	wlan_power_ctrl 0
+	wlan_ubus_event down
+	wlan_ops_unlock
+}
+
+restart() {
+	wlan_ops_lock
+	wlan_power_ctrl 1
+	wlan_updown down
+	wlan_updown up
+	wlan_ops_unlock
+}
+
+reload() {
+	wlan_ops_lock
+	wlan_power_ctrl 1
+	wlan_updown down
+	wlan_updown up
+	wlan_ops_unlock
+}
diff --git a/package/kernel/realtek-wl/files/lib/wifi/realtek.sh b/package/kernel/realtek-wl/files/lib/wifi/realtek.sh
new file mode 100755
index 0000000..9274171
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/wifi/realtek.sh
@@ -0,0 +1,903 @@
+append DRIVERS "realtek"
+
+set_open() {
+	echo "0" > $CONFIG_ROOT_DIR/$1/macclone_enable
+
+	echo "0" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "0" > $CONFIG_ROOT_DIR/$1/wep
+	echo "0" > $CONFIG_ROOT_DIR/$1/wep_default_key
+	echo "1" > $CONFIG_ROOT_DIR/$1/wep_key_type
+	echo "2" > $CONFIG_ROOT_DIR/$1/auth_type
+
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_enc    
+
+	if [ "$RP" = "0" ]; then
+		echo 0 > $CONFIG_ROOT_DIR/repeater_enabled
+	fi	
+}
+
+set_wep() {
+	# wep_key_type - 0: hex mode 1: ascii
+	# wep : 1: wep-64 2: wep-128
+	echo "1" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo $wep_type > $CONFIG_ROOT_DIR/$1/wep
+	echo $wep_key_idx > $CONFIG_ROOT_DIR/$1/wep_default_key
+	echo $wep_key_type > $CONFIG_ROOT_DIR/$1/wep_key_type
+	echo "2" > $CONFIG_ROOT_DIR/$1/auth_type
+
+	echo $wep64_h_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_64_hex
+	echo $wep64_h_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_64_hex
+	echo $wep64_h_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_64_hex
+	echo $wep64_h_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_64_hex
+
+	echo $wep64_a_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_64_asc
+	echo $wep64_a_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_64_asc
+	echo $wep64_a_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_64_asc
+	echo $wep64_a_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_64_asc
+
+	echo $wep128_h_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_128_hex
+	echo $wep128_h_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_128_hex
+	echo $wep128_h_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_128_hex
+	echo $wep128_h_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_128_hex
+
+	echo $wep128_a_key1 > $CONFIG_ROOT_DIR/$1/wepkey1_128_asc
+	echo $wep128_a_key2 > $CONFIG_ROOT_DIR/$1/wepkey2_128_asc
+	echo $wep128_a_key3 > $CONFIG_ROOT_DIR/$1/wepkey2_128_asc
+	echo $wep128_a_key4 > $CONFIG_ROOT_DIR/$1/wepkey3_128_asc
+
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "2" > $CONFIG_ROOT_DIR/$1/wsc_enc
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+}
+
+set_wpa_tkip() {
+	echo "2" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+	echo "1" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "2" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "4" > $CONFIG_ROOT_DIR/$1/wsc_enc
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_wpa_aes() {
+	echo "2" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "2" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "8" > $CONFIG_ROOT_DIR/$1/wsc_enc
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_wpa2_tkip () {
+	echo "4" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+	echo "1" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "32" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "4" > $CONFIG_ROOT_DIR/$1/wsc_enc
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_wpa2_aes () {
+	echo "4" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "32" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "8" > $CONFIG_ROOT_DIR/$1/wsc_enc
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_mixed() {
+	echo "6" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "0" > $CONFIG_ROOT_DIR/$1/enable_1x
+	echo "2" > $CONFIG_ROOT_DIR/$1/wpa_auth
+	echo "3" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+	echo "3" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+
+	echo "1" > $CONFIG_ROOT_DIR/$1/wsc_configured
+	echo "34" > $CONFIG_ROOT_DIR/$1/wsc_auth
+	echo "12" > $CONFIG_ROOT_DIR/$1/wsc_enc
+	echo "0" > $CONFIG_ROOT_DIR/$1/wsc_configbyextreg
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wsc_psk
+}
+
+set_sae() {
+	echo "8" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "2" > $CONFIG_ROOT_DIR/$1/authtype
+	echo "2" > $CONFIG_ROOT_DIR/$1/encmode
+	echo "0" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+	echo "8" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+}
+
+set_sae_mixed() {
+	echo "10" > $CONFIG_ROOT_DIR/$1/encrypt
+	echo "2" > $CONFIG_ROOT_DIR/$1/authtype
+	echo "2" > $CONFIG_ROOT_DIR/$1/encmode
+	echo "0" > $CONFIG_ROOT_DIR/$1/wpa_cipher
+	echo "8" > $CONFIG_ROOT_DIR/$1/wpa2_cipher
+	echo $wpa_psk > $CONFIG_ROOT_DIR/$1/wpa_psk
+}
+
+set_enc() {
+	# set_enc [enc] [intf]	
+	set_open $2
+	case $1 in
+		open)
+			echo "do nothing"
+		;;
+		wep)
+			set_wep $2
+		;;
+		wpa_tkip)
+			set_wpa_tkip $2
+		;;
+		wpa_aes)
+			set_wpa_aes $2 
+		;;
+		wpa2_tkip)
+			set_wpa2_tkip $2
+		;;
+		wpa2_aes)
+			set_wpa2_aes $2 
+		;;
+		mixed)
+			set_mixed $2
+		;;
+		sae-mixed)
+			set_sae_mixed $2
+		;;
+		sae)
+			set_sae $2
+		;;
+		802.1x)
+			echo "not supported yet"     
+		;;
+		*)
+			echo "usage: enc: open, wep, wpa_tkip, wpa2_aes, mixed"
+		exit 1
+	esac
+}
+
+start_nat() {
+	EIF="eth0"
+	IIF="br-lan"
+	INNET="192.168.10.0/24"
+
+	echo "1" > /proc/sys/net/ipv4/ip_forward
+	iptables -F
+	iptables -X
+	iptables -t nat -F
+	iptables -t nat -X 
+	iptables -P INPUT DROP
+	iptables -P OUTPUT ACCEPT
+	iptables -P FORWARD ACCEPT
+	iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+	iptables -t nat -A POSTROUTING -o $EIF -s $INNET -j MASQUERADE
+}
+
+stop_nat() {
+	iptables -F
+	iptables -X
+	iptables -t nat -F
+	iptables -t nat -X
+}
+
+start_ap() {
+	local __ssid
+
+	if [ "$WPS" = "0" ]; then	
+		for intf in $@; do
+			echo "0" > $CONFIG_ROOT_DIR/$intf/wlan_mode
+			set_enc $ENC $intf # [enc] [intf]
+
+			NUM=${intf#w*va};
+			echo "start my $NUM"
+			#echo "$AP_SSID-$intf" > $CONFIG_ROOT_DIR/$intf/ssid
+			eval "__ssid=\$ssid_${intf}"
+			echo $__ssid > $CONFIG_ROOT_DIR/$intf/ssid
+			echo $ap_channel > $CONFIG_ROOT_DIR/$intf/channel
+		done
+		 #$IFCONFIG $INTF hw ether $MACID
+	fi
+
+	rtl_act_wlan_if start $@ # all if
+
+	if [ "$RP" = "0" ]; then
+		rtl_br_lan_if start $@ $LAN_INTF #all if
+		#$IFCONFIG $INTF hw ether $MACID
+		if [ "$ADD_BR" = "1" ]; then
+			$IFCONFIG $BR_INTF $LOCAL_IP up
+		fi
+		$START_WLAN_APP start $@ $BR_INTF 
+		#start_nat
+	fi
+}
+ 
+start_cli() {
+	if [ "$WPS" = "0" ]; then	
+		set_enc $1 $2
+
+		# auto channel
+		channel=0
+
+		#wlan_mode=0 : AP
+		#wlan_mode=1 : Client | Ad-hoc
+		#               network_type=0 : Clien
+		#               network_type=1 : Ad-hoc
+		wlan_mode=1
+		network_type=0
+
+		#1:B, 2:G, 4:A, 8:N, 64:AC
+		#band=11 : BGN
+		band=11
+
+		#phyBandSelect=1 : 2G
+		#phyBandSelect=2 : 5G
+		phyBandSelect=1
+
+		echo $channel > $CONFIG_ROOT_DIR/$2/channel
+		echo $wlan_mode > $CONFIG_ROOT_DIR/$2/wlan_mode
+		echo $network_type > $CONFIG_ROOT_DIR/$2/network_type
+		echo $STA_SSID > $CONFIG_ROOT_DIR/repeater_ssid
+		echo $STA_SSID > $CONFIG_ROOT_DIR/$2/ssid
+		echo $band > $CONFIG_ROOT_DIR/$2/band
+		echo $phyBandSelect > $CONFIG_ROOT_DIR/$2/phyBandSelect
+
+		#WPS_DISABLE=0
+		#echo $WPS_DISABLE > $CONFIG_ROOT_DIR/$2/wpa_auth    
+		#echo 0 > $CONFIG_ROOT_DIR/$2/wsc_enc
+	fi
+
+	#$IFCONFIG $INTF down    
+	#$START_WLAN_ORG $INTF
+	#$IFCONFIG $INTF hw ether $MACID
+	#$IFCONFIG $INTF $LOCAL_IP up
+
+	rtl_act_wlan_if start $2
+	#$IWPRIV $2 set_mib wsc_enable=1
+	if [ "$RP" = "0" ]; then
+		#$IFCONFIG $2 hw ether $MACID
+		rtl_br_lan_if start $2 $BR_INTF
+		#$IWRPIV $INTF set_mib nat25_disable=1
+		#$IFCONFIG $INTF hw ether $MACID
+		if [ "$ADD_BR" = "1" ]; then
+			$IFCONFIG $BR_INTF $LOCAL_IP up
+		fi
+		$START_WLAN_APP start $2 $BR_INTF
+	fi
+
+	#echo 1 > $CONFIG_ROOT_DIR/$2/wsc_enc
+	#$IWPRIV $2 set_mib wsc_enable=1
+	cat /var/run/wscd-wlan0.pid
+}
+
+start_rp() {
+	echo 1 > $CONFIG_ROOT_DIR/repeater_enabled
+	echo $AP_SSID > $CONFIG_ROOT_DIR/repeater_ssid
+
+	ENC=$1
+	VAP=0
+	RP=1
+
+	start_ap $ALL_AP_INTF
+	#$IFCONFIG $INTF up
+	VXD_INTF="$INTF-vxd"
+	start_cli $1 $VXD_INTF
+	$IFCONFIG $VXD_INTF up
+	$IFCONFIG $INTF up
+	rtl_br_lan_if start $VXD_INTF $INTF
+	if [ "$ADD_BR" = "1" ]; then
+		$IFCONFIG $BR_INTF $LOCAL_IP up
+	fi
+}
+
+start_rp11() {
+	echo 1 > $CONFIG_ROOT_DIR/repeater_enabled
+	echo $AP_SSID > $CONFIG_ROOT_DIR/repeater_ssid
+
+	VXD_INTF="$INTF-vxd"	
+	start_cli $1 $VXD_INTF
+	set_enc $1 $INTF
+	wlan_mode=0
+	network_type=0
+	repeater_enabled=1
+
+	echo $wlan_mode > $CONFIG_ROOT_DIR/$INTF/wlan_mode
+	echo $network_type > $CONFIG_ROOT_DIR/$INTF/network_type
+	echo $repeater_enabled > $CONFIG_ROOT_DIR/repeater_enabled
+	echo $AP_SSID > $CONFIG_ROOT_DIR/$INTF/ssid
+
+	rtl_act_wlan_if start $INTF
+	$IFCONFIG $INTF 0.0.0.0 up
+	$BRCTL addif $BR_INTF $INTF
+}
+
+start_rp1() {
+	start_cli $1 $INTF
+
+	VXD_INTF="$INTF-vxd"
+	set_enc $1 $VXD_INTF
+
+	wlan_mode=0
+	network_type=0
+	repeater_enabled=1
+
+	echo $wlan_mode > $CONFIG_ROOT_DIR/$VXD_INTF/wlan_mode
+	echo $network_type > $CONFIG_ROOT_DIR/$VXD_INTF/network_type
+	echo $repeater_enabled > $CONFIG_ROOT_DIR/repeater_enabled
+	echo $AP_SSID > $CONFIG_ROOT_DIR/$VXD_INTF/ssid
+
+	rtl_act_wlan_if start $VXD_INTF
+	MACID1="00:01:73:01:FF:11"
+	MACID2="00:22:88:77:33:27"
+	#$IFCONFIG $VXD_INTF hw ether $MACID1
+	#iwpriv wlan0-vxd set_mib ssid="cliff-test"
+	$IWPRIV $VXD_INTF set_mib ssid=$AP_SSID
+	#rtl_br_lan_if start $ALL_RP_INTF
+	#$IFCONFIG $BR_INTF $LOCAL_IP up
+	$IFCONFIG $VXD_INTF 0.0.0.0 up 
+	$BRCTL addif $BR_INTF $VXD_INTF
+}
+
+rtl_br_lan_if() {
+	# func args: cmd lan0 lan1 ...
+	# shutdown LAN interface (ethernt, wlan)
+
+	if [ "$1" = "start" ]; then
+		if [ "$ADD_BR" = "1" ]; then
+			$BRCTL addbr $BR_INTF
+			$IFCONFIG $BR_INTF up
+		fi
+	fi
+	for ARG in $@ ; do
+		#INTF=`$IFCONFIG $ARG`
+		#echo "$1 $INTF"
+		if [ "$ARG" = "start" ] || [ "$ARG" = "stop" ]; then
+			continue;
+		fi
+		
+		if [ "$1" = "stop" ]; then
+			$IFCONFIG $ARG down
+			if [ $ARG != $1 ]; then
+				$BRCTL delif $BR_INTF $ARG 2> /dev/null
+			fi
+		else    
+			if [ $ARG != $1 ]; then
+				$IFCONFIG $ARG 0.0.0.0 up
+				$BRCTL addif $BR_INTF $ARG 2> /dev/null
+			fi                    
+		fi
+	done
+	if [ "$1" = "stop" ]; then
+		if [ "$ADD_BR" = "1" ]; then
+			$IFCONFIG $BR_INTF down
+			$BRCTL delbr $BR_INTF
+		fi
+	fi
+}
+
+# Start WLAN interface
+rtl_act_wlan_if() {
+	VA_INTF="$INTF-va*"
+	VXD_IF="$INTF-vxd*"
+
+	#echo "VAP:$VAP"
+	#$BIN_DIR/webs -x
+
+	#echo "$WLAN_PREFIX $WLAN_PREFIX_LEN $WLAN_NAME"
+	for WLAN in $@ ; do
+		case $WLAN in
+			$VA_INTF)
+				#echo "va: $WLAN"
+				#$IWPRIV $WLAN set_mib vap_enable=0
+				EXT="va"
+			;; 
+			$VXD_IF)
+				#echo "vxd: $WLAN"
+				#$IWPRIV $WLAN set_mib vap_enable=0
+				$IWPRIV $WLAN copy_mib
+				EXT="vxd"
+			;;
+			$INTF)  
+				#echo "wlan intf: $WLAN"
+				$IWPRIV $WLAN set_mib vap_enable=$VAP
+				EXT="root"
+			;;	   
+			*)
+				#echo "cmd: $WLAN"
+				continue
+			;;
+		esac
+		$IFCONFIG $WLAN down
+		if [ "$1" = "start" ]; then
+			echo "Initialize $WLAN intf"
+			$START_WLAN $WLAN $INTF $EXT
+		fi
+	done
+}
+
+## kill 802.1x, autoconf and IAPP daemon ##
+rtl_kill_iwcontrol_pid() {
+	PIDFILE="$TOP_VAR_DIR/run/iwcontrol.pid"
+	if [ -f $PIDFILE ] ; then
+		PID=`cat $PIDFILE`
+		echo "IWCONTROL_PID=$PID"
+		if [ "$PID" != "0" ]; then
+			kill -9 $PID 2>/dev/null
+		fi
+		rm -f $PIDFILE
+	fi
+}
+
+rtl_kill_wlan_pid() {
+	for WLAN in $@ ; do
+		PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN.pid
+		if [ -f $PIDFILE ] ; then
+			PID=`cat $PIDFILE`
+			echo "AUTH_PID=$PID"
+			if [ "$PID" != "0" ]; then
+				kill -9 $PID 2>/dev/null
+			fi
+			rm -f $PIDFILE
+
+			PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN-vxd.pid
+			if [ -f $PIDFILE ] ; then
+				PID=`cat $PIDFILE`
+				if [ "$PID" != "0" ]; then
+					kill -9 $PID 2>/dev/null
+				fi
+				rm -f $PIDFILE
+			fi
+		fi
+
+		# for WPS ---------------------------------->>
+		PIDFILE=$TOP_VAR_DIR/run/wscd-$WLAN.pid
+		if [ "$both_band_ap" = "1" ]; then
+			PIDFILE=$TOP_VAR_DIR/run/wscd-wlan0-wlan1.pid
+		fi
+
+		if [ -f $PIDFILE ] ; then
+			PID=`cat $PIDFILE`
+			echo "WSCD_PID=$PID"
+			if [ "$PID" != "0" ]; then
+				kill -9 $PID 2>/dev/null
+			fi
+			rm -f $PIDFILE
+		fi
+	done
+	#<<----------------------------------- for WPS
+}
+
+stop_all() {
+	HAS_APP=1
+	if [ "$1" = "m-ap" ];then
+		ALL_INTF=$ALL_M_AP_INTF    
+	elif [ "$1" = "ap" ];then
+		ALL_INTF=$INTF	    
+		#stop_nat
+	elif [ "$1" = "rp" ]; then
+		ALL_INTF=$ALL_RP_INTF
+	elif [ "$1" = "wds" ]; then	
+		ALL_INTF=$ALL_WDS_INTF    
+		HAS_APP=0
+	else
+		ALL_INTF=$INTF
+		HAS_APP=0	
+	fi	    
+
+	$IWPRIV $INTF set_mib wsc_enable=0
+	rtl_act_wlan_if stop $ALL_INTF
+	rtl_br_lan_if stop $ALL_INTF $LAN_INTF
+	$START_WLAN_APP kill $ALL_INTF $BR_INTF
+	#killall webs 2> /dev/null
+	rtl_kill_iwcontrol_pid $ALL_INTF
+	rtl_kill_wlan_pid $ALL_INTF
+	rm -f $TOP_VAR_DIR/*.fifo
+}
+
+start_wds() {
+	if [ "$1" = "open"]; then
+		ENC_AUTH="0"
+	elif [ "$1" = "wep" ]; then
+		ENC_AUTH="1"
+	elif [ "$1" = "wpa-tkip" ]; then
+		ENC_AUTH="2"      	
+	elif [ "$1" = "wpa2_aes" ]; then
+		ENC_AUTH="4"	
+	fi
+
+	$IWPRIV $INTF set_mib wds_enable=1
+	$IWPRIV $INTF set_mib wds_pure=0
+	$IWPRIV $INTF set_mib wds_priority=1
+	$IWPRIV $INTF set_mib wds_num=0
+	$IWPRIV $INTF set_mib wds_encrypt=$ENC_AUTH  ## 0:none 1:wep40 2:tkip 4:aes 5:wep104
+	$IWPRIV $INTF set_mib wds_wepkey=$wep_key
+	$IWPRIV $INTF set_mib wds_passphrase=$wpa_psk
+	$IWPRIV $INTF set_mib wds_add=$WDS_PEER_MAC,0  ## peer mac address, rate
+
+	#$IWPRIV $INTF set_mib wsc_enable=0
+	rtl_act_wlan_if start $INTF
+	$IFCONFIG $WDS_INTF up
+	rtl_br_lan_if start $ALL_WDS_INTF
+	echo 1 > /proc/sys/net/ipv6/conf/$WDS_INTF/disable_ipv6
+	if [ "$ADD_BR" = "1" ]; then
+		$IFCONFIG $BR_INTF $WDS_IP
+	fi  
+	#$IFCONFIG $INTF-wds0 up
+}
+
+wps_restart() {
+	MODE=`cat $CONFIG_ROOT_DIR/$2/wlan_mode`
+
+	if [ "$MODE" = "0" ];then
+		stop_all ap
+		start_ap $ALL_AP_INTF
+	else
+		stop_all cli
+		start_cli $INTF
+	fi
+}
+
+scan_realtek() {
+	local device="$1"
+	local vif vifs channel
+	local sta_if ap_if
+
+	IFCONFIG=ifconfig
+
+	if [ "$device" = "AP0_2G" ]; then
+		INTF="wlan0"
+		CONFIG_ROOT_DIR="/var/rtl8192c"
+	elif [ "$device" = "AP1_2G" ]; then
+		INTF="wlan1"
+		CONFIG_ROOT_DIR="/var/rtl8192cd"
+	elif [ "$device" = "AP1_5G" ]; then
+		INTF="wlan1"
+		CONFIG_ROOT_DIR="/var/rtl8192cd"
+	fi
+	ADD_BR=0
+	BR_INTF="br-lan"
+	#LAN_INTF="eth0"
+	LAN_INTF=
+
+	TOP_VAR_DIR="/var"
+
+	BRCTL="brctl"
+	IWPRIV="iwpriv"
+
+	LOCAL_IP="192.168.1.254"
+	#MACID="00:01:73:01:FF:AB"
+	#LOCAL=00:01:73:01:ff:10    
+	WDS_PEER_MAC="002288773327"
+	WDS_IP="192.168.99.100"
+	ENC="wpa2_aes"
+	VAP=0
+	RP=0
+	WPS=0
+
+	ALL_AP_INTF=
+	ALL_RP_INTF=
+	ALL_WDS_INTF=
+	ALL_WLAN_INTF=
+	ALL_M_AP_INTF=
+	local _c=0
+
+	config_get channel "$device" channel
+	config_get vifs "$device" vifs
+	for vif in $vifs; do
+		config_get_bool disabled "$vif" disabled 0
+		[ $disabled -eq 0 ] || continue
+
+		local mode
+
+		config_get mode "$vif" mode
+		config_get ifname "$vif" ifname
+		config_get ssid "$vif" ssid
+
+		INTF=$ifname
+		WLAN_INTF=$INTF
+#		VA_INTF="$INTF-va0"
+		VXD_INTF="$INTF-vxd"
+		WDS_INTF="$INTF-wds0"
+
+		ALL_AP_INTF="$ALL_AP_INTF $INTF"
+		ALL_M_AP_INTF="$ALL_M_AP_INTF $INTF $VA_INTF"
+		ALL_RP_INTF="$ALL_RP_INTF $INTF $VXD_INTF"
+		ALL_WDS_INTF="$ALL_WDS_INTF $INTF $WDS_INTF"
+		ALL_WLAN_INTF="$ALL_WLAN_INTF $WLAN_INTF $VXD_INTF"
+		case "$mode" in
+			sta)
+				sta=1
+				STA_SSID=$ssid
+				sta_if="$vif"
+			;;
+			ap)
+				apmode=1
+				ap_if="${ap_if:+$ap_if }$vif"
+				ap_channel=$channel
+				eval "ssid_${ifname}=\"\$ssid\""
+				ALL_M_AP_INTF="$ALL_M_AP_INTF $ifname"
+				_c=$((${_c:-0} + 1))
+			;;
+			wds)
+				wdsmode=1
+			;;
+			*) echo "$device($vif): Invalid mode, ignored."; continue;;
+		esac
+	done
+
+	if [ "$_c" -gt 1 ]; then
+		VAP=1
+	else
+		VAP=0
+	fi
+
+	if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+		if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+			mkdir $CONFIG_ROOT_DIR
+		fi
+
+		if [ -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+			SCRIPT_DIR=`cat $CONFIG_ROOT_DIR/wifi_script_dir`
+		else
+			SCRIPT_DIR=/root/wifi/script
+			echo $SCRIPT_DIR > $CONFIG_ROOT_DIR/wifi_script_dir
+		fi
+
+		if [ -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+			BIN_DIR=`cat $CONFIG_ROOT_DIR/wifi_bin_dir`
+		else
+			BIN_DIR="/bin"
+			echo $BIN_DIR > $CONFIG_ROOT_DIR/wifi_bin_dir
+		fi
+	fi
+
+	START_WLAN_ORG=$SCRIPT_DIR/wlan_8192c.sh
+	START_WLAN=$SCRIPT_DIR/mywlan_8192c.sh
+	START_WLAN_APP=$SCRIPT_DIR/wlanapp_8192c.sh
+
+	for intf in $ALL_WLAN_INTF; do
+		if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+			if [ "$intf" == "wlan0" ] || [ "$intf" == "wlan0-vxd" ]; then
+				$SCRIPT_DIR/default_setting.sh $intf
+			fi
+			if [ "$intf" == "wlan1" ] || [ "$intf" == "wlan1-vxd" ]; then
+				grep -l "RTL8192F" /proc/wlan1/mib_rf 2> /dev/null
+				if [ $? -eq 0 ]; then
+					$SCRIPT_DIR/default_setting_rtl8192fr.sh $intf
+				fi
+				grep -l "RTL8812" /proc/wlan1/mib_rf 2> /dev/null
+				if [ $? -eq 0 ]; then
+					$SCRIPT_DIR/default_setting_ac.sh $intf
+				fi
+			fi
+		fi
+	done
+}
+
+disable_realtek() {
+	local device="$1"
+
+	if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+		set_wifi_down "$device"
+
+		if [ "$apmode" == "1" ]; then
+			if [ "VAP" == "1" ]; then
+				stop_all m_ap
+			else
+				stop_all ap
+			fi
+		else
+			stop_all cli
+		fi
+	fi
+}
+
+enable_realtek() {
+	local device="$1"
+	local country vifs macaddr hidden
+	local hwmode htmode
+	local if_up
+	
+	if [ -d /proc/wlan0 ] || [ -d /proc/wlan1 ]; then
+
+	hidden=0
+	config_get country "$device" country
+	config_get vifs "$device" vifs
+	config_get hwmode "$device" hwmode
+	config_get htmode "$device" htmode
+	config_get hidden "$device" hidden
+
+	echo $hidden > $CONFIG_ROOT_DIR/$INTF/hidden_ssid
+
+	hwmode="${hwmode##11}"
+	case "$hwmode" in
+		ac)	BAND=76;;
+		n)	BAND=11;;
+		ng|na)	BAND=8;;
+		a)	BAND=4;;
+		g)	BAND=2;;
+		b)	BAND=1;;
+		*)	BAND=11;;
+	esac
+	echo $BAND > $CONFIG_ROOT_DIR/$INTF/band
+
+	case "$htmode" in
+		HT80-)	USE_40M=2; UPPER_SIDE=0;;
+		HT80+)	USE_40M=2; UPPER_SIDE=1;;
+		HT40-)	USE_40M=1; UPPER_SIDE=0;;
+		HT40+)	USE_40M=1; UPPER_SIDE=1;;
+		HT20)	USE_40M=0; UPPER_SIDE=0;;
+		*)	USE_40M=0; UPPER_SIDE=0;;
+	esac
+	echo $USE_40M > $CONFIG_ROOT_DIR/$INTF/channel_bonding
+	echo $UPPER_SIDE > $CONFIG_ROOT_DIR/$INTF/control_sideband
+
+	[ -n "$country" ] && {
+		echo "1" > $CONFIG_ROOT_DIR/$INTF/countrycode_enable
+		echo $country > $CONFIG_ROOT_DIR/$INTF/countrycode
+	}
+
+	for vif in $vifs; do
+		config_get_bool disabled "$vif" disabled 0
+		[ $disabled -eq 0 ] || continue
+
+		config_get ifname "$vif" ifname
+		config_get macaddr "$vif" macaddr
+		[ -n "$macaddr" ] && {
+			echo $macaddr > $CONFIG_ROOT_DIR/$ifname/wlan0_addr
+		}
+
+		config_get enc "$vif" encryption
+		case "$enc" in
+			*wep*)
+				local enc_bits key_type
+
+				config_get wep_type "$vif" encmode
+				# 0:wep disabled 1:wep-64bit 2:wep-128bit
+				[ -n $wep_type ] && wep_type=1
+				case "$wep_type" in
+					1) bits=64;;
+					2) bits=128;;
+					*) bits=64;;
+				esac
+
+				# wep_key_type - 1: hex mode 0: ascii
+				config_get wep_key_type "$vif" key_type
+				[ -n $wep_key_type ] && wep_key_type=0
+				case "$wep_key_type" in
+					0) key_type=a;;
+					1) key_type=h;;
+					*) key_type=a;;
+				esac
+
+				config_get wep_key_type "$vif" key_type
+				config_get key "$vif" key
+				case "$key" in
+					[1234])
+						local idx
+						for idx in 1 2 3 4; do
+							config_get ikey "$vif" key$idx
+							[ -n $ikey ] && {
+								eval "wep${bits}_${key_type}_key${key}=\"\$ikey\""
+							}
+						done
+
+						wep_key_idx=$key
+					;;
+				esac
+
+				ENC=wep
+			;;
+			*psk*)
+				case "$enc" in
+					*mixed*|*psk+psk2*) ENC=mixed;;
+					*psk2*) ENC=wpa2_aes;;
+					*) ENC=wpa_tkip;;
+				esac
+				case "$enc" in
+					*tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) ENC=mixed;;
+					*aes*|*ccmp*) ENC=wpa_aes;;
+					*tkip*) ENC=wpa_tkip;;
+				esac
+				config_get key "$vif" key
+				wpa_psk=$key
+			;;
+			*sae*)
+				case "$enc" in
+					*sae-mixed*) ENC=sae-mixed;;
+					*) ENC=sae;;
+				esac
+				config_get key "$vif" key
+				wpa_psk=$key
+			;;
+			*wpa*)
+				case "$enc" in
+					*mixed*|*wpa+wpa2*) ENC=mixed;;
+					*wpa2*) ENC=wpa2_aes;;
+					*) ENC=wpa_tkip;;
+				esac
+				case "$enc" in
+					*tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*) ENC=mixed;;
+					*aes*|*ccmp*) ENC=wpa_aes;;
+					*tkip*) ENC=wpa_tkip;;
+				esac
+				config_get key "$vif" key
+				wpa_psk=$key
+			;;
+			*)
+				ENC=open
+			;;
+		esac
+
+		local net_cfg="$(find_net_config "$vif")"
+		[ -z "$net_cfg" ] || {
+			append if_up "set_wifi_up '$vif' '$ifname'" ";$N"
+			append if_up "start_net '$ifname' '$net_cfg'" ";$N"
+		}
+	done
+
+	ubus -t 5 wait_for network.interface.lan
+	if [ "$apmode" == "1" ]; then
+		start_ap $ALL_M_AP_INTF
+	fi
+
+	if [ "$sta" == "1" ]; then
+		start_cli $ENC $INTF
+	fi
+
+	eval "$if_up"
+
+	fi
+}
+
+detect_realtek() {
+	local i=-1
+
+	while grep -qs "^ *wl$((++i)):" /proc/net/dev; do
+		local channel type
+
+		config_get type wl${i} type
+		[ "$type" = realtek ] && continue
+		channel=1
+		cat <<EOF
+config wifi-device  rtl${i}
+	option type     realtek
+	option channel  ${channel:-11}
+	# REMOVE THIS LINE TO ENABLE WIFI:
+	option disabled 1
+
+config wifi-iface
+	option device   rtl${i}
+	option network	lan
+	option mode     ap
+	option ssid     ASR-OWRT${i#0}
+	option encryption none
+
+EOF
+	done
+}
diff --git a/package/kernel/realtek-wl/files/lib/wifi/rtk_flash.txt b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash.txt
new file mode 100644
index 0000000..2ce02a7
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash.txt
@@ -0,0 +1,34 @@
+HW_WLAN1_WLAN_ADDR=001122334455
+HW_WLAN0_11N_TRSWPAPE_CC=0
+HW_WLAN0_11N_TRSWPAPE_C9=0
+HW_WLAN0_WLAN_ADDR=001122334455
+HW_WLAN0_WLAN_ADDR1=223344556677
+HW_NIC1_ADDR=001122334455
+HW_NIC0_ADDR=001122334455
+HW_WLAN0_REG_DOMAIN=1
+HW_WLAN0_11N_THER=34
+HW_WLAN0_11N_XCAP=57
+HW_WLAN0_REG_DOMAIN=1
+HW_WLAN0_TX_POWER_CCK_A=2323232323232323232323232323
+HW_WLAN0_TX_POWER_CCK_B=2323232323232323232323232323
+HW_WLAN0_TX_POWER_HT40_1S_A=2323232323232323232323232323
+HW_WLAN0_TX_POWER_HT40_1S_B=2323232323232323232323232323
+HW_WLAN0_TX_POWER_DIFF_HT40_2S=0000000000000000000000000000
+HW_WLAN0_TX_POWER_DIFF_HT20=0000000000000000000000000000
+HW_WLAN0_TX_POWER_DIFF_OFDM=0000000000000000000000000000
+RF_DPK_PWSF_2G_A=18191a
+RF_DPK_PWSF_2G_B=1c1c1d
+RF_DPK_LUT_2G_EVEN_A0=0cefea0ce7ea0cefea0cf7ec0d1fee0d2fee0d47ef0d6ff20d87f30daff60dc7f80deffb0e07fd0df7fd0ecffd0fa7ff0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_A0=0ce7e90ce7ea0cefeb0d0fed0d2fed0d37ef0d5ff00d77f30d8ff50dbff70dd7f90e07fd0dfffd0e17fd0f47fe1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_B0=0d1fcc0d1fcf0d17d20d2fd40d4fd60d67d80d87da0dafdb0ddfde0e0fe20e27e40e87ea0ea7ef0ee7f20f3ff60faffc0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_B0=0d1fce0d17cf0d1fd40d3fd60d5fd70d77d90d9fdb0dc7dc0de7de0e17e30e47e60e87ed0ec7f10f27f40f7ff81000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_A1=0cc7eb0ce7ed0cefec0cefef0cfff00d1ff10d37f30d47f30d6ff50d87f80db7fb0dd7fd0dd7fd0e77fc0f0ffe0fcfff0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_A1=0ccfec0cefee0ce7ee0cf7ef0d17f00d27f20d3ff30d67f40d77f70daff90dbffc0ddffd0e0ffc0eaffd0f67ff1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_B1=0d6fd10d67d20d67d40d87d80da7d90dbfdb0dd7de0df7df0e0fe10e47e50e6fe70eafed0ee7f20f07f50f6ff80fc7fe0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_B1=0d67d00d6fd30d77d70d97d80dafdb0ddfdd0ddfde0e0fe00e27e20e57e60e9fea0ecfef0ef7f40f2ff60f97fb1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_A2=0cd7e30ccfe40cd7e50cefe80d07e70d1fe80d37ea0d5fed0d8fef0daff20dc7f50dcff50de7f80e4ffc0e8ffe0fb0000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_A2=0ccfe40cd7e40cdfe70cf7e70d17e80d27e90d47ec0d7fee0d9ff10dbff40dc7f40dcff50e0ffb0e6ffd0f4ffe1000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_EVEN_B2=0d1fcc0d1fd00d27d30d47d40d57d60d6fd80d97db0da7dd0dd7df0e07e30e3fe70e67eb0e97ef0edff20f47f60fbffc0d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_LUT_2G_ODD_B2=0d1fcf0d1fd20d2fd40d4fd50d67d80d8fda0d97dc0dd7dd0defe10e2fe60e5fe90e7fee0ea7f00f0ff40f6ff91000000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d78000d7800
+RF_DPK_DP_PATH_A_OK=1
+RF_DPK_DP_PATH_B_OK=1
diff --git a/package/kernel/realtek-wl/files/lib/wifi/rtk_flash_ac.txt b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash_ac.txt
new file mode 100644
index 0000000..e5361fe
--- /dev/null
+++ b/package/kernel/realtek-wl/files/lib/wifi/rtk_flash_ac.txt
@@ -0,0 +1,21 @@
+HW_WLAN1_WLAN_ADDR=001122334455
+HW_WLAN1_WLAN_ADDR1=001122334411
+HW_NIC1_ADDR=001122334455
+HW_NIC0_ADDR=001122334455
+HW_WLAN1_11N_PA_TYPE=0
+HW_WLAN1_REG_DOMAIN=1
+HW_WLAN1_11N_THER=33
+HW_WLAN1_11N_THER_2=33
+HW_WLAN1_11N_XCAP=8
+HW_WLAN1_TX_POWER_5G_HT40_1S_A=00000000000000000000000000000000000000000000000000000000000000000000000b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f101010101010101011111111111111110b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f10101010101010101111111111111111
+HW_WLAN1_TX_POWER_5G_HT40_1S_B=00000000000000000000000000000000000000000000000000000000000000000000000b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f101010101010101011111111111111110b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f10101010101010101111111111111111
+HW_WLAN1_TX_POWER_DIFF_5G_20BW1S_OFDM1T_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_40BW2S_20BW2S_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW1S_160BW1S_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW2S_160BW2S_A=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_20BW1S_OFDM1T_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_40BW2S_20BW2S_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW1S_160BW1S_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_DIFF_5G_80BW2S_160BW2S_B=0000000000000000000000000000
+HW_WLAN1_TX_POWER_TSSI_5G_HT40_1S_A=0000000000000000000000000000000000000000000000000000000000000000000000707070707050505050505050502020202020202020404040404040404080808080808080808080808080808080808080808080808080808080808080808080808080808080909090909090909050505050505050509090909090909090a0a0a0a0a0a0a0a0505050505050505080808080808080808080808080808080808080808080808080303030303030303000000000000000000000000000000000000000
+HW_WLAN1_TX_POWER_TSSI_5G_HT40_1S_B=000000000000000000000000000000000000000000000000000000000000000000000006060606060707070707070707050505050505050506060606060606060a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0a0a0a0a0a0a0a0a08080808080808080909090909090909080808080808080807070707070707070708080808080808080808080808080808060606060606060600000000000000000000000000000000000000
diff --git a/package/kernel/realtek-wl/files/script/default_setting.sh b/package/kernel/realtek-wl/files/script/default_setting.sh
new file mode 100755
index 0000000..afc0bf9
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/default_setting.sh
@@ -0,0 +1,227 @@
+#!/bin/sh
+
+## error code
+ERROR_SUCCESS=0
+ERROR_INVALID_PARAMETERS=1
+
+if [ $# -lt 1 ]; then echo "Usage: $0 iface"; exit 1; fi
+
+CONFIG_ROOT_DIR="/var/rtl8192c"
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+    mkdir $CONFIG_ROOT_DIR
+fi
+
+if [ ! -d "$CONFIG_DIR" ]; then
+    mkdir $CONFIG_DIR
+fi
+
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+	echo "/root/wifi/script" > $CONFIG_ROOT_DIR/wifi_script_dir
+fi
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+	echo "/bin" > $CONFIG_ROOT_DIR/wifi_bin_dir
+fi
+
+WLAN_PREFIX=wlan
+
+case $1 in
+$WLAN_PREFIX[0-9]*)
+	EXT=${1#$WLAN_PREFIX[0-9]}
+	;;
+*)
+	echo "invalid WLAN interface!($1)"
+	exit $ERROR_INVALID_PARAMETERS
+	;;
+esac
+
+echo "1" > $CONFIG_DIR/board_ver
+echo "00017301FF10" > $CONFIG_DIR/nic0_addr
+echo "00017301FF19" > $CONFIG_DIR/nic1_addr
+echo "00017301FF10" > $CONFIG_DIR/wlan0_addr
+echo "00017301FF11" > $CONFIG_DIR/wlan1_addr
+echo "00017301FF12" > $CONFIG_DIR/wlan2_addr
+echo "00017301FF13" > $CONFIG_DIR/wlan3_addr
+echo "00017301FF14" > $CONFIG_DIR/wlan4_addr
+echo "00017301FF15" > $CONFIG_DIR/wlan5_addr
+echo "00017301FF16" > $CONFIG_DIR/wlan6_addr
+echo "00017301FF17" > $CONFIG_DIR/wlan7_addr
+
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht40_2s
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht20
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ofdm
+echo "3" > $CONFIG_DIR/reg_domain
+echo "0" > $CONFIG_DIR/11n_xcap
+echo "0" > $CONFIG_DIR/led_type
+echo "0" > $CONFIG_DIR/tssi_1
+echo "0" > $CONFIG_DIR/tssi_2
+echo "0" > $CONFIG_DIR/11n_ther
+echo "0" > $CONFIG_DIR/trswitch
+#2.4G RFE Type : 0: Other(Default), 2: 8821C, 3: 8192F and 8822B.
+echo "0" > $CONFIG_DIR/rfe_type
+
+#wlan_mode: 0: AP, 1: Client(network_type=0)/AD-Hoc(network_type=1) 
+echo "0" >  $CONFIG_DIR/wlan_mode
+echo "0" >  $CONFIG_DIR/wlan_disabled
+echo "family-test$EXT" > $CONFIG_DIR/ssid
+#MIMO: 1: 1T2R, 2: 2T4R, 3: 2T2R, 4: 1T1R, 5: 3T3R, 6: 4T4R
+echo "3" > $CONFIG_DIR/MIMO_TR_mode
+
+#channel: default channel
+echo "1" > $CONFIG_DIR/channel
+#ch_hi: Available highest channel
+echo "0" > $CONFIG_DIR/ch_hi
+#ch_low: Available lowest channel
+echo "0" > $CONFIG_DIR/ch_low
+#band: 64: 11AC, 8: 11N, 4: 11A, 2: 11G, 1: 11B; ex. 11 = 8 + 2 + 1 => BGN mode
+echo "11" > $CONFIG_DIR/band
+#basic_rate: 15=0x0f -> bit0-bit11 as 1,2,5.5,11,6,9,12,18,24,36,48,54
+echo "15" > $CONFIG_DIR/basic_rates
+echo "4095" > $CONFIG_DIR/supported_rate
+echo "1" > $CONFIG_DIR/rate_adaptive_enabled
+echo "0" > $CONFIG_DIR/fix_rate
+echo "2347" > $CONFIG_DIR/rts_threshold
+echo "2346" > $CONFIG_DIR/frag_threshold
+echo "30000" >  $CONFIG_DIR/inactivity_time	#unit:10ms
+echo "100" > $CONFIG_DIR/beacon_interval
+echo "1" > $CONFIG_DIR/dtim_period
+echo "0" > $CONFIG_DIR/preamble_type
+echo "0" > $CONFIG_DIR/hidden_ssid
+echo "0" > $CONFIG_DIR/supported_sta_num
+echo "0" > $CONFIG_DIR/protection_disabled
+echo "0" > $CONFIG_DIR/macclone_enable
+echo "2" > $CONFIG_DIR/wifi_specific
+echo "0" > $CONFIG_DIR/vap_enable
+echo "0" > $CONFIG_DIR/group_id
+echo "0" > $CONFIG_DIR/block_relay
+echo "1" > $CONFIG_DIR/wmm_enabled
+echo "0" > $CONFIG_DIR/guest_access
+
+echo "0" > $CONFIG_DIR/wds_enable
+echo "0" > $CONFIG_DIR/wds_pure
+
+echo "0" > $CONFIG_DIR/macac_enabled
+echo "0" > $CONFIG_DIR/macac_num
+#echo "001122334455" > $CONFIG_DIR/macac_addr1
+#echo "001234567890" > $CONFIG_DIR/macac_addr2
+
+echo "0" > $CONFIG_DIR/countrycode_enable
+echo "US" > $CONFIG_DIR/countrycode
+
+echo "2" > $CONFIG_DIR/auth_type
+echo "0" > $CONFIG_DIR/encrypt
+echo "2" > $CONFIG_DIR/wpa_auth
+echo "87654321" > $CONFIG_DIR/wpa_psk
+echo "2" > $CONFIG_DIR/wpa_cipher
+echo "2" > $CONFIG_DIR/wpa2_cipher
+echo "0" > $CONFIG_DIR/psk_enable
+echo "86400" > $CONFIG_DIR/gk_rekey
+echo "0" > $CONFIG_DIR/psk_format
+
+echo "0" >  $CONFIG_DIR/wpa11w
+echo "0" >  $CONFIG_DIR/wpa2EnableSHA256
+
+echo "0" > $CONFIG_DIR/wep
+echo "0" > $CONFIG_DIR/wep_default_key
+echo "1" > $CONFIG_DIR/wep_key_type
+echo "0987654321" > $CONFIG_DIR/wepkey1_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey2_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey3_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey4_64_hex
+echo "3534333231" > $CONFIG_DIR/wepkey1_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey2_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey3_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey4_64_asc
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey1_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey2_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey3_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey4_128_hex
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey1_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey2_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey3_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey4_128_asc
+#network_type: 0 - Client mode, 1 - AD-Hoc mode
+echo "0" > $CONFIG_DIR/network_type
+echo "" > $CONFIG_DIR/default_ssid
+echo "0" > $CONFIG_DIR/power_scale
+
+# channel_bonding: BW: 0 - 20M mode, 1 - 40M, 2 - 80M mode
+echo "0" > $CONFIG_DIR/channel_bonding
+#control_sideband: BW: 0 - lower 2nd channel offset , 1 - higher 2nd channel offset
+echo "0" > $CONFIG_DIR/control_sideband
+echo "1" > $CONFIG_DIR/aggregation
+echo "1" > $CONFIG_DIR/short_gi
+echo "1" > $CONFIG_DIR/stbc_enabled
+echo "0" > $CONFIG_DIR/coexist_enabled
+
+echo "0" > $CONFIG_DIR/enable_1x
+echo "0.0.0.0" > $CONFIG_DIR/rs_ip
+echo "1812" > $CONFIG_DIR/rs_port
+echo "" > $CONFIG_DIR/rs_password
+echo "3" > $CONFIG_DIR/rs_maxretry
+echo "5" > $CONFIG_DIR/rs_interval_time
+echo "0" > $CONFIG_DIR/mac_auth_enabled
+echo "0" > $CONFIG_DIR/enable_supp_nonwpa
+echo "0" > $CONFIG_DIR/supp_nonwpa
+echo "0" > $CONFIG_DIR/wpa2_pre_auth
+
+echo "0" > $CONFIG_DIR/account_rs_enabled
+echo "0.0.0.0" > $CONFIG_DIR/account_rs_ip
+echo "0" > $CONFIG_DIR/account_rs_port
+echo "" > $CONFIG_DIR/account_rs_password
+echo "0" > $CONFIG_DIR/account_rs_update_enabled
+echo "0" > $CONFIG_DIR/account_rs_update_delay
+echo "0" > $CONFIG_DIR/account_rs_maxretry
+echo "0" > $CONFIG_DIR/account_rs_interval_time
+
+echo "0" > $CONFIG_DIR/wsc_disabled
+echo "3" > $CONFIG_DIR/wsc_method
+echo "0" > $CONFIG_DIR/wsc_configured
+echo "1" > $CONFIG_DIR/wsc_auth
+echo "1" > $CONFIG_DIR/wsc_enc
+echo "0" > $CONFIG_DIR/wsc_manual_enabled
+echo "1" > $CONFIG_DIR/wsc_upnp_enabled
+echo "1" > $CONFIG_DIR/wsc_registrar_enabled
+echo "" > $CONFIG_DIR/wsc_ssid
+echo "" > $CONFIG_DIR/wsc_psk
+echo "0" > $CONFIG_DIR/wsc_configbyextreg
+echo "27006672" > $CONFIG_DIR/wsc_pin
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_DOT11K_SUPPORT is y
+# enable 802.11k: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_activated
+echo "1" > $CONFIG_DIR/rm_link_measure
+echo "1" > $CONFIG_DIR/rm_beacon_passive
+echo "1" > $CONFIG_DIR/rm_beacon_active
+echo "1" > $CONFIG_DIR/rm_beacon_table
+echo "1" > $CONFIG_DIR/rm_neighbor_report
+echo "1" > $CONFIG_DIR/rm_ap_channel_report
+### 802.11k deamon setting ###
+# enable 802.11k deamon: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_deamon_enable
+# time interval for deamon to wake up
+echo "60" > $CONFIG_DIR/rm_deamon_time_interval
+# debug mode
+echo "0" > $CONFIG_DIR/rm_deamon_debug
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_11V_SUPPORT is y
+echo "1" > $CONFIG_DIR/BssTransEnable
+echo "3" > $CONFIG_DIR/BssReqMode
+echo "0" > $CONFIG_DIR/BssDiassocDeadline
+echo "0" > $CONFIG_DIR/BssDiassocImminent
+
+echo "0.0.0.0" > $CONFIG_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_DIR/net_mask
+
+echo "192.168.1.250" > $CONFIG_ROOT_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_ROOT_DIR/net_mask
+echo "RTL8192CD" > $CONFIG_ROOT_DIR/device_name
+echo "0" > $CONFIG_ROOT_DIR/band2g5g_select
+
diff --git a/package/kernel/realtek-wl/files/script/default_setting_ac.sh b/package/kernel/realtek-wl/files/script/default_setting_ac.sh
new file mode 100755
index 0000000..2eb95e0
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/default_setting_ac.sh
@@ -0,0 +1,223 @@
+#!/bin/sh
+
+## error code
+ERROR_SUCCESS=0
+ERROR_INVALID_PARAMETERS=1
+
+if [ $# -lt 1 ]; then echo "Usage: $0 iface"; exit 1; fi
+
+CONFIG_ROOT_DIR="/var/rtl8192cd"
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+    mkdir $CONFIG_ROOT_DIR
+fi
+
+if [ ! -d "$CONFIG_DIR" ]; then
+    mkdir $CONFIG_DIR
+fi
+
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+	echo "/root/script" > $CONFIG_ROOT_DIR/wifi_script_dir
+fi
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+	echo "/bin" > $CONFIG_ROOT_DIR/wifi_bin_dir
+fi
+
+WLAN_PREFIX=wlan
+
+case $1 in
+$WLAN_PREFIX[0-9]*)
+	EXT=${1#$WLAN_PREFIX[0-9]}
+	;;
+*)
+	echo "invalid WLAN interface!($1)"
+	exit $ERROR_INVALID_PARAMETERS
+	;;
+esac
+
+echo "1" > $CONFIG_DIR/board_ver
+echo "00017301FF10" > $CONFIG_DIR/nic0_addr
+echo "00017301FF19" > $CONFIG_DIR/nic1_addr
+echo "00017301FF10" > $CONFIG_DIR/wlan0_addr
+echo "00017301FF11" > $CONFIG_DIR/wlan1_addr
+echo "00017301FF12" > $CONFIG_DIR/wlan2_addr
+echo "00017301FF13" > $CONFIG_DIR/wlan3_addr
+echo "00017301FF14" > $CONFIG_DIR/wlan4_addr
+echo "00017301FF15" > $CONFIG_DIR/wlan5_addr
+echo "00017301FF16" > $CONFIG_DIR/wlan6_addr
+echo "00017301FF17" > $CONFIG_DIR/wlan7_addr
+
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht40_2s
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht20
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ofdm
+echo "1" > $CONFIG_DIR/reg_domain
+echo "0" > $CONFIG_DIR/11n_xcap
+echo "0" > $CONFIG_DIR/led_type
+echo "0" > $CONFIG_DIR/tssi_1
+echo "0" > $CONFIG_DIR/tssi_2
+echo "0" > $CONFIG_DIR/11n_ther
+echo "0" > $CONFIG_DIR/trswitch
+echo "0" > $CONFIG_DIR/rfe_type
+
+#wlan_mode: 0: AP, 1: Client(network_type=0)/AD-Hoc(network_type=1) 
+echo "0" >  $CONFIG_DIR/wlan_mode
+echo "0" >  $CONFIG_DIR/wlan_disabled
+echo "family-test$EXT" > $CONFIG_DIR/ssid
+#MIMO: 1: 1T2R, 2: 2T4R, 3: 2T2R, 4: 1T1R, 5: 3T3R, 6: 4T4R
+echo "3" > $CONFIG_DIR/MIMO_TR_mode
+
+#channel: default channel
+echo "44" > $CONFIG_DIR/channel
+#ch_hi: Available highest channel
+echo "165" > $CONFIG_DIR/ch_hi
+#ch_low: Available lowest channel
+echo "0" > $CONFIG_DIR/ch_low
+#band: 64: 11AC, 8: 11N, 4: 11A, 2: 11G, 1: 11B; ex. 11 = 8 + 2 + 1 => BGN mode
+echo "76" > $CONFIG_DIR/band
+#basic_rate: 15=0x0f -> bit0-bit11 as 1,2,5.5,11,6,9,12,18,24,36,48,54
+echo "4095" > $CONFIG_DIR/basic_rates
+echo "4095" > $CONFIG_DIR/supported_rate
+echo "1" > $CONFIG_DIR/rate_adaptive_enabled
+echo "0" > $CONFIG_DIR/fix_rate
+echo "2347" > $CONFIG_DIR/rts_threshold
+echo "2346" > $CONFIG_DIR/frag_threshold
+echo "30000" >  $CONFIG_DIR/inactivity_time	#unit:10ms
+echo "100" > $CONFIG_DIR/beacon_interval
+echo "1" > $CONFIG_DIR/dtim_period
+echo "0" > $CONFIG_DIR/preamble_type
+echo "0" > $CONFIG_DIR/hidden_ssid
+echo "0" > $CONFIG_DIR/supported_sta_num
+echo "0" > $CONFIG_DIR/protection_disabled
+echo "0" > $CONFIG_DIR/macclone_enable
+echo "2" > $CONFIG_DIR/wifi_specific
+echo "0" > $CONFIG_DIR/vap_enable
+echo "0" > $CONFIG_DIR/group_id
+echo "0" > $CONFIG_DIR/block_relay
+echo "1" > $CONFIG_DIR/wmm_enabled
+echo "0" > $CONFIG_DIR/guest_access
+
+echo "0" > $CONFIG_DIR/wds_enable
+echo "0" > $CONFIG_DIR/wds_pure
+
+echo "0" > $CONFIG_DIR/macac_enabled
+echo "0" > $CONFIG_DIR/macac_num
+#echo "001122334455" > $CONFIG_DIR/macac_addr1
+#echo "001234567890" > $CONFIG_DIR/macac_addr2
+
+echo "2" > $CONFIG_DIR/auth_type
+echo "0" > $CONFIG_DIR/encrypt
+echo "2" > $CONFIG_DIR/wpa_auth
+echo "87654321" > $CONFIG_DIR/wpa_psk
+echo "2" > $CONFIG_DIR/wpa_cipher
+echo "2" > $CONFIG_DIR/wpa2_cipher
+echo "0" > $CONFIG_DIR/psk_enable
+echo "86400" > $CONFIG_DIR/gk_rekey
+echo "0" > $CONFIG_DIR/psk_format
+
+echo "0" >  $CONFIG_DIR/wpa11w
+echo "0" >  $CONFIG_DIR/wpa2EnableSHA256
+
+echo "0" > $CONFIG_DIR/wep
+echo "0" > $CONFIG_DIR/wep_default_key
+echo "1" > $CONFIG_DIR/wep_key_type
+echo "0987654321" > $CONFIG_DIR/wepkey1_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey2_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey3_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey4_64_hex
+echo "3534333231" > $CONFIG_DIR/wepkey1_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey2_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey3_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey4_64_asc
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey1_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey2_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey3_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey4_128_hex
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey1_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey2_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey3_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey4_128_asc
+echo "89" > $CONFIG_DIR/network_type
+echo "" > $CONFIG_DIR/default_ssid
+echo "0" > $CONFIG_DIR/power_scale
+
+# channel_bonding: BW: 0 - 20M mode, 1 - 40M, 2 - 80M mode
+echo "2" > $CONFIG_DIR/channel_bonding
+#control_sideband: BW: 0 - lower 2nd channel offset , 1 - higher 2nd channel offset
+echo "1" > $CONFIG_DIR/control_sideband
+echo "1" > $CONFIG_DIR/aggregation
+echo "1" > $CONFIG_DIR/short_gi
+echo "1" > $CONFIG_DIR/stbc_enabled
+echo "0" > $CONFIG_DIR/coexist_enabled
+
+echo "0" > $CONFIG_DIR/enable_1x
+echo "0.0.0.0" > $CONFIG_DIR/rs_ip
+echo "1812" > $CONFIG_DIR/rs_port
+echo "" > $CONFIG_DIR/rs_password
+echo "3" > $CONFIG_DIR/rs_maxretry
+echo "5" > $CONFIG_DIR/rs_interval_time
+echo "0" > $CONFIG_DIR/mac_auth_enabled
+echo "0" > $CONFIG_DIR/enable_supp_nonwpa
+echo "0" > $CONFIG_DIR/supp_nonwpa
+echo "0" > $CONFIG_DIR/wpa2_pre_auth
+
+echo "0" > $CONFIG_DIR/account_rs_enabled
+echo "0.0.0.0" > $CONFIG_DIR/account_rs_ip
+echo "0" > $CONFIG_DIR/account_rs_port
+echo "" > $CONFIG_DIR/account_rs_password
+echo "0" > $CONFIG_DIR/account_rs_update_enabled
+echo "0" > $CONFIG_DIR/account_rs_update_delay
+echo "0" > $CONFIG_DIR/account_rs_maxretry
+echo "0" > $CONFIG_DIR/account_rs_interval_time
+
+echo "0" > $CONFIG_DIR/wsc_disabled
+echo "3" > $CONFIG_DIR/wsc_method
+echo "0" > $CONFIG_DIR/wsc_configured
+echo "1" > $CONFIG_DIR/wsc_auth
+echo "1" > $CONFIG_DIR/wsc_enc
+echo "0" > $CONFIG_DIR/wsc_manual_enabled
+echo "1" > $CONFIG_DIR/wsc_upnp_enabled
+echo "1" > $CONFIG_DIR/wsc_registrar_enabled
+echo "" > $CONFIG_DIR/wsc_ssid
+echo "" > $CONFIG_DIR/wsc_psk
+echo "0" > $CONFIG_DIR/wsc_configbyextreg
+echo "27006672" > $CONFIG_DIR/wsc_pin
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_DOT11K_SUPPORT is y
+# enable 802.11k: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_activated
+echo "1" > $CONFIG_DIR/rm_link_measure
+echo "1" > $CONFIG_DIR/rm_beacon_passive
+echo "1" > $CONFIG_DIR/rm_beacon_active
+echo "1" > $CONFIG_DIR/rm_beacon_table
+echo "1" > $CONFIG_DIR/rm_neighbor_report
+echo "1" > $CONFIG_DIR/rm_ap_channel_report
+### 802.11k deamon setting ###
+# enable 802.11k deamon: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_deamon_enable
+# time interval for deamon to wake up
+echo "60" > $CONFIG_DIR/rm_deamon_time_interval
+# debug mode
+echo "0" > $CONFIG_DIR/rm_deamon_debug
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_11V_SUPPORT is y
+echo "1" > $CONFIG_DIR/BssTransEnable
+echo "3" > $CONFIG_DIR/BssReqMode
+echo "0" > $CONFIG_DIR/BssDiassocDeadline
+echo "0" > $CONFIG_DIR/BssDiassocImminent
+
+echo "0.0.0.0" > $CONFIG_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_DIR/net_mask
+
+echo "192.168.1.250" > $CONFIG_ROOT_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_ROOT_DIR/net_mask
+echo "RTL8192CD" > $CONFIG_ROOT_DIR/device_name
+echo "0" > $CONFIG_ROOT_DIR/band2g5g_select
+echo "0" > $CONFIG_ROOT_DIR/beamforming_support
+
diff --git a/package/kernel/realtek-wl/files/script/default_setting_rtl8192fr.sh b/package/kernel/realtek-wl/files/script/default_setting_rtl8192fr.sh
new file mode 100755
index 0000000..0dd2e80
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/default_setting_rtl8192fr.sh
@@ -0,0 +1,232 @@
+#!/bin/sh
+
+## error code
+ERROR_SUCCESS=0
+ERROR_INVALID_PARAMETERS=1
+
+if [ $# -lt 1 ]; then echo "Usage: $0 iface"; exit 1; fi
+
+grep -l "RTL8192F" /proc/wlan0/mib_rf
+if [ $? -eq 0 ]; then
+	CONFIG_ROOT_DIR="/var/rtl8192c"
+else
+	CONFIG_ROOT_DIR="/var/rtl8192cd"
+fi
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ ! -d "$CONFIG_ROOT_DIR" ]; then
+    mkdir $CONFIG_ROOT_DIR
+fi
+
+if [ ! -d "$CONFIG_DIR" ]; then
+    mkdir $CONFIG_DIR
+fi
+
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_script_dir" ]; then
+	echo "/root/wifi/script" > $CONFIG_ROOT_DIR/wifi_script_dir
+fi
+if [ ! -f "$CONFIG_ROOT_DIR/wifi_bin_dir" ]; then
+	echo "/bin" > $CONFIG_ROOT_DIR/wifi_bin_dir
+fi
+
+WLAN_PREFIX=wlan
+
+case $1 in
+$WLAN_PREFIX[0-9]*)
+	EXT=${1#$WLAN_PREFIX[0-9]}
+	;;
+*)
+	echo "invalid WLAN interface!($1)"
+	exit $ERROR_INVALID_PARAMETERS
+	;;
+esac
+
+echo "1" > $CONFIG_DIR/board_ver
+echo "00017301FF10" > $CONFIG_DIR/nic0_addr
+echo "00017301FF19" > $CONFIG_DIR/nic1_addr
+echo "00017301FF10" > $CONFIG_DIR/wlan0_addr
+echo "00017301FF11" > $CONFIG_DIR/wlan1_addr
+echo "00017301FF12" > $CONFIG_DIR/wlan2_addr
+echo "00017301FF13" > $CONFIG_DIR/wlan3_addr
+echo "00017301FF14" > $CONFIG_DIR/wlan4_addr
+echo "00017301FF15" > $CONFIG_DIR/wlan5_addr
+echo "00017301FF16" > $CONFIG_DIR/wlan6_addr
+echo "00017301FF17" > $CONFIG_DIR/wlan7_addr
+
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_cck_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_a
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_ht40_1s_b
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht40_2s
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ht20
+echo "0000000000000000000000000000" > $CONFIG_DIR/tx_power_diff_ofdm
+echo "3" > $CONFIG_DIR/reg_domain
+echo "0" > $CONFIG_DIR/11n_xcap
+echo "0" > $CONFIG_DIR/led_type
+echo "0" > $CONFIG_DIR/tssi_1
+echo "0" > $CONFIG_DIR/tssi_2
+echo "0" > $CONFIG_DIR/11n_ther
+echo "0" > $CONFIG_DIR/trswitch
+echo "3" > $CONFIG_DIR/rfe_type
+
+#wlan_mode: 0: AP, 1: Client(network_type=0)/AD-Hoc(network_type=1) 
+echo "0" >  $CONFIG_DIR/wlan_mode
+echo "0" >  $CONFIG_DIR/wlan_disabled
+echo "family-test$EXT" > $CONFIG_DIR/ssid
+#MIMO: 1: 1T2R, 2: 2T4R, 3: 2T2R, 4: 1T1R, 5: 3T3R, 6: 4T4R
+echo "3" > $CONFIG_DIR/MIMO_TR_mode
+
+echo "1" > $CONFIG_DIR/rc_enable
+#channel: default channel
+echo "1" > $CONFIG_DIR/channel
+#ch_hi: Available highest channel
+echo "0" > $CONFIG_DIR/ch_hi
+#ch_low: Available lowest channel
+echo "0" > $CONFIG_DIR/ch_low
+#band: 64: 11AC, 8: 11N, 4: 11A, 2: 11G, 1: 11B; ex. 11 = 8 + 2 + 1 => BGN mode
+echo "11" > $CONFIG_DIR/band
+#basic_rate: 15=0x0f -> bit0-bit11 as 1,2,5.5,11,6,9,12,18,24,36,48,54
+echo "15" > $CONFIG_DIR/basic_rates
+echo "4095" > $CONFIG_DIR/supported_rate
+echo "1" > $CONFIG_DIR/rate_adaptive_enabled
+echo "0" > $CONFIG_DIR/fix_rate
+echo "2347" > $CONFIG_DIR/rts_threshold
+echo "2346" > $CONFIG_DIR/frag_threshold
+echo "30000" >  $CONFIG_DIR/inactivity_time	#unit:10ms
+echo "100" > $CONFIG_DIR/beacon_interval
+echo "1" > $CONFIG_DIR/dtim_period
+echo "0" > $CONFIG_DIR/preamble_type
+echo "0" > $CONFIG_DIR/hidden_ssid
+echo "0" > $CONFIG_DIR/supported_sta_num
+echo "1" > $CONFIG_DIR/protection_disabled
+echo "0" > $CONFIG_DIR/macclone_enable
+echo "2" > $CONFIG_DIR/wifi_specific
+echo "0" > $CONFIG_DIR/vap_enable
+echo "0" > $CONFIG_DIR/group_id
+echo "0" > $CONFIG_DIR/block_relay
+echo "1" > $CONFIG_DIR/wmm_enabled
+echo "0" > $CONFIG_DIR/guest_access
+
+echo "0" > $CONFIG_DIR/wds_enable
+echo "0" > $CONFIG_DIR/wds_pure
+
+echo "0" > $CONFIG_DIR/macac_enabled
+echo "0" > $CONFIG_DIR/macac_num
+#echo "001122334455" > $CONFIG_DIR/macac_addr1
+#echo "001234567890" > $CONFIG_DIR/macac_addr2
+
+echo "0" > $CONFIG_DIR/countrycode_enable
+echo "US" > $CONFIG_DIR/countrycode
+
+echo "2" > $CONFIG_DIR/auth_type
+echo "0" > $CONFIG_DIR/encrypt
+echo "2" > $CONFIG_DIR/wpa_auth
+echo "87654321" > $CONFIG_DIR/wpa_psk
+echo "2" > $CONFIG_DIR/wpa_cipher
+echo "2" > $CONFIG_DIR/wpa2_cipher
+echo "0" > $CONFIG_DIR/psk_enable
+echo "86400" > $CONFIG_DIR/gk_rekey
+echo "0" > $CONFIG_DIR/psk_format
+
+echo "0" >  $CONFIG_DIR/wpa11w
+echo "0" >  $CONFIG_DIR/wpa2EnableSHA256
+
+echo "0" > $CONFIG_DIR/wep
+echo "0" > $CONFIG_DIR/wep_default_key
+echo "1" > $CONFIG_DIR/wep_key_type
+echo "0987654321" > $CONFIG_DIR/wepkey1_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey2_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey3_64_hex
+echo "0987654321" > $CONFIG_DIR/wepkey4_64_hex
+echo "3534333231" > $CONFIG_DIR/wepkey1_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey2_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey3_64_asc
+echo "3534333231" > $CONFIG_DIR/wepkey4_64_asc
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey1_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey2_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey3_128_hex
+echo "12345678901234567890123456" > $CONFIG_DIR/wepkey4_128_hex
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey1_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey2_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey3_128_asc
+echo "31323334353637383930313233" > $CONFIG_DIR/wepkey4_128_asc
+echo "0" > $CONFIG_DIR/network_type
+echo "" > $CONFIG_DIR/default_ssid
+echo "0" > $CONFIG_DIR/power_scale
+
+# channel_bonding: BW: 0 - 20M mode, 1 - 40M, 2 - 80M mode
+echo "0" > $CONFIG_DIR/channel_bonding
+#control_sideband: BW: 0 - lower 2nd channel offset , 1 - higher 2nd channel offset
+echo "0" > $CONFIG_DIR/control_sideband
+echo "1" > $CONFIG_DIR/aggregation
+echo "1" > $CONFIG_DIR/short_gi
+echo "1" > $CONFIG_DIR/stbc_enabled
+echo "0" > $CONFIG_DIR/coexist_enabled
+
+echo "0" > $CONFIG_DIR/enable_1x
+echo "0.0.0.0" > $CONFIG_DIR/rs_ip
+echo "1812" > $CONFIG_DIR/rs_port
+echo "" > $CONFIG_DIR/rs_password
+echo "3" > $CONFIG_DIR/rs_maxretry
+echo "5" > $CONFIG_DIR/rs_interval_time
+echo "0" > $CONFIG_DIR/mac_auth_enabled
+echo "0" > $CONFIG_DIR/enable_supp_nonwpa
+echo "0" > $CONFIG_DIR/supp_nonwpa
+echo "0" > $CONFIG_DIR/wpa2_pre_auth
+
+echo "0" > $CONFIG_DIR/account_rs_enabled
+echo "0.0.0.0" > $CONFIG_DIR/account_rs_ip
+echo "0" > $CONFIG_DIR/account_rs_port
+echo "" > $CONFIG_DIR/account_rs_password
+echo "0" > $CONFIG_DIR/account_rs_update_enabled
+echo "0" > $CONFIG_DIR/account_rs_update_delay
+echo "0" > $CONFIG_DIR/account_rs_maxretry
+echo "0" > $CONFIG_DIR/account_rs_interval_time
+
+echo "0" > $CONFIG_DIR/wsc_disabled
+echo "3" > $CONFIG_DIR/wsc_method
+echo "0" > $CONFIG_DIR/wsc_configured
+echo "1" > $CONFIG_DIR/wsc_auth
+echo "1" > $CONFIG_DIR/wsc_enc
+echo "0" > $CONFIG_DIR/wsc_manual_enabled
+echo "1" > $CONFIG_DIR/wsc_upnp_enabled
+echo "1" > $CONFIG_DIR/wsc_registrar_enabled
+echo "" > $CONFIG_DIR/wsc_ssid
+echo "" > $CONFIG_DIR/wsc_psk
+echo "0" > $CONFIG_DIR/wsc_configbyextreg
+echo "27006672" > $CONFIG_DIR/wsc_pin
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_DOT11K_SUPPORT is y
+# enable 802.11k: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_activated
+echo "1" > $CONFIG_DIR/rm_link_measure
+echo "1" > $CONFIG_DIR/rm_beacon_passive
+echo "1" > $CONFIG_DIR/rm_beacon_active
+echo "1" > $CONFIG_DIR/rm_beacon_table
+echo "1" > $CONFIG_DIR/rm_neighbor_report
+echo "1" > $CONFIG_DIR/rm_ap_channel_report
+### 802.11k deamon setting ###
+# enable 802.11k deamon: 1=enable, 0=disable
+echo "0" > $CONFIG_DIR/rm_deamon_enable
+# time interval for deamon to wake up
+echo "60" > $CONFIG_DIR/rm_deamon_time_interval
+# debug mode
+echo "0" > $CONFIG_DIR/rm_deamon_debug
+
+### 802.11k mib ###
+# The following mibs will work if CONFIG_RTL_11V_SUPPORT is y
+echo "1" > $CONFIG_DIR/BssTransEnable
+echo "3" > $CONFIG_DIR/BssReqMode
+echo "0" > $CONFIG_DIR/BssDiassocDeadline
+echo "0" > $CONFIG_DIR/BssDiassocImminent
+
+echo "0.0.0.0" > $CONFIG_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_DIR/net_mask
+
+echo "192.168.1.250" > $CONFIG_ROOT_DIR/ip_addr
+echo "255.255.255.0" > $CONFIG_ROOT_DIR/net_mask
+echo "RTL8192CD" > $CONFIG_ROOT_DIR/device_name
+echo "0" > $CONFIG_ROOT_DIR/band2g5g_select
+
+
diff --git a/package/kernel/realtek-wl/files/script/mywlan_8192c.sh b/package/kernel/realtek-wl/files/script/mywlan_8192c.sh
new file mode 100755
index 0000000..c2a325a
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/mywlan_8192c.sh
@@ -0,0 +1,460 @@
+#!/bin/sh
+#
+# script file to start WLAN
+#
+if [ $# -lt 3 ]; then echo "Usage: $0 wlan root type";  exit 1 ; fi
+
+#echo "my: [$1] [$2] [$3]"
+
+if [ "$1" == "wlan0" ];  then
+	CONFIG_ROOT_DIR="/var/rtl8192c"
+elif [ "$1" == "wlan1" ]; then
+	CONFIG_ROOT_DIR="/var/rtl8192cd"
+else
+	echo "--interface is not right  $1"
+fi
+CONFIG_DIR=$CONFIG_ROOT_DIR/$1
+
+if [ -z "$SCRIPT_DIR" ]; then
+	SCRIPT_DIR=`cat $CONFIG_ROOT_DIR/wifi_script_dir`
+fi
+START_WLAN_APP=$SCRIPT_DIR/wlanapp_8192c.sh
+
+#if [ -z "$ROOT_WLAN" ]; then
+#	ROOT_WLAN=`echo $1 | cut -b -5`
+#fi
+
+OP_INTF=$1
+ROOT_WLAN=$2
+EXT=$3
+
+ROOT_CONFIG_DIR=$CONFIG_ROOT_DIR/$ROOT_WLAN
+
+SET_WLAN="iwpriv $1"
+SET_WLAN_PARAM="$SET_WLAN set_mib"
+IFCONFIG=ifconfig
+
+## Disable WLAN MAC driver and shutdown interface first ##
+$IFCONFIG $OP_INTF down
+
+GET_VALUE=
+GET_VALUE_TMP=
+GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+
+##$SET_WLAN set_mib vap_enable=0
+
+## kill wlan application daemon ##
+
+##$START_WLAN_APP kill $1
+
+## Set parameters to driver ##
+
+GET_VALUE=`cat $ROOT_CONFIG_DIR/reg_domain`
+$SET_WLAN set_mib regdomain=$GET_VALUE
+
+#EXT=`echo $1 | cut -b 7-8`
+NUM=0
+if [ "$EXT" = "va" ] ; then
+	NUM=${1#w*va};
+	NUM=$((NUM +1))
+#	NUM=`echo $1 | cut -b 9`
+#	NUM=`expr $NUM + 1`
+fi
+
+GET_VALUE=`cat $ROOT_CONFIG_DIR/wlan${NUM}_addr`
+$IFCONFIG $OP_INTF hw ether $GET_VALUE
+
+IS_ROOT_WLAN=0;
+if [ "$EXT" = "root" ] ; then
+	IS_ROOT_WLAN=1;
+fi
+
+if [ "$GET_VALUE_WLAN_MODE" = '1' ]; then
+	## client mode
+	GET_VALUE=`cat $CONFIG_DIR/network_type`
+	if  [ "$GET_VALUE" = '0' ]; then
+		$SET_WLAN set_mib opmode=8
+	else
+		$SET_WLAN set_mib opmode=32
+		GET_VALUE_TMP=`cat $CONFIG_DIR/default_ssid`
+		$SET_WLAN set_mib defssid="$GET_VALUE_TMP"
+	fi
+else
+	## AP mode
+	$SET_WLAN set_mib opmode=16
+fi
+##$IFCONFIG $OP_INTF hw ether $WLAN_MAC_ADDR
+
+##if [ "$GET_VALUE_WLAN_MODE" = '2' ]; then
+##		$SET_WLAN set_mib wds_pure=1
+##else
+##		$SET_WLAN set_mib wds_pure=0
+##fi
+
+# set RF parameters
+if [ $IS_ROOT_WLAN = 1 ]; then
+	GET_VALUE=`cat $CONFIG_DIR/channel`
+	$SET_WLAN set_mib channel=$GET_VALUE
+
+	GET_VALUE=`cat $CONFIG_DIR/ch_hi`
+	$SET_WLAN set_mib ch_hi=$GET_VALUE
+
+	GET_VALUE=`cat $CONFIG_DIR/ch_low`
+	$SET_WLAN set_mib ch_low=$GET_VALUE
+	
+	GET_VALUE=`cat $CONFIG_DIR/led_type`
+	$SET_WLAN set_mib led_type=$GET_VALUE
+	
+	GET_VALUE=`cat $CONFIG_DIR/MIMO_TR_mode`
+	$SET_WLAN set_mib MIMO_TR_mode=$GET_VALUE
+	
+	GET_TX_POWER_CCK_A=`cat $CONFIG_DIR/tx_power_cck_a`
+	GET_TX_POWER_CCK_B=`cat $CONFIG_DIR/tx_power_cck_b`
+	GET_TX_POWER_HT40_1S_A=`cat $CONFIG_DIR/tx_power_ht40_1s_a`
+	GET_TX_POWER_HT40_1S_B=`cat $CONFIG_DIR/tx_power_ht40_1s_b`
+
+	GET_TX_POWER_DIFF_HT40_2S=`cat $CONFIG_DIR/tx_power_diff_ht40_2s`
+	GET_TX_POWER_DIFF_HT20=`cat $CONFIG_DIR/tx_power_diff_ht20`
+	GET_TX_POWER_DIFF_OFDM=`cat $CONFIG_DIR/tx_power_diff_ofdm`
+
+	$SET_WLAN set_mib pwrlevelCCK_A=$GET_TX_POWER_CCK_A
+	$SET_WLAN set_mib pwrlevelCCK_B=$GET_TX_POWER_CCK_B
+	$SET_WLAN set_mib pwrlevelHT40_1S_A=$GET_TX_POWER_HT40_1S_A
+	$SET_WLAN set_mib pwrlevelHT40_1S_B=$GET_TX_POWER_HT40_1S_B
+	$SET_WLAN set_mib pwrdiffHT40_2S=$GET_TX_POWER_DIFF_HT40_2S
+	$SET_WLAN set_mib pwrdiffHT20=$GET_TX_POWER_DIFF_HT20
+	$SET_WLAN set_mib pwrdiffOFDM=$GET_TX_POWER_DIFF_OFDM
+	
+	GET_11N_TSSI1=`cat $CONFIG_DIR/tssi_1`
+	$SET_WLAN set_mib tssi1=$GET_11N_TSSI1
+	GET_11N_TSSI2=`cat $CONFIG_DIR/tssi_2`
+	$SET_WLAN set_mib tssi2=$GET_11N_TSSI2
+	
+	GET_VALUE=`cat $CONFIG_DIR/11n_ther`
+	$SET_WLAN set_mib ther=$GET_VALUE
+	
+	GET_VALUE=`cat $CONFIG_DIR/trswitch`
+	$SET_WLAN set_mib trswitch=$GET_VALUE
+
+	GET_VALUE=`cat $CONFIG_DIR/11n_xcap`
+	$SET_WLAN set_mib xcap=$GET_VALUE
+
+	GET_VALUE=`cat $ROOT_CONFIG_DIR/beacon_interval`
+	$SET_WLAN set_mib bcnint=$GET_VALUE
+
+	GET_VALUE=`cat $CONFIG_DIR/dtim_period`
+	$SET_WLAN set_mib dtimperiod=$GET_VALUE
+fi # [ $IS_ROOT_WLAN = 1 ]
+
+GET_VALUE=`cat $CONFIG_DIR/basic_rates`
+$SET_WLAN set_mib basicrates=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/supported_rate`
+$SET_WLAN set_mib oprates=$GET_VALUE
+
+GET_RATE_ADAPTIVE_VALUE=`cat $CONFIG_DIR/rate_adaptive_enabled`
+if [ "$GET_RATE_ADAPTIVE_VALUE" = '0' ]; then
+	$SET_WLAN set_mib autorate=0
+	GET_FIX_RATE_VALUE=`cat $CONFIG_DIR/fix_rate`
+	$SET_WLAN set_mib fixrate=$GET_FIX_RATE_VALUE
+else
+	$SET_WLAN set_mib autorate=1
+fi
+
+GET_VALUE=`cat $CONFIG_DIR/rts_threshold`
+$SET_WLAN set_mib rtsthres=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/frag_threshold`
+$SET_WLAN set_mib fragthres=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/inactivity_time`
+$SET_WLAN set_mib expired_time=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/preamble_type`
+$SET_WLAN set_mib preamble=$GET_VALUE
+
+
+GET_VALUE=`cat $CONFIG_DIR/hidden_ssid`
+$SET_WLAN set_mib hiddenAP=$GET_VALUE
+
+
+if [ "$OP_INTF" = "$ROOT_WLAN-vxd" ]; then
+	GET_VALUE=`cat $CONFIG_ROOT_DIR/repeater_ssid`
+else
+	GET_VALUE=`cat $CONFIG_DIR/ssid`
+fi
+$SET_WLAN set_mib ssid=$GET_VALUE
+
+GET_VALUE=`cat $CONFIG_DIR/macac_enabled`
+$SET_WLAN set_mib aclmode=$GET_VALUE
+$SET_WLAN set_mib aclnum=0
+
+ACL_NUM=`cat $CONFIG_DIR/macac_num`
+ITEM="1 2 3 4 5 6 7 8 9 10"
+#for (( i=1; i<=$ACL_NUM; i=i+1 ))
+if [ "0" != "$ACL_NUM" ]; then
+   for i in $ITEM
+   do	
+	#echo "acl $i"
+	GET_VALUE=`cat $CONFIG_DIR/macac_addr$i`
+	$SET_WLAN set_mib acladdr=$GET_VALUE
+	if [ "$i" = "$ACL_NUM" ]; then
+	    break;
+	fi
+   done
+fi
+
+GET_WLAN_AUTH_TYPE=`cat $CONFIG_DIR/auth_type`
+AUTH_TYPE=$GET_WLAN_AUTH_TYPE
+GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+if [ "$GET_WLAN_AUTH_TYPE" = "1" ] && [ "$GET_WLAN_ENCRYPT" != "1" ]; then
+	# shared-key and not WEP enabled, force to open-system
+	AUTH_TYPE=0
+fi
+$SET_WLAN set_mib authtype=$AUTH_TYPE
+
+if [ "$GET_WLAN_ENCRYPT" = "0" ]; then
+	$SET_WLAN set_mib encmode=0
+elif [ "$GET_WLAN_ENCRYPT" = "1" ]; then
+	### WEP mode ##
+	GET_WEP=`cat $CONFIG_DIR/wep`
+	GET_WEP_KEY_TYPE=`cat $CONFIG_DIR/wep_key_type`
+	GET_WEP_KEY_ID=`cat $CONFIG_DIR/wep_default_key`
+	if [ "$GET_WEP" = "1" ]; then
+		if [ "$GET_WEP_KEY_TYPE" = "0" ]; then
+			GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_asc`
+			GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_asc`
+			GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_asc`
+			GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_asc`
+		else
+			GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_64_hex`
+			GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_64_hex`
+			GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_64_hex`
+			GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_64_hex`
+		fi
+		
+		$SET_WLAN set_mib encmode=1
+		$SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
+		$SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
+		$SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
+		$SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
+		$SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
+	else
+		if [ "$GET_WEP_KEY_TYPE" = "0" ]; then
+			GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_asc`
+			GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_asc`
+			GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_asc`
+			GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_asc`
+		else
+			GET_WEP_KEY_1=`cat $CONFIG_DIR/wepkey1_128_hex`
+			GET_WEP_KEY_2=`cat $CONFIG_DIR/wepkey2_128_hex`
+			GET_WEP_KEY_3=`cat $CONFIG_DIR/wepkey3_128_hex`
+			GET_WEP_KEY_4=`cat $CONFIG_DIR/wepkey4_128_hex`
+		fi
+		$SET_WLAN set_mib encmode=5
+		$SET_WLAN set_mib wepkey1=$GET_WEP_KEY_1
+		$SET_WLAN set_mib wepkey2=$GET_WEP_KEY_2
+		$SET_WLAN set_mib wepkey3=$GET_WEP_KEY_3
+		$SET_WLAN set_mib wepkey4=$GET_WEP_KEY_4
+		$SET_WLAN set_mib wepdkeyid=$GET_WEP_KEY_ID
+	fi
+else
+        ## WPA mode ##
+	$SET_WLAN set_mib encmode=2
+fi
+##$SET_WLAN set_mib wds_enable=0
+##$SET_WLAN set_mib wds_encrypt=0
+
+## Set 802.1x flag ##
+_ENABLE_1X=0
+if [ $GET_WLAN_ENCRYPT -lt 2 ]; then
+	GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+	GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
+	if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+		_ENABLE_1X=1
+	fi
+else
+	_ENABLE_1X=1
+fi
+$SET_WLAN set_mib 802_1x=$_ENABLE_1X
+
+
+#set band
+GET_BAND=`cat $ROOT_CONFIG_DIR/band`
+GET_WIFI_SPECIFIC=`cat $ROOT_CONFIG_DIR/wifi_specific`
+if [ "$GET_VALUE_WLAN_MODE" != '1' ] && [ "$GET_WIFI_SPECIFIC" = 1 ] &&  [ "$GET_BAND" = '2' ] ; then
+	GET_BAND=3
+fi
+if [ "$GET_BAND" = '8' ]; then
+	GET_BAND=11
+	$SET_WLAN set_mib deny_legacy=3
+elif [ "$GET_BAND" = '2' ]; then
+	GET_BAND=3
+	$SET_WLAN set_mib deny_legacy=1
+elif [ "$GET_BAND" = '10' ]; then
+	GET_BAND=11
+	$SET_WLAN set_mib deny_legacy=1
+else
+	$SET_WLAN set_mib deny_legacy=0
+fi
+$SET_WLAN set_mib band=$GET_BAND
+
+###Set 11n parameter
+if [ $IS_ROOT_WLAN = 1 ]; then
+if [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ] || [ $GET_BAND = 76 ] ; then
+	GET_CHANNEL_BONDING=`cat $CONFIG_DIR/channel_bonding`
+	$SET_WLAN set_mib use40M=$GET_CHANNEL_BONDING
+
+	GET_CONTROL_SIDEBAND=`cat $CONFIG_DIR/control_sideband`
+
+	if [ "$GET_CHANNEL_BONDING" = 0 ]; then
+	$SET_WLAN set_mib 2ndchoffset=0
+	else
+		if [ "$GET_CONTROL_SIDEBAND" = 0 ]; then
+			 $SET_WLAN set_mib 2ndchoffset=1
+		fi
+		if [ "$GET_CONTROL_SIDEBAND" = 1 ]; then
+			 $SET_WLAN set_mib 2ndchoffset=2
+		fi
+	fi
+
+	GET_SHORT_GI=`cat $CONFIG_DIR/short_gi`
+	$SET_WLAN set_mib shortGI20M=$GET_SHORT_GI
+	$SET_WLAN set_mib shortGI40M=$GET_SHORT_GI
+
+	if [ $GET_BAND = 76 ] ; then
+		$SET_WLAN set_mib shortGI80M=$GET_SHORT_GI
+	fi
+	GET_AGGREGATION=`cat $CONFIG_DIR/aggregation`
+
+	if [ "$GET_AGGREGATION" = 0 ]; then
+		$SET_WLAN set_mib ampdu=$GET_AGGREGATION
+		$SET_WLAN set_mib amsdu=$GET_AGGREGATION
+	elif [ "$GET_AGGREGATION" = 1 ]; then
+		$SET_WLAN set_mib ampdu=1
+		$SET_WLAN set_mib amsdu=0
+	elif [ "$GET_AGGREGATION" = 2 ]; then
+		$SET_WLAN set_mib ampdu=0
+		$SET_WLAN set_mib amsdu=1
+	elif [ "$GET_AGGREGATION" = 3 ]; then
+		$SET_WLAN set_mib ampdu=1
+		$SET_WLAN set_mib amsdu=1
+	fi
+
+	GET_STBC_ENABLED=`cat $CONFIG_DIR/stbc_enabled`
+	$SET_WLAN set_mib stbc=$GET_STBC_ENABLED
+	GET_COEXIST_ENABLED=`cat $CONFIG_DIR/coexist_enabled`
+	$SET_WLAN set_mib coexist=$GET_COEXIST_ENABLED
+fi # [ $GET_BAND = 10 ] || [ $GET_BAND = 11 ]
+fi # [ $IS_ROOT_WLAN = 1 ]
+##########
+
+#set nat2.5 disable when client and mac clone is set
+GET_MACCLONE_ENABLED=`cat $CONFIG_DIR/macclone_enable`
+if [ "$GET_MACCLONE_ENABLED" = '1' -a "$GET_VALUE_WLAN_MODE" = '1' ]; then
+	$SET_WLAN set_mib nat25_disable=1
+	$SET_WLAN set_mib macclone_enable=1
+else
+	$SET_WLAN set_mib nat25_disable=0
+	$SET_WLAN set_mib macclone_enable=0
+fi
+
+# set 11g protection mode
+GET_PROTECTION_DISABLED=`cat $CONFIG_DIR/protection_disabled`
+if  [ "$GET_PROTECTION_DISABLED" = '1' ] ;then
+	$SET_WLAN set_mib disable_protection=1
+else
+	$SET_WLAN set_mib disable_protection=0
+fi
+
+# set block relay
+GET_BLOCK_RELAY=`cat $CONFIG_DIR/block_relay`
+$SET_WLAN set_mib block_relay=$GET_BLOCK_RELAY
+
+# set WiFi specific mode
+GET_WIFI_SPECIFIC=`cat $ROOT_CONFIG_DIR/wifi_specific`
+$SET_WLAN set_mib wifi_specific=$GET_WIFI_SPECIFIC
+
+# for WMM
+GET_WMM_ENABLED=`cat $CONFIG_DIR/wmm_enabled`
+$SET_WLAN set_mib qos_enable=$GET_WMM_ENABLED
+
+# for guest access
+GET_ACCESS=`cat $CONFIG_DIR/guest_access`
+$SET_WLAN set_mib guest_access=$GET_ACCESS
+
+
+#
+# following settings is used when driver WPA module is included
+#
+
+GET_WPA_AUTH=`cat $CONFIG_DIR/wpa_auth`
+#if [ $GET_VALUE_WLAN_MODE != 1 ] && [ $GET_WLAN_ENCRYPT -ge 2 ]  && [ $GET_WLAN_ENCRYPT -lt 7 ] && [ $GET_WPA_AUTH = 2 ]; then
+if [ $GET_WLAN_ENCRYPT -ge 2 ]  && [ $GET_WLAN_ENCRYPT -lt 11 ] && [ $GET_WPA_AUTH = 2 ]; then
+	if [ $GET_WLAN_ENCRYPT = 2 ]; then
+		ENABLE=1
+	elif [ $GET_WLAN_ENCRYPT = 4 ]; then
+		ENABLE=2
+	elif [ $GET_WLAN_ENCRYPT = 6 ]; then
+		ENABLE=3
+	elif [ $GET_WLAN_ENCRYPT = 8 ]; then
+		ENABLE=8
+	elif [ $GET_WLAN_ENCRYPT = 10 ]; then
+		ENABLE=10
+	else
+		echo "invalid ENCRYPT value!"; exit
+	fi
+	$SET_WLAN set_mib psk_enable=$ENABLE
+
+	if [ $GET_WLAN_ENCRYPT = 2 ] || [ $GET_WLAN_ENCRYPT = 6 ] || [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
+		GET_WPA_CIPHER_SUITE=`cat $CONFIG_DIR/wpa_cipher`
+		if [ $GET_WPA_CIPHER_SUITE = 1 ]; then
+			CIPHER=2
+		elif [ $GET_WPA_CIPHER_SUITE = 2 ]; then
+			CIPHER=8
+		elif [ $GET_WPA_CIPHER_SUITE = 3 ]; then
+			CIPHER=10
+		elif [ $GET_WPA_CIPHER_SUITE = 0 ]; then
+			CIPHER=0
+		else
+			echo "invalid WPA_CIPHER_SUITE value!"; exit 1
+		fi
+	fi
+	$SET_WLAN set_mib wpa_cipher=$CIPHER
+
+	if [ $GET_WLAN_ENCRYPT = 4 ] || [ $GET_WLAN_ENCRYPT = 6 ] || [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
+		GET_WPA2_CIPHER_SUITE=`cat $CONFIG_DIR/wpa2_cipher`
+		if [ $GET_WPA2_CIPHER_SUITE = 1 ]; then
+			CIPHER=2
+		elif [ $GET_WPA2_CIPHER_SUITE = 2 ]; then
+			CIPHER=8
+		elif [ $GET_WPA2_CIPHER_SUITE = 3 ]; then
+			CIPHER=10
+		elif [ $GET_WPA2_CIPHER_SUITE = 8 ]; then
+			CIPHER=8
+		else
+			echo "invalid WPA2_CIPHER_SUITE value!"; exit 1
+		fi
+	fi
+
+	if [ $GET_WLAN_ENCRYPT = 8 ] || [ $GET_WLAN_ENCRYPT = 10 ]; then
+		if [ $GET_WLAN_ENCRYPT = 8 ]; then
+			$SET_WLAN set_mib dot11IEEE80211W=2
+		else
+			$SET_WLAN set_mib dot11IEEE80211W=1
+		fi
+		$SET_WLAN set_mib enableSHA256=1
+	fi
+
+	$SET_WLAN set_mib wpa2_cipher=$CIPHER
+
+	GET_WPA_PSK=`cat $CONFIG_DIR/wpa_psk`
+	$SET_WLAN set_mib passphrase=$GET_WPA_PSK
+
+	
+	GET_WPA_GROUP_REKEY_TIME=`cat $CONFIG_DIR/gk_rekey`
+	$SET_WLAN set_mib gk_rekey=$GET_WPA_GROUP_REKEY_TIME
+else
+	$SET_WLAN set_mib psk_enable=0
+fi
diff --git a/package/kernel/realtek-wl/files/script/wlanapp_8192c.sh b/package/kernel/realtek-wl/files/script/wlanapp_8192c.sh
new file mode 100755
index 0000000..50ff659
--- /dev/null
+++ b/package/kernel/realtek-wl/files/script/wlanapp_8192c.sh
@@ -0,0 +1,476 @@
+#!/bin/sh
+#
+# script file to start wlan applications (IAPP, Auth, Autoconf) daemon
+#
+# Usage: wlanapp.sh [start|kill] wlan_interface...br_interface
+#
+
+## error code
+ERROR_WSCD_START_FAIL=8
+
+if [ $# -lt 2 ] || [ $1 != 'start' -a $1 != 'kill' ] ; then 
+	echo "Usage: $0 [start|kill] wlan_interface...br_interface"
+	exit 1 
+fi
+
+TOP_VAR_DIR="/var"
+TOP_ETC_DIR="/etc"
+TOP_TMP_DIR="/tmp"
+if [ "$2" == "wlan0" ];  then
+	CONFIG_ROOT_DIR="/var/rtl8192c"
+elif [ "$2" == "wlan1" ]; then
+	CONFIG_ROOT_DIR="/var/rtl8192cd"
+fi
+
+if [ ! -d "$TOP_TMP_DIR" ]; then
+    mkdir $TOP_TMP_DIR
+fi
+
+if [ -z "$BIN_DIR" ]; then
+	BIN_DIR=`cat $CONFIG_ROOT_DIR/wifi_bin_dir`
+fi
+
+if [ -z "$WLAN_PREFIX" ]; then
+	WLAN_PREFIX=wlan
+fi
+#WLAN_PREFIX_LEN=${#WLAN_PREFIX}
+#WLAN_NAME_LEN=$((WLAN_PREFIX_LEN + 1))
+
+if [ -z "$ROOT_WLAN" ]; then
+#	ROOT_WLAN=${2:0:$WLAN_NAME_LEN}
+	ROOT_WLAN=${2%%-*}
+fi
+ROOT_CONFIG_DIR=$CONFIG_ROOT_DIR/$ROOT_WLAN
+
+GET_VALUE=
+GET_VALUE_TMP=
+KILLALL=killall
+FLASH_PROG=flash
+SLEEP=sleep
+
+START=1
+PARAM_NUM=$#
+PARAM_ALL=$*
+PARAM1=$1
+PARAM_BR=
+WLAN_INTERFACE=
+
+WLAN0_MODE=
+WLAN0_DISABLED=
+WLAN0_WSC_DISABLED=
+
+WLAN1_MODE=0
+WLAN1_DISABLED=1
+WLAN1_WSC_DISABLED=1
+both_band_ap=0
+
+rtl_check_wlan_band(){
+
+	WLAN0_MODE=`cat $CONFIG_ROOT_DIR/wlan0/wlan_mode`
+	WLAN0_DISABLED=`cat $CONFIG_ROOT_DIR/wlan0/wlan_disabled`
+	WLAN0_WSC_DISABLED=`cat $CONFIG_ROOT_DIR/wlan0/wsc_disabled`
+
+	if [ -d "$CONFIG_ROOT_DIR/wlan1" ] ; then
+		WLAN1_MODE=`cat $CONFIG_ROOT_DIR/wlan1/wlan_mode`
+		WLAN1_DISABLED=`cat $CONFIG_ROOT_DIR/wlan1/wlan_disabled`
+		WLAN1_WSC_DISABLED=`cat $CONFIG_ROOT_DIR/wlan1/wsc_disabled`
+	fi
+
+	if [ "$WLAN0_MODE" = "0" -o "$WLAN0_MODE" = "3" ] && [ "$WLAN1_MODE" = "0" -o "$WLAN1_MODE" = "3" ] && [ "$WLAN0_DISABLED" = "0" ] && [ "$WLAN1_DISABLED" = "0" ] && [ "$WLAN0_WSC_DISABLED" = "0" ] && [ "$WLAN1_WSC_DISABLED" = "0" ]; then
+		both_band_ap = 1
+	fi
+}
+
+rtl_check_wlan_if() {
+	if [ $PARAM_NUM -ge 1 ]; then
+		for ARG in $PARAM_ALL ; do
+			case $ARG in
+			$WLAN_PREFIX*)
+				if [ -z "$WLAN_INTERFACE" ]; then
+					WLAN_INTERFACE="$ARG"
+				else
+					WLAN_INTERFACE="$WLAN_INTERFACE $ARG"
+				fi
+				;;
+			*)
+				PARAM_BR=$ARG
+				;;
+			esac
+		done
+	fi
+}
+	
+DEBUG_EASYCONF=
+VXD_INTERFACE=
+
+
+## kill 802.1x, autoconf and IAPP daemon ##
+rtl_kill_iwcontrol_pid() { 
+	PIDFILE="$TOP_VAR_DIR/run/iwcontrol.pid"
+	if [ -f $PIDFILE ] ; then
+		PID=`cat $PIDFILE`
+		echo "IWCONTROL_PID=$PID"
+		if [ "$PID" != "0" ]; then
+			kill -9 $PID 2>/dev/null
+		fi
+		rm -f $PIDFILE
+	fi
+}
+
+
+rtl_kill_wlan_pid() {
+	for WLAN in $WLAN_INTERFACE ; do
+		PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN.pid
+		if [ -f $PIDFILE ] ; then
+			PID=`cat $PIDFILE`
+			echo "AUTH_PID=$PID"
+			if [ "$PID" != "0" ]; then
+				kill -9 $PID 2>/dev/null
+			fi
+			rm -f $PIDFILE
+			
+			PIDFILE=$TOP_VAR_DIR/run/auth-$WLAN-vxd.pid 
+			if [ -f $PIDFILE ] ; then		
+				PID=`cat $PIDFILE`
+				if [ "$PID" != "0" ]; then
+					kill -9 $PID 2>/dev/null
+				fi
+				rm -f $PIDFILE       		
+			fi
+		fi
+		
+		# for WPS ---------------------------------->>
+		PIDFILE=$TOP_VAR_DIR/run/wscd-$WLAN.pid
+		if [ "$both_band_ap" = "1" ]; then
+			PIDFILE=$TOP_VAR_DIR/run/wscd-wlan0-wlan1.pid
+		fi
+		
+		if [ -f $PIDFILE ] ; then
+			PID=`cat $PIDFILE`
+			echo "WSCD_PID=$PID"
+			if [ "$PID" != "0" ]; then
+				kill -9 $PID 2>/dev/null
+			fi
+			rm -f $PIDFILE   
+		fi 
+	done
+	#<<----------------------------------- for WPS
+}
+
+## start 802.1x daemon ##
+DEAMON_CREATED=0
+VALID_WLAN_INTERFACE=
+
+
+rtl_start_wlan() {
+	for WLAN in $WLAN_INTERFACE ; do
+		CONFIG_DIR=$CONFIG_ROOT_DIR/$WLAN
+		GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+		if [ "$GET_VALUE_WLAN_DISABLED" != 0 ]; then
+			continue
+		fi
+		
+		GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+		GET_WLAN_WPA_AUTH_TYPE=`cat $CONFIG_DIR/wpa_auth`
+		GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+		GET_WLAN_AUTH_TYPE=`cat $CONFIG_DIR/auth_type`
+		
+		EXT=${WLAN#$WLAN_PREFIX[0-9]}
+		EXT=${EXT#-}
+		VAP_AUTH_ENABLE=0
+		ROOT_AUTH_ENABLE=0
+		
+		_ENABLE_1X=0
+		_USE_RS=0
+
+		if [ "$GET_WLAN_ENCRYPT" -lt 2 ]; then
+			GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+			GET_MAC_AUTH_ENABLED=`cat $ROOT_CONFIG_DIR/mac_auth_enabled`
+			if [ "$GET_WLAN_AUTH_TYPE" = 1 ] && [ "$GET_WLAN_ENCRYPT" = 1 ] ; then
+				echo "8021x don't work in WEP-shared!!"
+			elif [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+				_ENABLE_1X=1
+				_USE_RS=1
+			fi
+		else
+			_ENABLE_1X=1
+			if  [ "$GET_WLAN_WPA_AUTH_TYPE" = 1 ]; then
+				_USE_RS=1
+			fi		
+		fi
+
+	
+		ROLE=
+		if [ "$_ENABLE_1X" != 0 ]; then	
+			$BIN_DIR/$FLASH_PROG wpa $WLAN $TOP_VAR_DIR/wpa-$WLAN.conf $WLAN
+			$BIN_DIR/$FLASH_PROG config_file_path $CONFIG_ROOT_DIR wpa $WLAN $TOP_VAR_DIR/wpa-$WLAN.conf $WLAN
+			if [ "$GET_VALUE_WLAN_MODE" = '1' ]; then
+				GET_VALUE=`cat $CONFIG_DIR/network_type`
+				if [ "$GET_VALUE" = '0' ]; then
+					ROLE=client-infra
+				else
+					ROLE=client-adhoc			
+				fi
+			else
+				ROLE=auth
+			fi
+
+			VAP_NOT_IN_PURE_AP_MODE=0		
+		
+			
+			if [ "$GET_VALUE_WLAN_MODE" = '0' ] && [ "$VAP_NOT_IN_PURE_AP_MODE" = '0' ]; then
+				if  [ "$GET_WLAN_WPA_AUTH_TYPE" != 2 ] || [ "$_USE_RS" != 0 ]; then
+					$BIN_DIR/auth $WLAN $PARAM_BR $ROLE $TOP_VAR_DIR/wpa-$WLAN.conf
+					DEAMON_CREATED=1
+					ROOT_AUTH_ENABLE=1
+				fi
+		
+			fi
+		fi
+		
+		if [ "$EXT" = "vxd" ]; then	
+			if [ "$ROLE" != "auth" ] || [ "$ROLE" = "auth" -a "$_USE_RS" != 0 ]; then
+				VXD_INTERFACE=$WLAN
+			fi
+		else
+			GET_WSC_DISABLE=`cat $CONFIG_DIR/wsc_disabled`
+			GET_IEEE80211K_DEAMON=`cat $CONFIG_DIR/rm_deamon_enable`
+			if [ $ROOT_AUTH_ENABLE = 1 ] || [ $GET_WSC_DISABLE = 0 ] || [ $GET_IEEE80211K_DEAMON = 1 ]; then
+				if [ -z "$VALID_WLAN_INTERFACE" ]; then
+					VALID_WLAN_INTERFACE="$WLAN"
+				else
+					VALID_WLAN_INTERFACE="$VALID_WLAN_INTERFACE $WLAN"
+				fi
+			fi
+		fi
+		
+	done
+
+}
+
+#end of start wlan
+
+
+# for WPS ------------------------------------------------->>
+rtl_start_wps() {
+	if [ ! -e $BIN_DIR/wscd ]; then
+		return;
+	fi
+	for WLAN in $VALID_WLAN_INTERFACE ; do
+		EXT=${WLAN#$WLAN_PREFIX[0-9]}
+		EXT=${EXT#-}
+		if [ "$EXT" = "" ] || [ "$EXT" = "vxd" ]; then
+			
+			USE_IWCONTROL=1
+			DEBUG_ON=0
+			_ENABLE_1X=0
+			WSC=1
+			CONFIG_DIR=$CONFIG_ROOT_DIR/$WLAN
+			CONF_FILE=$TOP_VAR_DIR/wsc-$WLAN.conf
+			FiFO_File=$TOP_VAR_DIR/wscd-$WLAN.fifo
+			
+			
+			GET_WSC_DISABLE=`cat $CONFIG_DIR/wsc_disabled`
+			GET_VALUE_WLAN_DISABLED=`cat $CONFIG_DIR/wlan_disabled`
+			GET_VALUE_WLAN_MODE=`cat $CONFIG_DIR/wlan_mode`
+			GET_WLAN_ENCRYPT=`cat $CONFIG_DIR/encrypt`
+			GET_WLAN_WPA_AUTH_TYPE=`cat $CONFIG_DIR/wpa_auth`
+			GET_ENABLE_1X=`cat $CONFIG_DIR/enable_1x`
+			GET_WSC_AUTH=`cat $CONFIG_DIR/wsc_auth`
+
+			if [ "$GET_WLAN_ENCRYPT" -lt 2 ]; then
+				GET_MAC_AUTH_ENABLED=`cat $CONFIG_DIR/mac_auth_enabled`
+				if [ "$GET_ENABLE_1X" != 0 ] || [ "$GET_MAC_AUTH_ENABLED" != 0 ]; then
+					_ENABLE_1X=1
+				fi
+			else
+				if [ "$GET_ENABLE_1X" != 0 ]; then
+					_ENABLE_1X=1
+				fi
+			fi
+
+			## WSC: WPA and WPA2 authentication
+			if [ "$GET_WSC_AUTH" = 8 ] || [ "$GET_WSC_AUTH" = 0x10 ]; then
+				_ENABLE_1X=1
+			fi
+
+			if [ "$_ENABLE_1X" = "1" ]; then
+				echo "stop wscd if 1x is enabled"
+				continue
+			fi
+
+			if [ "$EXT" = "vxd" ]; then
+				GET_VALUE_WLAN_CURR_MODE=`cat $CONFIG_DIR/wlan_mode`
+				if [ $GET_VALUE_WLAN_CURR_MODE = 1 ]; then
+					GET_WSC_DISABLE = 1
+				fi
+			fi
+			
+			if [ $GET_WSC_DISABLE != 0 ]; then
+				WSC=0
+			else
+				if  [ "$GET_VALUE_WLAN_DISABLED" != 0 ] || [ "$GET_VALUE_WLAN_MODE" = 2 ]; then
+					WSC=0
+				else  
+					if [ $GET_VALUE_WLAN_MODE = 1 ]; then	
+						GET_VALUE=`cat $CONFIG_DIR/network_type`
+						if [ "$GET_VALUE" != 0 ]; then
+							WSC=0
+						fi
+					fi
+					if [ $GET_VALUE_WLAN_MODE = 0 ]; then	
+						if [ $GET_WLAN_ENCRYPT = 0 ] && [ $_ENABLE_1X != 0 ]; then
+							WSC=0
+						fi
+						if [ $GET_WLAN_ENCRYPT = 1 ]; then
+							WSC=0
+						fi			
+						if [ $GET_WLAN_ENCRYPT -ge 2 ] && [ $GET_WLAN_WPA_AUTH_TYPE = 1 ]; then
+							WSC=0
+						fi			
+					fi
+				fi
+			fi
+
+			if [ $WSC = 1 ]; then
+				if [ ! -f $TOP_VAR_DIR/wps/simplecfgservice.xml ]; then
+					if [ -e $TOP_VAR_DIR/wps ]; then
+						rm $TOP_VAR_DIR/wps -rf
+					fi
+					mkdir $TOP_VAR_DIR/wps
+					#cp $TOP_ETC_DIR/simplecfg*.xml $TOP_VAR_DIR/wps
+					cat $TOP_ETC_DIR/simplecfgservice.xml > $TOP_VAR_DIR/wps/simplecfgservice.xml
+				fi
+
+				if [ $GET_VALUE_WLAN_MODE = 1 ]; then			
+					UPNP=0
+					_CMD="-mode 2"
+				else		
+					GET_WSC_UPNP_ENABLED=`cat $CONFIG_DIR/wsc_upnp_enabled`
+					UPNP=$GET_WSC_UPNP_ENABLED
+					_CMD="-start"
+				fi
+
+				if [ $UPNP = 1 ]; then
+					route del -net 239.255.255.250 netmask 255.255.255.255 dev "$PARAM_BR"
+					route add -net 239.255.255.250 netmask 255.255.255.255 dev "$PARAM_BR"
+				fi
+		
+				if [ "$both_band_ap" = "1" ]; then
+					_CMD="$_CMD -both_band_ap"	
+				fi
+				
+				$BIN_DIR/$FLASH_PROG config_file_path $CONFIG_ROOT_DIR upd-wsc-conf $TOP_ETC_DIR/wscd.conf $CONF_FILE $WLAN
+				
+				_CMD="$_CMD -c $CONF_FILE -w $WLAN"
+		
+				if [ $DEBUG_ON = 1 ]; then
+					_CMD="$_CMD -debug"	
+				fi	
+				if [ $USE_IWCONTROL = 1 ]; then
+					_CMD="$_CMD -fi $FiFO_File"
+					DEAMON_CREATED=1
+				fi
+		
+				if [ -f "$TOP_VAR_DIR/wps_start_pbc" ]; then		
+					_CMD="$_CMD -start_pbc"
+					rm -f $TOP_VAR_DIR/wps_start_pbc
+				fi
+				if [ -f "$TOP_VAR_DIR/wps_start_pin" ]; then		
+					_CMD="$_CMD -start"
+					rm -f $TOP_VAR_DIR/wps_start_pin
+				fi	
+				if [ -f "$TOP_VAR_DIR/wps_local_pin" ]; then		
+					PIN=`cat $TOP_VAR_DIR/wps_local_pin`		
+					_CMD="$_CMD -local_pin $PIN"
+					rm -f $TOP_VAR_DIR/wps_local_pin
+				fi
+				if [ -f "$TOP_VAR_DIR/wps_peer_pin" ]; then		
+					PIN=`cat $TOP_VAR_DIR/wps_peer_pin`		
+					_CMD="$_CMD -peer_pin $PIN"
+					rm -f $TOP_VAR_DIR/wps_peer_pin
+				fi				
+				WSC_CMD=$_CMD
+				echo "cmd: wscd $WSC_CMD"
+				$BIN_DIR/wscd $WSC_CMD -daemon
+				
+				WAIT=5
+				while [ $USE_IWCONTROL != 0 -a $WAIT != 0 ]		
+				do	
+					if [ -e $FiFO_File ]; then
+						break;
+					else
+						$SLEEP 1
+						WAIT=$((WAIT - 1))
+					fi
+				done
+				if [ $WAIT = 0 ]; then
+					exit $ERROR_WSCD_START_FAIL;
+				fi
+			fi
+		fi
+	done
+}
+#<<--------------------------------------------------- for WPS
+
+rtl_start_iwcontrol() {
+	if [ $DEAMON_CREATED = 1 ]; then
+		$BIN_DIR/iwcontrol $VALID_WLAN_INTERFACE $VXD_INTERFACE $POLL
+	fi
+}
+
+rtl_start_dot11k_deamon() {
+
+
+	IEEE80211K_DEAMON_BRING_UP=`cat $CONFIG_DIR/rm_deamon_enable`
+
+	if [ $IEEE80211K_DEAMON_BRING_UP = 1 ]; then
+		IEEE80211K_ENABLE=`cat $CONFIG_DIR/rm_activated`
+		if [ $IEEE80211K_ENABLE = 1  ]; then
+			IEEE80211K_DEAMON_DEBUG_ENABLE=`cat $CONFIG_DIR/rm_deamon_debug`
+			IEEE80211K_DEAMON_DEBUG_OPTION=""
+			IEEE80211K_DEAMON_TIME_INTERVAL=`cat $CONFIG_DIR/rm_deamon_time_interval`
+
+			if [ $IEEE80211K_DEAMON_DEBUG_ENABLE = 1 ]; then
+               			IEEE80211K_DEAMON_DEBUG_OPTION="$IEEE80211K_DEAMON_DEBUG_OPTION -d"
+       			fi
+
+			IEEE80211K_DEAMON_DEBUG_OPTION="-i $VALID_WLAN_INTERFACE -t $IEEE80211K_DEAMON_TIME_INTERVAL $IEEE80211K_DEAMON_DEBUG_OPTION"
+
+			echo "dot11k_deamon $IEEE80211K_DEAMON_DEBUG_OPTION"
+               		$BIN_DIR/dot11k_deamon $IEEE80211K_DEAMON_DEBUG_OPTION
+		else
+			echo "get_mib rm_actived=$IEEE80211K_ENABLE, 802.11k deamon is not enabled"
+		fi
+    fi
+}
+
+rtl_wlanapp() {
+	if [ $PARAM1 = 'kill' ]; then
+		START=0
+	fi
+
+	rtl_check_wlan_if
+
+	if [ -z "$WLAN_INTERFACE" ]; then
+		echo "Error in $0, no wlan interface is given!"
+		exit 0
+	fi
+	
+	rtl_kill_iwcontrol_pid
+	rtl_kill_wlan_pid
+
+	rm -f $TOP_VAR_DIR/*.fifo
+
+	if [ $START = 0 ]; then
+		return;
+	fi
+
+#	rtl_check_wlan_band
+	rtl_start_wlan
+	rtl_start_wps
+	rtl_start_iwcontrol
+	rtl_start_dot11k_deamon
+}
+
+rtl_wlanapp
diff --git a/package/kernel/realtek-wl/files/wireless_mac80211 b/package/kernel/realtek-wl/files/wireless_mac80211
new file mode 100644
index 0000000..9bbe45c
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_mac80211
@@ -0,0 +1,62 @@
+
+config wifi-device AP0_2G
+	option phy          phy0
+	option type         mac80211
+	option channel      0
+	option hwmode       11ng
+	list supported_rates '1000'
+	list supported_rates '2000'
+	list supported_rates '5500'
+	list supported_rates '11000'
+	list supported_rates '6000'
+	list supported_rates '9000'
+	list supported_rates '12000'
+	list supported_rates '18000'
+	list supported_rates '2400'
+	list supported_rates '36000'
+	list supported_rates '48000'
+	list supported_rates '54000'
+        list basic_rate '1000'
+	list basic_rate '2000'
+	list basic_rate '5500'
+	list basic_rate '11000'
+	option country      US
+	option path         virtual/RTKWiFi0/RTKWiFi0
+	option htmode       HT20
+	option disabled     0
+	option unsupport_multi_ssid 1
+	option serialize    1
+
+config wifi-iface AP0_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option hidden       0
+	option isolate      0
+	option macfilter    disable
+	option wps_pushbutton 1
+	option wpa_group_rekey 600
+
+config wifi-device STA0_2G
+	option type         mac80211
+	option hwmode       11ng
+	option path         virtual/RTKWiFi0/RTKWiFi0
+	option disabled     1
+	option serialize    1
+
+config wifi-iface STA0_2G_if
+	option device       STA0_2G
+	option network      wlan
+	option ifname       wlan0-vxd
+	option mode         sta
+	option ssid         asr-guest
+	option encryption   psk2
+	option key          asr123456
+
+config wifi-settings AP0
+	option auto_off_enable  0
+	option auto_off_timeout 600
diff --git a/package/kernel/realtek-wl/files/wireless_mac80211_multiple_ap b/package/kernel/realtek-wl/files/wireless_mac80211_multiple_ap
new file mode 100644
index 0000000..f55d993
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_mac80211_multiple_ap
@@ -0,0 +1,75 @@
+
+config wifi-device AP0_2G
+	option type         mac80211
+	option channel      0
+	option hwmode       11ng
+	list supported_rates '1000'
+	list supported_rates '2000'
+	list supported_rates '5500'
+	list supported_rates '11000'
+	list supported_rates '6000'
+	list supported_rates '9000'
+	list supported_rates '12000'
+	list supported_rates '18000'
+	list supported_rates '2400'
+	list supported_rates '36000'
+	list supported_rates '48000'
+	list supported_rates '54000'
+        list basic_rate '1000'
+	list basic_rate '2000'
+	list basic_rate '5500'
+	list basic_rate '11000'
+	option country      US
+	option path         virtual/RTKWiFi0/RTKWiFi0
+	option htmode       HT20
+	option disabled     0
+	option unsupport_multi_ssid 1
+	option serialize    1
+
+config wifi-iface AP0_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option hidden       0
+	option isolate      0
+	option macfilter    disable
+	option wps_pushbutton 1
+	option wpa_group_rekey 600
+
+config wifi-iface AP1_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0-va0
+	option mode         ap
+	option ssid         ASR-OWRT-guest
+	option encryption   psk2
+	option key          12345678
+	option hidden       0
+	option isolate      0
+	option macfilter    disable
+	option wps_pushbutton 1
+	option wpa_group_rekey 600
+
+config wifi-device STA0_2G
+	option type         mac80211
+	option hwmode       11ng
+	option path         virtual/RTKWiFi0/RTKWiFi0
+	option disabled     1
+	option serialize    1
+
+config wifi-iface STA0_2G_if
+	option device       STA0_2G
+	option network      wlan
+	option ifname       wlan0-vxd
+	option mode         sta
+	option ssid         asr-guest
+	option encryption   psk2
+	option key          asr123456
+
+config wifi-settings AP0
+	option auto_off_enable  0
+	option auto_off_timeout 600
diff --git a/package/kernel/realtek-wl/files/wireless_mac80211_rtl8822bs b/package/kernel/realtek-wl/files/wireless_mac80211_rtl8822bs
new file mode 100644
index 0000000..dee0dff
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_mac80211_rtl8822bs
@@ -0,0 +1,46 @@
+
+config wifi-device AP0_2G
+	option type         mac80211
+	option channel      11
+	option hwmode       11ng
+	option country      US
+	option path         virtual/RTKWiFi0/RTKWiFi0
+	option htmode       HT40
+	option disabled     1
+	option unsupport_multi_ssid 1
+
+config wifi-iface AP0_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option hidden       0
+	option isolate      0
+	option macfilter    disable
+	option wps_pushbutton 1
+	option wpa_group_rekey 600
+
+config wifi-device AP0_5G
+        option type		mac80211
+        option channel		auto
+        option hwmode		11a
+        option country		US
+	option path		virtual/RTKWiFi0/RTKWiFi0
+        option htmode		VHT80
+        option disabled		0
+	option channel		36
+
+config wifi-iface AP0_5G_if
+        option device		AP0_5G
+        option network		lan
+        option mode		ap
+        option ifname		wlan0
+        option ssid		ASR-OWRT
+	option encryption   	psk2
+	option key          	12345678
+	option hidden       	0
+	option isolate      	0
+	option macfilter    	disable
diff --git a/package/kernel/realtek-wl/files/wireless_wext b/package/kernel/realtek-wl/files/wireless_wext
new file mode 100644
index 0000000..39ab0c6
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext
@@ -0,0 +1,18 @@
+
+config wifi-device AP0_2G
+	option type         realtek
+	option channel      1
+	option hwmode       11ng
+	option country      US
+	option htmode       HT20
+	option disabled     0
+
+config wifi-iface AP0_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wireless_wext_rtl8192fr b/package/kernel/realtek-wl/files/wireless_wext_rtl8192fr
new file mode 100644
index 0000000..9eceb41
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_rtl8192fr
@@ -0,0 +1,18 @@
+
+config wifi-device AP1_2G
+	option type         realtek
+	option channel      1
+	option hwmode       11n
+	option country      US
+	option htmode       HT40+
+	option disabled     0
+
+config wifi-iface AP1_2G_if
+	option device       AP1_2G
+	option network      lan
+	option ifname       wlan1
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wireless_wext_rtl8812fr b/package/kernel/realtek-wl/files/wireless_wext_rtl8812fr
new file mode 100644
index 0000000..24762da
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_rtl8812fr
@@ -0,0 +1,18 @@
+
+config wifi-device AP1_5G
+	option type         realtek
+	option channel      36
+	option hwmode       11ac
+	option country      US
+	option htmode       HT80+
+	option disabled     0
+
+config wifi-iface AP1_5G_if
+	option device       AP1_5G
+	option network      lan
+	option ifname       wlan1
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wireless_wext_rtl8822bs b/package/kernel/realtek-wl/files/wireless_wext_rtl8822bs
new file mode 100644
index 0000000..930e8ac
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_rtl8822bs
@@ -0,0 +1,38 @@
+
+config wifi-device AP0_2G
+	option type         realtek
+	option channel      1
+	option hwmode       11n
+	option country      US
+	option htmode       HT40+
+	option disabled     1
+
+config wifi-iface AP0_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option wpa_group_rekey 600
+
+config wifi-device AP0_5G
+	option type         realtek
+	option channel      36
+	option hwmode       11ac
+	option country      US
+	option htmode       HT80+
+	option disabled     0
+
+config wifi-iface AP0_5G_if
+	option device       AP0_5G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option wpa_group_rekey 600
+
+
diff --git a/package/kernel/realtek-wl/files/wireless_wext_wlan0_rtl8192fr b/package/kernel/realtek-wl/files/wireless_wext_wlan0_rtl8192fr
new file mode 100644
index 0000000..9293896
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wireless_wext_wlan0_rtl8192fr
@@ -0,0 +1,18 @@
+
+config wifi-device AP0_2G
+	option type         realtek
+	option channel      1
+	option hwmode       11n
+	option country      US
+	option htmode       HT40+
+	option disabled     0
+
+config wifi-iface AP0_2G_if
+	option device       AP0_2G
+	option network      lan
+	option ifname       wlan0
+	option mode         ap
+	option ssid         ASR-OWRT
+	option encryption   psk2
+	option key          12345678
+	option wpa_group_rekey 600
diff --git a/package/kernel/realtek-wl/files/wpa_wps.conf b/package/kernel/realtek-wl/files/wpa_wps.conf
new file mode 100644
index 0000000..1c0d27b
--- /dev/null
+++ b/package/kernel/realtek-wl/files/wpa_wps.conf
@@ -0,0 +1,29 @@
+
+ctrl_interface=/var/run/wpa_supplicant
+ctrl_interface_group=0
+
+network={
+	ssid="RTL867x-ADSL-family"
+	key_mgmt=WPA-PSK	# WPA-PSK WPA-EAP
+	proto=WPA		# WPA RSN
+	pairwise=TKIP		# TKIP CCMP
+	group=TKIP		# TKIP CCMP
+	psk="12345678"
+}
+
+#network={
+#	ssid="RTL867x-ADSL-family"
+#	key_mgmt=NONE
+#	auth_alg=OPEN
+#}
+
+#network={
+#	ssid="RTL867x-ADSL-family"
+#	key_mgmt=NONE
+#	wep_key0="abcde"
+	#wep_key1=0102030405
+	#wep_key2="1234567890123"
+#	wep_tx_keyidx=0
+#	priority=5
+	#auth_alg=SHARED
+#}