mirror_frr/ospf6d
Louis Scalbert 078f609212 ospf6d: reset areas and redistribution at router-id modification
The ospf6 router-id is provided by order of preference by:

 ospf6d itself if the "ospf6 router-id X.X.X.X" command is set.
- zebra. If the "ip router-id X.X.X.X" zebra command is set, the
  configured IP is provided as the ID or alternatively the highest
  loopback IPv4 address or else the highest interface IPv4 address.

The running ospf6 router-id is stored in ospf6->router-id.

ospf6->router-id can change in the following conditions:

- A configuration change provides a new router-id value according to
  the above rules. ospf6->router-id is updated to the new value if
  there is no adjacency in FULL state. Otherwise, the ospf6d process
  must be restarted to take the new router-id into account.
- On startup of both zebra and ospf6d, if ospf6d has not yet received a
  valid router-id, ospf6d->router-id is set to 0 (i.e. 0.0.0.0). Then,
  zebra notifies ospf6d that the router-id is available.

At ospf6->router-id, the current behavior of ospf6d is the following:

- The self generated LSAs that refer to the previous router-id as the
  advertising router are kept.
- Self generated LSAs are created with router-id value.
- LSAs from the redistribution that refer to the previous router-id are
  kept and no new redistribution LSAs are created.

As a consequence, the routers in the ospf6 areas will get incorrect
LSAs and might not be able to install prefixes of those LSAs into their
RIB.

This fix solves this issue by resetting the areas and the redistribution
when ospf6->router-id updated.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2021-09-23 10:04:36 +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: add support for NSSA totally stub areas 2021-09-07 11:43:35 -03:00
ospf6_abr.h ospf6d: Rename ospf6_is_router_abr to more accurately reflect what it does 2021-06-10 07:59:06 -04:00
ospf6_area.c ospf6d: add support for NSSA totally stub areas 2021-09-07 11:43:35 -03:00
ospf6_area.h ospf6d: do not allow an area to be stub and NSSA at the same time 2021-08-24 11:53:36 -03:00
ospf6_asbr.c ospf6d: add support for NSSA totally stub areas 2021-09-07 11:43:35 -03:00
ospf6_asbr.h ospf6d: install summary route NULL0 as nexthop 2021-07-21 05:16:54 +00:00
ospf6_bfd.c isisd, ospf6d, pimd: set vrf_id when creating bfd sessions 2021-05-31 15:04:13 +03:00
ospf6_bfd.h ospf6d: rework BFD integration 2021-04-22 16:10:01 -03:00
ospf6_flood.c Merge pull request #8935 from rgirada/ospfv3_gr_helper 2021-08-19 15:01:34 -03:00
ospf6_flood.h ospf6d: ASBR Summarisation feature implementation 2021-07-21 05:16:54 +00:00
ospf6_gr_helper.c ospf6d: fix display of debug command in the running configuration 2021-08-31 01:48:22 -03:00
ospf6_gr.h ospf6d: GR helper configurations 2021-08-11 23:06:49 -07:00
ospf6_interface.c *: explicitly print "exit" at the end of every node config 2021-08-23 22:08:20 +03:00
ospf6_interface.h ospf6d: GR helper exit scenarios 2021-08-10 02:57:23 -07:00
ospf6_intra.c Merge pull request #9028 from mobash-rasool/ospfv3-asbr-summarisation 2021-07-30 06:37:50 -04:00
ospf6_intra.h ospf6d: use in_addr_t for area/router IDs 2020-07-14 11:16:01 +02:00
ospf6_lsa.c ospf6d: JSON output for database dump show command 2021-08-12 16:26:01 -04:00
ospf6_lsa.h ospf6d: Datastructure modification for GR helper functionality. 2021-08-10 02:57:23 -07:00
ospf6_lsdb.c ospf6d: Review comment fixes 2021-07-21 05:16:54 +00:00
ospf6_lsdb.h ospf6d: fix lock leak of using ALL_LSDB in GR helper 2021-08-22 05:26:20 -04:00
ospf6_main.c *: Drop break after using frr_help_exit() in switch/case 2021-08-25 10:49:05 +03:00
ospf6_message.c ospf6d: fix unguarded GR debug message 2021-08-31 01:45:50 -03:00
ospf6_message.h ospf6d: add dbdesc messages to tx FIFO 2021-06-18 09:40:42 +01:00
ospf6_neighbor.c ospf6d: GR helper configurations 2021-08-11 23:06:49 -07:00
ospf6_neighbor.h ospf6d: Datastructure modification for GR helper functionality. 2021-08-10 02:57:23 -07:00
ospf6_network.c ospf6d: read ospf6 socket until failure 2021-06-18 09:40:42 +01:00
ospf6_network.h ospf6d: add dbdesc messages to tx FIFO 2021-06-18 09:40:42 +01:00
ospf6_nssa.c ospf6d: do not allow an area to be stub and NSSA at the same time 2021-08-24 11:53:36 -03:00
ospf6_nssa.h ospf6d: do not allow an area to be stub and NSSA at the same time 2021-08-24 11:53:36 -03:00
ospf6_proto.c ospf6d: add DN bit in prefix options 2021-02-23 18:04:27 +01:00
ospf6_proto.h ospf6d: Support for nssa in ospfv3 2021-06-04 07:23:10 -03:00
ospf6_route.c ospf6d: fix logging of border router routes 2021-08-24 11:53:36 -03:00
ospf6_route.h Merge pull request #9028 from mobash-rasool/ospfv3-asbr-summarisation 2021-07-30 06:37:50 -04:00
ospf6_routemap_nb_config.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
ospf6_routemap_nb.c *: make sure config.h or zebra.h is first 2021-04-23 12:06:35 +02:00
ospf6_routemap_nb.h ospf6d: North-bound implementation for ospf6d rmaps 2021-03-30 22:59:30 +03:00
ospf6_snmp.c ospf6d: Rename ospf6_is_router_abr to more accurately reflect what it does 2021-06-10 07:59:06 -04:00
ospf6_spf.c ospf6d: remove incorrect debug guard 2021-08-24 00:39:56 -03:00
ospf6_spf.h ospf6d: support for nssa in ospfv3 2021-06-04 07:23:10 -03:00
ospf6_top.c ospf6d: reset areas and redistribution at router-id modification 2021-09-23 10:04:36 +02:00
ospf6_top.h ospf6d: factorize router-id update 2021-09-21 19:00:38 +02:00
ospf6_zebra.c ospf6d: don't update router-id if at least one adjacency is Full 2021-09-21 19:00:38 +02:00
ospf6_zebra.h ospf6d: Add CLI and logic for default-information originate command 2021-03-29 06:37:10 -07:00
ospf6d.c ospf6d: Prevent crash of show ipv6 ospf data adv-router 0.0.0.0 linkstate-id 0.0.0.0 2021-09-01 08:07:53 -04:00
ospf6d.h ospf6d: Init/De-init gr helper functionality 2021-08-10 02:57:23 -07:00
README ospf6d: add "auto-cost reference-bandwidth" command 2014-03-21 06:28:48 +01:00
subdir.am ospf6d: add support for NSSA totally stub areas 2021-09-07 11:43:35 -03: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>