mirror_frr/tests
Louis Scalbert a90d4c45db isisd: fix metric calculation of classic lfa backup prefixes
The isis-lfa-topo1 topotest shows backup routes with lower metrics than
the primary ones.

> rt1# show isis route
> Area 1:
> IS-IS L1 IPv6 routing table:
>
>  Prefix                Metric  Interface  Nexthop                    Label(s)
>  ------------------------------------------------------------------------------
>  2001:db8:1000::1/128  0       -          -                          -
>  2001:db8:1000::2/128  20      eth-rt2    fe80::d091:eeff:fe09:31cd  -
>  2001:db8:1000::3/128  20      eth-rt3    fe80::946b:d4ff:fe5b:414b  -
>  2001:db8:1000::4/128  20      eth-rt4    fe80::5ced:29ff:feed:59c4  -
> (...)
>
> rt1# show isis route backup
> Area 1:
> IS-IS L1 IPv6 routing table:
>
>  Prefix                Metric  Interface  Nexthop                    Label(s)
>  ------------------------------------------------------------------------------
>  2001:db8:1000::2/128  15      eth-rt3    fe80::946b:d4ff:fe5b:414b  -
>                                eth-rt5    fe80::847d:feff:fe74:bdde  -
>                                eth-rt6    fe80::ac8c:dff:feac:8a8d   -
>  2001:db8:1000::3/128  15      eth-rt2    fe80::d091:eeff:fe09:31cd  -
>                                eth-rt5    fe80::847d:feff:fe74:bdde  -
>  2001:db8:1000::4/128  45      eth-rt5    fe80::847d:feff:fe74:bdde  -
> (...)

Backup routes metrics are incorrect because they only take into account
the path metric but not the prefix metric.

Add the prefix metric to the path metric on backup routes.

After the patch with a prefix metric of 10:

> rt1# show isis route backup
> Area 1:
> IS-IS L1 IPv6 routing table:
>
> Area 1:
> IS-IS L1 IPv6 routing table:
>
>  Prefix                Metric  Interface  Nexthop                    Label(s)
>  ------------------------------------------------------------------------------
>  2001:db8:1000::2/128  25      eth-rt3    fe80::8c6f:8aff:fe10:ad0d  -
>                                eth-rt5    fe80::b08e:5cff:fe90:62dd  -
>                                eth-rt6    fe80::4810:47ff:fe81:2b9a  -
>  2001:db8:1000::3/128  25      eth-rt2    fe80::e855:12ff:fe31:5765  -
>                                eth-rt5    fe80::b08e:5cff:fe90:62dd  -
>  2001:db8:1000::4/128  55      eth-rt5    fe80::b08e:5cff:fe90:62dd  -

Fixes: e886416f81 ("isisd: add support for classic LFA (RFC 5286)")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-10-24 14:56:42 +02:00
..
bgpd bgpd: Add RFC9234 implementation 2022-06-17 13:14:46 +03:00
helpers *: Change thread->func to return void instead of int 2022-02-23 19:56:04 -05:00
isisd isisd: fix metric calculation of classic lfa backup prefixes 2022-10-24 14:56:42 +02:00
lib tests: make hash collision test collide harder 2022-10-06 15:28:26 +02:00
ospf6d build: break up tests/subdir.am 2021-11-11 14:40:03 +01:00
ospfd ospfd: add all_rtrs route table when opaque enabled 2022-06-02 16:37:16 -04:00
topotests topotests: isis-tilfa add a switchover test after BFD down 2022-10-24 14:56:42 +02:00
zebra build: break up tests/subdir.am 2021-11-11 14:40:03 +01:00
.gitignore tests: new grpc topotest 2022-03-14 11:14:12 -04:00
Makefile build: non-recursive tests 2018-09-08 21:26:54 +02:00
pytest.ini tests: Exclude topotests from consideration 2018-11-27 20:22:10 -05:00
runtests.py *: reformat python files 2020-10-07 17:22:26 -04:00
subdir.am build: break up tests/subdir.am 2021-11-11 14:40:03 +01:00