Merge wifi6 branch
This commit is contained in:
commit
0c39234c65
86
lnxrouter
86
lnxrouter
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
VERSION=0.7.6
|
VERSION=0.8.0-unstable1
|
||||||
PROGNAME="$(basename "$0")"
|
PROGNAME="$(basename "$0")"
|
||||||
|
|
||||||
export LC_ALL=C
|
export LC_ALL=C
|
||||||
|
@ -124,6 +124,20 @@ Options:
|
||||||
--vht-seg1-ch <channel> Channel index of VHT center frequency for secondary
|
--vht-seg1-ch <channel> Channel index of VHT center frequency for secondary
|
||||||
(second 80MHz) segment. Use with '--vht-ch-width 3'
|
(second 80MHz) segment. Use with '--vht-ch-width 3'
|
||||||
|
|
||||||
|
WiFi 6 (802.11ax) configs:
|
||||||
|
--wifi6 Enable IEEE 802.11ax (HE)
|
||||||
|
--req-he Require station HE (High Efficiency) mode
|
||||||
|
|
||||||
|
--he-ch-width <index> Index of HE channel width:
|
||||||
|
0 for 20MHz or 40MHz (default)
|
||||||
|
1 for 80MHz
|
||||||
|
2 for 160MHz
|
||||||
|
3 for 80+80MHz (Non-contigous 160MHz)
|
||||||
|
--he-seg0-ch <channel> Channel index of HE center frequency for primary
|
||||||
|
segment. Use with '--he-ch-width'
|
||||||
|
--he-seg1-ch <channel> Channel index of HE center frequency for secondary
|
||||||
|
(second 80MHz) segment. Use with '--he-ch-width 3'
|
||||||
|
|
||||||
Instance managing:
|
Instance managing:
|
||||||
--daemon Run in background
|
--daemon Run in background
|
||||||
-l, --list-running Show running instances
|
-l, --list-running Show running instances
|
||||||
|
@ -197,11 +211,16 @@ define_global_variables(){
|
||||||
REQUIREHT=0
|
REQUIREHT=0
|
||||||
IEEE80211AC=0
|
IEEE80211AC=0
|
||||||
REQUIREVHT=0
|
REQUIREVHT=0
|
||||||
|
IEEE80211AX=0
|
||||||
|
REQUIREHE=0
|
||||||
HT_CAPAB='[HT40+]'
|
HT_CAPAB='[HT40+]'
|
||||||
VHT_CAPAB=
|
VHT_CAPAB=
|
||||||
VHTCHANNELWIDTH=0
|
VHTCHANNELWIDTH=0
|
||||||
VHTSEG0CHINDEX=0
|
VHTSEG0CHINDEX=0
|
||||||
VHTSEG1CHINDEX=0
|
VHTSEG1CHINDEX=0
|
||||||
|
HECHANNELWIDTH=0
|
||||||
|
HESEG0CHINDEX=0
|
||||||
|
HESEG1CHINDEX=0
|
||||||
DRIVER=nl80211
|
DRIVER=nl80211
|
||||||
NO_VIRT=0 # not use virtual interface
|
NO_VIRT=0 # not use virtual interface
|
||||||
COUNTRY=
|
COUNTRY=
|
||||||
|
@ -414,6 +433,14 @@ parse_user_options(){
|
||||||
shift
|
shift
|
||||||
IEEE80211AC=1
|
IEEE80211AC=1
|
||||||
;;
|
;;
|
||||||
|
--wifi6|--ieee80211ax)
|
||||||
|
shift
|
||||||
|
IEEE80211AX=1
|
||||||
|
;;
|
||||||
|
--req-he|--require-he)
|
||||||
|
shift
|
||||||
|
REQUIREHE=1
|
||||||
|
;;
|
||||||
--req-vht|--require-vht)
|
--req-vht|--require-vht)
|
||||||
shift
|
shift
|
||||||
REQUIREVHT=1
|
REQUIREVHT=1
|
||||||
|
@ -443,6 +470,21 @@ parse_user_options(){
|
||||||
VHTSEG1CHINDEX="$1"
|
VHTSEG1CHINDEX="$1"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--he-ch-width|--he-channel-width)
|
||||||
|
shift
|
||||||
|
HECHANNELWIDTH="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--he-seg0-ch|--he-seg0-channel)
|
||||||
|
shift
|
||||||
|
HESEG0CHINDEX="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--he-seg1-ch|--he-seg1-channel)
|
||||||
|
shift
|
||||||
|
HESEG1CHINDEX="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
--driver)
|
--driver)
|
||||||
shift
|
shift
|
||||||
DRIVER="$1"
|
DRIVER="$1"
|
||||||
|
@ -622,15 +664,22 @@ can_be_ap() {
|
||||||
}
|
}
|
||||||
|
|
||||||
can_transmit_to_channel() {
|
can_transmit_to_channel() {
|
||||||
local IFACE CHANNEL_NUM CHANNEL_INFO
|
local IFACE CHANNEL_NUM CHANNEL_INFO CHANNEL_FREQ_FILTER
|
||||||
IFACE=$1
|
IFACE=$1
|
||||||
CHANNEL_NUM=$2
|
CHANNEL_NUM=$2
|
||||||
|
if [[ $FREQ_BAND == "2.4" ]]; then
|
||||||
|
CHANNEL_FREQ_FILTER="(24)"
|
||||||
|
elif [[ $FREQ_BAND -eq 5 ]]; then
|
||||||
|
CHANNEL_FREQ_FILTER="(5[0-8])"
|
||||||
|
elif [[ $FREQ_BAND -eq 6 ]]; then
|
||||||
|
CHANNEL_FREQ_FILTER="((59)|(6[0-9])|(70))"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $USE_IWCONFIG -eq 0 ]]; then
|
if [[ $USE_IWCONFIG -eq 0 ]]; then
|
||||||
CHANNEL_INFO=$(get_adapter_info "${IFACE}" | grep -E " [0-9]+(\.[0-9]+){0,1} MHz \[${CHANNEL_NUM}\]")
|
CHANNEL_INFO=$(get_adapter_info "${IFACE}" | grep -E " ${CHANNEL_FREQ_FILTER}[0-9]+(\.[0-9]+){0,1} MHz \[${CHANNEL_NUM}\]")
|
||||||
[[ -z "${CHANNEL_INFO}" ]] && return 1
|
[[ -z "${CHANNEL_INFO}" ]] && return 1
|
||||||
[[ "${CHANNEL_INFO}" == *no\ IR* ]] && return 1
|
[[ "${CHANNEL_INFO}" == *no\ IR* ]] && return 2
|
||||||
[[ "${CHANNEL_INFO}" == *disabled* ]] && return 1
|
[[ "${CHANNEL_INFO}" == *disabled* ]] && return 3
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
CHANNEL_NUM=$(printf '%02d' ${CHANNEL_NUM})
|
CHANNEL_NUM=$(printf '%02d' ${CHANNEL_NUM})
|
||||||
|
@ -1930,6 +1979,15 @@ write_hostapd_conf() {
|
||||||
echo "require_vht=1" >> "$CONFDIR/hostapd.conf"
|
echo "require_vht=1" >> "$CONFDIR/hostapd.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $IEEE80211AX -eq 1 ]]; then
|
||||||
|
echo "ieee80211ax=1" >> "$CONFDIR/hostapd.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $REQUIREHE -eq 1 ]]; then
|
||||||
|
echo "require_he=1" >> "$CONFDIR/hostapd.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [[ -n "$VHT_CAPAB" ]]; then
|
if [[ -n "$VHT_CAPAB" ]]; then
|
||||||
echo "vht_capab=${VHT_CAPAB}" >> "$CONFDIR/hostapd.conf"
|
echo "vht_capab=${VHT_CAPAB}" >> "$CONFDIR/hostapd.conf"
|
||||||
fi
|
fi
|
||||||
|
@ -1952,6 +2010,24 @@ write_hostapd_conf() {
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ $HECHANNELWIDTH -gt 0 ]]; then
|
||||||
|
cat <<- EOF >> "$CONFDIR/hostapd.conf"
|
||||||
|
he_oper_chwidth=${HECHANNELWIDTH}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $HESEG0CHINDEX -gt 0 ]]; then
|
||||||
|
cat <<- EOF >> "$CONFDIR/hostapd.conf"
|
||||||
|
he_oper_centr_freq_seg0_idx=${HESEG0CHINDEX}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $HESEG1CHINDEX -gt 0 ]]; then
|
||||||
|
cat <<- EOF >> "$CONFDIR/hostapd.conf"
|
||||||
|
he_oper_centr_freq_seg1_idx=${HESEG1CHINDEX}
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $IEEE80211N -eq 1 ]] || [[ $IEEE80211AC -eq 1 ]]; then
|
if [[ $IEEE80211N -eq 1 ]] || [[ $IEEE80211AC -eq 1 ]]; then
|
||||||
echo "wmm_enabled=1" >> "$CONFDIR/hostapd.conf"
|
echo "wmm_enabled=1" >> "$CONFDIR/hostapd.conf"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue