svn commit: r358585 - in head: sys/net tests/sys/netinet tests/sys/netinet6

Alexander V. Chernikov melifaro at FreeBSD.org
Tue Mar 3 15:33:44 UTC 2020


Author: melifaro
Date: Tue Mar  3 15:33:43 2020
New Revision: 358585
URL: https://svnweb.freebsd.org/changeset/base/358585

Log:
  Fix dynamic redrects by adding forgotten RTF_HOST flag.
  Improve tests to verify the generated route flags.
  
  Reported by:	jtl
  MFC after:	2 weeks

Modified:
  head/sys/net/route.c
  head/tests/sys/netinet/redirect.sh
  head/tests/sys/netinet6/redirect.sh

Modified: head/sys/net/route.c
==============================================================================
--- head/sys/net/route.c	Tue Mar  3 15:31:40 2020	(r358584)
+++ head/sys/net/route.c	Tue Mar  3 15:33:43 2020	(r358585)
@@ -632,7 +632,7 @@ rib_add_redirect(u_int fibnum, struct sockaddr *dst, s
 	info.rti_info[RTAX_GATEWAY] = gateway;
 	info.rti_ifa = ifa;
 	info.rti_ifp = ifp;
-	info.rti_flags = flags | RTF_DYNAMIC;
+	info.rti_flags = flags | RTF_HOST | RTF_DYNAMIC;
 
 	/* Setup route metrics to define expire time. */
 	bzero(&rti_rmx, sizeof(rti_rmx));

Modified: head/tests/sys/netinet/redirect.sh
==============================================================================
--- head/tests/sys/netinet/redirect.sh	Tue Mar  3 15:31:40 2020	(r358584)
+++ head/tests/sys/netinet/redirect.sh	Tue Mar  3 15:33:43 2020	(r358585)
@@ -92,9 +92,8 @@ valid_redirect_body() {
 		--route ${dst_addr4} --gw ${new_rtr_ip}  \
 		--iface ${epair}a 
 	
-	count=`jexec ${jname} route -n get -4 ${dst_addr4} | grep destination | grep -c ${dst_addr4}`
-	# Verify redirect got installed
-	atf_check_equal "1" "${count}"
+	atf_check -o match:"destination: ${dst_addr4}\$" jexec ${jname} route -n get -4 ${dst_addr4}
+	atf_check -o match:'flags: <UP,GATEWAY,HOST,DYNAMIC,DONE>' jexec ${jname} route -n get -4 ${dst_addr4}
 }
 
 valid_redirect_cleanup() {

Modified: head/tests/sys/netinet6/redirect.sh
==============================================================================
--- head/tests/sys/netinet6/redirect.sh	Tue Mar  3 15:31:40 2020	(r358584)
+++ head/tests/sys/netinet6/redirect.sh	Tue Mar  3 15:33:43 2020	(r358585)
@@ -94,9 +94,9 @@ valid_redirect_body() {
 		--route ${dst_addr6} --gw ${new_rtr_ll_ip}  \
 		--iface ${epair}a 
 	
-	count=`jexec ${jname} route -n get -6 ${dst_addr6} | grep destination | grep -c ${dst_addr6}`
 	# Verify redirect got installed
-	atf_check_equal "1" "${count}"
+	atf_check -o match:"destination: ${dst_addr6}\$" jexec ${jname} route -n get -6 ${dst_addr6}
+	atf_check -o match:'flags: <UP,GATEWAY,HOST,DYNAMIC,DONE>' jexec ${jname} route -n get -6 ${dst_addr6}
 }
 
 valid_redirect_cleanup() {


More information about the svn-src-all mailing list