@@ -88,12 +88,13 @@ function ep_common_if_configure()
88
88
local vxlan_remote_ip=
89
89
local vxlan_local_ip=
90
90
local vxlan_vni=
91
+ local num_alias=
91
92
local vlan_id=
92
93
local mtu=
93
94
94
95
if ! opts=$( getopt \
95
- -l " ip:,pcie-addr:,down,vxlan-remote-ip:,vxlan-local-ip:,vxlan-vni:,vlan-id:,mtu:" \
96
- -- configure_sdp_interface $@ ) ; then
96
+ -l " ip:,pcie-addr:,down,vxlan-remote-ip:,vxlan-local-ip:,vxlan-vni:,vlan-id:,mtu:, \
97
+ alias: " -- configure_sdp_interface $@ ) ; then
97
98
echo " Failed to parse arguments"
98
99
exit 1
99
100
fi
@@ -107,6 +108,7 @@ function ep_common_if_configure()
107
108
--vxlan-remote-ip) shift ; vxlan_remote_ip=$1 ;;
108
109
--vxlan-local-ip) shift ; vxlan_local_ip=$1 ;;
109
110
--vlan-id) shift ; vlan_id=$1 ;;
111
+ --alias) shift ; num_alias=$1 ;;
110
112
--down) down=1;;
111
113
--mtu) shift ; mtu=$1 ;;
112
114
* ) echo " Invalid argument $1 " ; exit 1;;
@@ -120,10 +122,28 @@ function ep_common_if_configure()
120
122
exit
121
123
fi
122
124
123
- ep_common_cleanup_interfaces $iface_name
125
+ if [[ -z $num_alias ]]; then
126
+ ep_common_cleanup_interfaces $iface_name
127
+ fi
128
+
124
129
125
130
if [[ -z $down ]]; then
126
- if [[ -n $vlan_id ]]; then
131
+ if [[ -n $num_alias ]]; then
132
+ IFS=' .' read -r -a ip_parts <<< " $ip_addr"
133
+ for (( i= 0 ; i< $num_alias ; i++ )) ; do
134
+ ip=" ${ip_parts[0]} .${ip_parts[1]} .${ip_parts[2]} .${ip_parts[3]} "
135
+ if [[ -n $vlan_id ]]; then
136
+ vlan_id=$(( vlan_id + 1 ))
137
+ ip link add link $iface_name name \
138
+ $iface_name .v$vlan_id type vlan id $vlan_id
139
+ ip link set dev $iface_name .v$vlan_id up
140
+ ip addr add $ip /24 dev $iface_name .v$vlan_id
141
+ else
142
+ ifconfig $iface_name :$i $ip /24
143
+ fi
144
+ (( ip_parts[3 ]++ ))
145
+ done
146
+ elif [[ -n $vlan_id ]]; then
127
147
nmcli dev set $iface_name managed no & > /dev/null || true
128
148
ifconfig $iface_name up
129
149
ifconfig $iface_name 0
@@ -181,6 +201,31 @@ function ep_common_ping()
181
201
fi
182
202
}
183
203
204
+ function ep_common_multiple_pings()
205
+ {
206
+ local host_ip=$1
207
+ local remote_ip=$2
208
+ local num_ifs=$3
209
+ local remote_if
210
+
211
+ IFS=' .' read -r -a hip <<< " $host_ip"
212
+ IFS=' .' read -r -a rip <<< " $remote_ip"
213
+
214
+ for (( i= 0 ; i< $num_ifs ; i++ )) ; do
215
+ if [[ $( ep_common_ping $host_ip $remote_ip ) != " SUCCESS" ]]; then
216
+ echo " FAILURE"
217
+ exit 1
218
+ fi
219
+
220
+ (( hip[3 ]++ ))
221
+ (( rip[3 ]++ ))
222
+ host_ip=" ${hip[0]} .${hip[1]} .${hip[2]} .${hip[3]} "
223
+ remote_ip=" ${rip[0]} .${rip[1]} .${rip[2]} .${rip[3]} "
224
+ done
225
+
226
+ echo " SUCCESS"
227
+ }
228
+
184
229
ep_common_cleanup_interfaces ()
185
230
{
186
231
local prefix=$1
@@ -192,10 +237,53 @@ ep_common_cleanup_interfaces()
192
237
done
193
238
}
194
239
240
+ ep_host_clean_sdp_host_ifcs ()
241
+ {
242
+ local sdp_vfs=" $@ "
243
+
244
+ for vf in $sdp_vfs ; do
245
+ iface=$( ep_common_if_name_get $vf )
246
+ ep_common_cleanup_interfaces $iface
247
+ done
248
+ }
249
+
250
+ ep_common_cleanup_alias_ifcs ()
251
+ {
252
+ local pci_addr=$1
253
+ local num_alias=$2
254
+ local ip=$3
255
+ local test_type=$4
256
+ local vlan_id=$5
257
+ local iface=$( ep_common_if_name_get $pci_addr )
258
+
259
+ IFS=' .' read -r -a ip_parts <<< " $ip"
260
+
261
+ if [[ $test_type == " vlan" ]]; then
262
+ ip link del $iface .v$vlan_id
263
+ (( vlan_id++ ))
264
+ fi
265
+
266
+ for (( i= 0 ; i< $num_alias ; i++ )) ; do
267
+ if [[ $test_type == " plane" ]]; then
268
+ ip addr del $ip /24 dev $iface :$i
269
+ elif [[ $test_type == " vlan" ]]; then
270
+ ip link del $iface .v$vlan_id
271
+ (( vlan_id++ ))
272
+ fi
273
+ (( ip_parts[3 ]++ ))
274
+ ip=" ${ip_parts[0]} .${ip_parts[1]} .${ip_parts[2]} .${ip_parts[3]} "
275
+ done
276
+
277
+ ep_common_cleanup_interfaces $iface
278
+ }
279
+
195
280
function ep_common_set_numvfs()
196
281
{
197
282
local dev=$1
198
283
local numvfs=$2
284
+ local maxvfs=$( cat /sys/bus/pci/devices/$dev /sriov_totalvfs)
285
+
286
+ numvfs=$(( numvfs > maxvfs ? maxvfs : numvfs))
199
287
200
288
echo 0 > /sys/bus/pci/devices/$dev /sriov_numvfs
201
289
sleep 1
0 commit comments