120 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 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)}'
 | |
| }
 |