mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
Using luci native support for MT7615(K2P),support muilti SSID (#5844)
* mt7615: try wext and cfg80211 * iwinfo: support ra frequency offset * iwinfo: ra support assolist, support AC bandwidth, read device id from mtd * mt7615: clean code * k2p: wireless interface should not add to bridge, wifi system will handle this * mt7615: adapt for modern luci * mt7615: fix Makefile, conflicts with luci-app-mtwifi * mt_wifi: conflicts with mt7615d * iwinfo: fix ra probe, scan list * iwinfo: fix ra scan list * mt7615: speed up wifi reload * mt7615: fix bug * mt7615: fix isolate * mt7615: clean code * mt7615: fix CE without cfg80211 * mt7615: split dbdc variant * mt7615: revert config for non dbdc variant devices * mt7615: move maccalc dependency to dbdc variant * mt7615: append author info * mt7615: move config generation to uci-defaults
This commit is contained in:
parent
eb64bd0f9b
commit
13ec6bcfd6
@ -10,7 +10,9 @@ PKG_NAME:=mt7615d
|
|||||||
P4REV:=8
|
P4REV:=8
|
||||||
PKG_VERSION:=5.0.4.0
|
PKG_VERSION:=5.0.4.0
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
|
# PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
||||||
PKG_KCONFIG:= \
|
PKG_KCONFIG:= \
|
||||||
AP_SUPPORT \
|
AP_SUPPORT \
|
||||||
RT_FIRST_CARD \
|
RT_FIRST_CARD \
|
||||||
@ -146,7 +148,6 @@ PKG_KCONFIG:= \
|
|||||||
THIRD_IF_EEPROM_EFUSE \
|
THIRD_IF_EEPROM_EFUSE \
|
||||||
RT_THIRD_CARD_EEPROM \
|
RT_THIRD_CARD_EEPROM \
|
||||||
SPECTRUM_SUPPORT \
|
SPECTRUM_SUPPORT \
|
||||||
MULTI_PROFILE_SUPPORT \
|
|
||||||
PRE_CAL_TRX_SET1_SUPPORT \
|
PRE_CAL_TRX_SET1_SUPPORT \
|
||||||
MWDS \
|
MWDS \
|
||||||
MCAST_RATE_SPECIFIC \
|
MCAST_RATE_SPECIFIC \
|
||||||
@ -171,22 +172,23 @@ PKG_KCONFIG:= \
|
|||||||
DSCP_PRI_SUPPORT \
|
DSCP_PRI_SUPPORT \
|
||||||
PCIE_ASPM_DYM_CTRL_SUPPORT \
|
PCIE_ASPM_DYM_CTRL_SUPPORT \
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:=$(foreach c, $(PKG_KCONFIG),$(if $(CONFIG_MTK_$c),CONFIG_$(c)))
|
PKG_CONFIG_DEPENDS:=$(foreach c, $(PKG_KCONFIG), CONFIG_MTK_$(c) )
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
TAR_CMD=$(HOST_TAR) -C $(1)/ $(TAR_OPTIONS)
|
# TAR_CMD=$(HOST_TAR) -C $(1)/ $(TAR_OPTIONS)
|
||||||
|
|
||||||
define KernelPackage/mt7615d
|
define KernelPackage/mt7615d
|
||||||
CATEGORY:=Kernel modules
|
CATEGORY:=Kernel modules
|
||||||
TITLE:=MTK wifi AP driver
|
TITLE:=MTK wifi AP driver
|
||||||
DEPENDS:=@TARGET_ramips
|
DEPENDS:=@TARGET_ramips +MTK_CFG80211_SUPPORT:kmod-cfg80211 +@DRIVER_11AC_SUPPORT +@DRIVER_11N_SUPPORT +@DRIVER_11W_SUPPORT
|
||||||
ifneq ($(CONFIG_MTK_WHNAT_SUPPORT), )
|
ifneq ($(CONFIG_MTK_WHNAT_SUPPORT), )
|
||||||
FILES:=$(PKG_BUILD_DIR)/mt_wifi_ap/mt_wifi.ko \
|
FILES:=$(PKG_BUILD_DIR)/mt_wifi_ap/mt_wifi.ko \
|
||||||
$(PKG_BUILD_DIR)/mt_wifi/embedded/tools/plug_in/whnat/mt_whnat.ko
|
$(PKG_BUILD_DIR)/mt_wifi/embedded/tools/plug_in/whnat/mt_whnat.ko
|
||||||
else
|
else
|
||||||
FILES:=$(PKG_BUILD_DIR)/mt_wifi_ap/mt_wifi.ko
|
FILES:=$(PKG_BUILD_DIR)/mt_wifi_ap/mt_wifi.ko
|
||||||
endif
|
endif
|
||||||
|
AUTOLOAD:=$(call AutoProbe,mt_wifi)
|
||||||
SUBMENU:=Wireless Drivers
|
SUBMENU:=Wireless Drivers
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -195,17 +197,55 @@ define KernelPackage/mt7615d/config
|
|||||||
source "$(SOURCE)/config.in"
|
source "$(SOURCE)/config.in"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/mt7615d_dbdc
|
||||||
|
CATEGORY:=Kernel modules
|
||||||
|
TITLE:=MTK wifi AP driver
|
||||||
|
DEPENDS:=@TARGET_ramips +kmod-mt7615d +maccalc
|
||||||
|
SUBMENU:=Wireless Drivers
|
||||||
|
MENU:=1
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/mt7615d_dbdc/config
|
||||||
|
select MTK_WIFI_DRIVER
|
||||||
|
select MTK_FIRST_IF_MT7615E
|
||||||
|
select MTK_MT_WIFI
|
||||||
|
select MTK_WIFI_MT_MAC
|
||||||
|
select MTK_CHIP_MT7615E
|
||||||
|
select MTK_DBDC_MODE
|
||||||
|
endef
|
||||||
|
|
||||||
|
NOSTDINC_FLAGS = \
|
||||||
|
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
|
||||||
|
-I$(STAGING_DIR)/usr/include/mac80211-backport \
|
||||||
|
-I$(STAGING_DIR)/usr/include/mac80211/uapi \
|
||||||
|
-I$(STAGING_DIR)/usr/include/mac80211 \
|
||||||
|
-include backport/autoconf.h \
|
||||||
|
-include backport/backport.h
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C "$(LINUX_DIR)" V=1 \
|
+$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \
|
||||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
ARCH="$(LINUX_KARCH)" \
|
|
||||||
M="$(PKG_BUILD_DIR)/mt_wifi_ap" \
|
|
||||||
$(foreach c, $(PKG_KCONFIG),$(if $(CONFIG_MTK_$c),CONFIG_$(c)=$(CONFIG_MTK_$(c)))) \
|
$(foreach c, $(PKG_KCONFIG),$(if $(CONFIG_MTK_$c),CONFIG_$(c)=$(CONFIG_MTK_$(c)))) \
|
||||||
|
M="$(PKG_BUILD_DIR)/mt_wifi_ap" \
|
||||||
|
$(if $(CONFIG_MTK_CFG80211_SUPPORT),NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)") \
|
||||||
|
V=1 \
|
||||||
modules
|
modules
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Build/Install
|
||||||
|
:
|
||||||
|
endef
|
||||||
|
|
||||||
define KernelPackage/mt7615d/install
|
define KernelPackage/mt7615d/install
|
||||||
$(INSTALL_DIR) $(1)/etc/wireless/mt7615/
|
:
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/mt7615d_dbdc/install
|
||||||
|
$(INSTALL_DIR) $(1)/lib/wifi $(1)/lib/netifd/wireless $(1)/etc/uci-defaults
|
||||||
|
$(INSTALL_DATA) ./files/lib/wifi/mt_dbdc.sh $(1)/lib/wifi
|
||||||
|
$(INSTALL_BIN) ./files/lib/netifd/wireless/mt_dbdc.sh $(1)/lib/netifd/wireless
|
||||||
|
$(INSTALL_DATA) ./files/etc/uci-defaults/10_mt7615_dbdc $(1)/etc/uci-defaults/10_mt7615_dbdc
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call KernelPackage,mt7615d))
|
$(eval $(call KernelPackage,mt7615d))
|
||||||
|
$(eval $(call KernelPackage,mt7615d_dbdc))
|
||||||
|
@ -273,25 +273,22 @@ config MTK_HDR_TRANS_RX_SUPPORT
|
|||||||
config MTK_DBDC_MODE
|
config MTK_DBDC_MODE
|
||||||
bool "dbdc mode support"
|
bool "dbdc mode support"
|
||||||
depends on MTK_CHIP_MT7615E || MTK_CHIP_MT7626
|
depends on MTK_CHIP_MT7615E || MTK_CHIP_MT7626
|
||||||
select MULTI_PROFILE_SUPPORT
|
select MTK_MULTI_PROFILE_SUPPORT
|
||||||
select DEFAULT_5G_PROFILE
|
|
||||||
default y if TARGET_ramips_mt7621_DEVICE_jcg_y2
|
default y if TARGET_ramips_mt7621_DEVICE_jcg_y2
|
||||||
default y if TARGET_ramips_mt7621_DEVICE_phicomm_k2p
|
default y if TARGET_ramips_mt7621_DEVICE_phicomm_k2p || TARGET_DEVICE_ramips_mt7621_DEVICE_phicomm_k2p
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config MTK_MULTI_PROFILE_SUPPORT
|
config MTK_MULTI_PROFILE_SUPPORT
|
||||||
bool "Multi Profile Support"
|
bool "Multi Profile Support"
|
||||||
depends on MTK_DBDC_MODE
|
depends on MTK_DBDC_MODE
|
||||||
default y if TARGET_ramips_mt7621_DEVICE_jcg_y2
|
|
||||||
default y if TARGET_ramips_mt7621_DEVICE_phicomm_k2p
|
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config MTK_DEFAULT_5G_PROFILE
|
config MTK_DEFAULT_5G_PROFILE
|
||||||
bool "5G default profile for DBDC"
|
bool "5G default profile for DBDC"
|
||||||
depends on MTK_DBDC_MODE
|
depends on MTK_DBDC_MODE
|
||||||
# depends on MTK_MULTI_PROFILE_SUPPORT
|
depends on !PACKAGE_kmod-mt7615d_dbdc
|
||||||
default y if TARGET_ramips_mt7621_DEVICE_jcg_y2
|
default y if TARGET_ramips_mt7621_DEVICE_jcg_y2
|
||||||
default y if TARGET_ramips_mt7621_DEVICE_phicomm_k2p
|
default y if TARGET_ramips_mt7621_DEVICE_phicomm_k2p || TARGET_DEVICE_ramips_mt7621_DEVICE_phicomm_k2p
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config MTK_WSC_INCLUDED
|
config MTK_WSC_INCLUDED
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# fix isolate
|
||||||
|
sed -i 's/multicast_to_unicast:-1/multicast_to_unicast:-0/g' /lib/netifd/netifd-wireless.sh
|
||||||
|
|
||||||
|
# generate default wireless config
|
||||||
|
[ ! -f /etc/config/wireless ] && /sbin/wifi config
|
||||||
|
|
||||||
|
exit 0
|
@ -0,0 +1,895 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013-2015 D-Team Technology Co.,Ltd. ShenZhen
|
||||||
|
# Copyright (c) 2005-2015, lintel <lintel.huang@gmail.com>
|
||||||
|
# Copyright (c) 2013, Hoowa <hoowa.sun@gmail.com>
|
||||||
|
# Copyright (c) 2015-2017, GuoGuo <gch981213@gmail.com>
|
||||||
|
# Copyright (c) 2020, jjm2473 <jjm2473@gmail.com>
|
||||||
|
#
|
||||||
|
# netifd config script for MT7615 DBDC mode.
|
||||||
|
#
|
||||||
|
# 嘿,对着屏幕的哥们,为了表示对原作者辛苦工作的尊重,任何引用跟借用都不允许你抹去所有作者的信息,请保留这段话。
|
||||||
|
#
|
||||||
|
. /lib/netifd/netifd-wireless.sh
|
||||||
|
|
||||||
|
init_wireless_driver "$@"
|
||||||
|
|
||||||
|
#Default configurations
|
||||||
|
RTWIFI_PROFILE_DIR="/tmp/profiles/"
|
||||||
|
RTWIFI_PROFILE_PATH=""
|
||||||
|
RTWIFI_CMD_PATH=""
|
||||||
|
RTWIFI_CMD_OPATH=""
|
||||||
|
APCLI_IF=""
|
||||||
|
APCLI_APCTRL=""
|
||||||
|
WIFI_OP_LOCK=$RTWIFI_PROFILE_DIR"mt_dbdc.lock"
|
||||||
|
RTWIFI_IFPREFIX=""
|
||||||
|
RTWIFI_DEF_BAND=""
|
||||||
|
RTWIFI_FORCE_HT=0
|
||||||
|
RTWIFI_DEF_MAX_BSSID=4
|
||||||
|
|
||||||
|
mt_cmd() {
|
||||||
|
echo "$@" >> $RTWIFI_CMD_PATH
|
||||||
|
}
|
||||||
|
|
||||||
|
#读取device相关设置项并写入json
|
||||||
|
drv_mt_dbdc_init_device_config() {
|
||||||
|
config_add_string channel hwmode htmode country macaddr
|
||||||
|
config_add_int beacon_int chanbw frag rts txburst
|
||||||
|
config_add_int rxantenna txantenna antenna_gain txpower distance wmm
|
||||||
|
config_add_boolean greenap diversity noscan ht_coex smart
|
||||||
|
config_add_int powersave
|
||||||
|
config_add_int maxassoc
|
||||||
|
config_add_boolean hidessid bndstrg
|
||||||
|
|
||||||
|
config_add_boolean \
|
||||||
|
rxldpc \
|
||||||
|
short_gi_80 \
|
||||||
|
short_gi_160 \
|
||||||
|
tx_stbc_2by1 \
|
||||||
|
su_beamformer \
|
||||||
|
su_beamformee \
|
||||||
|
mu_beamformer \
|
||||||
|
mu_beamformee \
|
||||||
|
vht_txop_ps \
|
||||||
|
htc_vht \
|
||||||
|
rx_antenna_pattern \
|
||||||
|
tx_antenna_pattern
|
||||||
|
config_add_int vht_max_a_mpdu_len_exp vht_max_mpdu vht_link_adapt vht160 rx_stbc tx_stbc
|
||||||
|
|
||||||
|
config_add_boolean \
|
||||||
|
ldpc \
|
||||||
|
greenfield \
|
||||||
|
short_gi_20 \
|
||||||
|
short_gi_40 \
|
||||||
|
dsss_cck_40
|
||||||
|
}
|
||||||
|
|
||||||
|
#读取iface相关设置项并写入json
|
||||||
|
drv_mt_dbdc_init_iface_config() {
|
||||||
|
config_add_boolean disabled
|
||||||
|
config_add_string mode bssid ssid encryption
|
||||||
|
config_add_boolean hidden isolate doth ieee80211r
|
||||||
|
config_add_string key key1 key2 key3 key4
|
||||||
|
config_add_string wps
|
||||||
|
config_add_string pin
|
||||||
|
config_add_string macfilter
|
||||||
|
config_add_array maclist
|
||||||
|
|
||||||
|
config_add_boolean wds
|
||||||
|
config_add_int max_listen_int
|
||||||
|
config_add_int dtim_period
|
||||||
|
config_add_int disassoc_low_ack rssiassoc
|
||||||
|
config_add_string wdsenctype wdskey wdsphymode
|
||||||
|
config_add_int wdswepid wdstxmcs
|
||||||
|
}
|
||||||
|
|
||||||
|
get_wep_key_type() {
|
||||||
|
local KeyLen=$(expr length "$1")
|
||||||
|
if [ $KeyLen -eq 10 ] || [ $KeyLen -eq 26 ]
|
||||||
|
then
|
||||||
|
echo 0
|
||||||
|
else
|
||||||
|
echo 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_ap_vif_pre_config() {
|
||||||
|
local name="$1"
|
||||||
|
|
||||||
|
json_select config
|
||||||
|
json_get_vars disabled encryption key key1 key2 key3 key4 ssid mode wps pin isolate doth hidden disassoc_low_ack rssiassoc ieee80211r macfilter
|
||||||
|
json_get_values maclist maclist
|
||||||
|
json_select ..
|
||||||
|
[ "$disabled" == "1" ] && return
|
||||||
|
echo "Generating ap config for interface ra${RTWIFI_IFPREFIX}${ApBssidNum}"
|
||||||
|
ifname="ra${RTWIFI_IFPREFIX}${ApBssidNum}"
|
||||||
|
|
||||||
|
#MAC过滤方式相关设定 由于编号问题......我扔在这了......
|
||||||
|
ra_maclist="${maclist// /;};"
|
||||||
|
case "$macfilter" in
|
||||||
|
allow)
|
||||||
|
echo "Interface ${ifname} has MAC Policy.Allow list:${ra_maclist}"
|
||||||
|
echo "AccessPolicy${ApBssidNum}=1" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "AccessControlList$ApBssidNum=${ra_maclist}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
;;
|
||||||
|
deny)
|
||||||
|
echo "Interface ${ifname} has MAC Policy.Deny list:${ra_maclist}"
|
||||||
|
echo "AccessPolicy${ApBssidNum}=2" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "AccessControlList${ApBssidNum}=${ra_maclist}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
let ApBssidNum+=1
|
||||||
|
echo "SSID$ApBssidNum=${ssid}" >> $RTWIFI_PROFILE_PATH #SSID
|
||||||
|
case "$encryption" in #加密方式
|
||||||
|
wpa*|psk*|WPA*|Mixed|mixed)
|
||||||
|
local enc
|
||||||
|
local crypto
|
||||||
|
case "$encryption" in
|
||||||
|
Mixed|mixed|psk+psk2|psk-mixed*)
|
||||||
|
enc=WPAPSKWPA2PSK
|
||||||
|
;;
|
||||||
|
WPA2*|wpa2*|psk2*)
|
||||||
|
enc=WPA2PSK
|
||||||
|
;;
|
||||||
|
WPA*|WPA1*|wpa*|wpa1*|psk*)
|
||||||
|
enc=WPAPSK
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
crypto="AES"
|
||||||
|
case "$encryption" in
|
||||||
|
*tkip+aes*|*tkip+ccmp*|*aes+tkip*|*ccmp+tkip*)
|
||||||
|
crypto="TKIPAES"
|
||||||
|
;;
|
||||||
|
*aes*|*ccmp*)
|
||||||
|
crypto="AES"
|
||||||
|
;;
|
||||||
|
*tkip*)
|
||||||
|
crypto="TKIP"
|
||||||
|
echo "Warning!!! TKIP is not support in 802.11n 40Mhz!!!"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
ApAuthMode="${ApAuthMode}${enc};"
|
||||||
|
ApEncrypType="${ApEncrypType}${crypto};"
|
||||||
|
ApDefKId="${ApDefKId}2;"
|
||||||
|
echo "WPAPSK$ApBssidNum=${key}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
;;
|
||||||
|
WEP|wep|wep-open|wep-shared)
|
||||||
|
if [ "$encryption" == "wep-shared" ]; then
|
||||||
|
ApAuthMode="${ApAuthMode}SHARED;"
|
||||||
|
else
|
||||||
|
ApAuthMode="${ApAuthMode}OPEN;"
|
||||||
|
fi
|
||||||
|
ApEncrypType="${ApEncrypType}WEP;"
|
||||||
|
K1Tp=$(get_wep_key_type "$key1")
|
||||||
|
K2Tp=$(get_wep_key_type "$key2")
|
||||||
|
K3Tp=$(get_wep_key_type "$key3")
|
||||||
|
K4Tp=$(get_wep_key_type "$key4")
|
||||||
|
|
||||||
|
[ $K1Tp -eq 1 ] && key1=$(echo $key1 | cut -d ':' -f 2- )
|
||||||
|
[ $K2Tp -eq 1 ] && key2=$(echo $key2 | cut -d ':' -f 2- )
|
||||||
|
[ $K3Tp -eq 1 ] && key3=$(echo $key3 | cut -d ':' -f 2- )
|
||||||
|
[ $K4Tp -eq 1 ] && key4=$(echo $key4 | cut -d ':' -f 2- )
|
||||||
|
echo "Key1Str${ApBssidNum}=${key1}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key2Str${ApBssidNum}=${key2}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key3Str${ApBssidNum}=${key3}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key4Str${ApBssidNum}=${key4}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
ApDefKId="${ApDefKId}${key};"
|
||||||
|
;;
|
||||||
|
none|open)
|
||||||
|
ApAuthMode="${ApAuthMode}OPEN;"
|
||||||
|
ApEncrypType="${ApEncrypType}NONE;"
|
||||||
|
ApDefKId="${ApDefKId}1;"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
ApHideESSID="${ApHideESSID}${hidden:-0};"
|
||||||
|
ApK1Tp="${ApK1Tp}${K1Tp:-0};"
|
||||||
|
ApK2Tp="${ApK2Tp}${K2Tp:-0};"
|
||||||
|
ApK3Tp="${ApK3Tp}${K3Tp:-0};"
|
||||||
|
ApK4Tp="${ApK4Tp}${K4Tp:-0};"
|
||||||
|
|
||||||
|
mt_cmd ifconfig $ifname up
|
||||||
|
mt_cmd echo "Interface $ifname now up."
|
||||||
|
mt_cmd iwpriv $ifname set NoForwarding=${isolate:-0}
|
||||||
|
mt_cmd iwpriv $ifname set IEEE80211H=${doth:-0}
|
||||||
|
if [ "$wps" == "pbc" ] && [ "$encryption" != "none" ]; then
|
||||||
|
echo "Enable WPS for ${ifname}."
|
||||||
|
mt_cmd iwpriv $ifname set WscConfMode=4
|
||||||
|
mt_cmd iwpriv $ifname set WscConfStatus=2
|
||||||
|
mt_cmd iwpriv $ifname set WscMode=2
|
||||||
|
mt_cmd iwpriv $ifname set WscV2Support=0
|
||||||
|
else
|
||||||
|
mt_cmd iwpriv $ifname set WscConfMode=0
|
||||||
|
fi
|
||||||
|
[ -n "$disassoc_low_ack" ] && [ "$disassoc_low_ack" != "0" ] && mt_cmd iwpriv $ifname set KickStaRssiLow=$disassoc_low_ack
|
||||||
|
[ -n "$rssiassoc" ] && [ "$rssiassoc" != "0" ] && mt_cmd iwpriv $ifname set AssocReqRssiThres=$rssiassoc
|
||||||
|
[ -n "$ieee80211r" ] && [ "$ieee80211r" != "0" ] && mt_cmd iwpriv $ifname set ftenable=1
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_wds_vif_pre_config() {
|
||||||
|
local name="$1"
|
||||||
|
|
||||||
|
json_select config
|
||||||
|
json_get_vars disabled bssid wdsenctype wdskey wdswepid wdsphymode wdstxmcs
|
||||||
|
set_default wdswepid 1
|
||||||
|
set_default wdstxmcs 33
|
||||||
|
set_default wdsphymode "GREENFIELD"
|
||||||
|
json_select ..
|
||||||
|
[ "$disabled" == "1" ] && return
|
||||||
|
[ $WDSBssidNum -gt 3 ] && return
|
||||||
|
ifname="wds${RTWIFI_IFPREFIX}${WDSBssidNum}"
|
||||||
|
echo "Generating WDS config for interface $ifname"
|
||||||
|
WDSEN=1
|
||||||
|
WDSList="${WDSList}${bssid};"
|
||||||
|
WDSEncType="${WDSEncType}${wdsenctype};"
|
||||||
|
WDSDefKeyID="${WDSDefKeyID}${wdswepid};"
|
||||||
|
WDSPhyMode="${WDSPhyMode}${wdsphymode};"
|
||||||
|
WDSTxMCS="${WDSTxMCS}${wdstxmcs};"
|
||||||
|
echo "Wds${ApBssidNum}Key=${wdskey}" >> $RTWIFI_PROFILE_PATH #WDS Key
|
||||||
|
let WDSBssidNum+=1
|
||||||
|
|
||||||
|
mt_cmd ifconfig $ifname up
|
||||||
|
mt_cmd echo "WDS interface $ifname now up."
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_sta_vif_pre_config() {
|
||||||
|
local name="$1"
|
||||||
|
|
||||||
|
json_select config
|
||||||
|
json_get_vars disabled encryption key key1 key2 key3 key4 ssid mode bssid
|
||||||
|
json_select ..
|
||||||
|
|
||||||
|
[ $stacount -gt 1 ] && {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$disabled" == "1" ] && return
|
||||||
|
let stacount+=1
|
||||||
|
|
||||||
|
mt_cmd ifconfig $APCLI_IF up
|
||||||
|
killall $APCLI_APCTRL
|
||||||
|
[ ! -z "$key" ] && APCTRL_KEY_ARG="-k"
|
||||||
|
[ ! -z "$bssid" ] && APCTRL_BSS_ARG="-b $(echo $bssid | tr 'A-Z' 'a-z')"
|
||||||
|
mt_cmd $APCLI_APCTRL ra${RTWIFI_IFPREFIX}0 connect -s "$ssid" $APCTRL_BSS_ARG $APCTRL_KEY_ARG "$key"
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_wds_vif_post_config() {
|
||||||
|
local name="$1"
|
||||||
|
json_select config
|
||||||
|
json_get_vars disabled
|
||||||
|
json_select ..
|
||||||
|
|
||||||
|
[ "$disabled" == "1" ] && return
|
||||||
|
[ $WDSBssidNum -gt 3 ] && return
|
||||||
|
|
||||||
|
ifname="wds${RTWIFI_IFPREFIX}${WDSBssidNum}"
|
||||||
|
let WDSBssidNum+=1
|
||||||
|
|
||||||
|
wireless_add_vif "$name" "$ifname"
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_ap_vif_post_config() {
|
||||||
|
local name="$1"
|
||||||
|
|
||||||
|
json_select config
|
||||||
|
json_get_vars disabled encryption key key1 key2 key3 key4 ssid mode wps pin isolate doth hidden disassoc_low_ack rssiassoc ieee80211r
|
||||||
|
json_select ..
|
||||||
|
|
||||||
|
[ "$disabled" == "1" ] && return
|
||||||
|
|
||||||
|
[ $ApIfCNT -gt $RTWIFI_DEF_MAX_BSSID ] && return
|
||||||
|
|
||||||
|
ifname="ra${RTWIFI_IFPREFIX}${ApIfCNT}"
|
||||||
|
let ApIfCNT+=1
|
||||||
|
|
||||||
|
wireless_add_vif "$name" "$ifname"
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_sta_vif_post_config() {
|
||||||
|
local name="$1"
|
||||||
|
|
||||||
|
json_select config
|
||||||
|
json_get_vars disabled
|
||||||
|
json_select ..
|
||||||
|
|
||||||
|
[ $stacount -gt 1 ] && {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$disabled" == "1" ] && return
|
||||||
|
let stacount+=1
|
||||||
|
|
||||||
|
wireless_add_vif "$name" "$APCLI_IF"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_if_stat() {
|
||||||
|
[ ! -z "$1" ] && [ -d "/sys/class/net/$1" ] && cat /sys/class/net/$1/operstate
|
||||||
|
}
|
||||||
|
|
||||||
|
mt_dbdc_vif_down() {
|
||||||
|
phy_name=${1}
|
||||||
|
killall -9 -q apcli_2g
|
||||||
|
killall -9 -q apcli_5g
|
||||||
|
case "$phy_name" in
|
||||||
|
rax0)
|
||||||
|
for vif in ra0 ra1 ra2 ra3 ra4 ra5 ra6 ra7 wds0 wds1 wds2 wds3 apcli0; do
|
||||||
|
[ "$(get_if_stat $vif)" != "down" ] && ifconfig $vif down && echo $vif
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
ra0)
|
||||||
|
for vif in rax0 rax1 rax2 rax3 rax4 rax5 rax6 rax7 wdsx0 wdsx1 wdsx2 wdsx3 apclix0; do
|
||||||
|
[ "$(get_if_stat $vif)" != "down" ] && ifconfig $vif down && echo $vif
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
drv_mt_dbdc_cleanup() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
drv_mt_dbdc_teardown() {
|
||||||
|
phy_name=${1}
|
||||||
|
case "$phy_name" in
|
||||||
|
ra0)
|
||||||
|
killall -9 -q apcli_2g
|
||||||
|
for vif in ra0 ra1 ra2 ra3 ra4 ra5 ra6 ra7 wds0 wds1 wds2 wds3 apcli0; do
|
||||||
|
# iwpriv $vif set DisConnectAllSta=1
|
||||||
|
[ -d "/sys/class/net/$vif" ] && ifconfig $vif down
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
rax0)
|
||||||
|
killall -9 -q apcli_5g
|
||||||
|
for vif in rax0 rax1 rax2 rax3 rax4 rax5 rax6 rax7 wdsx0 wdsx1 wdsx2 wdsx3 apclix0; do
|
||||||
|
# iwpriv $vif set DisConnectAllSta=1
|
||||||
|
[ -d "/sys/class/net/$vif" ] && ifconfig $vif down
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
#接口启动
|
||||||
|
drv_mt_dbdc_setup() {
|
||||||
|
json_select config
|
||||||
|
json_get_vars main_if macaddr channel mode hwmode wmm htmode \
|
||||||
|
txpower country macfilter maclist greenap \
|
||||||
|
diversity frag rts txburst distance hidden \
|
||||||
|
disabled maxassoc noscan ht_coex smart #device所有配置项
|
||||||
|
|
||||||
|
json_get_vars \
|
||||||
|
ldpc:1 \
|
||||||
|
greenfield:0 \
|
||||||
|
short_gi_20:1 \
|
||||||
|
short_gi_40:1 \
|
||||||
|
tx_stbc:1 \
|
||||||
|
rx_stbc:3 \
|
||||||
|
max_amsdu:1 \
|
||||||
|
dsss_cck_40:1
|
||||||
|
|
||||||
|
json_get_vars \
|
||||||
|
rxldpc:1 \
|
||||||
|
short_gi_80:1 \
|
||||||
|
short_gi_160:1 \
|
||||||
|
tx_stbc_2by1:1 \
|
||||||
|
su_beamformer:1 \
|
||||||
|
su_beamformee:1 \
|
||||||
|
mu_beamformer:1 \
|
||||||
|
mu_beamformee:1 \
|
||||||
|
vht_txop_ps:1 \
|
||||||
|
htc_vht:1 \
|
||||||
|
rx_antenna_pattern:1 \
|
||||||
|
tx_antenna_pattern:1 \
|
||||||
|
vht_max_a_mpdu_len_exp:7 \
|
||||||
|
vht_max_mpdu:11454 \
|
||||||
|
rx_stbc:4 \
|
||||||
|
vht_link_adapt:3
|
||||||
|
|
||||||
|
json_select ..
|
||||||
|
|
||||||
|
phy_name=${1}
|
||||||
|
wireless_set_data phy=${phy_name}
|
||||||
|
case "$phy_name" in
|
||||||
|
ra0)
|
||||||
|
WirelessMode=9
|
||||||
|
APCLI_IF="apcli0"
|
||||||
|
APCLI_APCTRL="apcli_2g"
|
||||||
|
RTWIFI_IFPREFIX=""
|
||||||
|
RTWIFI_DEF_BAND="g"
|
||||||
|
RTWIFI_PROFILE_PATH="${RTWIFI_PROFILE_DIR}mt_dbdc_2g.dat"
|
||||||
|
RTWIFI_CMD_PATH="${RTWIFI_PROFILE_DIR}mt_dbdc_cmd_2g.sh"
|
||||||
|
RTWIFI_CMD_OPATH="${RTWIFI_PROFILE_DIR}mt_dbdc_cmd_5g.sh"
|
||||||
|
;;
|
||||||
|
rax0)
|
||||||
|
WirelessMode=14
|
||||||
|
APCLI_IF="apclix0"
|
||||||
|
APCLI_APCTRL="apcli_5g"
|
||||||
|
RTWIFI_IFPREFIX="x"
|
||||||
|
RTWIFI_DEF_BAND="a"
|
||||||
|
RTWIFI_PROFILE_PATH="${RTWIFI_PROFILE_DIR}mt_dbdc_5g.dat"
|
||||||
|
RTWIFI_CMD_PATH="${RTWIFI_PROFILE_DIR}mt_dbdc_cmd_5g.sh"
|
||||||
|
RTWIFI_CMD_OPATH="${RTWIFI_PROFILE_DIR}mt_dbdc_cmd_2g.sh"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown phy:$phy_name"
|
||||||
|
return 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
#检查配置文件目录是否存在,否则创建目录
|
||||||
|
[ ! -d $RTWIFI_PROFILE_DIR ] && mkdir $RTWIFI_PROFILE_DIR
|
||||||
|
echo > $RTWIFI_CMD_PATH
|
||||||
|
|
||||||
|
hwmode=${hwmode##11}
|
||||||
|
case "$hwmode" in
|
||||||
|
a)
|
||||||
|
WirelessMode=14
|
||||||
|
ITxBfEn=1
|
||||||
|
HT_HTC=1
|
||||||
|
;;
|
||||||
|
g)
|
||||||
|
WirelessMode=9
|
||||||
|
ITxBfEn=0
|
||||||
|
HT_HTC=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown wireless mode.Use default value:${WirelessMode}"
|
||||||
|
hwmode=${RTWIFI_DEF_BAND}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#HT默认模式设定
|
||||||
|
HT_BW=1 #允许HT40
|
||||||
|
HT_CE=1 #允许HT20/40共存
|
||||||
|
HT_DisallowTKIP=0 #是否允许TKIP加密
|
||||||
|
HT_GI=1 #HT_SHORT_GI
|
||||||
|
VHT_SGI=1 #VHT_SHORT_GI
|
||||||
|
#HT_MIMOPSMode用于省电模式设置
|
||||||
|
#HT_MIMOPSMode=3
|
||||||
|
|
||||||
|
#VHT默认模式设定
|
||||||
|
VHT_BW=1 #允许VHT
|
||||||
|
VHT_DisallowNonVHT=0 #是否禁止非VHT客户端连接,VHT80 only
|
||||||
|
|
||||||
|
[ "$short_gi_20" == "0" -o "$short_gi_40" == "0" ] && HT_GI=0
|
||||||
|
[ "$short_gi_80" == "0" -o "$short_gi_160" == "0" ] && VHT_SGI=0
|
||||||
|
|
||||||
|
case "$htmode" in
|
||||||
|
HT20 |\
|
||||||
|
VHT20)
|
||||||
|
HT_BW=0
|
||||||
|
VHT_BW=0
|
||||||
|
;;
|
||||||
|
HT40 |\
|
||||||
|
VHT40)
|
||||||
|
HT_BW=1
|
||||||
|
VHT_BW=0
|
||||||
|
VHT_DisallowNonVHT=0
|
||||||
|
;;
|
||||||
|
HT80 |\
|
||||||
|
VHT80)
|
||||||
|
HT_BW=1
|
||||||
|
VHT_BW=1
|
||||||
|
;;
|
||||||
|
|
||||||
|
VHT160)
|
||||||
|
echo "only VHT80 support!!"
|
||||||
|
HT_BW=1
|
||||||
|
VHT_BW=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown HT Mode."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#仅HT20以外才需要设置的参数
|
||||||
|
[ "$htmode" != "HT20" ] && {
|
||||||
|
#强制HT40/VHT80
|
||||||
|
[ "$noscan" == "1" ] && HT_CE=0 && RTWIFI_FORCE_HT=1
|
||||||
|
#HT HTC
|
||||||
|
[ "$ht_htc" == "1" ] && HT_HTC=1
|
||||||
|
}
|
||||||
|
|
||||||
|
#自动处理CountryRegion:指定信道的时候支持全频段
|
||||||
|
[ "$channel" != "auto" ] && {
|
||||||
|
#CountryRegion CN
|
||||||
|
countryregion=5
|
||||||
|
countryregion_a=7
|
||||||
|
}
|
||||||
|
|
||||||
|
#信道相关
|
||||||
|
case "$hwmode" in
|
||||||
|
a)
|
||||||
|
EXTCHA=1
|
||||||
|
[ "$channel" != "auto" ] && [ "$channel" != "0" ] && [ "$(( ($channel / 4) % 2 ))" == "0" ] && EXTCHA=0
|
||||||
|
[ "$channel" == "165" ] && EXTCHA=0
|
||||||
|
[ "$channel" == "auto" -o "$channel" == "0" ] && {
|
||||||
|
#CountryRegion CN
|
||||||
|
countryregion=1
|
||||||
|
countryregion_a=0
|
||||||
|
channel=149
|
||||||
|
AutoChannelSelect=2
|
||||||
|
}
|
||||||
|
ACSSKIP="36;38;40;42;44;46;48;52;56;60;64;100;104;108;112;116;120;124;128;132;136;140;165"
|
||||||
|
;;
|
||||||
|
g)
|
||||||
|
EXTCHA=0
|
||||||
|
[ "$channel" != "auto" ] && [ "$channel" != "0" ] && [ "$channel" -lt "7" ] && EXTCHA=1
|
||||||
|
[ "$channel" == "auto" -o "$channel" == "0" ] && {
|
||||||
|
channel=6
|
||||||
|
AutoChannelSelect=2
|
||||||
|
countryregion=1
|
||||||
|
}
|
||||||
|
ACSSKIP="12;13;14"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
#设备配置文件生成
|
||||||
|
cat > $RTWIFI_PROFILE_PATH <<EOF
|
||||||
|
#The word of "Default" must not be removed
|
||||||
|
Default
|
||||||
|
DBDC_MODE=1
|
||||||
|
BssidNum=${RTWIFI_DEF_MAX_BSSID}
|
||||||
|
MacAddress=${macaddr}
|
||||||
|
CountryRegion=${countryregion:-5}
|
||||||
|
CountryRegionABand=${countryregion_a:-7}
|
||||||
|
CountryCode=${country:-CN}
|
||||||
|
WirelessMode=${WirelessMode}
|
||||||
|
G_BAND_256QAM=1
|
||||||
|
FixedTxMode=
|
||||||
|
TxRate=0
|
||||||
|
Channel=${channel}
|
||||||
|
BasicRate=15
|
||||||
|
BeaconPeriod=100
|
||||||
|
DtimPeriod=1
|
||||||
|
PERCENTAGEenable=1
|
||||||
|
TxPower=${txpower:-100}
|
||||||
|
SKUenable=1
|
||||||
|
BFBACKOFFenable=0
|
||||||
|
CalCacheApply=0
|
||||||
|
DisableOLBC=0
|
||||||
|
BGProtection=0
|
||||||
|
TxAntenna=
|
||||||
|
RxAntenna=
|
||||||
|
TxPreamble=1
|
||||||
|
RTSThreshold=${rts:-2347}
|
||||||
|
FragThreshold=${frag:-2346}
|
||||||
|
TxBurst=${txburst:-0}
|
||||||
|
PktAggregate=1
|
||||||
|
AutoProvisionEn=0
|
||||||
|
FreqDelta=0
|
||||||
|
TurboRate=0
|
||||||
|
WmmCapable=${wmm:-0}
|
||||||
|
APAifsn=3;7;1;1
|
||||||
|
APCwmin=4;4;3;2
|
||||||
|
APCwmax=6;10;4;3
|
||||||
|
APTxop=0;0;94;47
|
||||||
|
APACM=0;0;0;0
|
||||||
|
BSSAifsn=3;7;2;2
|
||||||
|
BSSCwmin=4;4;3;2
|
||||||
|
BSSCwmax=10;10;4;3
|
||||||
|
BSSTxop=0;0;94;47
|
||||||
|
BSSACM=0;0;0;0
|
||||||
|
AckPolicy=0;0;0;0
|
||||||
|
APSDCapable=0
|
||||||
|
DLSCapable=0
|
||||||
|
NoForwarding=0
|
||||||
|
NoForwardingBTNBSSID=0
|
||||||
|
ShortSlot=1
|
||||||
|
AutoChannelSelect=${AutoChannelSelect:-0}
|
||||||
|
IEEE8021X=0
|
||||||
|
IEEE80211H=0
|
||||||
|
CarrierDetect=0
|
||||||
|
ITxBfEn=${ITxBfEn}
|
||||||
|
PreAntSwitch=
|
||||||
|
PhyRateLimit=0
|
||||||
|
DebugFlags=0
|
||||||
|
ETxBfEnCond=${ITxBfEn}
|
||||||
|
ITxBfTimeout=0
|
||||||
|
ETxBfTimeout=0
|
||||||
|
ETxBfNoncompress=0
|
||||||
|
ETxBfIncapable=0
|
||||||
|
MUTxRxEnable=3
|
||||||
|
DfsEnable=0
|
||||||
|
DfsZeroWait=0
|
||||||
|
DfsZeroWaitCacTime=255
|
||||||
|
FineAGC=0
|
||||||
|
StreamMode=0
|
||||||
|
StreamModeMac0=
|
||||||
|
StreamModeMac1=
|
||||||
|
StreamModeMac2=
|
||||||
|
StreamModeMac3=
|
||||||
|
CSPeriod=6
|
||||||
|
RDRegion=
|
||||||
|
StationKeepAlive=0
|
||||||
|
DfsLowerLimit=0
|
||||||
|
DfsUpperLimit=0
|
||||||
|
DfsOutdoor=0
|
||||||
|
SymRoundFromCfg=0
|
||||||
|
BusyIdleFromCfg=0
|
||||||
|
DfsRssiHighFromCfg=0
|
||||||
|
DfsRssiLowFromCfg=0
|
||||||
|
DFSParamFromConfig=0
|
||||||
|
FCCParamCh0=
|
||||||
|
FCCParamCh1=
|
||||||
|
FCCParamCh2=
|
||||||
|
FCCParamCh3=
|
||||||
|
CEParamCh0=
|
||||||
|
CEParamCh1=
|
||||||
|
CEParamCh2=
|
||||||
|
CEParamCh3=
|
||||||
|
JAPParamCh0=
|
||||||
|
JAPParamCh1=
|
||||||
|
JAPParamCh2=
|
||||||
|
JAPParamCh3=
|
||||||
|
JAPW53ParamCh0=
|
||||||
|
JAPW53ParamCh1=
|
||||||
|
JAPW53ParamCh2=
|
||||||
|
JAPW53ParamCh3=
|
||||||
|
FixDfsLimit=0
|
||||||
|
LongPulseRadarTh=0
|
||||||
|
AvgRssiReq=0
|
||||||
|
DFS_R66=0
|
||||||
|
BlockCh=
|
||||||
|
PreAuth=0
|
||||||
|
WapiPsk1=0123456789
|
||||||
|
WapiPsk2=
|
||||||
|
WapiPsk3=
|
||||||
|
WapiPsk4=
|
||||||
|
WapiPsk5=
|
||||||
|
WapiPsk6=
|
||||||
|
WapiPsk7=
|
||||||
|
WapiPsk8=
|
||||||
|
WapiPskType=0
|
||||||
|
Wapiifname=
|
||||||
|
WapiAsCertPath=
|
||||||
|
WapiUserCertPath=
|
||||||
|
WapiAsIpAddr=
|
||||||
|
WapiAsPort=
|
||||||
|
RekeyMethod=DISABLE
|
||||||
|
RekeyInterval=3600
|
||||||
|
PMKCachePeriod=10
|
||||||
|
MeshAutoLink=0
|
||||||
|
MeshAuthMode=
|
||||||
|
MeshEncrypType=
|
||||||
|
MeshDefaultkey=0
|
||||||
|
MeshWEPKEY=
|
||||||
|
MeshWPAKEY=
|
||||||
|
MeshId=
|
||||||
|
HSCounter=0
|
||||||
|
HT_HTC=${HT_HTC}
|
||||||
|
HT_RDG=1
|
||||||
|
HT_LDPC=${ldpc:-1}
|
||||||
|
HT_LinkAdapt=0
|
||||||
|
HT_OpMode=${greenfield:-0}
|
||||||
|
HT_MpduDensity=4
|
||||||
|
HT_EXTCHA=${EXTCHA}
|
||||||
|
HT_BW=${HT_BW:-0}
|
||||||
|
HT_AutoBA=1
|
||||||
|
HT_BADecline=0
|
||||||
|
HT_AMSDU=1
|
||||||
|
HT_BAWinSize=64
|
||||||
|
HT_GI=${HT_GI:-1}
|
||||||
|
HT_STBC=${tx_stbc:-1}
|
||||||
|
HT_LDPC=${ldpc:-1}
|
||||||
|
HT_MCS=33
|
||||||
|
VHT_BW=${VHT_BW:-0}
|
||||||
|
VHT_SGI=1
|
||||||
|
VHT_STBC=${tx_stbc:-1}
|
||||||
|
VHT_BW_SIGNAL=0
|
||||||
|
VHT_DisallowNonVHT=${VHT_DisallowNonVHT:-0}
|
||||||
|
VHT_LDPC=${ldpc:-1}
|
||||||
|
#HT_TxStream=2
|
||||||
|
#HT_RxStream=2
|
||||||
|
HT_PROTECT=0
|
||||||
|
HT_DisallowTKIP=${HT_DisallowTKIP:-0}
|
||||||
|
HT_BSSCoexistence=${HT_CE:-1}
|
||||||
|
HT_BSSCoexApCntThr=10
|
||||||
|
GreenAP=${greenap:-0}
|
||||||
|
WscConfMode=0
|
||||||
|
WscConfStatus=1
|
||||||
|
WCNTest=0
|
||||||
|
RADIUS_Server=
|
||||||
|
RADIUS_Port=1812
|
||||||
|
RADIUS_Key1=
|
||||||
|
RADIUS_Key2=
|
||||||
|
RADIUS_Key3=
|
||||||
|
RADIUS_Key4=
|
||||||
|
RADIUS_Key5=
|
||||||
|
RADIUS_Key6=
|
||||||
|
RADIUS_Key7=
|
||||||
|
RADIUS_Key8=
|
||||||
|
RADIUS_Acct_Server=
|
||||||
|
RADIUS_Acct_Port=1813
|
||||||
|
RADIUS_Acct_Key=
|
||||||
|
own_ip_addr=
|
||||||
|
Ethifname=
|
||||||
|
EAPifname=
|
||||||
|
PreAuthifname=
|
||||||
|
session_timeout_interval=0
|
||||||
|
idle_timeout_interval=0
|
||||||
|
WiFiTest=0
|
||||||
|
TGnWifiTest=0
|
||||||
|
ApCliEnable=0
|
||||||
|
ApCliSsid=
|
||||||
|
ApCliBssid=
|
||||||
|
ApCliAuthMode=
|
||||||
|
ApCliEncrypType=
|
||||||
|
ApCliWPAPSK=
|
||||||
|
ApCliDefaultKeyID=0
|
||||||
|
ApCliKey1Type=0
|
||||||
|
ApCliKey1Str=
|
||||||
|
ApCliKey2Type=0
|
||||||
|
ApCliKey2Str=
|
||||||
|
ApCliKey3Type=0
|
||||||
|
ApCliKey3Str=
|
||||||
|
ApCliKey4Type=0
|
||||||
|
ApCliKey4Str=
|
||||||
|
RadioOn=1
|
||||||
|
WscManufacturer=PandoraBox
|
||||||
|
WscModelName=PandoraBox Wireless Router
|
||||||
|
WscDeviceName=PandoraBox WiFi
|
||||||
|
WscModelNumber=
|
||||||
|
WscSerialNumber=
|
||||||
|
PMFMFPC=0
|
||||||
|
PMFMFPR=0
|
||||||
|
PMFSHA256=0
|
||||||
|
LoadCodeMethod=0
|
||||||
|
AutoChannelSkipList=${ACSSKIP}
|
||||||
|
MaxStaNum=${maxassoc:-0}
|
||||||
|
WirelessEvent=1
|
||||||
|
AuthFloodThreshold=64
|
||||||
|
AssocReqFloodThreshold=64
|
||||||
|
ReassocReqFloodThreshold=64
|
||||||
|
ProbeReqFloodThreshold=64
|
||||||
|
DisassocFloodThreshold=64
|
||||||
|
DeauthFloodThreshold=64
|
||||||
|
EapReqFloodThreshold=64
|
||||||
|
Thermal=100
|
||||||
|
EnhanceMultiClient=1
|
||||||
|
IgmpSnEnable=0
|
||||||
|
#DetectPhy=1
|
||||||
|
BGMultiClient=1
|
||||||
|
EDCCA=0
|
||||||
|
HT_MIMOPSMode=3
|
||||||
|
PandoraBoxSmart=${smart:-1}
|
||||||
|
RED_Enable=1
|
||||||
|
VOW_Airtime_Fairness_En=1
|
||||||
|
CP_SUPPORT=2
|
||||||
|
BandSteering=0
|
||||||
|
BndStrgRssiDiff=15
|
||||||
|
BndStrgRssiLow=-86
|
||||||
|
BndStrgAge=600000
|
||||||
|
BndStrgHoldTime=3000
|
||||||
|
BndStrgCheckTime=6000
|
||||||
|
SCSEnable=1
|
||||||
|
DyncVgaEnable=1
|
||||||
|
SkipLongRangeVga=0
|
||||||
|
VgaClamp=0
|
||||||
|
FastRoaming=0
|
||||||
|
AutoRoaming=0
|
||||||
|
FtSupport=0
|
||||||
|
FtRic=1;1;1;1
|
||||||
|
FtOtd=0;0;0;0
|
||||||
|
FtMdId1=A1
|
||||||
|
FtMdId2=A2
|
||||||
|
FtMdId3=A3
|
||||||
|
FtMdId4=A4
|
||||||
|
FtR0khId1=4f577274
|
||||||
|
FtR0khId2=4f577276
|
||||||
|
FtR0khId3=4f577278
|
||||||
|
FtR0khId4=4f57727A
|
||||||
|
BandDeltaRssi=-12
|
||||||
|
ApProbeRspTimes=3
|
||||||
|
#AuthRspFail=0
|
||||||
|
#AuthRspRssi=0
|
||||||
|
#AssocReqRssiThres=-68
|
||||||
|
#AssocRspIgnor=0
|
||||||
|
#KickStaRssiLow=-75
|
||||||
|
KickStaRssiLowPSM=-77
|
||||||
|
#KickStaRssiLowDelay=6
|
||||||
|
#ProbeRspRssi=-72
|
||||||
|
VideoClassifierEnable=1
|
||||||
|
VideoHighTxMode=1
|
||||||
|
VideoTurbine=1
|
||||||
|
VideoTxLifeTimeMode=1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
#接口配置生成
|
||||||
|
# STA模式
|
||||||
|
stacount=0
|
||||||
|
for_each_interface "sta" mt_dbdc_sta_vif_pre_config
|
||||||
|
|
||||||
|
# AP模式
|
||||||
|
# 统一设置的内容:
|
||||||
|
ApEncrypType=""
|
||||||
|
ApAuthMode=""
|
||||||
|
ApBssidNum=0
|
||||||
|
ApHideESSID=""
|
||||||
|
ApDefKId=""
|
||||||
|
ApK1Tp=""
|
||||||
|
ApK2Tp=""
|
||||||
|
ApK3Tp=""
|
||||||
|
ApK4Tp=""
|
||||||
|
|
||||||
|
for_each_interface "ap" mt_dbdc_ap_vif_pre_config
|
||||||
|
|
||||||
|
[ "$phy_name" == "ra0" ] && [ "$ApBssidNum" == "0" ] && mt_cmd ifconfig ra0 down
|
||||||
|
#For DBDC profile merging......
|
||||||
|
while [ $ApBssidNum -lt $RTWIFI_DEF_MAX_BSSID ]
|
||||||
|
do
|
||||||
|
ApEncrypType="${ApEncrypType}NONE;"
|
||||||
|
ApAuthMode="${ApAuthMode}OPEN;"
|
||||||
|
ApHideESSID="${ApHideESSID}0;"
|
||||||
|
ApDefKId="${ApDefKId}0;"
|
||||||
|
ApK1Tp="${ApK1Tp}0;"
|
||||||
|
ApK2Tp="${ApK2Tp}0;"
|
||||||
|
ApK3Tp="${ApK3Tp}0;"
|
||||||
|
ApK4Tp="${ApK4Tp}0;"
|
||||||
|
let ApBssidNum+=1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "AuthMode=${ApAuthMode%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "EncrypType=${ApEncrypType%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "HideSSID=${ApHideESSID%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "DefaultKeyID=${ApDefKId%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key1Type=${ApK1Tp%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key2Type=${ApK2Tp%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key3Type=${ApK3Tp%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "Key4Type=${ApK4Tp%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
|
||||||
|
# WDS接口数目
|
||||||
|
WDSBssidNum=0
|
||||||
|
WDSEN=0
|
||||||
|
WDSList=""
|
||||||
|
WDSEncType=""
|
||||||
|
WDSDefKeyID=""
|
||||||
|
WDSPhyMode=""
|
||||||
|
WDSTxMCS=""
|
||||||
|
for_each_interface "wds" mt_dbdc_wds_vif_pre_config
|
||||||
|
echo "WdsEnable=${WDSEN%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "WdsList=${WDSList%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "WdsEncrypType=${WdsEncType%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "WdsDefaultKeyID=${WDSDefKeyID%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "WdsPhyMode=${WDSPhyMode%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
echo "WdsTxMcs=${WDSTxMCS%?}" >> $RTWIFI_PROFILE_PATH
|
||||||
|
|
||||||
|
#接口上线
|
||||||
|
#加锁
|
||||||
|
echo "Pending..."
|
||||||
|
if lock -n $WIFI_OP_LOCK; then
|
||||||
|
sleep 3
|
||||||
|
RA_MAIN_UP=$(get_if_stat ra0)
|
||||||
|
drv_mt_dbdc_teardown $phy_name
|
||||||
|
RESET_IF=$(mt_dbdc_vif_down $phy_name)
|
||||||
|
echo "MT_DBDC:ra0:$RA_MAIN_UP.Later we'll restart $(echo ${RESET_IF} | tr '\n' ' ')"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
#Start root device
|
||||||
|
ifconfig ra0 up
|
||||||
|
#restore interfaces
|
||||||
|
sh $RTWIFI_CMD_OPATH
|
||||||
|
|
||||||
|
sh $RTWIFI_CMD_PATH
|
||||||
|
#重启HWNAT
|
||||||
|
[ -d /sys/module/hw_nat ] && {
|
||||||
|
/etc/init.d/hwacc restart
|
||||||
|
}
|
||||||
|
else
|
||||||
|
echo "Wait other process"
|
||||||
|
lock $WIFI_OP_LOCK
|
||||||
|
fi
|
||||||
|
#AP模式
|
||||||
|
ApIfCNT=0
|
||||||
|
for_each_interface "ap" mt_dbdc_ap_vif_post_config
|
||||||
|
#WDS接口
|
||||||
|
WDSBssidNum=0
|
||||||
|
for_each_interface "wds" mt_dbdc_wds_vif_post_config
|
||||||
|
#STA模式
|
||||||
|
stacount=0
|
||||||
|
for_each_interface "sta" mt_dbdc_sta_vif_post_config
|
||||||
|
|
||||||
|
#设置无线上线
|
||||||
|
wireless_set_up
|
||||||
|
#解锁
|
||||||
|
lock -u $WIFI_OP_LOCK
|
||||||
|
}
|
||||||
|
add_driver mt_dbdc
|
75
package/lean/mt/drivers/mt7615d/files/lib/wifi/mt_dbdc.sh
Normal file
75
package/lean/mt/drivers/mt7615d/files/lib/wifi/mt_dbdc.sh
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014 OpenWrt
|
||||||
|
# Copyright (C) 2013-2015 D-Team Technology Co.,Ltd. ShenZhen
|
||||||
|
# Copyright (c) 2005-2015, lintel <lintel.huang@gmail.com>
|
||||||
|
# Copyright (c) 2013, Hoowa <hoowa.sun@gmail.com>
|
||||||
|
# Copyright (c) 2015-2017, GuoGuo <gch981213@gmail.com>
|
||||||
|
#
|
||||||
|
# Detect script for MT7615 DBDC mode
|
||||||
|
#
|
||||||
|
# 嘿,对着屏幕的哥们,为了表示对原作者辛苦工作的尊重,任何引用跟借用都不允许你抹去所有作者的信息,请保留这段话。
|
||||||
|
#
|
||||||
|
|
||||||
|
append DRIVERS "mt_dbdc"
|
||||||
|
|
||||||
|
. /lib/functions.sh
|
||||||
|
. /lib/functions/system.sh
|
||||||
|
|
||||||
|
mt_get_first_if_mac() {
|
||||||
|
local wlan_mac=""
|
||||||
|
factory_part=$(find_mtd_part factory)
|
||||||
|
dd bs=1 skip=4 count=6 if=$factory_part 2>/dev/null | /usr/sbin/maccalc bin2mac
|
||||||
|
}
|
||||||
|
|
||||||
|
detect_mt_dbdc() {
|
||||||
|
local macaddr
|
||||||
|
[ -d /sys/module/mt_wifi ] && [ $( grep -c ra0 /proc/net/dev) -eq 1 ] && {
|
||||||
|
for phyname in ra0 rax0; do
|
||||||
|
config_get type $phyname type
|
||||||
|
macaddr=$(mt_get_first_if_mac)
|
||||||
|
[ "$type" == "mt_dbdc" ] || {
|
||||||
|
case $phyname in
|
||||||
|
ra0)
|
||||||
|
hwmode=11g
|
||||||
|
htmode=HT20
|
||||||
|
pb_smart=1
|
||||||
|
noscan=0
|
||||||
|
ssid="OpenWRT-2.4G-$(echo $macaddr | awk -F ":" '{print $4""$5""$6 }'| tr a-z A-Z)"
|
||||||
|
;;
|
||||||
|
rax0)
|
||||||
|
hwmode=11a
|
||||||
|
htmode=VHT80
|
||||||
|
ssid="OpenWRT-5G-$(maccalc add $macaddr 3145728 | awk -F ":" '{print $4""$5""$6 }'| tr a-z A-Z)"
|
||||||
|
pb_smart=0
|
||||||
|
noscan=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# [ -n "$macaddr" ] && {
|
||||||
|
# dev_id="set wireless.${phyname}.macaddr=${macaddr}"
|
||||||
|
# }
|
||||||
|
uci -q batch <<-EOF
|
||||||
|
set wireless.${phyname}=wifi-device
|
||||||
|
set wireless.${phyname}.type=mt_dbdc
|
||||||
|
set wireless.${phyname}.hwmode=$hwmode
|
||||||
|
set wireless.${phyname}.channel=auto
|
||||||
|
set wireless.${phyname}.txpower=100
|
||||||
|
set wireless.${phyname}.htmode=$htmode
|
||||||
|
set wireless.${phyname}.country=CN
|
||||||
|
set wireless.${phyname}.txburst=1
|
||||||
|
set wireless.${phyname}.noscan=$noscan
|
||||||
|
set wireless.${phyname}.smart=$pb_smart
|
||||||
|
|
||||||
|
set wireless.default_${phyname}=wifi-iface
|
||||||
|
set wireless.default_${phyname}.device=${phyname}
|
||||||
|
set wireless.default_${phyname}.network=lan
|
||||||
|
set wireless.default_${phyname}.mode=ap
|
||||||
|
set wireless.default_${phyname}.ssid=${ssid}
|
||||||
|
set wireless.default_${phyname}.encryption=none
|
||||||
|
EOF
|
||||||
|
uci -q commit wireless
|
||||||
|
}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
}
|
@ -4661,6 +4661,11 @@ max_len += OWETRANSIE_LINE_LEN;
|
|||||||
|
|
||||||
memset(msg, 0, TotalLen);
|
memset(msg, 0, TotalLen);
|
||||||
|
|
||||||
|
WaitCnt = 0;
|
||||||
|
|
||||||
|
while ((ScanRunning(pAdapter) == TRUE) && (WaitCnt++ < 200))
|
||||||
|
OS_WAIT(500);
|
||||||
|
|
||||||
if (pAdapter->ScanTab.BssNr == 0) {
|
if (pAdapter->ScanTab.BssNr == 0) {
|
||||||
sprintf(msg, "No BssInfo\n");
|
sprintf(msg, "No BssInfo\n");
|
||||||
wrq->u.data.length = strlen(msg);
|
wrq->u.data.length = strlen(msg);
|
||||||
@ -4697,11 +4702,6 @@ max_len += OWETRANSIE_LINE_LEN;
|
|||||||
sprintf(msg + strlen(msg) - 1, "%-10s\n", " OWETranIe");
|
sprintf(msg + strlen(msg) - 1, "%-10s\n", " OWETranIe");
|
||||||
#endif /* APCLI_OWE_SUPPORT */
|
#endif /* APCLI_OWE_SUPPORT */
|
||||||
|
|
||||||
WaitCnt = 0;
|
|
||||||
|
|
||||||
while ((ScanRunning(pAdapter) == TRUE) && (WaitCnt++ < 200))
|
|
||||||
OS_WAIT(500);
|
|
||||||
|
|
||||||
|
|
||||||
for (i = bss_start_idx; i < pAdapter->ScanTab.BssNr; i++) {
|
for (i = bss_start_idx; i < pAdapter->ScanTab.BssNr; i++) {
|
||||||
pBss = &pAdapter->ScanTab.BssEntry[i];
|
pBss = &pAdapter->ScanTab.BssEntry[i];
|
||||||
@ -4948,7 +4948,7 @@ VOID RTMPIoctlGetMacTableStaInfo(
|
|||||||
IN RTMP_IOCTL_INPUT_STRUCT *wrq)
|
IN RTMP_IOCTL_INPUT_STRUCT *wrq)
|
||||||
{
|
{
|
||||||
INT i;
|
INT i;
|
||||||
BOOLEAN need_send = FALSE;
|
BOOLEAN need_send;
|
||||||
RT_802_11_MAC_TABLE *pMacTab = NULL;
|
RT_802_11_MAC_TABLE *pMacTab = NULL;
|
||||||
PRT_802_11_MAC_ENTRY pDst;
|
PRT_802_11_MAC_ENTRY pDst;
|
||||||
MAC_TABLE_ENTRY *pEntry;
|
MAC_TABLE_ENTRY *pEntry;
|
||||||
@ -4965,12 +4965,11 @@ VOID RTMPIoctlGetMacTableStaInfo(
|
|||||||
for (i = 0; VALID_UCAST_ENTRY_WCID(pAd, i); i++) {
|
for (i = 0; VALID_UCAST_ENTRY_WCID(pAd, i); i++) {
|
||||||
pEntry = &(pAd->MacTab.Content[i]);
|
pEntry = &(pAd->MacTab.Content[i]);
|
||||||
|
|
||||||
|
need_send = FALSE;
|
||||||
if (pEntry->wdev != NULL) {
|
if (pEntry->wdev != NULL) {
|
||||||
/* As per new GUI design ifname with index as ra0/ra1/rai0/rai1/... (may not work with older GUI)*/
|
/* As per new GUI design ifname with index as ra0/ra1/rai0/rai1/... (may not work with older GUI)*/
|
||||||
if (!strcmp(wrq->ifr_ifrn.ifrn_name, pEntry->wdev->if_dev->name))
|
if (!strcmp(wrq->ifr_ifrn.ifrn_name, pEntry->wdev->if_dev->name))
|
||||||
need_send = TRUE;
|
need_send = TRUE;
|
||||||
else
|
|
||||||
need_send = FALSE;
|
|
||||||
}
|
}
|
||||||
if (IS_ENTRY_CLIENT(pEntry) && (pEntry->Sst == SST_ASSOC) && (need_send == TRUE)) {
|
if (IS_ENTRY_CLIENT(pEntry) && (pEntry->Sst == SST_ASSOC) && (need_send == TRUE)) {
|
||||||
pDst = &pMacTab->Entry[pMacTab->Num];
|
pDst = &pMacTab->Entry[pMacTab->Num];
|
||||||
|
@ -18,9 +18,9 @@
|
|||||||
#include "rt_config.h"
|
#include "rt_config.h"
|
||||||
|
|
||||||
/*Local definition*/
|
/*Local definition*/
|
||||||
#define FIRST_AP_2G_PROFILE_PATH "/etc/Wireless/RT2860/RT2860_2G.dat"
|
#define FIRST_AP_2G_PROFILE_PATH "/tmp/profiles/mt_dbdc_2g.dat"
|
||||||
#define FIRST_AP_5G_PROFILE_PATH "/etc/Wireless/RT2860/RT2860_5G.dat"
|
#define FIRST_AP_5G_PROFILE_PATH "/tmp/profiles/mt_dbdc_5g.dat"
|
||||||
#define FIRST_AP_MERGE_PROFILE_PATH ""
|
#define FIRST_AP_MERGE_PROFILE_PATH "/tmp/profiles/mt_dbdc.dat"
|
||||||
#if defined(BB_SOC) && !defined(MULTI_INF_SUPPORT)
|
#if defined(BB_SOC) && !defined(MULTI_INF_SUPPORT)
|
||||||
#define FIRST_AP_5G_DEVNAME "rai0"
|
#define FIRST_AP_5G_DEVNAME "rai0"
|
||||||
#define FIRST_MBSSID_5G_DEVNAME "rai"
|
#define FIRST_MBSSID_5G_DEVNAME "rai"
|
||||||
|
@ -70,6 +70,10 @@ CFG80211_Scaning((VOID *)__pAd, __BssIdx, __ChanId, __pFrame, \
|
|||||||
#define RT_CFG80211_LOST_AP_INFORM(__pAd) \
|
#define RT_CFG80211_LOST_AP_INFORM(__pAd) \
|
||||||
CFG80211_LostApInform((VOID *)__pAd);
|
CFG80211_LostApInform((VOID *)__pAd);
|
||||||
#endif /*CONFIG_STA_SUPPORT || APCLI_CFG80211_SUPPORT */
|
#endif /*CONFIG_STA_SUPPORT || APCLI_CFG80211_SUPPORT */
|
||||||
|
#ifdef RT_CFG80211_P2P_CONCURRENT_DEVICE
|
||||||
|
#define RT_CFG80211_LOST_GO_INFORM(__pAd) \
|
||||||
|
CFG80211_LostP2pGoInform((VOID *)__pAd);
|
||||||
|
#endif /*RT_CFG80211_P2P_CONCURRENT_DEVICE*/
|
||||||
#define RT_CFG80211_REINIT(__pAd, __wdev) \
|
#define RT_CFG80211_REINIT(__pAd, __wdev) \
|
||||||
CFG80211_SupBandReInit((VOID *)__pAd, (VOID *)__wdev);
|
CFG80211_SupBandReInit((VOID *)__pAd, (VOID *)__wdev);
|
||||||
|
|
||||||
@ -118,7 +122,7 @@ CFG80211_Scaning((VOID *)__pAd, __BssIdx, __ChanId, __pFrame, \
|
|||||||
#define P2P_NOA_TX_ON 0x01
|
#define P2P_NOA_TX_ON 0x01
|
||||||
#define P2P_NOA_RX_ON 0x02
|
#define P2P_NOA_RX_ON 0x02
|
||||||
|
|
||||||
#define WLAN_AKM_SUITE_8021X 0x000FAC01
|
//#define WLAN_AKM_SUITE_8021X 0x000FAC01
|
||||||
#define WDEV_NOT_FOUND -1
|
#define WDEV_NOT_FOUND -1
|
||||||
|
|
||||||
|
|
||||||
@ -188,6 +192,7 @@ VOID CFG80211_ConnectResultInform(
|
|||||||
UCHAR *pRspIe, UINT32 RspIeLen, UCHAR FlgIsSuccess);
|
UCHAR *pRspIe, UINT32 RspIeLen, UCHAR FlgIsSuccess);
|
||||||
VOID CFG80211DRV_PmkidConfig(VOID *pAdOrg, VOID *pData);
|
VOID CFG80211DRV_PmkidConfig(VOID *pAdOrg, VOID *pData);
|
||||||
VOID CFG80211_LostApInform(VOID *pAdCB);
|
VOID CFG80211_LostApInform(VOID *pAdCB);
|
||||||
|
VOID CFG80211_LostP2pGoInform(VOID *pAdCB);
|
||||||
|
|
||||||
INT CFG80211_StaPortSecured(
|
INT CFG80211_StaPortSecured(
|
||||||
VOID *pAdCB,
|
VOID *pAdCB,
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#ifdef DEFAULT_5G_PROFILE
|
#ifdef DBDC_MODE
|
||||||
UCHAR l1profile_default[] = {
|
UCHAR l1profile_default[] = {
|
||||||
"Default\n\
|
"Default\n\
|
||||||
INDEX0=MT7615\n\
|
INDEX0=MT7615\n\
|
||||||
INDEX0_profile_path=/etc/Wireless/RT2860/RT2860_2G.dat;/etc/Wireless/RT2860/RT2860_5G.dat\n\
|
INDEX0_profile_path=/tmp/profiles/mt_dbdc_2g.dat;/tmp/profiles/mt_dbdc_5g.dat\n\
|
||||||
INDEX0_EEPROM_offset=0x0\n\
|
INDEX0_EEPROM_offset=0x0\n\
|
||||||
INDEX0_EEPROM_size=0x4000\n\
|
INDEX0_EEPROM_size=0x4000\n\
|
||||||
INDEX0_EEPROM_name=e2p\n\
|
INDEX0_EEPROM_name=e2p\n\
|
||||||
@ -13,27 +13,15 @@ INDEX0_apcli_ifname=apcli;apclix\n\
|
|||||||
INDEX0_mesh_ifname=mesh;meshx\n\
|
INDEX0_mesh_ifname=mesh;meshx\n\
|
||||||
INDEX0_nvram_zone=RT2860\n\
|
INDEX0_nvram_zone=RT2860\n\
|
||||||
INDEX0_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
INDEX0_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
||||||
INDEX0_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n\
|
INDEX0_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n"
|
||||||
INDEX1=MT7615\n\
|
|
||||||
INDEX1_profile_path=/etc/Wireless/iNIC/iNIC_ap.dat\n\
|
|
||||||
INDEX1_EEPROM_offset=0x8000\n\
|
|
||||||
INDEX1_EEPROM_size=0x4000\n\
|
|
||||||
INDEX1_EEPROM_name=e2p\n\
|
|
||||||
INDEX1_main_ifname=rai0\n\
|
|
||||||
INDEX1_ext_ifname=rai\n\
|
|
||||||
INDEX1_wds_ifname=wdsi\n\
|
|
||||||
INDEX1_apcli_ifname=apclii\n\
|
|
||||||
INDEX1_mesh_ifname=meshi\n\
|
|
||||||
INDEX1_nvram_zone=RTDEV\n\
|
|
||||||
INDEX1_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
|
||||||
INDEX1_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
UCHAR l1profile_default[] = {
|
UCHAR l1profile_default[] = {
|
||||||
"Default\n\
|
"Default\n\
|
||||||
INDEX0=MT7615\n\
|
INDEX0=MT7615\n\
|
||||||
INDEX0_profile_path=/etc/Wireless/RT2860/RT2860.dat\n\
|
INDEX0_profile_path=/etc/wireless/mt7615/mt7615.1.dat\n\
|
||||||
INDEX0_EEPROM_offset=0x0\n\
|
INDEX0_EEPROM_offset=0x0\n\
|
||||||
INDEX0_EEPROM_size=0x4000\n\
|
INDEX0_EEPROM_size=0x4000\n\
|
||||||
INDEX0_EEPROM_name=e2p\n\
|
INDEX0_EEPROM_name=e2p\n\
|
||||||
@ -41,12 +29,10 @@ INDEX0_main_ifname=ra0\n\
|
|||||||
INDEX0_ext_ifname=ra\n\
|
INDEX0_ext_ifname=ra\n\
|
||||||
INDEX0_wds_ifname=wds\n\
|
INDEX0_wds_ifname=wds\n\
|
||||||
INDEX0_apcli_ifname=apcli\n\
|
INDEX0_apcli_ifname=apcli\n\
|
||||||
INDEX0_mesh_ifname=mesh\n\
|
|
||||||
INDEX0_nvram_zone=RT2860\n\
|
|
||||||
INDEX0_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
INDEX0_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
||||||
INDEX0_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n\
|
INDEX0_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n\
|
||||||
INDEX1=MT7615\n\
|
INDEX1=MT7615\n\
|
||||||
INDEX1_profile_path=/etc/Wireless/iNIC/iNIC_ap.dat\n\
|
INDEX1_profile_path=/etc/wireless/mt7615/mt7615.2.dat\n\
|
||||||
INDEX1_EEPROM_offset=0x8000\n\
|
INDEX1_EEPROM_offset=0x8000\n\
|
||||||
INDEX1_EEPROM_size=0x4000\n\
|
INDEX1_EEPROM_size=0x4000\n\
|
||||||
INDEX1_EEPROM_name=e2p\n\
|
INDEX1_EEPROM_name=e2p\n\
|
||||||
@ -54,35 +40,8 @@ INDEX1_main_ifname=rai0\n\
|
|||||||
INDEX1_ext_ifname=rai\n\
|
INDEX1_ext_ifname=rai\n\
|
||||||
INDEX1_wds_ifname=wdsi\n\
|
INDEX1_wds_ifname=wdsi\n\
|
||||||
INDEX1_apcli_ifname=apclii\n\
|
INDEX1_apcli_ifname=apclii\n\
|
||||||
INDEX1_mesh_ifname=meshi\n\
|
|
||||||
INDEX1_nvram_zone=RTDEV\n\
|
|
||||||
INDEX1_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
INDEX1_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
||||||
INDEX1_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n\
|
INDEX1_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n"
|
||||||
INDEX2=MT7615\n\
|
|
||||||
INDEX2_profile_path=/etc/Wireless/WIFI3/RT2870AP.dat\n\
|
|
||||||
INDEX2_EEPROM_offset=0x4000\n\
|
|
||||||
INDEX2_EEPROM_size=0x4000\n\
|
|
||||||
INDEX2_EEPROM_name=e2p\n\
|
|
||||||
INDEX2_main_ifname=rae0\n\
|
|
||||||
INDEX2_ext_ifname=rae\n\
|
|
||||||
INDEX2_wds_ifname=wdsex\n\
|
|
||||||
INDEX2_apcli_ifname=apclie\n\
|
|
||||||
INDEX2_mesh_ifname=meshe\n\
|
|
||||||
INDEX2_nvram_zone=WIFI3\n\
|
|
||||||
INDEX2_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
|
||||||
INDEX2_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n\
|
|
||||||
INDEX3=MT7615A\n\
|
|
||||||
INDEX3_profile_path=/etc/Wireless/MT7615A_B0_5G.dat;/etc/Wireless/MT7615A_B1_5G.dat\n\
|
|
||||||
INDEX3_EEPROM_offset=0x0\n\
|
|
||||||
INDEX3_EEPROM_size=0x4000\n\
|
|
||||||
INDEX3_EEPROM_name=e2p\n\
|
|
||||||
INDEX3_main_ifname=ra0;rax0\n\
|
|
||||||
INDEX3_ext_ifname=ra;rax\n\
|
|
||||||
INDEX3_wds_ifname=wds;wdsx\n\
|
|
||||||
INDEX3_apcli_ifname=apcli;apclix\n\
|
|
||||||
INDEX3_mesh_ifname=mesh;meshx\n\
|
|
||||||
INDEX3_nvram_zone=RT2860\n\
|
|
||||||
INDEX3_single_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU.dat\n\
|
|
||||||
INDEX3_bf_sku_path=/etc_ro/Wireless/RT2860AP/SingleSKU_BF.dat\n"
|
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
#endif
|
@ -5288,6 +5288,7 @@ typedef struct _CFG80211_CONTROL {
|
|||||||
/* MainDevice Info. */
|
/* MainDevice Info. */
|
||||||
CFG80211_VIF_DEV cfg80211MainDev;
|
CFG80211_VIF_DEV cfg80211MainDev;
|
||||||
#if defined(RT_CFG80211_P2P_CONCURRENT_DEVICE) || defined(CFG80211_MULTI_STA)
|
#if defined(RT_CFG80211_P2P_CONCURRENT_DEVICE) || defined(CFG80211_MULTI_STA)
|
||||||
|
BOOLEAN bP2pCliPmEnable;
|
||||||
/* For add_virtual_intf */
|
/* For add_virtual_intf */
|
||||||
CFG80211_VIF_DEV_SET Cfg80211VifDevSet;
|
CFG80211_VIF_DEV_SET Cfg80211VifDevSet;
|
||||||
#endif /* RT_CFG80211_P2P_CONCURRENT_DEVICE || CFG80211_MULTI_STA */
|
#endif /* RT_CFG80211_P2P_CONCURRENT_DEVICE || CFG80211_MULTI_STA */
|
||||||
|
@ -437,6 +437,6 @@ typedef struct _PACKET_INFO {
|
|||||||
extern VOID *adapt_list[MAX_NUM_OF_INF];
|
extern VOID *adapt_list[MAX_NUM_OF_INF];
|
||||||
#endif /* MULTI_INF_SUPPORT */
|
#endif /* MULTI_INF_SUPPORT */
|
||||||
#ifdef CREATE_ALL_INTERFACE_AT_INIT
|
#ifdef CREATE_ALL_INTERFACE_AT_INIT
|
||||||
#define MAX_MBSS_NUM 8
|
#define MAX_MBSS_NUM 4
|
||||||
#endif
|
#endif
|
||||||
#endif /* __RT_COMM_H__ */
|
#endif /* __RT_COMM_H__ */
|
||||||
|
@ -5397,9 +5397,9 @@ VOID PeerPairMsg4Action(
|
|||||||
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_OFF, ("PTK:"));
|
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_OFF, ("PTK:"));
|
||||||
|
|
||||||
for (i = 0; i < 64; i++)
|
for (i = 0; i < 64; i++)
|
||||||
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_OFF, ("%02x", pSecConfig->PTK[i]));
|
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_OFF, (KERN_CONT"%02x", pSecConfig->PTK[i]));
|
||||||
|
|
||||||
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_OFF, ("\n"));
|
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_OFF, (KERN_CONT"\n"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* 5. init Group 2-way handshake if necessary.*/
|
/* 5. init Group 2-way handshake if necessary.*/
|
||||||
|
@ -801,6 +801,7 @@ void linux_pci_unmap_single(void *handle, ra_dma_addr_t dma_addr, size_t size, i
|
|||||||
#define PCI_MAP_SINGLE_DEV(_pAd, _ptr, _size, _sd_idx, _dir) \
|
#define PCI_MAP_SINGLE_DEV(_pAd, _ptr, _size, _sd_idx, _dir) \
|
||||||
linux_pci_map_single(((POS_COOKIE)(_pAd->OS_Cookie))->pDev, _ptr, _size, _sd_idx, _dir)
|
linux_pci_map_single(((POS_COOKIE)(_pAd->OS_Cookie))->pDev, _ptr, _size, _sd_idx, _dir)
|
||||||
|
|
||||||
|
#undef DMA_MAPPING_ERROR
|
||||||
#define DMA_MAPPING_ERROR(_handle, _ptr) \
|
#define DMA_MAPPING_ERROR(_handle, _ptr) \
|
||||||
dma_mapping_error(&((struct pci_dev *)(_handle))->dev, _ptr)
|
dma_mapping_error(&((struct pci_dev *)(_handle))->dev, _ptr)
|
||||||
|
|
||||||
|
@ -32,6 +32,22 @@
|
|||||||
#include <linux/wireless.h>
|
#include <linux/wireless.h>
|
||||||
#include "rtmp_def.h"
|
#include "rtmp_def.h"
|
||||||
|
|
||||||
|
static const UCHAR Cfg80211_Chan[] = {
|
||||||
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, //14
|
||||||
|
|
||||||
|
/* 802.11 UNI / HyperLan 2 */
|
||||||
|
36, 40, 44, 48, 52, 56, 60, 64, //8
|
||||||
|
|
||||||
|
/* 802.11 HyperLan 2 */
|
||||||
|
100, 104, 108, 112, 116, 120, 124, 128, 132, 136, //10
|
||||||
|
|
||||||
|
/* 802.11 UNII */
|
||||||
|
140, 144, 149, 153, 157, 161, 165, 169, 173, //9
|
||||||
|
|
||||||
|
/* Japan */
|
||||||
|
184, 188, 192, 196, 208, 212, 216, //7
|
||||||
|
};
|
||||||
|
|
||||||
struct iw_priv_args ap_privtab[] = {
|
struct iw_priv_args ap_privtab[] = {
|
||||||
{
|
{
|
||||||
RTPRIV_IOCTL_SET,
|
RTPRIV_IOCTL_SET,
|
||||||
@ -47,7 +63,7 @@ struct iw_priv_args ap_privtab[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
RTPRIV_IOCTL_GSITESURVEY,
|
RTPRIV_IOCTL_GSITESURVEY,
|
||||||
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,
|
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
|
||||||
"get_site_survey"
|
"get_site_survey"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -67,7 +83,7 @@ struct iw_priv_args ap_privtab[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
RTPRIV_IOCTL_E2P,
|
RTPRIV_IOCTL_E2P,
|
||||||
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | 1024,
|
IW_PRIV_TYPE_CHAR | 1024, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_MASK,
|
||||||
"e2p"
|
"e2p"
|
||||||
},
|
},
|
||||||
#if defined(DBG) || (defined(BB_SOC) && defined(CONFIG_ATE))
|
#if defined(DBG) || (defined(BB_SOC) && defined(CONFIG_ATE))
|
||||||
@ -131,6 +147,44 @@ const struct iw_handler_def rt28xx_ap_iw_handler_def = {
|
|||||||
};
|
};
|
||||||
#endif /* CONFIG_APSTA_MIXED_SUPPORT */
|
#endif /* CONFIG_APSTA_MIXED_SUPPORT */
|
||||||
|
|
||||||
|
static int rtw_ch2freq(int chan)
|
||||||
|
{
|
||||||
|
/* see 802.11 17.3.8.3.2 and Annex J
|
||||||
|
* there are overlapping channel numbers in 5GHz and 2GHz bands */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RTK: don't consider the overlapping channel numbers: 5G channel <= 14,
|
||||||
|
* because we don't support it. simply judge from channel number
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (chan >= 1 && chan <= 14) {
|
||||||
|
if (chan == 14)
|
||||||
|
return 2484;
|
||||||
|
else if (chan < 14)
|
||||||
|
return 2407 + chan * 5;
|
||||||
|
} else if (chan >= 36 && chan <= 177)
|
||||||
|
return 5000 + chan * 5;
|
||||||
|
|
||||||
|
return 0; /* not supported */
|
||||||
|
}
|
||||||
|
|
||||||
|
static void setChans(struct iw_range *prange) {
|
||||||
|
/* channels */
|
||||||
|
int i;
|
||||||
|
int NumOfChan = CFG80211_NUM_OF_CHAN_2GHZ + CFG80211_NUM_OF_CHAN_5GHZ;
|
||||||
|
if (NumOfChan > 32) {
|
||||||
|
// iw_range::freq cannot exceed 32 items
|
||||||
|
NumOfChan = 32;
|
||||||
|
}
|
||||||
|
for (i = 0; i < NumOfChan; i++) {
|
||||||
|
prange->freq[i].i = Cfg80211_Chan[i];
|
||||||
|
prange->freq[i].e = 6;
|
||||||
|
prange->freq[i].m = rtw_ch2freq(Cfg80211_Chan[i]);
|
||||||
|
}
|
||||||
|
prange->num_channels = NumOfChan;
|
||||||
|
prange->num_frequency = NumOfChan;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
INT rt28xx_ap_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
|
INT rt28xx_ap_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
|
||||||
{
|
{
|
||||||
@ -285,9 +339,9 @@ INT rt28xx_ap_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
|
|||||||
ULONG Channel;
|
ULONG Channel;
|
||||||
|
|
||||||
RTMP_DRIVER_CHANNEL_GET(pAd, pIoctlConfig->apidx, &Channel);
|
RTMP_DRIVER_CHANNEL_GET(pAd, pIoctlConfig->apidx, &Channel);
|
||||||
wrqin->u.freq.m = Channel; /*wdev->channel; */
|
wrqin->u.freq.m = rtw_ch2freq(Channel); /*wdev->channel; */
|
||||||
wrqin->u.freq.e = 0;
|
wrqin->u.freq.e = 6;
|
||||||
wrqin->u.freq.i = 0;
|
wrqin->u.freq.i = Channel;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -365,7 +419,17 @@ INT rt28xx_ap_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
|
|||||||
|
|
||||||
memset(prange, 0, sizeof(struct iw_range));
|
memset(prange, 0, sizeof(struct iw_range));
|
||||||
prange->we_version_compiled = WIRELESS_EXT;
|
prange->we_version_compiled = WIRELESS_EXT;
|
||||||
prange->we_version_source = 14;
|
prange->we_version_source = 16;
|
||||||
|
prange->retry_capa = IW_RETRY_LIMIT;
|
||||||
|
prange->retry_flags = IW_RETRY_LIMIT;
|
||||||
|
prange->min_retry = 0;
|
||||||
|
prange->max_retry = 255;
|
||||||
|
prange->min_rts = 0;
|
||||||
|
prange->max_rts = 2347;
|
||||||
|
prange->min_frag = 256;
|
||||||
|
prange->max_frag = 2346;
|
||||||
|
|
||||||
|
prange->max_encoding_tokens = 4;
|
||||||
/*
|
/*
|
||||||
* what is correct max? This was not
|
* what is correct max? This was not
|
||||||
* documented exactly. At least
|
* documented exactly. At least
|
||||||
@ -374,6 +438,16 @@ INT rt28xx_ap_ioctl(struct net_device *net_dev, struct ifreq *rq, int cmd)
|
|||||||
prange->max_qual.qual = 100;
|
prange->max_qual.qual = 100;
|
||||||
prange->max_qual.level = 0; /* dB */
|
prange->max_qual.level = 0; /* dB */
|
||||||
prange->max_qual.noise = 0; /* dB */
|
prange->max_qual.noise = 0; /* dB */
|
||||||
|
|
||||||
|
/* channels */
|
||||||
|
setChans(prange);
|
||||||
|
|
||||||
|
/* encrypt */
|
||||||
|
prange->enc_capa |= (IW_ENC_CAPA_CIPHER_TKIP |
|
||||||
|
IW_ENC_CAPA_WPA |
|
||||||
|
IW_ENC_CAPA_CIPHER_CCMP |
|
||||||
|
IW_ENC_CAPA_WPA2);
|
||||||
|
|
||||||
len = copy_to_user(wrq->u.data.pointer, prange, sizeof(struct iw_range));
|
len = copy_to_user(wrq->u.data.pointer, prange, sizeof(struct iw_range));
|
||||||
os_free_mem(prange);
|
os_free_mem(prange);
|
||||||
}
|
}
|
||||||
|
@ -1687,6 +1687,30 @@ static void CFG80211_OpsMgmtFrameRegister(
|
|||||||
CFG80211DBG(DBG_LVL_ERROR, ("Unkown frame_type = %x, req = %d\n", frame_type, reg));
|
CFG80211DBG(DBG_LVL_ERROR, ("Unkown frame_type = %x, req = %d\n", frame_type, reg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CPTCFG_BACKPORTED_CFG80211_MODULE
|
||||||
|
static void CFG80211_OpsUpdateMgmtFrameRegistrations(
|
||||||
|
struct wiphy *pWiphy,
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
struct mgmt_frame_regs *upd)
|
||||||
|
{
|
||||||
|
VOID *pAd;
|
||||||
|
struct net_device *dev = NULL;
|
||||||
|
u32 preq_mask = BIT(IEEE80211_STYPE_PROBE_REQ >> 4);
|
||||||
|
u32 action_mask = BIT(IEEE80211_STYPE_ACTION >> 4);
|
||||||
|
MAC80211_PAD_GET_NO_RV(pAd, pWiphy);
|
||||||
|
RTMP_DRIVER_NET_DEV_GET(pAd, &dev);
|
||||||
|
|
||||||
|
CFG80211DBG(DBG_LVL_INFO, ("80211> %s ==>\n", __func__));
|
||||||
|
CFG80211DBG(DBG_LVL_INFO, ("IEEE80211_STYPE_PROBE_REQ = %x, IEEE80211_STYPE_ACTION = %d , (%d)\n",
|
||||||
|
!!(upd->interface_stypes & preq_mask), !!(upd->interface_mcast_stypes & action_mask),
|
||||||
|
dev->ieee80211_ptr->iftype));
|
||||||
|
|
||||||
|
RTMP_DRIVER_80211_MGMT_FRAME_REG(pAd, dev, !!(upd->interface_stypes & preq_mask));
|
||||||
|
|
||||||
|
RTMP_DRIVER_80211_ACTION_FRAME_REG(pAd, dev, !!(upd->interface_mcast_stypes & action_mask));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Supplicant_NEW_TDLS */
|
/* Supplicant_NEW_TDLS */
|
||||||
#ifdef CFG_TDLS_SUPPORT
|
#ifdef CFG_TDLS_SUPPORT
|
||||||
static int CFG80211_OpsTdlsMgmt
|
static int CFG80211_OpsTdlsMgmt
|
||||||
@ -2568,10 +2592,15 @@ struct cfg80211_ops CFG80211_Ops = {
|
|||||||
.set_cqm_rssi_config = NULL,
|
.set_cqm_rssi_config = NULL,
|
||||||
#endif /* LINUX_VERSION_CODE */
|
#endif /* LINUX_VERSION_CODE */
|
||||||
|
|
||||||
|
#ifdef CPTCFG_BACKPORTED_CFG80211_MODULE
|
||||||
|
.update_mgmt_frame_registrations =
|
||||||
|
CFG80211_OpsUpdateMgmtFrameRegistrations,
|
||||||
|
#else
|
||||||
#if (KERNEL_VERSION(2, 6, 37) <= LINUX_VERSION_CODE)
|
#if (KERNEL_VERSION(2, 6, 37) <= LINUX_VERSION_CODE)
|
||||||
/* notify driver that a management frame type was registered */
|
/* notify driver that a management frame type was registered */
|
||||||
.mgmt_frame_register = CFG80211_OpsMgmtFrameRegister,
|
.mgmt_frame_register = CFG80211_OpsMgmtFrameRegister,
|
||||||
#endif /* LINUX_VERSION_CODE : 2.6.37 */
|
#endif /* LINUX_VERSION_CODE : 2.6.37 */
|
||||||
|
#endif /* CPTCFG_BACKPORTED_CFG80211_MODULE */
|
||||||
|
|
||||||
#if (KERNEL_VERSION(2, 6, 38) <= LINUX_VERSION_CODE)
|
#if (KERNEL_VERSION(2, 6, 38) <= LINUX_VERSION_CODE)
|
||||||
/* set antenna configuration (tx_ant, rx_ant) on the device */
|
/* set antenna configuration (tx_ant, rx_ant) on the device */
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -758,14 +758,14 @@ NDIS_STATUS RTMPReadParametersHook(RTMP_ADAPTER *pAd)
|
|||||||
buf_size = srcf.fsize + 1;
|
buf_size = srcf.fsize + 1;
|
||||||
}
|
}
|
||||||
#endif /* OS_ABL_SUPPORT */
|
#endif /* OS_ABL_SUPPORT */
|
||||||
retval =os_file_read(srcf, buffer, buf_size - 1);
|
retval =os_file_read(srcf, buffer, buf_size - 1);
|
||||||
if (retval > 0)
|
if (retval > 0)
|
||||||
{
|
{
|
||||||
RTMPSetProfileParameters(pAd, buffer);
|
RTMPSetProfileParameters(pAd, buffer);
|
||||||
retval = NDIS_STATUS_SUCCESS;
|
retval = NDIS_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval));
|
MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval));
|
||||||
|
|
||||||
if (os_file_close(srcf) != 0)
|
if (os_file_close(srcf) != 0)
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@ WIFI_DRV_PATH = drivers/net/wireless/mtk/mt7615e
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_CFLAGS = -I$(WIFI_DRV_PATH)/mt_wifi/include \
|
EXTRA_CFLAGS += -I$(WIFI_DRV_PATH)/mt_wifi/include \
|
||||||
-I$(WIFI_DRV_PATH)/mt_wifi/embedded/include \
|
-I$(WIFI_DRV_PATH)/mt_wifi/embedded/include \
|
||||||
-I$(WIFI_DRV_PATH)/mt_wifi/ate/include \
|
-I$(WIFI_DRV_PATH)/mt_wifi/ate/include \
|
||||||
-I$(WIFI_DRV_PATH)/mt_wifi/include/mcu
|
-I$(WIFI_DRV_PATH)/mt_wifi/include/mcu
|
||||||
@ -487,7 +487,8 @@ ifeq ($(CONFIG_HOSTAPD_MAP_SUPPORT),y)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
#ENTERPRISE_AP
|
#ENTERPRISE_AP
|
||||||
ifeq ($(CONFIG_ENTERPRISE_AP_SUPPORT),y)
|
ifeq ($(CONFIG_CFG80211_SUPPORT),y)
|
||||||
|
ifneq ($(CONFIG_HOSTAPD_MAP_SUPPORT),y)
|
||||||
EXTRA_CFLAGS += -DHOSTAPD_11R_SUPPORT
|
EXTRA_CFLAGS += -DHOSTAPD_11R_SUPPORT
|
||||||
EXTRA_CFLAGS += -DMBSS_DTIM_SUPPORT
|
EXTRA_CFLAGS += -DMBSS_DTIM_SUPPORT
|
||||||
ifeq ($(CONFIG_VLAN_SUPPORT),y)
|
ifeq ($(CONFIG_VLAN_SUPPORT),y)
|
||||||
@ -501,6 +502,7 @@ ifeq ($(CONFIG_ENTERPRISE_AP_SUPPORT),y)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
#CFG
|
#CFG
|
||||||
ifeq ($(CONFIG_CFG80211_SUPPORT),y)
|
ifeq ($(CONFIG_CFG80211_SUPPORT),y)
|
||||||
@ -803,7 +805,7 @@ ifeq ($(CONFIG_AIR_MONITOR),y)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_EASY_SETUP_SUPPORT),y)
|
ifeq ($(CONFIG_EASY_SETUP_SUPPORT),y)
|
||||||
$(DRV_NAME)-objs += $(SRC_EMBEDDED_DIR)/easy_setup/ez_cmm.o
|
$(DRV_NAME)-y += $(SRC_EMBEDDED_DIR)/easy_setup/ez_cmm.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_MWDS),y)
|
ifeq ($(CONFIG_MWDS),y)
|
||||||
@ -1297,23 +1299,23 @@ endif
|
|||||||
# Root
|
# Root
|
||||||
#
|
#
|
||||||
|
|
||||||
$(DRV_NAME)-objs += $(ap_objs) $(cmm_objs) $(asic_objs) $(chip_objs) $(rate_objs)\
|
$(DRV_NAME)-y += $(ap_objs) $(cmm_objs) $(asic_objs) $(chip_objs) $(rate_objs)\
|
||||||
$(spec_objs) $(func_objs) $(os_objs) $(dot11_ft_objs)
|
$(spec_objs) $(func_objs) $(os_objs) $(dot11_ft_objs)
|
||||||
|
|
||||||
$(DRV_NAME)-objs += $(SRC_EMBEDDED_DIR)/common/eeprom.o\
|
$(DRV_NAME)-y += $(SRC_EMBEDDED_DIR)/common/eeprom.o\
|
||||||
$(SRC_EMBEDDED_DIR)/common/ee_flash.o\
|
$(SRC_EMBEDDED_DIR)/common/ee_flash.o\
|
||||||
$(SRC_EMBEDDED_DIR)/common/ee_efuse.o
|
$(SRC_EMBEDDED_DIR)/common/ee_efuse.o
|
||||||
|
|
||||||
$(DRV_NAME)-objs += $(SRC_EMBEDDED_DIR)/common/cmm_mac_pci.o
|
$(DRV_NAME)-y += $(SRC_EMBEDDED_DIR)/common/cmm_mac_pci.o
|
||||||
$(DRV_NAME)-objs += $(SRC_EMBEDDED_DIR)/common/hif_pci.o
|
$(DRV_NAME)-y += $(SRC_EMBEDDED_DIR)/common/hif_pci.o
|
||||||
|
|
||||||
$(DRV_NAME)-objs += $(SRC_DIR)/os/linux/rt_pci_rbus.o\
|
$(DRV_NAME)-y += $(SRC_DIR)/os/linux/rt_pci_rbus.o\
|
||||||
$(SRC_DIR)/os/linux/rt_rbus_pci_drv.o\
|
$(SRC_DIR)/os/linux/rt_rbus_pci_drv.o\
|
||||||
$(SRC_DIR)/os/linux/rt_rbus_pci_util.o\
|
$(SRC_DIR)/os/linux/rt_rbus_pci_util.o\
|
||||||
#$(SRC_DIR)/os/linux/rbus_main_dev.o
|
#$(SRC_DIR)/os/linux/rbus_main_dev.o
|
||||||
|
|
||||||
ifeq ($(CONFIG_ATE_SUPPORT),y)
|
ifeq ($(CONFIG_ATE_SUPPORT),y)
|
||||||
$(DRV_NAME)-objs += $(SRC_DIR)/ate/ate_agent.o\
|
$(DRV_NAME)-y += $(SRC_DIR)/ate/ate_agent.o\
|
||||||
$(SRC_DIR)/ate/testmode_ioctl.o\
|
$(SRC_DIR)/ate/testmode_ioctl.o\
|
||||||
$(SRC_DIR)/ate/mt_mac/mt_testmode.o\
|
$(SRC_DIR)/ate/mt_mac/mt_testmode.o\
|
||||||
$(SRC_DIR)/ate/LoopBack.o
|
$(SRC_DIR)/ate/LoopBack.o
|
||||||
@ -1321,7 +1323,7 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_TCP_RACK_SUPPORT),y)
|
ifeq ($(CONFIG_TCP_RACK_SUPPORT),y)
|
||||||
$(DRV_NAME)-objs += $(SRC_EMBEDDED_DIR)/common/cmm_tcprack.o
|
$(DRV_NAME)-y += $(SRC_EMBEDDED_DIR)/common/cmm_tcprack.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_LED_CONTROL_SUPPORT),y)
|
ifeq ($(CONFIG_LED_CONTROL_SUPPORT),y)
|
||||||
@ -1433,4 +1435,6 @@ endif
|
|||||||
|
|
||||||
MODULE_FLAGS=$(EXTRA_CFLAGS)
|
MODULE_FLAGS=$(EXTRA_CFLAGS)
|
||||||
export MODULE_FLAGS
|
export MODULE_FLAGS
|
||||||
|
ifeq ($(CONFIG_WHNAT_SUPPORT),y)
|
||||||
obj-m+=$(SRC_EMBEDDED_DIR)/plug_in/
|
obj-m+=$(SRC_EMBEDDED_DIR)/plug_in/
|
||||||
|
endif
|
||||||
|
@ -13,6 +13,6 @@ iNIC_ap.dat
|
|||||||
For configuration of 1st 7615 chip. Refer to /etc/wireless/l1profile.dat,
|
For configuration of 1st 7615 chip. Refer to /etc/wireless/l1profile.dat,
|
||||||
it should be generated at /etc/Wireless/iNIC/iNIC_ap.dat due to INDEX1_profile_path.
|
it should be generated at /etc/Wireless/iNIC/iNIC_ap.dat due to INDEX1_profile_path.
|
||||||
|
|
||||||
mt7615_3.da
|
mt7615_3.dat
|
||||||
For configuration of 2nd 7615 chip. Refer to /etc/wireless/l1profile.dat,
|
For configuration of 2nd 7615 chip. Refer to /etc/wireless/l1profile.dat,
|
||||||
it should be generated at /etc/wireless/mt7615/mt7615_3.dat due to INDEX2_profile_path.
|
it should be generated at /etc/wireless/mt7615/mt7615_3.dat due to INDEX2_profile_path.
|
||||||
|
@ -22,6 +22,7 @@ define Package/mt_wifi
|
|||||||
CATEGORY:=Network
|
CATEGORY:=Network
|
||||||
TITLE:=MTK wifi AP config
|
TITLE:=MTK wifi AP config
|
||||||
DEPENDS:=@TARGET_ramips +wireless-tools
|
DEPENDS:=@TARGET_ramips +wireless-tools
|
||||||
|
CONFLICTS:=kmod-mt7615d_dbdc
|
||||||
SUBMENU:=Wireless
|
SUBMENU:=Wireless
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ PKG_LICENSE:=GPLv2
|
|||||||
PKG_MAINTAINER:=Hua Shao <nossiac@163.com>
|
PKG_MAINTAINER:=Hua Shao <nossiac@163.com>
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI support for mt wifi driver
|
LUCI_TITLE:=LuCI support for mt wifi driver
|
||||||
LUCI_DEPENDS:=@TARGET_ramips +mt_wifi
|
LUCI_DEPENDS:=@TARGET_ramips +mt_wifi @!PACKAGE_kmod-mt7615d_dbdc
|
||||||
LUCI_PKGARCH:=all
|
LUCI_PKGARCH:=all
|
||||||
PKG_VERSION:=1
|
PKG_VERSION:=1
|
||||||
PKG_RELEASE:=16
|
PKG_RELEASE:=16
|
||||||
|
@ -23,6 +23,7 @@ PKG_CONFIG_DEPENDS := \
|
|||||||
CONFIG_PACKAGE_kmod-brcm-wl \
|
CONFIG_PACKAGE_kmod-brcm-wl \
|
||||||
CONFIG_PACKAGE_kmod-brcm-wl-mini \
|
CONFIG_PACKAGE_kmod-brcm-wl-mini \
|
||||||
CONFIG_PACKAGE_kmod-brcm-wl-mimo \
|
CONFIG_PACKAGE_kmod-brcm-wl-mimo \
|
||||||
|
CONFIG_PACKAGE_kmod-mt7615d_dbdc \
|
||||||
CONFIG_PACKAGE_kmod-cfg80211
|
CONFIG_PACKAGE_kmod-cfg80211
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
@ -75,6 +76,7 @@ IWINFO_BACKENDS := \
|
|||||||
$(if $(CONFIG_PACKAGE_kmod-brcm-wl),wl) \
|
$(if $(CONFIG_PACKAGE_kmod-brcm-wl),wl) \
|
||||||
$(if $(CONFIG_PACKAGE_kmod-brcm-wl-mini),wl) \
|
$(if $(CONFIG_PACKAGE_kmod-brcm-wl-mini),wl) \
|
||||||
$(if $(CONFIG_PACKAGE_kmod-brcm-wl-mimo),wl) \
|
$(if $(CONFIG_PACKAGE_kmod-brcm-wl-mimo),wl) \
|
||||||
|
$(if $(CONFIG_PACKAGE_kmod-mt7615d_dbdc),ra) \
|
||||||
$(if $(CONFIG_PACKAGE_kmod-cfg80211),nl80211)
|
$(if $(CONFIG_PACKAGE_kmod-cfg80211),nl80211)
|
||||||
|
|
||||||
TARGET_CFLAGS += \
|
TARGET_CFLAGS += \
|
||||||
|
1537
package/network/utils/iwinfo/patches/001-ralink.patch
Normal file
1537
package/network/utils/iwinfo/patches/001-ralink.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -508,7 +508,7 @@ define Device/jcg_y2
|
|||||||
JCG_MAXSIZE := 16064k
|
JCG_MAXSIZE := 16064k
|
||||||
DEVICE_VENDOR := JCG
|
DEVICE_VENDOR := JCG
|
||||||
DEVICE_MODEL := Y2
|
DEVICE_MODEL := Y2
|
||||||
DEVICE_PACKAGES := kmod-mt7615d kmod-usb3 luci-app-mtwifi
|
DEVICE_PACKAGES := kmod-mt7615d_dbdc kmod-usb3
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += jcg_y2
|
TARGET_DEVICES += jcg_y2
|
||||||
|
|
||||||
@ -817,7 +817,7 @@ define Device/phicomm_k2p
|
|||||||
DEVICE_VENDOR := Phicomm
|
DEVICE_VENDOR := Phicomm
|
||||||
DEVICE_MODEL := K2P
|
DEVICE_MODEL := K2P
|
||||||
SUPPORTED_DEVICES += k2p
|
SUPPORTED_DEVICES += k2p
|
||||||
DEVICE_PACKAGES := kmod-mt7615d luci-app-mtwifi
|
DEVICE_PACKAGES := kmod-mt7615d_dbdc
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += phicomm_k2p
|
TARGET_DEVICES += phicomm_k2p
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ ramips_setup_interfaces()
|
|||||||
xiaoyu,xy-c5)
|
xiaoyu,xy-c5)
|
||||||
ucidef_add_switch "switch0" \
|
ucidef_add_switch "switch0" \
|
||||||
"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
|
"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
|
||||||
ucidef_set_interface_lan "eth0.1 ra0 rax0"
|
ucidef_set_interface_lan "eth0.1"
|
||||||
;;
|
;;
|
||||||
ubnt,edgerouter-x)
|
ubnt,edgerouter-x)
|
||||||
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0"
|
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0"
|
||||||
|
Loading…
Reference in New Issue
Block a user