Timeout

Test to verify RIPng timeout timer functionality for detecting unreachable IPv6 routes. When a router stops receiving updates from a neighbor, the timeout timer automatically marks routes as invalid (metric 16 = unreachable) after the configured timeout period. This test simulates neighbor loss by removing RIPng configuration from the advertising router.

Test RIPng Timeout Timer

Description

Verify RIPng timeout timer marks IPv6 routes as invalid when updates stop arriving. Initially, DUT0 advertises the route 2001:db8:10::/64 to DUT1. Then RIPng is deleted from DUT0 to simulate a neighbor loss scenario. After 5 seconds without receiving updates, DUT1 marks the route with metric 16 which indicates the route is unreachable. The route remains visible in the routing table but is not used for forwarding traffic.

Scenario

Note

Timeout timer behavior:

When DUT0 stops sending RIPng updates (simulated by deleting RIPng configuration), DUT1 does not immediately remove the IPv6 route. Instead, it follows this process:

Timeline:

  1. T=0s: DUT0 stops advertising 2001:db8:10::/64

  2. T=5s: timeout timer expires on DUT1

  3. Result: Route marked as invalid with metric 16

What is metric 16?

In RIPng (like RIP), metric 16 represents infinity or unreachable. The route remains visible in the routing table but is not used for forwarding traffic. This prevents routing loops and allows neighbors to be informed that the route is no longer valid.

Step 1: Set the following configuration in DUT0 :

set interfaces dummy dum0 address '2001:db8:10::1/64'
set interfaces ethernet eth0 address '2001:db8:1::100/64'
set protocols ripng network '2001:db8:1::/64'
set protocols ripng redistribute connected
set protocols ripng timers update 5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Step 2: Set the following configuration in DUT1 :

set interfaces ethernet eth0 address '2001:db8:1::50/64'
set protocols ripng network '2001:db8:1::/64'
set protocols ripng timers timeout 5
set protocols ripng timers update 5
set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'

Attention

Verify that DUT1 learns the route 2001:db8:10::/64 from DUT0

Step 3: Run command protocols ripng show at DUT1 and check if output matches the following regular expressions:

2001:db8:10::/64
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:1::/64
                  ::                          self       1    0
R(n) 2001:db8:10::/64
                  fe80::dcad:beff:feef:6c00   eth0       2    0  00:03

Step 4: Run command protocols ipv6 show route at DUT1 and check if output matches the following regular expressions:

2001:db8:10::/64
Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

IPv6 unicast VRF default:
C>* 2001:db8:1::/64 is directly connected, eth0, weight 1, 00:00:04
K * 2001:db8:1::/64 [0/256] is directly connected, eth0, weight 1, 00:00:05
L>* 2001:db8:1::50/128 is directly connected, eth0, weight 1, 00:00:04
R>* 2001:db8:10::/64 [120/2] via fe80::dcad:beff:feef:6c00, eth0, weight 1, 00:00:02
C>* fe80::/64 is directly connected, eth0, weight 1, 00:00:03

Note

Delete RIPng from DUT0 to simulate loss of neighbor - this stops update advertisements

Step 5: Modify the following configuration lines in DUT0 :

delete protocols

Note

Wait for timeout period + margin (10 seconds)

Attention

Verify that the route 2001:db8:10::/64 is marked as invalid with metric 16 in DUT1

Step 6: Run command protocols ripng show at DUT1 and expect this output:

Show output
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct
Sub-codes:
      (n) - normal, (s) - static, (d) - default, (r) - redistribute,
      (i) - interface, (a/S) - aggregated/Suppressed

   Network      Next Hop                      Via     Metric Tag Time
C(i) 2001:db8:1::/64
                  ::                          self       1    0
R(n) 2001:db8:10::/64
                  fe80::dcad:beff:feef:6c00   eth0      16    0  01:52