mirror_frr/isisd
Christian Franke 26b0598f6b isisd: fix isis_route_merge_verify logic
This addresses two issues for L1L2 operation:

a) If an L1 route has ROUTE_ACTIVE unset and an L2 route for the same
destination has ROUTE_ACTIVE set, isisd would still put the L1 route
into the merged table. This causes the route for the destination to
get uninstalled from zebra until the next SPF run, which is incorrect.

To fix this, look at the ROUTE_ACTIVE flag and allow L2 routes to win
against L1 routes, when the L1 has ROUTE_ACTIVE unset.

b) If an L1 route wins against an existing L2 route, the ZEBRA_SYNCED
flag would remain on the L2 route. This leads to the problem that when
the L1 route disappears again, the L2 doesn't get reinstalled, since
isisd assumes it's already in the RIB because ZEBRA_SYNCED is set.

Solve this by clearing ZEBRA_SYNCED on L2 routes, if they lose against
an L1 route.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-08-03 13:25:39 +02:00
..
.gitignore build: non-recursive isisd 2017-08-04 11:09:50 +02:00
AUTHORS Add support of Traffic Engineering to IS-IS 2016-09-03 11:05:50 -04:00
dict.c isisd: resolve possible null pointer dereference 2018-04-23 19:24:52 -04:00
dict.h *: Remove cvs control points 2017-12-05 17:28:12 -05:00
isis_adjacency.c eigrpd, isisd, lib, ospfd: no effect (cppcheck) 2018-06-19 10:19:05 +02:00
isis_adjacency.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_bpf.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_circuit.c isisd: don't crash when isis_sock_init fails 2018-07-19 10:11:07 -04:00
isis_circuit.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_common.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_constants.h isisd: fix issue with lsp queueing logic in lsp_tick 2017-10-05 16:02:33 +02:00
isis_csm.c isisd: allocate circuit_id only for broadcast circuits 2018-03-10 18:38:03 +01:00
isis_csm.h *: reindent 2017-07-17 14:04:07 +02:00
isis_dlpi.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_dr.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_dr.h *: reindent 2017-07-17 14:04:07 +02:00
isis_dynhn.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_dynhn.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_events.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_events.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_flags.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_flags.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_lsp_hash.c *: conform with COMMUNITY.md formatting rules, via 'make indent' 2018-03-06 14:04:32 -05:00
isis_lsp_hash.h isisd: optimize per interface lsp send-queue creation 2017-10-03 14:20:30 +02:00
isis_lsp.c isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_lsp.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_main.c isisd: send/receive LSPs with new parser 2017-08-03 11:34:04 +02:00
isis_memory.c isisd: rework complete, move "tlvs2" to "tlvs" 2017-08-03 11:34:04 +02:00
isis_memory.h isisd: rework complete, move "tlvs2" to "tlvs" 2017-08-03 11:34:04 +02:00
isis_misc.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_misc.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_mt.c isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_mt.h isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_network.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_pdu.c isisd: add debug message if adjacency is ignored because IP is unusable 2018-08-03 13:25:38 +02:00
isis_pdu.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_pfpacket.c isisd: return check (Coverity 1424370) 2018-06-28 16:31:37 +02:00
isis_redist.c isisd: fix redist_delete to also consider level-2 2018-08-03 13:25:39 +02:00
isis_redist.h isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_route.c isisd: fix isis_route_merge_verify logic 2018-08-03 13:25:39 +02:00
isis_route.h isisd: move route_table into spftree 2018-08-03 13:25:39 +02:00
isis_routemap.c libs, daemons: use const in route-map apply 2018-07-23 10:34:35 -04:00
isis_routemap.h *: reindent 2017-07-17 14:04:07 +02:00
isis_spf.c isisd: move route_table into spftree 2018-08-03 13:25:39 +02:00
isis_spf.h isisd: move route_table into spftree 2018-08-03 13:25:39 +02:00
isis_te.c bgpd isisd ldpd lib ospfd pimd: redundancy (infer) 2018-06-20 22:25:28 +02:00
isis_te.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_tlvs.c isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_tlvs.h isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_vty.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
isis_zebra.c isisd: learn and advertise IPv6 dst-src routes 2018-08-03 13:25:39 +02:00
isis_zebra.h *: reindent 2017-07-17 14:04:07 +02:00
isisd.c isisd: move route_table into spftree 2018-08-03 13:25:39 +02:00
isisd.conf.sample Isisd is now able to remove addresses from circuit and trigger LSP updates 2004-09-14 13:54:30 +00:00
isisd.h isisd: move route_table into spftree 2018-08-03 13:25:39 +02:00
iso_checksum.c *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
iso_checksum.h *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
Makefile build: non-recursive isisd 2017-08-04 11:09:50 +02:00
README More cleanup in isisd. 2005-01-01 21:12:56 +00:00
subdir.am isisd: optimize per interface lsp send-queue creation 2017-10-03 14:20:30 +02:00

Constraints

  o Maximum number of interfaces 255