frr/ospf6d
Martin Buck b925570981 ospf6d: Fix nexthop computation for inter-area multi-ABR ECMP
Pre-b74e965, we always merged nexthops of old (existing) and new (newly
generated, based on a LSA update) routes, making it impossible to remove
individual nexthops from a route. b74e965 replaced this by copying nexthops
from the new route to the old route. This works as long as the old and new
route are derived from the same LSA (e.g. multiple ECMP paths to the same
ABR). However, in case of multiple parallel ABRs, each of them originates a
LSA and the nexthops derived from them need to be combined to get the proper
route nexthops. So instead of trying to incrementally update the route
nexthops based on the old and new route nexthops, always recompute the route
nexthops by merging all of its path nexthops (which we're already updating
based on the LSA being processed).

Fixes #15777.

Signed-off-by: Martin Buck <mb-tmp-tvguho.pbz@gromit.dyndns.org>
2024-05-03 09:49:24 +02:00
..
.gitignore *: cleanup .gitignore files 2018-09-08 21:30:42 +02:00
Makefile build: non-recursive ospf* 2017-08-04 11:09:50 +02:00
ospf6_abr.c ospf6d: Fix nexthop computation for inter-area multi-ABR ECMP 2024-05-03 09:49:24 +02:00
ospf6_abr.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_area.c *: use af-specific autocompletion for prefix-lists when possible 2024-02-04 22:26:48 +02:00
ospf6_area.h *: Rename struct thread to struct event 2023-03-24 08:32:17 -04:00
ospf6_asbr.c *: convert struct interface->connected to DLIST 2023-11-22 23:00:30 +01:00
ospf6_asbr.h ospf6d: handle redistributed routes without nexthop addresses 2023-03-02 19:38:03 -03:00
ospf6_auth_trailer.c ospf6d: fix GR & auth seqno state location 2024-01-27 19:02:52 +01:00
ospf6_auth_trailer.h ospf6d: fix GR & auth seqno state location 2024-01-27 19:02:52 +01:00
ospf6_bfd.c *: Convert event.h to frrevent.h 2023-03-24 08:32:17 -04:00
ospf6_bfd.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_flood.c ospf6d: Free Newly Created LSA when Non-Self-Originated Grace LSA is Discarded 2023-08-23 09:23:48 +04:00
ospf6_flood.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_gr.c ospf6d: fix GR & auth seqno state location 2024-01-27 19:02:52 +01:00
ospf6_gr.h ospfd, ospf6d: fix time_t truncation 2023-05-30 19:47:28 -03:00
ospf6_gr_helper.c ospfd, ospf6d: Remove deprecated JSON fields 2024-04-11 13:34:17 +03:00
ospf6_interface.c ospf6d: accept CLI no for point-to-multipoint 2024-04-25 12:20:27 +02:00
ospf6_interface.h lib,ospf6d: fix reference bandwidth description 2024-01-29 14:52:35 +01:00
ospf6_intra.c ospf6d: add point-to-multipoint interface mode 2023-10-10 08:08:20 +10:00
ospf6_intra.h * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
ospf6_lsa.c * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
ospf6_lsa.h ospf6d: Convert ospf6_lsa_unlock to a better api 2023-07-12 17:56:29 -04:00
ospf6_lsdb.c * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
ospf6_lsdb.h ospf6d: Convert ospf6_lsa_unlock to a better api 2023-07-12 17:56:29 -04:00
ospf6_main.c eigrpd, mgmtd, ospf6d: frr_fini is last 2024-03-13 07:09:10 +00:00
ospf6_message.c Merge pull request #14546 from adrianomarto/ospf6-point-to-multipoint 2023-10-31 18:20:04 -04:00
ospf6_message.h ospf6d: support unicast hellos on PtP/PtMP 2023-10-10 08:07:52 +10:00
ospf6_neighbor.c ospf6d: fix DEFUN formatting wrecked by clang 2024-04-25 11:45:19 +02:00
ospf6_neighbor.h ospf6: removing double-including of ospf6_neighbor.h 2023-10-28 15:46:18 +10:00
ospf6_network.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_network.h *: Convert thread_add_XXX functions to event_add_XXX 2023-03-24 08:32:17 -04:00
ospf6_nssa.c * : include event ptr in event_execute api 2023-07-25 10:17:48 -04:00
ospf6_nssa.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_proto.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_proto.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_route.c Merge pull request #14546 from adrianomarto/ospf6-point-to-multipoint 2023-10-31 18:20:04 -04:00
ospf6_route.h build: add -Wimplicit-fallthrough 2023-10-12 21:23:18 +03:00
ospf6_routemap_nb.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_routemap_nb.h *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_routemap_nb_config.c *: auto-convert to SPDX License IDs 2023-02-09 14:09:11 +01:00
ospf6_snmp.c Merge pull request #14546 from adrianomarto/ospf6-point-to-multipoint 2023-10-31 18:20:04 -04:00
ospf6_spf.c ospf6d: add support for unplanned graceful restart 2023-05-08 21:47:44 -03:00
ospf6_spf.h ospf6d: missing ECMP NHs in certain topologies 2023-04-13 07:55:03 -04:00
ospf6_top.c ospf6d: fix GR & auth seqno state location 2024-01-27 19:02:52 +01:00
ospf6_top.h ospf6d: Cleanup memory on shutdown 2023-11-13 09:16:45 -05:00
ospf6_zebra.c ospf6d: use zclient->nexthop_update 2023-11-20 11:28:23 +01:00
ospf6_zebra.h *: Rearrange vrf_bitmap_X api to reduce memory footprint 2023-06-26 14:59:21 -04:00
ospf6d.c ospf6d: Add config callbacks to suppress hellos during config load. Add bgpd/isisd message. 2023-06-23 07:48:02 -04:00
ospf6d.h ospf6d: Add config callbacks to suppress hellos during config load. Add bgpd/isisd message. 2023-06-23 07:48:02 -04:00
README ospf6d: add "auto-cost reference-bandwidth" command 2014-03-21 06:28:48 +01:00
subdir.am ospf6d: connected prefix toggle for PtP/PtMP 2023-10-10 08:09:42 +10:00

		  Zebra OSPF daemon for IPv6 network

			     2003/08/18

README for newer code is not yet. General usage should remain
the same. For further usage, see command helps by typing '?'
in vty, and then imagin ! ;p) Previous README contents follows.

		  Zebra OSPF daemon for IPv6 network

			     2001/12/20

Zebra OSPF6d is OSPF version 3 daemon which is specified by
"OSPF for IPv6" (RFC 2740).

*** NOTE ***
  Zebra ospf6d is in development yet. It may lack some functionalities,
  and may have some bugs. Use the latest version from the anoncvs
  repository (http://www.zebra.org/cvs.html) !

This file README is like memo yet, so please feel free to ask
<yasu@sfc.wide.ad.jp> by E-mail. Patches will be appriciated.

ospf6d's vty port was default to 2606/tcp.
Use commands below.

VIEW NODE:
  show ipv6 ospf6
    To see Router-ID, uptime of ospf6d, some statistics.

  show ipv6 ospf6 database ...
    This command shows LSA database. You can specify
    LS-type/LS-ID/Advertising-Router of LSAs. '*' is recognized.

  show ipv6 ospf6 interface ...
    To see the status of the OSPF interface, and the configuration
    like interface costs.

  show ipv6 ospf6 neighbor ...
    Shows state of neighbors and choosed (Backup) DR on the I/F.

  show ipv6 ospf6 route (X::X)
    This command shows internal routing table of the ospf6d.
    Routes not calculated by OSPFv3 (like connected routes)
    are not shown. If Address is specified (X::X), shows the route
    that the address matches.

  show ipv6 ospf6 route redistribute (X::X)
    Shows the routes advertised as AS-External routes by the router
    itself. If Address is specified (X::X), shows the route
    that the address matches.

CONFIG NODE:
  interface NAME
    To enter INTERFACE NODE

  router ospf6 ...
    To enter OSPF6 NODE

INTERFACE NODE:
  ipv6 ospf6 cost COST
    Sets the interface's output cost. Depends on interface bandwidth by default.

  ipv6 ospf6 hello-interval HELLOINTERVAL
    Sets the interface's Hello Interval. default 10

  ipv6 ospf6 dead-interval DEADINTERVAL
    Sets the interface's Router Dead Interval. default 40

  ipv6 ospf6 retransmit-interval RETRANSMITINTERVAL
    Sets the interface's Rxmt Interval. default 5

  ipv6 ospf6 priority PRIORITY
    Sets the interface's Router Priority. default 1

  ipv6 ospf6 transmit-delay TRANSMITDELAY
    Sets the interface's Inf-Trans-Delay. default 1

OSPF6 NODE:
  router-id A.B.C.D
    Sets the router's Router-ID

  interface NAME area AREA
    Binds interface to specified Area, and start
    sending OSPFv3 packets.

  auto-cost reference-bandwidth COST
    Sets the reference bandwidth for cost calculations, where this
    bandwidth is considered equivalent to an OSPF cost of 1, specified
    in Mbits/s. The default is 100Mbit/s (i.e. a link of bandwidth
    100Mbit/s or higher will have a cost of 1. Cost of lower bandwidth
    links will be scaled with reference to this cost).  This
    configuration setting MUST be consistent across all routers within
    the OSPF domain.

Sample configuration is in ospf6d.conf.sample.

--
Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
Kunihiro Ishiguro <kunihiro@zebra.org>