Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F165295204
D57552.id179658.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D57552.id179658.diff
View Options
diff --git a/tests/sys/net/routing/test_routing.sh b/tests/sys/net/routing/test_routing.sh
--- a/tests/sys/net/routing/test_routing.sh
+++ b/tests/sys/net/routing/test_routing.sh
@@ -222,10 +222,96 @@
vnet_cleanup
}
+atf_test_case "test_ecmp_routes_by_event" "cleanup"
+test_ecmp_routes_by_event_head()
+{
+ atf_set descr 'Test reachability of ECMP routes when an ifp gets down'
+ atf_set require.user root
+}
+
+test_ecmp_routes_by_event_body()
+{
+ local jname epair0 epair1 lo0_addr lo1_addr ep0_prefix ep1_prefix
+
+ jname="ecmp_route_by_event"
+ lo0_addr="3fff:a::1"
+ lo1_addr="3fff:b::1"
+ ep0_prefix="3fff:1::"
+ ep1_prefix="3fff:2::"
+
+ vnet_init
+ epair0=$(vnet_mkepair)
+ epair1=$(vnet_mkepair)
+
+ vnet_mkjail ${jname} ${epair0}b
+ atf_check -o ignore \
+ ifconfig ${epair1}b vnet ${jname}
+
+ atf_check -o ignore \
+ ifconfig ${epair0}a inet6 ${ep0_prefix}a/127 up
+ atf_check -o ignore \
+ ifconfig ${epair1}a inet6 ${ep1_prefix}a/127 up
+ atf_check -o ignore \
+ ifconfig -j ${jname} ${epair0}b inet6 ${ep0_prefix}b/127 up
+ atf_check -o ignore \
+ ifconfig -j ${jname} ${epair1}b inet6 ${ep1_prefix}b/127 up
+ atf_check -o ignore \
+ ifconfig lo0 inet6 ${lo0_addr}/128 up
+ atf_check -o ignore \
+ ifconfig -j ${jname} lo0 inet6 ${lo1_addr}/128 up
+
+ # Create ECMP routes with via epair0 and epair1 to loopback
+ atf_check -o ignore \
+ route -6 add -net ${lo1_addr}/128 -gateway ${ep0_prefix}b
+ atf_check -o ignore \
+ route -6 add -net ${lo1_addr}/128 -gateway ${ep1_prefix}b
+ atf_check -o ignore \
+ route -6j ${jname} add -net ${lo0_addr}/128 -gateway ${ep0_prefix}a
+ atf_check -o ignore \
+ route -6j ${jname} add -net ${lo0_addr}/128 -gateway ${ep1_prefix}a
+
+ # Check the connection
+ atf_check -o ignore ping -c1 -t1 ${ep0_prefix}b
+ atf_check -o ignore ping -c1 -t1 ${ep1_prefix}b
+ atf_check -o ignore ping -c1 -t1 -S ${lo0_addr} ${lo1_addr}
+
+ # Down one of the nexthop interfaces
+ atf_check -o ignore \
+ ifconfig ${epair0}a down
+ # Since epair doesn't support linkstate and we need to receive
+ # the icmp reply, shutdown the other side of epair too
+ atf_check -o ignore \
+ ifconfig -j${jname} ${epair0}b down
+
+ # Test if our destination is still reachable
+ sleep 0.01
+ atf_check -o ignore ping -c1 -t1 -S ${lo0_addr} ${lo1_addr}
+
+ # Do the same thing for other interface
+ atf_check -o ignore \
+ ifconfig ${epair0}a up
+ atf_check -o ignore \
+ ifconfig -j${jname} ${epair0}b up
+ atf_check -o ignore \
+ ifconfig ${epair1}a down
+ atf_check -o ignore \
+ ifconfig -j${jname} ${epair1}b down
+
+ # Test if our destination is still reachable
+ sleep 0.01
+ atf_check -o ignore ping -c1 -t1 -S ${lo0_addr} ${lo1_addr}
+}
+
+test_ecmp_routes_by_event_cleanup()
+{
+ vnet_cleanup
+}
+
atf_init_test_cases()
{
atf_add_test_case "add_lowest_metric"
atf_add_test_case "add_default_metric"
atf_add_test_case "delete_route_with_metric"
+ atf_add_test_case "test_ecmp_routes_by_event"
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Aug 8, 11:46 AM (21 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33932481
Default Alt Text
D57552.id179658.diff (2 KB)
Attached To
Mode
D57552: routing: Add test for nexthop subscription
Attached
Detach File
Event Timeline
Log In to Comment