Commit Graph

66 Commits

Author SHA1 Message Date
Renato Westphal
1051417011 ospfd: introduce support for Graceful Restart (restarting mode)
RFC 3623 specifies the Graceful Restart enhancement to the OSPF
routing protocol. This PR implements support for the restarting mode,
whereas the helper mode was implemented by #6811.

This work is based on #6782, which implemented the pre-restart part
and settled the foundations for the post-restart part (behavioral
changes, GR exit conditions, and on-exit actions).

Here's a quick summary of how the GR restarting mode works:
* GR can be enabled on a per-instance basis using the `graceful-restart
  [grace-period (1-1800)]` command;
* To perform a graceful shutdown, the `graceful-restart prepare ospf`
  EXEC-level command needs to be issued before restarting the ospfd
  daemon (there's no specific requirement on how the daemon should
  be restarted);
* `graceful-restart prepare ospf` will initiate the graceful restart
  for all GR-enabled instances by taking the following actions:
  o Flooding Grace-LSAs over all interfaces
  o Freezing the OSPF routes in the RIB
  o Saving the end of the grace period in non-volatile memory (a JSON
    file stored in `$frr_statedir`)
* Once ospfd is started again, it will follow the procedures
  described in RFC 3623 until it detects it's time to exit the graceful
  restart (either successfully or unsuccessfully).

Testing done:
* New topotest featuring a multi-area OSPF topology (including stub
  and NSSA areas);
* Successful interop tests against IOS-XR routers acting as helpers.

Co-authored-by: GalaxyGorilla <sascha@netdef.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-07-05 11:43:02 -03:00
anlancs
5ebb223905 doc: add a note for ospfd instances
Multiple instances of ospfd don't support vrf henceforth.

Signed-off-by: anlancs <anlan_cs@tom.com>
2021-06-28 09:32:38 +08:00
Pat Ruddy
44db98df2a doc: add OSPF[6] write-multiplier to docs
Add documentation for write-muliplier to both OSPF and OSPF6 docs

Signed-off-by: Pat Ruddy <pat@voltanet.io>
2021-06-18 09:40:42 +01:00
Russ White
0a47f287b1
Merge pull request #8796 from idryzhov/ospf-passive
ospfd: fix passive interface configuration
2021-06-08 11:24:30 -04:00
Igor Ryzhov
29ec6244b1 doc: replace "passive-interface IFNAME" with "ip ospf passive"
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-06-05 18:25:01 +03:00
Emanuele Di Pascale
6443a4be57 ospfd, doc, tests: combined SRGB/SRLB command
similarly to what was done for IS-IS in commit 01d43141, combine
the SRGB and SRLB commands for OSPF-SR, so that we can replace
overlapping ranges in one sweep change.

Also allow the range configuration to be stored before SR is enabled.
There is no reason why we should not - in fact that constraint meant
that we were always requesting the default label ranges regardless
of what we actually wanted to use.

Finally, update the topotests now that we do not need to refresh
the SRGB/SRLB/MSD after disabling SR. Note that the prefix-sid still
needs to be re-added.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2021-06-04 17:22:38 +02:00
Igor Ryzhov
9977e56cc3 doc: remove "no" commands
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-24 18:39:32 +03:00
Igor Ryzhov
dc47f2e726 doc: remove redundant index directives
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-05-18 15:29:59 +03:00
Igor Ryzhov
25d6c9671b doc: fix ospfd maximum-paths command
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-04-19 17:51:55 +03:00
Jafar Al-Gharaibeh
d75213d260
Merge pull request #8153 from reubendowle/nhrp-multicast
nhrp, ospf: add nhrp multicast for OSPF DMVPN
2021-04-13 12:49:28 -05:00
Quentin Young
b832909b42 *: remove *.conf.sample files
Most of these are many, many years out of date. All of them vary
randomly in quality. They show up by default in packages where they
aren't really useful now that we use integrated config. Remove them.

The useful ones have been moved to the docs.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-04-09 13:14:30 -04:00
Reuben Dowle
78980c2854 ospfd: Document option to support dmvpn networks
Signed-off-by: Reuben Dowle <reuben.dowle@4rf.com>
2021-04-06 09:22:59 +12:00
Mark Stapp
ea631ac834
Merge pull request #8058 from rgirada/ospf-ecmp
ospfd: Max multipath config support
2021-03-30 11:57:33 -04:00
Russ White
a2d351d19e
Merge pull request #8137 from Orange-OpenSource/ospf_ls
ospfd: Add Link State support
2021-03-30 10:28:37 -04:00
rgirada
3d5b985577 ospfd: Max multipath config support
Description:
	OSPF does not have an option to control the maximum multiple
	equal cost paths to reach a destination/route(ECMP).
	Currently, it is using the system specific max multiple paths.
	But Somtimes, It requires to control the multiple paths from ospf.
	This cli helps to configure the max number multiple paths in ospf.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2021-03-29 22:04:46 -07:00
ckishimo
d71494e6a4 doc: add documentation for OSPF suppress-fa
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-24 16:06:31 +01:00
ckishimo
8807d9f759 doc: add documentation for OSPF NSSA
Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
2021-03-24 16:04:43 +01:00
Igor Ryzhov
09e2d8ed97
Merge pull request #8203 from opensourcerouting/ospf-bfd-napi
ospfd,doc,topotests: rework OSPFv2 BFD integrantion
2021-03-24 10:36:48 +03:00
Olivier Dugeon
f173deb352 ospfd: Add Link-State support
This patch allows to store Link State Information received through the various
LSAs into a dedicated Traffic Engineering Database (TED). This feature is
automatically activated once mpls-te is enabled.

A new CLI command `mpls-te export` permits to export the TED to other daemons
through the new ZAPI Opaque Link State messages. In complement, a new CLI
command `show ip ospf mpls-te database ...` output the contains of the TED to
the console.

Major modifications take place in ospf_te.[c, h]. File ospf_zebra.c has been
modified to handle TED synchronisation request.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2021-03-23 15:39:29 +01:00
Rafael Zalamena
e5c2d3a82e doc: document new OSPF debug option
Let user know what does the BFD debug knob does.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2021-03-23 10:18:42 -03:00
Igor Ryzhov
a605d719d3 doc: add missing vrf parameter to "show ip ospf database ..." commands
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-03-22 23:37:42 +03:00
Quentin Young
03750f1eb6 doc: remove 'no' form of commands
These don't need to be documented, most of the time they are obvious,
when they aren't the behavior can just be described in the command
description.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-02-22 14:38:21 -05:00
Quentin Young
8ed09fbf5a doc: automatically generate index entries for cli
- Generate index entries automatically
- Remove manual command index entries
- Clean up a few other manual index entries

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-02-22 14:38:21 -05:00
Quentin Young
1e31580f8a doc: clean up duplicate/wrong commands
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
2021-02-22 14:38:21 -05:00
GalaxyGorilla
3e94c9a4a3 doc: Add TI-LFA developer docs
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
385a1e07b1 ospfd: Add support for TI-LFA node protection
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
GalaxyGorilla
7fd0729f76 ospfd: TI-LFA basic infrastructure and algorithms
Signed-off-by: GalaxyGorilla <sascha@netdef.org>
2021-01-19 15:32:13 +00:00
Mobashshera Rasool
f91ce319d3 ospfd: Clear ip ospf process and clear ip ospf neighbor
Implement the below 2 CLIs to clear the current data in the process
and neighbor data structure.
1. clear ip ospf process
2. clear ip ospf neighbor

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-01-12 10:52:42 +00:00
Mark Stapp
3d13052da3 doc: don't index 'no' forms of commands
Many index entries used '[no] xxx' or 'no xxx', some had both
positive and 'no' forms. Clean that up mostly - index positive
form of commands only.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-11-17 16:58:43 -05:00
Olivier Dugeon
e035e7142e
Merge pull request #6795 from rgirada/ospf_db_json
ospfd: json support for ospf database command.
2020-11-03 15:42:03 +01:00
rgirada
077abf3b6a ospfd: OSPF external summarisation documentation
Description:
	Documentation for external summarisation feature support.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2020-11-01 22:35:28 -08:00
rgirada
f328dc606e ospfd: json support for ospf database command.
Description:
Added json support to ospf lsdb command and its subcommands.
Added json to the following sub commands.
show ip ospf  database json
show ip ospf  database router json
show ip ospf  database network json
show ip ospf  database external json
show ip ospf  database summary json
show ip ospf  database asbr-summary json
show ip ospf  database nssa-external json
show ip ospf  databas max-age json
show ip ospf  database self-originate json

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2020-11-01 08:25:40 -08:00
rgirada
cc1a92d806 ospfd: ospf GR helper documentation
Description:
    Documentation update for graceful restart helper
    feature support.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2020-09-21 23:58:47 -07:00
Renato Westphal
cd8ce25a70
Merge pull request #6726 from Orange-OpenSource/dev_ospf_sr
ospfd: Segment Routing Improvement
2020-08-24 16:23:45 -03:00
Jakub Urbańczyk
dfb2ee85f9 doc: Add docs for ospf proactive-arp command
Signed-off-by: Jakub Urbańczyk <xthaid@gmail.com>
2020-08-24 11:10:28 +02:00
Olivier Dugeon
f786c4d7c9 OSPFd: Explicit Null option for Segment-Routing
Add new option to `segment-routing prefix` command to set the
Explcit Null flag in addition to the No-PHP flag. MPLS LFIB configuration
has been also updated to take into account the Explicit Null flag.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-08-20 15:51:48 +02:00
Olivier Dugeon
6f751f1493 ospfd: Add Segment Routing Local Block
RFC 8665 defines a Segment Routing Local Block for Adjacency SID.
This patch provides the possibility to modify the SRLB as well as
reserved the block range from the Label Manager.

 - Introduce new CLI 'segment-routing local-block'
 - Add local block to SRDB structure
 - Parse / Serialize SRLB in Router Information LSA
 - Update OSPF-SR topotest
 - Update documentation

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-08-20 14:37:40 +02:00
Rafael Zalamena
fc0a7cad01 doc: show timers value for 'timers throttle spf'
Lets show the timers range in the documentation for this particular command.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-05-24 10:37:04 -03:00
Rafael Zalamena
7db1c0f03e doc: add transmit-delay interval range
The OSPF doc was missing the interval range values.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2020-05-24 10:37:04 -03:00
Donatas Abraitis
243892e017 doc: Add documentation about OSPF(6) set metric [+|-]metric cmd
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-01-24 14:11:02 +02:00
Donald Sharp
56f9b9bf15 doc: Update ospf unnumbered documentation
Update the ospf unnumbered documentation to reflect how
to get it working under linux.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-01-22 17:27:58 -05:00
Mark Stapp
85400b29ac docs: Add notes about limited MPLS-TE support
Add notes to several docs about the limits to FRR's current
MPLS-TE support, which is limited to some routing protocol
LSA/TLV support. It wasn't very clear that FRR does not offer
a complete TE/RSVP-TE solution at this time.

Also removed some stale info about configure script options.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-08-06 15:47:36 -04:00
Donald Sharp
349ee66419 doc: Fix ospf router-id doc suggestion
The v2 and v3 ospf documentation was suggesting
that the user should use a deprecated command.

Fixes: #4734
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-30 17:13:55 -04:00
Quentin Young
37f92f2215 doc: cleanup OSPF API server documentation
* Reflow to 80 columns
* Improve markup
* Add --apiserver option to example ospfd invocations
* Add note on requirement of this option to use api server

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-04-22 20:22:00 +00:00
Ruben Kerkhof
56f0bea718 doc: fix a couple of typos
Found with https://github.com/codespell-project/codespell

Signed-off-by: Ruben Kerkhof <ruben@rubenkerkhof.com>
2019-03-20 20:08:33 +01:00
Olivier Dugeon
ddd73a968d OSPF: Add support to multi-area to Router Info.
Router Information needs to specify the area ID when flooding scope is set to
  AREA. However, this authorize only one AREA. Thus, Area Border Router (ABR) are
  unable to flood Router Information Opaque LSA in all areas they are belongs to.

  The path implies that the area ID is no more necessary for the command
  'router-info area'. It remains suported for compatibility, but mark as
  deprecated. Documentation has been updated accordingly.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2018-11-09 10:09:47 +01:00
Quentin Young
e6f1b83103 ospfd: add docs on multi-instance ospf
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-21 18:31:05 +00:00
Quentin Young
d1e7591eb2 doc: spelling fixes
* Run sphinxcontrib-spelling over docs
* Correct spelling errors
* Compile a dictionary for future spellchecking efforts

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-04-20 17:59:38 -04:00
Quentin Young
9eb95b3b0a
doc: use frr syntax highlighting
* Use highlighter added in previous commit
* Correct indentation where I came across it

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-04-09 17:30:57 -04:00
Quentin Young
e3e3afffc9
doc: sync ospf-sr docs from master
7666589034

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-06 10:50:30 -05:00