xref: /aosp_15_r20/external/wmediumd/tests/func (revision 621120a22a0cd8ba80b131fe8bcb37c86ff453e3)
1*621120a2SAndroid Build Coastguard Workerfunction freq_to_chan {
2*621120a2SAndroid Build Coastguard Worker	local freq=$1
3*621120a2SAndroid Build Coastguard Worker
4*621120a2SAndroid Build Coastguard Worker	if [[ $freq -ge 2412 && $freq -le 2472 ]]; then
5*621120a2SAndroid Build Coastguard Worker		band="11g"
6*621120a2SAndroid Build Coastguard Worker		chan=$(( ($freq - 2412) / 5 + 1 ))
7*621120a2SAndroid Build Coastguard Worker	else
8*621120a2SAndroid Build Coastguard Worker		band="11a"
9*621120a2SAndroid Build Coastguard Worker		chan=$(( ($freq - 5000) / 5 ))
10*621120a2SAndroid Build Coastguard Worker	fi
11*621120a2SAndroid Build Coastguard Worker	echo "$chan $band"
12*621120a2SAndroid Build Coastguard Worker}
13*621120a2SAndroid Build Coastguard Worker
14*621120a2SAndroid Build Coastguard Worker
15*621120a2SAndroid Build Coastguard Workerfunction meshup-iw {
16*621120a2SAndroid Build Coastguard Worker	local if=$1
17*621120a2SAndroid Build Coastguard Worker	local meshid=$2
18*621120a2SAndroid Build Coastguard Worker	local freq=$3
19*621120a2SAndroid Build Coastguard Worker	local ip=$4
20*621120a2SAndroid Build Coastguard Worker
21*621120a2SAndroid Build Coastguard Worker	ip link set $if down
22*621120a2SAndroid Build Coastguard Worker	iw dev $if set type mp
23*621120a2SAndroid Build Coastguard Worker	ip link set $if up
24*621120a2SAndroid Build Coastguard Worker	iw dev $if mesh join $meshid freq $freq
25*621120a2SAndroid Build Coastguard Worker	ip addr add $ip/24 dev $if 2>/dev/null
26*621120a2SAndroid Build Coastguard Worker}
27*621120a2SAndroid Build Coastguard Worker
28*621120a2SAndroid Build Coastguard Workerfunction meshup-wpas-open {
29*621120a2SAndroid Build Coastguard Worker	local if=$1
30*621120a2SAndroid Build Coastguard Worker	local meshid=$2
31*621120a2SAndroid Build Coastguard Worker	local freq=$3
32*621120a2SAndroid Build Coastguard Worker	local ip=$4
33*621120a2SAndroid Build Coastguard Worker
34*621120a2SAndroid Build Coastguard Worker	ip link set $if down
35*621120a2SAndroid Build Coastguard Worker	iw dev $if set type mp
36*621120a2SAndroid Build Coastguard Worker	ip link set $if up
37*621120a2SAndroid Build Coastguard Worker
38*621120a2SAndroid Build Coastguard Worker	cat<<EOM > /tmp/wpas-$if.conf
39*621120a2SAndroid Build Coastguard Workernetwork={
40*621120a2SAndroid Build Coastguard Worker	ssid="wmediumd-mesh"
41*621120a2SAndroid Build Coastguard Worker	mode=5
42*621120a2SAndroid Build Coastguard Worker	frequency=$freq
43*621120a2SAndroid Build Coastguard Worker	key_mgmt=NONE
44*621120a2SAndroid Build Coastguard Worker}
45*621120a2SAndroid Build Coastguard WorkerEOM
46*621120a2SAndroid Build Coastguard Worker	wpa_supplicant -i $if -c /tmp/wpas-$if.conf &
47*621120a2SAndroid Build Coastguard Worker	ip addr add $ip/24 dev $if 2>/dev/null
48*621120a2SAndroid Build Coastguard Worker}
49*621120a2SAndroid Build Coastguard Worker
50*621120a2SAndroid Build Coastguard Workerfunction meshup-wpas {
51*621120a2SAndroid Build Coastguard Worker	local if=$1;
52*621120a2SAndroid Build Coastguard Worker	local meshid=$2;
53*621120a2SAndroid Build Coastguard Worker	local freq=$3;
54*621120a2SAndroid Build Coastguard Worker	local ip=$4;
55*621120a2SAndroid Build Coastguard Worker
56*621120a2SAndroid Build Coastguard Worker	ip link set $if down
57*621120a2SAndroid Build Coastguard Worker	iw dev $if set type mp
58*621120a2SAndroid Build Coastguard Worker	ip link set $if up
59*621120a2SAndroid Build Coastguard Worker
60*621120a2SAndroid Build Coastguard Worker	cat<<EOM > /tmp/wpas-$if.conf
61*621120a2SAndroid Build Coastguard Workernetwork={
62*621120a2SAndroid Build Coastguard Worker	ssid="wmediumd-mesh-sec"
63*621120a2SAndroid Build Coastguard Worker	mode=5
64*621120a2SAndroid Build Coastguard Worker	frequency=$freq
65*621120a2SAndroid Build Coastguard Worker	key_mgmt=SAE
66*621120a2SAndroid Build Coastguard Worker	psk="some passphrase"
67*621120a2SAndroid Build Coastguard Worker}
68*621120a2SAndroid Build Coastguard WorkerEOM
69*621120a2SAndroid Build Coastguard Worker	wpa_supplicant -i $if -c /tmp/wpas-$if.conf &
70*621120a2SAndroid Build Coastguard Worker	ip addr add $ip/24 dev $if 2>/dev/null
71*621120a2SAndroid Build Coastguard Worker}
72*621120a2SAndroid Build Coastguard Worker
73*621120a2SAndroid Build Coastguard Workerfunction meshup-authsae {
74*621120a2SAndroid Build Coastguard Worker	local if=$1;
75*621120a2SAndroid Build Coastguard Worker	local meshid=$2;
76*621120a2SAndroid Build Coastguard Worker	local freq=$3;
77*621120a2SAndroid Build Coastguard Worker	local ip=$4;
78*621120a2SAndroid Build Coastguard Worker
79*621120a2SAndroid Build Coastguard Worker	ip link set $if down
80*621120a2SAndroid Build Coastguard Worker	iw dev $if set type mp
81*621120a2SAndroid Build Coastguard Worker	ip link set $if up
82*621120a2SAndroid Build Coastguard Worker
83*621120a2SAndroid Build Coastguard Worker	chan_params=$(freq_to_chan $freq)
84*621120a2SAndroid Build Coastguard Worker	read -ra ch <<< "$chan_params"
85*621120a2SAndroid Build Coastguard Worker
86*621120a2SAndroid Build Coastguard Worker	cat<<EOM > /tmp/authsae-$if.conf
87*621120a2SAndroid Build Coastguard Workerauthsae:
88*621120a2SAndroid Build Coastguard Worker{
89*621120a2SAndroid Build Coastguard Worker sae:
90*621120a2SAndroid Build Coastguard Worker  {
91*621120a2SAndroid Build Coastguard Worker    debug = 480;
92*621120a2SAndroid Build Coastguard Worker    password = "some passphrase";
93*621120a2SAndroid Build Coastguard Worker    group = [19, 26, 21, 25, 20];
94*621120a2SAndroid Build Coastguard Worker    blacklist = 5;
95*621120a2SAndroid Build Coastguard Worker    thresh = 5;
96*621120a2SAndroid Build Coastguard Worker    lifetime = 3600;
97*621120a2SAndroid Build Coastguard Worker  };
98*621120a2SAndroid Build Coastguard Worker meshd:
99*621120a2SAndroid Build Coastguard Worker  {
100*621120a2SAndroid Build Coastguard Worker    meshid = "wmediumd-mesh-sec";
101*621120a2SAndroid Build Coastguard Worker    interface = "wlan0";
102*621120a2SAndroid Build Coastguard Worker    passive = 0;
103*621120a2SAndroid Build Coastguard Worker    secured = 1;
104*621120a2SAndroid Build Coastguard Worker    debug = 1;
105*621120a2SAndroid Build Coastguard Worker    mediaopt = 1;
106*621120a2SAndroid Build Coastguard Worker    band = "${ch[1]}";
107*621120a2SAndroid Build Coastguard Worker    channel = ${ch[0]};
108*621120a2SAndroid Build Coastguard Worker  };
109*621120a2SAndroid Build Coastguard Worker};
110*621120a2SAndroid Build Coastguard WorkerEOM
111*621120a2SAndroid Build Coastguard Worker	meshd-nl80211 -i $if -c /tmp/authsae-$if.conf &
112*621120a2SAndroid Build Coastguard Worker	ip addr add $ip/24 dev $if 2>/dev/null
113*621120a2SAndroid Build Coastguard Worker}
114*621120a2SAndroid Build Coastguard Worker
115*621120a2SAndroid Build Coastguard Workerfunction addr2phy {
116*621120a2SAndroid Build Coastguard Worker	local addr=$1;
117*621120a2SAndroid Build Coastguard Worker	grep -l $addr /sys/class/ieee80211/phy*/macaddress | \
118*621120a2SAndroid Build Coastguard Worker		awk -F '/' '{print $(NF-1)}'
119*621120a2SAndroid Build Coastguard Worker}
120