Commit Graph

1418 Commits

Author SHA1 Message Date
Russ White
575a0c5e3c
Merge pull request #13555 from LabNConsulting/aceelindem/ospf-p2mp-delayed-reflooding-config
ospfd: OSPF P2MP Delayed Reflooding configuration
2023-05-23 11:41:35 -04:00
Donatas Abraitis
993b236b2c doc: Add RIPng allow-ecmp command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-23 09:29:02 +03:00
Acee
0d8ef0477c ospfd: OSPF P2MP Delayed Reflooding configuration
Currently, delayed reflooding on P2MP interfaces for LSAs received
from neighbors on the interface is unconditionally (see commit
c706f0e32b). In some cases, this
change wasn't desirable and this feature makes delayed reflooding
configurable for P2MP interfaces via the CLI command:
"ip ospf network point-to-multipoint delay-reflood" in interface
submode.

Signed-off-by: Acee <aceelindem@gmail.com>
2023-05-22 15:51:41 -04:00
Christian Hopps
2596308a09 doc: configure: add configure option to generate .ccls file
`ccls` needs information from FRR build configuration to work,
so allow creation of a custom ccls config during autoconf.

Paraphrasing the doc entry: ccls is a very powerful tool that allows
dev environments to provide sophisticated IDE functionality, e.g.,
semantically aware jumps and code refactoring...

Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-18 09:32:32 -04:00
Russ White
425fc1f5b7
Merge pull request #12949 from opensourcerouting/ospf-unplanned-gr
OSPF GR for unplanned outages
2023-05-16 08:37:19 -04:00
Donatas Abraitis
cef398924c
Merge pull request #13513 from subsecond/patch-4
Fix typo in multipath route docs
2023-05-14 22:03:06 +03:00
Donatas Abraitis
edc886635d
Merge pull request #13463 from pguibert6WIND/mpls_alloc_per_nh_2
Mpls allocatio mode per nexthop
2023-05-12 20:56:01 +03:00
Manuel Schweizer
c2a440d550 doc: Fix typo in multipath route docs
Signed-off-by: Manuel Schweizer <manuel.schweizer@cloudscale.ch>
2023-05-12 15:38:46 +02:00
Donald Sharp
907183cb35
Merge pull request #13430 from opensourcerouting/feature/rip_allow-ecmp_limit
ripd: Implement allow-ecmp X command
2023-05-11 20:31:46 -04:00
Donatas Abraitis
052fa79dd2 doc: Use match source-protocol for route-maps in BGP as well
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-10 21:00:17 +03:00
Philippe Guibert
3daa4dd5e9 doc: add bgp allocation-mode per nexthop information
Add bgp allocation-mode per nexthop information.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>

PR=81857
Link: https://github.com/FRRouting/frr/pull/12646
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Acked-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-05-09 21:01:13 +02:00
Donatas Abraitis
05dbe64457 doc: Add neighbor aigp command for BGP
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-09 21:21:34 +03:00
Renato Westphal
0c05ceae00 ospfd, ospf6d: introduce the "graceful-restart hello-delay" command
This command makes unplanned GR more reliable by manipulating the
sending of Grace-LSAs and Hello packets for a certain amount of time,
increasing the chance that the neighboring routers are aware of
the ongoing graceful restart before resuming normal OSPF operation.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-05-08 21:47:44 -03:00
Renato Westphal
88b3d5e514 ospf6d: add support for unplanned graceful restart
In practical terms, unplanned GR refers to the act of recovering
from a software crash without affecting the forwarding plane.

Unplanned GR and Planned GR work virtually the same, except for the
following difference: on planned GR, the router sends the Grace-LSAs
*before* restarting, whereas in unplanned GR the router sends the
Grace-LSAs immediately *after* restarting.

For unplanned GR to work, ospf6d was modified to send a
ZEBRA_CLIENT_GR_CAPABILITIES message to zebra as soon as GR is
enabled.  This causes zebra to freeze the OSPF routes in the RIB as
soon as the ospf6d daemon dies, for as long as the configured grace
period (the defaults is 120 seconds). Similarly, ospf6d now stores in
non-volatile memory that GR is enabled as soon as GR is configured.
Those two things are no longer done during the GR preparation phase,
which only happens for planned GRs.

Unplanned GR will only take effect when the daemon is killed
abruptly (e.g. SIGSEGV, SIGKILL), otherwise all OSPF routes will be
uninstalled while ospf6d is exiting.  Once ospf6d starts, it will
check whether GR is enabled and enter in the GR mode if necessary,
sending Grace-LSAs out all operational interfaces.

One disadvantage of unplanned GR is that the neighboring routers
might time out their corresponding adjacencies if ospf6d takes too
long to come back up. This is especially the case when short dead
intervals are used (or BFD). For this and other reasons, planned
GR should be preferred whenever possible.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-05-08 21:47:44 -03:00
Renato Westphal
ab749e7eea ospfd: add support for unplanned graceful restart
In practical terms, unplanned GR refers to the act of recovering
from a software crash without affecting the forwarding plane.

Unplanned GR and Planned GR work virtually the same, except for the
following difference: on planned GR, the router sends the Grace-LSAs
*before* restarting, whereas in unplanned GR the router sends the
Grace-LSAs immediately *after* restarting.

For unplanned GR to work, ospf6d was modified to send a
ZEBRA_CLIENT_GR_CAPABILITIES message to zebra as soon as GR is
enabled.  This causes zebra to freeze the OSPF routes in the RIB as
soon as the ospfd daemon dies, for as long as the configured grace
period (the defaults is 120 seconds). Similarly, ospfd now stores in
non-volatile memory that GR is enabled as soon as GR is configured.
Those two things are no longer done during the GR preparation phase,
which only happens for planned GRs.

Unplanned GR will only take effect when the daemon is killed
abruptly (e.g. SIGSEGV, SIGKILL), otherwise all OSPF routes will
be uninstalled while ospfd is exiting.  Once ospfd starts, it will
check whether GR is enabled and enter in the GR mode if necessary,
sending Grace-LSAs out all operational interfaces.

One disadvantage of unplanned GR is that the neighboring routers
might time out their corresponding adjacencies if ospfd takes too
long to come back up. This is especially the case when short dead
intervals are used (or BFD). For this and other reasons, planned
GR should be preferred whenever possible.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-05-08 21:47:44 -03:00
Rajasekar Raja
57e65a80b0 doc: add documentation for show [ip] bgp [vrf] [afi] [safi] detail [json]
Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
2023-05-08 13:17:47 -07:00
Donatas Abraitis
9c011d7eaf doc: Add RIP allow-ecmp command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-04 09:23:26 +03:00
Donatas Abraitis
786e2b8bdb Revert "MPLS allocation mode per next hop"
Broken tests, let's revert now.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-05-03 13:52:46 +03:00
Donatas Abraitis
99a1ab0b21
Merge pull request #12646 from pguibert6WIND/mpls_alloc_per_nh
MPLS allocation mode per next hop
2023-05-02 18:36:45 +03:00
Donald Sharp
0313343d0a
Merge pull request #13395 from LabNConsulting/chopps/mgmtd-debug-flags
mgmtd: fully implement debug flags for mgmtd and clients
2023-05-02 08:17:17 -04:00
Christian Hopps
cfa0facbf9 mgmtd: fully implement debug flags for mgmtd and clients
Signed-off-by: Christian Hopps <chopps@labn.net>
2023-05-01 13:47:12 -04:00
Philippe Guibert
cf1c7e309e bgpd: configure explicit-null for local paths per address family
Until now, the bgp local paths were using the default null label
defined. It was not possible to select the null label for the ipv4
or the ipv6 address families.

This commit addresses this issues by adding two extra-parameters
to the BGP labeled-unicast command.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-04-27 17:05:35 +02:00
Russ White
257fddaeb6
Merge pull request #13246 from opensourcerouting/rip-bfd
ripd: support BFD integration
2023-04-25 11:54:32 -04:00
Russ White
4855ca5e56
Merge pull request #13310 from opensourcerouting/feature/bgpd_node_target_extended_community
bgpd: Add Node Target Extended Communities support
2023-04-25 11:06:23 -04:00
Donatas Abraitis
5db1931962
Merge pull request #13166 from Jafaral/ospf-external-metric
ospfd: use rib metric as the base for set metric +/-
2023-04-19 21:11:25 +03:00
Rafael Zalamena
5e69093713 doc: RIP BFD integration documentation
Let users know about the RIP BFD integration commands and increment the
used RFCs reference.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2023-04-19 11:17:55 -03:00
Olivier Dugeon
fd4377d9a5
Merge pull request #11667 from louis-6wind/flexalgo-mpls
isisd: Flex-Algo for SR-MPLS
2023-04-18 14:45:30 +02:00
Louis Scalbert
cba6998236 doc: add isisd flex-algo documentation
Add the isisd flex-algo documentation

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-18 11:33:15 +02:00
Louis Scalbert
b95f9f37ea doc: fix debugging-isis reference
Debugging-isis tag was moved.

Move it to right place.

Fixes: 9389175b75 ("doc: add documentation for IS-IS Segment Routing")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-18 11:33:15 +02:00
Jafar Al-Gharaibeh
f24dfccbdc doc: document the new set min/max metric commands
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2023-04-18 00:48:16 -05:00
Louis Scalbert
714f05217b doc: include affinity-maps into index
Include affinity-maps documentation into index under "basics".

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-04-17 11:25:25 +02:00
Jafar Al-Gharaibeh
720afd9ad7
Merge pull request #13159 from mjstapp/ospf_sockets
ospfd: write socket per interface
2023-04-11 23:57:40 -05:00
Jafar Al-Gharaibeh
7a29a05023
Merge pull request #13183 from Pdoijode/pdoijode/pim-json-changes
pimd: Option to get IGMP groups and sources for a particular interface
2023-04-11 23:46:18 -05:00
Donatas Abraitis
55ca7c63fd
Merge pull request #13090 from pguibert6WIND/explicit_null
bgpd: add cli command to control explicit-null label usage
2023-04-11 22:48:01 +03:00
Pooja Jagadeesh Doijode
5519cabe4c pimd: Option to get IGMP groups and sources for a particular interface
1. Added interface name, group address and detail option to existing
   "show ip igmp groups" so that user can retrieve all the groups
   or a particular group for an interface. Detail option shows the source
   information for the group. With that, the show command
   looks like:

   "show ip igmp [vrf NAME$vrf_name] groups [INTERFACE$ifname [GROUP$grp_str]] [detail$detail] [json$json]"

2. Changed pim_cmd_lookup_vrf() to return empty JSON if VRF is not present

3. Changed "detail" option to print non pretty JSON

4. Added interface name and group address to existing
   "show ip igmp sources" so that user can retrieve all the sources for
   all the groups or, all the sorces for a particular group for an
   interface. With that, the show command looks like:

   "show ip igmp [vrf NAME$vrf_name] sourcess [INTERFACE$ifname [GROUP$grp_str]] [json$json]"

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2023-04-11 11:00:39 -07:00
Donatas Abraitis
8ef1590927 doc: Add set extcommunity nt command for BGP route-maps
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-04-11 20:28:41 +03:00
Donatas Abraitis
69173c6e5e
Merge pull request #13254 from manojvn/remove_startupjson_doc
mgmtd: remove the frr_startup.json related documentation.
2023-04-11 17:28:55 +03:00
Mark Stapp
86a36bad51 doc: add doc for ospf per-interface write socket
Add a doc entry for the per-interface write socket config.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-11 10:16:07 -04:00
Philippe Guibert
7ee70320d3 bgpd: add cli command to control explicit-null label usage
In BGP labeled unicast address-family, it is not possible to
send explicit-null label values with redistributed or network
declared prefixes.
A new CLI command is introduced:

  > [no] bgp labeled-unicast explicit-null

When used, the explicit-null value for IPv4 ('0' value) or
IPv6 ('2' value) will be used.
It is necessary to reconfigure the networks or the
redistribution in order to inherit this new behaviour.

Add the documentation.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-04-11 16:08:09 +02:00
Russ White
8ce2ce8eb8
Merge pull request #13163 from isabelladeleon12/isis_log_drops
isisd: Add support for log-pdu-drops
2023-04-11 09:55:24 -04:00
Manoj Naragund
edba9e6e7c mgmtd: remove the frr_startup.json related documentation.
Since mgmtd no longer supports the frr_startup.json, removing the
documentation related to that. Proper documentation will be added
when/if the frr_startup.json is ever supported.

Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
2023-04-11 04:03:58 -07:00
Mark Stapp
6e6e1020dd ospfd: support configuration of socket buffer sizes
Add configurable socket send and receive buffer sizes,
configured at the instance level.

Signed-off-by: Mark Stapp <mjs@labn.net>
2023-04-06 14:16:43 -04:00
Isabella de Leon
bb6ef345ad doc: Add CLI documentation for new log-pdu-drops config
Update isisd docs with log-pdu-drops config.

Signed-off-by: Isabella de Leon <ideleon@microsoft.com>
2023-04-04 09:25:34 -07:00
Russ White
4af5e39b2c
Merge pull request #12969 from opensourcerouting/ospfd-nssa
ospfd: implement NSSA default routes & ranges
2023-04-04 09:38:55 -04:00
Jafar Al-Gharaibeh
c810c69045
Merge pull request #13191 from opensourcerouting/fix/add_missing_rfc9384
doc: Add missing rfc9384 to BGP supported RFC list
2023-04-03 23:16:08 -05:00
Donatas Abraitis
50136862b9 doc: Add missing rfc9384 to BGP supported RFC list
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-04-01 21:56:37 +03:00
Renato Westphal
f07ff222f8 ospfd: add support for NSSA Type-7 address ranges
Implement NSSA address ranges as specified by RFC 3101:

   NSSA border routers may be configured with Type-7 address ranges.
   Each Type-7 address range is defined as an [address,mask] pair.  Many
   separate Type-7 networks may fall into a single Type-7 address range,
   just as a subnetted network is composed of many separate subnets.
   NSSA border routers may aggregate Type-7 routes by advertising a
   single Type-5 LSA for each Type-7 address range.  The Type-5 LSA
   resulting from a Type-7 address range match will be distributed to
   all Type-5 capable areas.

Syntax:
  area A.B.C.D nssa range A.B.C.D/M [<not-advertise|cost (0-16777215)>]

Example:
  router ospf
   router-id 1.1.1.1
   area 1 nssa
   area 1 nssa range 172.16.0.0/16
   area 1 nssa range 10.1.0.0/16
  !

Since regular area ranges and NSSA ranges have a lot in common,
this commit reuses the existing infrastructure for area ranges as
much as possible to avoid code duplication.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-03-31 19:28:15 -03:00
Renato Westphal
017714e3ad ospfd: implement Type-7 default routes for NSSA areas
Add the "default-information-originate" option to the "area X nssa"
command. That option allows the origination of Type-7 default routes
on NSSA ABRs and ASBRs.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2023-03-31 19:28:15 -03:00
Jafar Al-Gharaibeh
277eb2e580
Merge pull request #13060 from opensourcerouting/feature/allow_peering_with_127.0.0.1
bgpd: Allow peering via 127.0.0.0/8
2023-03-31 00:14:27 -05:00
Donald Sharp
9cc377d4d7
Merge pull request #13078 from opensourcerouting/fix/set_distance_zero
bgpd: Do not allow setting `set distance` via route-maps to zero
2023-03-23 07:50:35 -04:00