@@ -10,7 +10,7 @@ if [ $? -ne 0 ]; then
10
10
final_ret=1
11
11
fi
12
12
13
- insert_kmod vwifi.ko station=3
13
+ insert_kmod vwifi.ko station=6
14
14
if [ $? -ne 0 ]; then
15
15
final_ret=2
16
16
fi
@@ -28,22 +28,34 @@ if [ $final_ret -eq 0 ]; then
28
28
sudo iw dev vw0 set txpower auto
29
29
sudo iw dev vw1 set txpower fixed 1200
30
30
sudo iw dev vw2 set txpower fixed 1300
31
+ sudo iw dev vw3 set txpower auto
32
+ sudo iw dev vw4 set txpower auto
33
+ sudo iw dev vw5 set txpower auto
31
34
32
35
# get phy number of each interface
33
36
sudo iw dev > device.log
34
37
vw0_phy=$( get_wiphy_name vw0)
35
38
vw1_phy=$( get_wiphy_name vw1)
36
39
vw2_phy=$( get_wiphy_name vw2)
40
+ vw3_phy=$( get_wiphy_name vw3)
41
+ vw4_phy=$( get_wiphy_name vw4)
42
+ vw5_phy=$( get_wiphy_name vw5)
37
43
38
44
# create network namespaces for each phy (interface)
39
45
sudo ip netns add ns0
40
46
sudo ip netns add ns1
41
47
sudo ip netns add ns2
48
+ sudo ip netns add ns3
49
+ sudo ip netns add ns4
50
+ sudo ip netns add ns5
42
51
43
52
# add each phy (interface) to separate network namesapces
44
53
sudo iw phy $vw0_phy set netns name ns0
45
54
sudo iw phy $vw1_phy set netns name ns1
46
55
sudo iw phy $vw2_phy set netns name ns2
56
+ sudo iw phy $vw3_phy set netns name ns3
57
+ sudo iw phy $vw4_phy set netns name ns4
58
+ sudo iw phy $vw5_phy set netns name ns5
47
59
48
60
# running hostapd on vw0, so vw0 becomes AP
49
61
sudo ip netns exec ns0 ip link set vw0 up
@@ -56,10 +68,22 @@ if [ $final_ret -eq 0 ]; then
56
68
sudo ip netns exec ns2 ip link set vw2 up
57
69
sudo ip netns exec ns2 ip link set lo up
58
70
71
+ sudo ip netns exec ns3 ip link set vw3 up
72
+ sudo ip netns exec ns3 ip link set lo up
73
+
74
+ sudo ip netns exec ns4 ip link set vw4 up
75
+ sudo ip netns exec ns4 ip link set lo up
76
+
77
+ sudo ip netns exec ns5 ip link set vw5 up
78
+ sudo ip netns exec ns5 ip link set lo up
79
+
59
80
# assing IP address to each interface
60
81
sudo ip netns exec ns0 ip addr add 10.0.0.1/24 dev vw0
61
82
sudo ip netns exec ns1 ip addr add 10.0.0.2/24 dev vw1
62
83
sudo ip netns exec ns2 ip addr add 10.0.0.3/24 dev vw2
84
+ sudo ip netns exec ns3 ip addr add 10.0.0.4/24 dev vw3
85
+ sudo ip netns exec ns4 ip addr add 10.0.0.5/24 dev vw4
86
+ sudo ip netns exec ns5 ip addr add 10.0.0.6/24 dev vw5
63
87
64
88
# ping test: STA vw1 <--> STA vw2, should fail, because they
65
89
# haven't connected to AP
@@ -136,6 +160,64 @@ if [ $final_ret -eq 0 ]; then
136
160
final_ret=7
137
161
fi
138
162
163
+ # vw3 becomes an IBSS and then joins the "Elian" network (BSSID: 00:76:77:33:00:00).
164
+ echo
165
+ echo " =================================="
166
+ echo " vw3 join Elian (00:76:77:33:00:00)"
167
+ echo " =================================="
168
+ sudo ip netns exec ns3 iw dev vw3 set type ibss
169
+ sudo ip netns exec ns3 iw dev vw3 ibss join Elian 2412 NOHT fixed-freq 00:76:77:33:00:00 beacon-interval 200
170
+
171
+ # vw4 becomes an IBSS and then joins the "Elian" network (BSSID: 00:76:77:33:00:00).
172
+ echo
173
+ echo " =================================="
174
+ echo " vw4 join Elian (00:76:77:33:00:00)"
175
+ echo " =================================="
176
+ sudo ip netns exec ns4 iw dev vw4 set type ibss
177
+ sudo ip netns exec ns4 iw dev vw4 ibss join Elian 2412 NOHT fixed-freq 00:76:77:33:00:00 beacon-interval 200
178
+
179
+ # vw5 becomes an IBSS and then joins the "Ricky" network (BSSID: 00:76:77:35:00:00).
180
+ echo
181
+ echo " =================================="
182
+ echo " vw5 join Ricky (00:76:77:35:00:00)"
183
+ echo " =================================="
184
+ sudo ip netns exec ns5 iw dev vw5 set type ibss
185
+ sudo ip netns exec ns5 iw dev vw5 ibss join Ricky 2412 NOHT fixed-freq 00:76:77:35:00:00 beacon-interval 300
186
+
187
+ # ping test: IBSS vw3 <--> STA vw2, should fail
188
+ echo
189
+ echo " ================================================================================"
190
+ echo " Ping Test: IBSS vw3 (10.0.0.4) (in Elian) <--> STA vw2 (10.0.0.3)"
191
+ echo
192
+ echo " (should fail)"
193
+ echo " (be patient, it will take some time to route...)"
194
+ echo " ================================================================================"
195
+ sudo ip netns exec ns3 ping -c 1 10.0.0.3
196
+
197
+ # ping test: IBSS vw3 <--> IBSS vw5, should fail
198
+ echo
199
+ echo " ================================================================================"
200
+ echo " Ping Test: IBSS vw3 (10.0.0.4) (in Elian) <--> IBSS vw5 (10.0.0.6) (in Ricky)"
201
+ echo
202
+ echo " (should fail)"
203
+ echo " (be patient, it will take some time to route...)"
204
+ echo " ================================================================================"
205
+ sudo ip netns exec ns3 ping -c 1 10.0.0.6
206
+
207
+ # ping test: IBSS vw3 <--> IBSS vw4, should success
208
+ echo
209
+ echo " ================================================================================"
210
+ echo " Ping Test: IBSS vw3 (10.0.0.4) (in Elian) <--> IBSS vw4 (10.0.0.5) (in Elian)"
211
+ echo
212
+ echo " (should success)"
213
+ echo " (be patient, it will take some time to route...)"
214
+ echo " ================================================================================"
215
+ sudo ip netns exec ns3 ping -c 1 10.0.0.5
216
+ ping_rc=$?
217
+ if [ $ping_rc -ne 0 ]; then
218
+ final_ret=8
219
+ fi
220
+
139
221
# verify TSF (in usec)
140
222
sudo ip netns exec ns1 iw dev vw1 scan > scan_result.log
141
223
tsf=$( cat scan_result.log | grep " TSF" | tail -n 1 | awk ' {print $2}' )
@@ -145,7 +227,7 @@ if [ $final_ret -eq 0 ]; then
145
227
146
228
# difference between tsf and uptime should less than 0.5 sec.
147
229
if [ " ${diff# -} " -gt 500000 ]; then
148
- final_ret=8
230
+ final_ret=9
149
231
fi
150
232
151
233
# plot the distribution of RSSI of vw0
@@ -162,7 +244,7 @@ if [ $final_ret -eq 0 ]; then
162
244
python3 $ROOT /scripts/plot_rssi.py
163
245
plot_rc=$?
164
246
if [ $plot_rc -ne 0 ]; then
165
- final_ret=9
247
+ final_ret=10
166
248
fi
167
249
168
250
# TestAP performs station dump
@@ -172,7 +254,7 @@ if [ $final_ret -eq 0 ]; then
172
254
sudo ip netns exec " ns${num} " iw dev | grep -o -E ' ([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' > station_ssid.log
173
255
DIFF=$( diff dump_ssid.log station_ssid.log)
174
256
if [ " $DIFF " != " " ]; then
175
- final_ret=10
257
+ final_ret=11
176
258
break
177
259
fi
178
260
done
@@ -184,6 +266,9 @@ if [ $final_ret -eq 0 ]; then
184
266
sudo ip netns del ns0
185
267
sudo ip netns del ns1
186
268
sudo ip netns del ns2
269
+ sudo ip netns del ns3
270
+ sudo ip netns del ns4
271
+ sudo ip netns del ns5
187
272
rm scan_result.log scan_bssid.log connected.log device.log rssi.txt station_dump_result.log dump_ssid.log station_ssid.log
188
273
echo " ==== Test PASSED ===="
189
274
exit 0
0 commit comments