selftests: forwarding: Move lldpad waiting to lib.sh
The function lldpad_wait() will be useful for a test added by a following patch. Likewise would the "sleep 5" with its extensive comment. Therefore move lldpad_wait() to lib.sh in order to allow reuse. Rename it to lldpad_app_wait_set() to recognize that what this is intended to wait on are the pending APP sets. For the sleeping, add a function lldpad_app_wait_del(). That will serve to hold the related explanatory comment (which edit for clarity), and as a token in the caller to identify the sites where this sort of waiting takes place. That will serve when/if a better way to handle this business is found. Signed-off-by: Petr Machata <petrm@mellanox.com> Reviewed-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
6495342365
Коммит
989133bf7f
|
@ -103,16 +103,6 @@ dscp_map()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
lldpad_wait()
|
|
||||||
{
|
|
||||||
local dev=$1; shift
|
|
||||||
|
|
||||||
while lldptool -t -i $dev -V APP -c app | grep -q pending; do
|
|
||||||
echo "$dev: waiting for lldpad to push pending APP updates"
|
|
||||||
sleep 5
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
switch_create()
|
switch_create()
|
||||||
{
|
{
|
||||||
ip link add name br1 type bridge vlan_filtering 1
|
ip link add name br1 type bridge vlan_filtering 1
|
||||||
|
@ -124,22 +114,15 @@ switch_create()
|
||||||
|
|
||||||
lldptool -T -i $swp1 -V APP $(dscp_map 10) >/dev/null
|
lldptool -T -i $swp1 -V APP $(dscp_map 10) >/dev/null
|
||||||
lldptool -T -i $swp2 -V APP $(dscp_map 20) >/dev/null
|
lldptool -T -i $swp2 -V APP $(dscp_map 20) >/dev/null
|
||||||
lldpad_wait $swp1
|
lldpad_app_wait_set $swp1
|
||||||
lldpad_wait $swp2
|
lldpad_app_wait_set $swp2
|
||||||
}
|
}
|
||||||
|
|
||||||
switch_destroy()
|
switch_destroy()
|
||||||
{
|
{
|
||||||
lldptool -T -i $swp2 -V APP -d $(dscp_map 20) >/dev/null
|
lldptool -T -i $swp2 -V APP -d $(dscp_map 20) >/dev/null
|
||||||
lldptool -T -i $swp1 -V APP -d $(dscp_map 10) >/dev/null
|
lldptool -T -i $swp1 -V APP -d $(dscp_map 10) >/dev/null
|
||||||
|
lldpad_app_wait_del
|
||||||
# Give lldpad a chance to push down the changes. If the device is downed
|
|
||||||
# too soon, the updates will be left pending, but will have been struck
|
|
||||||
# off the lldpad's DB already, and we won't be able to tell. Then on
|
|
||||||
# next test iteration this would cause weirdness as newly-added APP
|
|
||||||
# rules conflict with the old ones, sometimes getting stuck in an
|
|
||||||
# "unknown" state.
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
ip link set dev $swp2 nomaster
|
ip link set dev $swp2 nomaster
|
||||||
ip link set dev $swp1 nomaster
|
ip link set dev $swp1 nomaster
|
||||||
|
|
|
@ -247,6 +247,27 @@ setup_wait()
|
||||||
sleep $WAIT_TIME
|
sleep $WAIT_TIME
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lldpad_app_wait_set()
|
||||||
|
{
|
||||||
|
local dev=$1; shift
|
||||||
|
|
||||||
|
while lldptool -t -i $dev -V APP -c app | grep -q pending; do
|
||||||
|
echo "$dev: waiting for lldpad to push pending APP updates"
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
lldpad_app_wait_del()
|
||||||
|
{
|
||||||
|
# Give lldpad a chance to push down the changes. If the device is downed
|
||||||
|
# too soon, the updates will be left pending. However, they will have
|
||||||
|
# been struck off the lldpad's DB already, so we won't be able to tell
|
||||||
|
# they are pending. Then on next test iteration this would cause
|
||||||
|
# weirdness as newly-added APP rules conflict with the old ones,
|
||||||
|
# sometimes getting stuck in an "unknown" state.
|
||||||
|
sleep 5
|
||||||
|
}
|
||||||
|
|
||||||
pre_cleanup()
|
pre_cleanup()
|
||||||
{
|
{
|
||||||
if [ "${PAUSE_ON_CLEANUP}" = "yes" ]; then
|
if [ "${PAUSE_ON_CLEANUP}" = "yes" ]; then
|
||||||
|
|
Загрузка…
Ссылка в новой задаче