blob: 85ddf0032a5137029717956caaaf0740cd1b8394 [file] [log] [blame]
function freq_to_chan {
local freq=$1
if [[ $freq -ge 2412 && $freq -le 2472 ]]; then
band="11g"
chan=$(( ($freq - 2412) / 5 + 1 ))
else
band="11a"
chan=$(( ($freq - 5000) / 5 ))
fi
echo "$chan $band"
}
function meshup-iw {
local if=$1
local meshid=$2
local freq=$3
local ip=$4
ip link set $if down
iw dev $if set type mp
ip link set $if up
iw dev $if mesh join $meshid freq $freq
ip addr add $ip/24 dev $if 2>/dev/null
}
function meshup-wpas-open {
local if=$1
local meshid=$2
local freq=$3
local ip=$4
ip link set $if down
iw dev $if set type mp
ip link set $if up
cat<<EOM > /tmp/wpas-$if.conf
network={
ssid="wmediumd-mesh"
mode=5
frequency=$freq
key_mgmt=NONE
}
EOM
wpa_supplicant -i $if -c /tmp/wpas-$if.conf &
ip addr add $ip/24 dev $if 2>/dev/null
}
function meshup-wpas {
local if=$1;
local meshid=$2;
local freq=$3;
local ip=$4;
ip link set $if down
iw dev $if set type mp
ip link set $if up
cat<<EOM > /tmp/wpas-$if.conf
network={
ssid="wmediumd-mesh-sec"
mode=5
frequency=$freq
key_mgmt=SAE
psk="some passphrase"
}
EOM
wpa_supplicant -i $if -c /tmp/wpas-$if.conf &
ip addr add $ip/24 dev $if 2>/dev/null
}
function meshup-authsae {
local if=$1;
local meshid=$2;
local freq=$3;
local ip=$4;
ip link set $if down
iw dev $if set type mp
ip link set $if up
chan_params=$(freq_to_chan $freq)
read -ra ch <<< "$chan_params"
cat<<EOM > /tmp/authsae-$if.conf
authsae:
{
sae:
{
debug = 480;
password = "some passphrase";
group = [19, 26, 21, 25, 20];
blacklist = 5;
thresh = 5;
lifetime = 3600;
};
meshd:
{
meshid = "wmediumd-mesh-sec";
interface = "wlan0";
passive = 0;
secured = 1;
debug = 1;
mediaopt = 1;
band = "${ch[1]}";
channel = ${ch[0]};
};
};
EOM
meshd-nl80211 -i $if -c /tmp/authsae-$if.conf &
ip addr add $ip/24 dev $if 2>/dev/null
}
function addr2phy {
local addr=$1;
grep -l $addr /sys/class/ieee80211/phy*/macaddress | \
awk -F '/' '{print $(NF-1)}'
}