[LTP] [PATCH v2 1/1] ipneigh01.sh: Add workaround for ARP timeout

Petr Vorel pvorel@suse.cz
Fri Sep 22 17:55:07 CEST 2023


From: Xu Senmiao <xusenmiao@huawei.com>

When the ARP status of the rhost is stale,
lhost ping rhost and the lhost deletes the ARP record,
the record in the rhost changes from stale to delay.

Then, the probe request is sent to the lhost, and the lhost ARP
information is updated.

   rhost(10.0.0.1)      lhost(10.0.0.2)
t1 10.0.0.2 STALE       ping 10.0.0.1
                        10.0.0.1 REACHABLE
                        arp -d 10.0.0.1
t2 10.0.0.2 DELAY
t3 probe 10.0.0.2
t4                      10.0.0.1 REACHABLE

Clear the ARP entries of rhost before each round of test.
This fixes an issue where ipneigh01_arp fail due to ARP timeout.

Signed-off-by: Xu Senmiao <xusenmiao@huawei.com>
[ pvorel: use $DEL_CMD ]
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Changes v1->v2:
* Using DEL_CMD to fix working on system without arp installed.

Xu, can you confirm that it fixes your problem?
Also, do you have this problem also on IPv6?
Could you test both arp and ip?
Also, do you have any idea why rhost get stale?

Kind regards,
Petr

 testcases/network/tcp_cmds/ipneigh/ipneigh01.sh | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/testcases/network/tcp_cmds/ipneigh/ipneigh01.sh b/testcases/network/tcp_cmds/ipneigh/ipneigh01.sh
index e67ff5cc8..f37241d49 100755
--- a/testcases/network/tcp_cmds/ipneigh/ipneigh01.sh
+++ b/testcases/network/tcp_cmds/ipneigh/ipneigh01.sh
@@ -19,14 +19,14 @@ do_setup()
 	case $CMD in
 	ip)
 		SHOW_CMD="ip neigh show"
-		DEL_CMD="ROD ip neigh del $(tst_ipaddr rhost) dev $(tst_iface)"
+		DEL_CMD="ip neigh del $(tst_ipaddr rhost) dev $(tst_iface)"
 		;;
 	arp)
 		if [ -n "$TST_IPV6" ]; then
 			tst_brk TCONF "'arp' doesn't support IPv6"
 		fi
 		SHOW_CMD="arp -an"
-		DEL_CMD="ROD arp -d $(tst_ipaddr rhost) -i $(tst_iface)"
+		DEL_CMD="arp -d $(tst_ipaddr rhost) -i $(tst_iface)"
 		;;
 	*)
 		tst_brk TBROK "unknown or missing command, use -c [ arp | ip ]"
@@ -56,6 +56,7 @@ do_test()
 	tst_res TINFO "stress auto-creation $entry_name cache entry deleted with '$CMD' $NUMLOOPS times"
 
 	for i in $(seq 1 $NUMLOOPS); do
+		$DEL_CMD
 
 		ping$TST_IPV6 -q -c1 $(tst_ipaddr rhost) -I $(tst_iface) > /dev/null || \
 			tst_brk TFAIL "cannot ping $(tst_ipaddr rhost)"
@@ -74,7 +75,7 @@ do_test()
 		[ "$ret" -ne 0 ] && \
 			tst_brk TFAIL "$entry_name entry '$(tst_ipaddr rhost)' not listed"
 
-		$DEL_CMD
+		ROD $DEL_CMD
 
 		$SHOW_CMD | grep -q "$(tst_ipaddr rhost).*$(tst_hwaddr rhost)" && \
 			tst_brk TFAIL "'$DEL_CMD' failed, entry has " \
-- 
2.40.1



More information about the ltp mailing list