Commit Graph

2923 Commits

Author SHA1 Message Date
Donatas Abraitis
7cdece8c84 doc: Add set metric aigp command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-15 17:42:52 +03:00
Donatas Abraitis
f677fc8db3 bgpd: Implement set metric igp command
Set metric automatically from the path info (IGP protocol).

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-15 17:36:51 +03:00
Louis Scalbert
89c6422585 doc: clarify bgp as-override
Clarify bgp as-override

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-14 14:37:59 +02:00
Simon Ruderich
8e818bf76c doc: routemap: fix typos
Signed-off-by: Simon Ruderich <simon@ruderich.org>
2024-10-11 08:34:26 +02:00
Donald Sharp
0f8842ed18 bgpd: Allow specification of vrf in show bgp neighbor graceful-restart
This command did not allow the operator to display neighbor information
related to graceful-restart when used inside of a vrf.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-10-10 09:13:39 -04:00
Donatas Abraitis
2634ad94c6
Merge pull request #17050 from chriswiggins/doc/vrrp-in-vm-bridge
Adds note about VRRP issues inside a VM with underlying bridge networking
2024-10-10 12:45:49 +03:00
Chris Wiggins
dbf39ad076 doc: VRRP troubleshooting info for linux-hosted VMs
Signed-off-by: Chris Wiggins <chris@wiggins.nz>
2024-10-10 17:44:23 +13:00
Philippe Guibert
244155ac47 bfdd, doc, yang: change bfd timer and multiplier values
The minimum and maximum values for BFD timers and multiplier settings
have been updated to align with RFC 5880 requirements.

Since the values inputted via VTY are in milliseconds, the maximum
permissible value on the VTY interface is 4,294,967 milliseconds.

For the multiplier setting, the minimum value is now restricted to be
greater than zero, as zero is not allowed.

The minimum transmit interval has been set to 10 milliseconds to ensure
reliable service performance.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-10-08 10:32:16 +02:00
Donatas Abraitis
0495cac837 bgpd: Actually make --v6-with-v4-nexthops it work
It was using `-v` which is actually a _version_.

Fixes: 0435b31bb8 ("bgpd: Allow bgp to specify if it will allow v6 routing with v4 nexthops")

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-10-02 13:57:30 +03:00
Donatas Abraitis
b969f4e544 doc: Add match src-peer ... command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-27 23:01:07 +03:00
Nathan Bahr
cbe39620f9 doc: Add user documentation for AutoRP CLI
Document the CLI commands to configure AutoRP discovery
and candidate RP announcements.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-09-24 16:39:19 +00:00
Mikhail Sokolovskiy
7b1c0c23fc bgpd: add bgp ipv6-auto-ra command
Introduce a command to stop bgpd from enabling IPv6 router advertisement
messages sending on interfaces.

Signed-off-by: Mikhail Sokolovskiy <sokolmish@gmail.com>
2024-09-24 19:00:11 +03:00
Barry A. Trent
bb4620d556 doc: add documentation for ip igmp proxy cli
Signed-off-by: Barry A. Trent <barry.trent@atcorp.com>
2024-09-23 11:43:40 -07:00
Donald Sharp
8b25888ce8
Merge pull request #16816 from opensourcerouting/feature/bgp_dual_as
bgpd: Implement BGP dual-as feature
2024-09-18 11:59:16 -04:00
Russ White
6109043c54
Merge pull request #16720 from opensourcerouting/fix/default_originate_not_needed_if_not_enabled
bgpd: Do not scan update-groups if default-originate timer is set to 0
2024-09-18 10:11:23 -04:00
Donald Sharp
f3fc33e17b
Merge pull request #16438 from Jafaral/pim-10.1-cand-rp
PIM candidate BSR/RP support
2024-09-13 19:45:57 -04:00
Donatas Abraitis
573fa26bc7 doc: Document neighbox X local-as Y replace-as no-prepend dual-as
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-13 10:59:30 +03:00
Mark Stapp
c21d29b5f0 doc: add some text about git forks
Add some general guidance about creating and using a fork
of the FRR repository to the workflow doc.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-09-10 15:29:12 -04:00
Mark Stapp
d27ce6b7be doc: fix several warnings in dev docs
Clean up several sphinx warnings in the dev docs:
add bmp to bgp TOC; fix some indenting; escape some asterisks.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-09-10 15:21:03 -04:00
Russ White
add56c61dd
Merge pull request #15259 from dmytroshytyi-6WIND/nexthop_resolution
zebra: add LSP entry to nexthop via recursive (part 2)
2024-09-10 10:04:08 -04:00
Christian Hopps
df2133f803 tests: add asyncio default config param to quiet warning
Update the topotest doc to the latest pytest* pkg versions
known to work together

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-09-09 16:35:28 -04:00
Jafar Al-Gharaibeh
7e912183d6 doc: new PIM candidate BSR/RP commands
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-09-09 13:27:49 -05:00
Donatas Abraitis
b9d4191a51 bgpd: Allow using solo for peer-groups
Inherit solo flag for peer-group members also.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-05 15:16:05 +03:00
Donatas Abraitis
d12306d3e0 bgpd: Do not scan update-groups if default-originate timer is set to 0
With lots of update-groups, subgroups, this could be very tricky and the timer
is spawned even if it's totally unnecessary (default-originate is not enabled).

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-09-02 15:02:10 +03:00
Donald Sharp
8f47dc93cd doc: Update documentation to talk about nhe changes
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-08-30 08:23:48 -04:00
Donatas Abraitis
28b8c85d68 doc: Document the git revert flow
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-08-29 09:04:28 +03:00
Mark Stapp
be161ba4a2
Merge pull request #16679 from donaldsharp/nhrp_test_documentation
doc: Update topotest doc to include iptables is needed
2024-08-28 14:11:18 -04:00
Donald Sharp
4ec3f1ef0f doc: Update topotest doc to include iptables is needed
The nhrp tests skip tests that do not have iptables installed.
As such we have ended up with a situation where the nrhp test
is now failing locally for me because I have iptables installed
and if the CI system had iptables installed it would have detected
the problem as well.

Let's document that iptables is needed to do testing.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-08-28 12:05:41 -04:00
Donatas Abraitis
a0a2a35ed3 lib: Add a helper function to dump Lua stack
Very handy for debugging.

In Lua script just use "log.trace(table)":

```
function on_rib_process_dplane_results(ctx)
	log.trace(ctx.rinfo.zd_ng)
end
```

You will get something like:

```
Aug 28 17:04:36 donatas-laptop zebra[3782199]: [GCZ7N-MM9D9] {
                                                 1: {
                                                   type: 2
                                                   weight: 1
                                                   flags: 5
                                                   backup_idx: 0
                                                   vrf_id: 0
                                                   nh_encap_type: 0
                                                   gate: {
                                                     value: 5.87967e+08
                                                     string: "192.168.11.35"
                                                   }
                                                   nh_label_type: 0
                                                   srte_color: 0
                                                   ifindex: 0
                                                   backup_num: 0
                                                 }
                                                 2: {
                                                   type: 3
                                                   weight: 1
                                                   flags: 3
                                                   backup_idx: 0
                                                   vrf_id: 0
                                                   nh_encap_type: 0
                                                   nh_label_type: 0
                                                   srte_color: 0
                                                   ifindex: 4
                                                   backup_num: 0
                                                 }
                                               }
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-08-28 17:08:45 +03:00
Donatas Abraitis
7a461479a0 bgpd: Respect BLACKHOLE community for internal BGP peering also
rfc7999 does not define to use this technique ONLY for EBGP sessions.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-08-27 10:08:54 +03:00
Donald Sharp
05c17eff06
Merge pull request #16450 from nabahr/static_joins
PIM: Implement static IGMP joins without an IGMP report
2024-08-22 11:32:56 -04:00
Jafar Al-Gharaibeh
72dfd5a6bf
Merge pull request #16619 from qlyoung/fix-rtd-build-sphinx-environment-injection
doc: update sphinx configs for RTD changes
2024-08-22 00:05:24 -04:00
Quentin Young
95d9bf12e3 doc: update sphinx configs for RTD changes
Read The Docs made some changes that require us to add some
configuration in our build config files.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-08-21 19:38:51 -04:00
Nathan Bahr
fbf7bf44ed doc: Add PIM docs for join-group and static-group
Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-08-15 16:20:05 +00:00
Donald Sharp
baa0a1df5b *: Fix spelling errors found
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-08-15 09:19:37 -04:00
Mark Stapp
e03feca82f
Merge pull request #16575 from donaldsharp/doc_address_sanitizer_stuff
doc: Add doc to show sysctl setting for Sanitizers
2024-08-13 14:18:40 -04:00
Donald Sharp
2de9d71a5c doc: Add doc to show sysctl setting for Sanitizers
In order to run the XXXX Sanitizers over the code as a developer
modern linux distro's require a specific sysctl.  Let's document
that so that people are aware of it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-08-13 08:58:29 -04:00
Nathan Bahr
33ce5d2410 doc: Fix up pim user docs.
Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-08-12 18:48:02 +00:00
Donald Sharp
c4fdc837c0
Merge pull request #16534 from opensourcerouting/fix/start_ldpd_if_unified
doc: Document on how to start specific daemons with unified config in topotests
2024-08-12 10:25:54 -04:00
Philippe Guibert
d95f9a35d4 bgpd, doc: add bgp snmp traps rfc4382 command
Add a trap command to disable or enable the traps defined by
the RFC4382.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-08-11 19:28:50 +00:00
Donatas Abraitis
3901cfea23 doc: Document on how to run specific daemons with unified config in topotests
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-08-11 13:47:08 +03:00
Donald Sharp
3dec216d38 doc: Add some topotest documentation about how to reproduce failures
Add some hints for developers about how to reproduce failure conditions
in the test.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-07-30 13:57:44 -04:00
Rafael Zalamena
2d206c89c6 doc: document MSDP authentication and reset
Tell user how to use the new authentication and clear commands.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-07-29 11:41:37 -03:00
Rafael Zalamena
ae31d9b17b doc: document new MSDP filter command
Let user know how to use the MSDP SA filtering command

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-07-27 11:32:45 -03:00
Rafael Zalamena
c4867fe2f2 doc: remove BFD control socket documentation
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-07-25 10:37:11 -03:00
Rafael Zalamena
5340fcf144 doc: missing distributed BFD man page bit
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-07-25 10:37:11 -03:00
Donald Sharp
035542f6bb
Merge pull request #16449 from opensourcerouting/py-invalid-escapes
build: fix a few python string escape warnings
2024-07-25 07:17:03 -04:00
Donatas Abraitis
7b91b0b3ca doc: Add RFC 5701 to the supported RFCs list
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-07-25 11:52:45 +03:00
David Lamparter
8916953b53 build: fix a few python string escape warnings
When using a regex (or anything that uses `\?` escapes) in python, raw
strings (`r"content"`) should be used so python doesn't consume the
escapes itself.  Otherwise we get either broken behavior and/or
`SyntaxWarning: invalid escape sequence '\['`

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-07-23 10:23:50 -07:00
Russ White
8dae5cf1af
Merge pull request #16269 from nabahr/router_pim_config
Router pim config
2024-07-18 09:43:02 -04:00
anlan_cs
55be38d98e doc: adjust some commands for pim/pimv6 bsr
Signed-off-by: anlan_cs <vic.lan@pica8.com>
2024-07-17 17:40:49 +08:00
Nathan Bahr
b58592d05b doc: Update PIM[6] configure docs
Document 'router pim[6] [vrf NAME]' configuration.
All the commands are basically the same, just dropped the
'ip pim[6]' prefix and document them under the router pim block.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-07-16 13:41:19 -05:00
Donatas Abraitis
0dfe25697f bgpd: Implement neighbor X remote-as auto
In some cases (large scale) it's desired to avoid changing configurations, but
let the BGP to automatically handle ASN changes.

`auto` means the peering can be iBGP or eBGP. It will be automatically detected
and adjusted from the OPEN message.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-07-04 14:42:19 +03:00
Donatas Abraitis
9ab41861ce
Merge pull request #16099 from Pdoijode/pdoijode/bgp-gr2
Implement BGP-wide configuration for graceful restart
2024-07-02 16:40:29 +02:00
Russ White
5d43153c16
Merge pull request #16094 from opensourcerouting/pkgs-with-grpc
Add option to build pkg with grpc support
2024-07-02 07:36:50 -04:00
vivek
b5682ffbf0 *: Add and use option for graceful (re)start
Add a new start option "-K" to libfrr to denote a graceful start,
and use it in zebra and bgpd.

zebra will use this option to denote a planned FRR graceful restart
(supporting only bgpd currently) to wait for a route sync completion
from bgpd before cleaning up old stale routes from the FIB. An optional
timer provides an upper-bounds for this cleanup.

bgpd will use this option to denote either a planned FRR graceful
restart or a bgpd-only graceful restart, and this will drive the BGP
GR restarting router procedures.

Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
2024-07-01 13:02:52 -07:00
Pooja Jagadeesh Doijode
ecbca1ae1b tests: Updated topotest and documentation
Added topotest and documentation for BGP wide GR configurations

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
2024-07-01 13:02:52 -07:00
Christian Hopps
2cc934832d
Merge pull request #14509 from qlyoung/fix-clicmd-duplicates-issue
doc: add ability to disambiguate clicmds
2024-06-27 20:14:46 -04:00
Christian Hopps
a300c8eb1a
Merge pull request #16297 from qlyoung/doc-toc-sections
doc: improve table-of-contents organization
2024-06-27 19:52:19 -04:00
Quentin Young
ffbad581fc doc: do not use custom directive on old sphinx
Not supported.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-06-27 14:48:08 -04:00
Quentin Young
dc00f2dc1d doc: add ability to disambiguate clicmds
Multiple daemons have the same CLI commands defined, but the current
directive used to document CLI commands only takes the command
definition string. Since CLI command objects can be cross-referenced
using the :clicmd: directive, and are placed in the index, each object
needs to be unique.

To accomplish this, add a custom directive. This directive extends the
directive class used by sphinx's add_object_type to add a :daemon:
option. By specifying this option where needed, the object name becomes
"(<daemon>) <definition>", disambiguating it.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-06-27 14:47:30 -04:00
Quentin Young
10231d5b99 doc: reformat Sphinx conf.py files
Style checking is complaining about these, rightly so. Reformat.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-06-26 15:44:08 -04:00
Quentin Young
8ef75009a7 doc: improve table-of-contents organization
The current TOC organization is not really following Sphinx best
practices and is resulting in a jumble of articles showing up in the
sidebar.

This change primarily organizes existing articles into three major
sections:

* Introduction
  - Contains system requirements, architecture & design, installation,
    basic setup
* Basics
  - Covers basic commands, concepts, and some random things that don't
    fit elsewhere
* Protocols
  - Contains all protocol documentation, and other miscellaneous daemon
    docs such as those on Zebra, watchfrr, mgmtd, etc.

The appendix has been left as is, but the TOC now has a caption which
has the effect of adding a section separator in the nav sidebar.

In order to make the new structure make sense:

* Some content has been lifted up from the "Overview" page into the
  index page
* Most content has been pushed down from the "Overview" page into the
  "About" page (new)
* BFD's page is now titled "BFD" for consistencty; it was the only one
  that had the full protocol name written out in the title

And a couple drivebys:
* BFD's intro description paragraph was rewritten to make more sense
* Old language stating that we publish platform packages on the Github
  releases page was removed
* References to source building instructions were consolidated into that
  section

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-06-25 13:56:29 -04:00
Russ White
87c2f100e1
Merge pull request #16128 from LabNConsulting/aceelindem/ospf-ls-retrans-improve
ospfd: Improve OSPF neighbor retransmission list granularity and pacing
2024-06-24 07:17:27 -04:00
Acee Lindem
c494702929 ospfd: Improve OSPF neighbor retransmission list granularity and precision
The current OSPF neighbor retransmission operates on a single per-neighbor
periodic timer that sends all LSAs on the list when it expires.
Additionally, since it skips the first retransmission of received LSAs so
that at least the retransmission interval (resulting in a delay of between
the retransmission interval and twice the interval. In environments where
the links are lossy on P2MP networks with "delay-reflood" configured (which
relies on neighbor retransmission in partial meshs), the implementation
is sub-optimal (to say the least).

This commit reimplements OSPF neighbor retransmission as follows:

   1. A new data structure making use the application managed
      typesafe.h doubly linked list implements an OSPF LSA
      list where each node includes a timestamp.
   2. The existing neighbor LS retransmission LSDB data structure
      is augmented with a pointer to the list node on the LSA
      list to faciliate O(1) removal when the LSA is acknowledged.
   3. The neighbor LS retransmission timer is set to the expiration
      timer of the LSA at the top of the list.
   4. When the timer expires, LSAs are retransmitted that within
      the window of the current time and a small delta (50 milli-secs
      default). The LSAs that are retransmited are given an updated
      retransmission time and moved to the end of the LSA list.
   5. Configuration is added to set the "retransmission-window" to a
      value other than 50 milliseconds.
   6. Neighbor and interface LSA retransmission counters are added
      to provide insight into the lossiness of the links. However,
      these will increment quickly on non-fully meshed P2MP networks
      with "delay-reflood" configured.
   7. Added a topotest to exercise the implementation on a non-fully
      meshed P2MP network with "delay-reflood" configured. The
      alternative was to use existing mechanisms to instroduce loss
      but these seem less determistic in a topotest.

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-06-20 15:31:07 +00:00
Martin Winter
a761db826c
redhat: Add option to build pkg with grpc support
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2024-06-20 12:14:56 +02:00
Martin Winter
17fdfe92ab
debian: Add option to build pkg with grpc support
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2024-06-20 12:14:48 +02:00
Donald Sharp
248bf31a4f doc: Document the usage of --enable-undefined-sanitizer
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-06-19 08:01:16 -04:00
Russ White
7834c38ab3
Merge pull request #15604 from cscarpitta/srv6-sid-manager
Add support for SRv6 SID Manager
2024-06-18 12:16:24 -04:00
Russ White
66ad4aaf3d
Merge pull request #16172 from LabNConsulting/dleroy/nhrpd-auth-support
nhrpd: add cisco-authentication password support
2024-06-18 10:04:24 -04:00
Russ White
9eae3cf44f
Merge pull request #16179 from pguibert6WIND/isis_psid_and_backup
isisd: fix 'show isis route prefix-sid backup' command
2024-06-18 09:58:47 -04:00
anlan_cs
accdf83c57 doc: fix one ldp neighbor command
Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-06-15 13:56:30 +08:00
Philippe Guibert
7a905c0d01 isisd: fix 'show isis route prefix-sid backup' command
It is not possible to dump both backup and prefix-sid
information. Fix this by authorising it.

> rt1# show isis route prefix-sid backup
> Area 1:
> IS-IS paths to level-1 routers that speak IP
> Vertex               Type         Metric Next-Hop             Interface Parent
> rt1
> 10.12.0.0/24         IP internal  0                                     rt1(4)
> 10.13.0.0/24         IP internal  0                                     rt1(4)
> 1.1.1.1/32           IP internal  0                                     rt1(4)
> rt2                  TE-IS        10     rt2                  eth-rt2   rt1(4)
> rt3                  TE-IS        10     rt3                  eth-rt3   rt1(4)
> 10.12.0.0/24         IP TE        20     rt2                  eth-rt2   rt2(4)
> 10.23.0.0/24         IP TE        20     rt2                  eth-rt2   rt2(4)
>                                          rt3                  eth-rt3   rt3(4)
> 2.2.2.2/32           IP TE        20     rt2                  eth-rt2   rt2(4)
> 10.13.0.0/24         IP TE        20     rt3                  eth-rt3   rt3(4)
> 3.3.3.3/32           IP TE        20     rt3                  eth-rt3   rt3(4)
>
> IS-IS L1 IPv4 routing table:
>
> IS-IS paths to level-1 routers that speak IPv6
> Vertex               Type         Metric Next-Hop             Interface Parent
> rt1
> 2001:db8:1000::1/128 IP6 internal 0                                     rt1(4)
> rt2                  TE-IS        10     rt2                  eth-rt2   rt1(4)
> rt3                  TE-IS        10     rt3                  eth-rt3   rt1(4)
> 2001:db8:1000::2/128 IP6 internal 20     rt2                  eth-rt2   rt2(4)
> 2001:db8:1000::3/128 IP6 internal 20     rt3                  eth-rt3   rt3(4)
>
> IS-IS L1 IPv6 routing table:
>

Fixes: d47d6089e0 ("isisd: refactor handling of SR Prefix-SIDs")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-06-14 08:42:18 +02:00
Carmine Scarpitta
33bd67a006 doc: Add documentation for SRv6 SID formats CLI
Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
2024-06-13 14:54:16 +02:00
Alexander Trotsenko
ee8b65f23b doc: Add reloading script into Python dependency section
Signed-off-by: Alexander Trotsenko <trotsenko93@mail.ru>
2024-06-11 15:23:24 +00:00
Dave LeRoy
b5540d326b nhrpd: add cisco-authentication password support
Taking over this development from https://github.com/FRRouting/frr/pull/14788

This commit addresses 4 issues found in the previous PR

1) FRR would accept messages from a spoke without authentication when FRR NHRP had auth configured.
2) The error indication was not being sent in network byte order
3) The debug print in nhrp_connection_authorized was not correctly printing the received password
4) The addresses portion of the mandatory part of the error indication was invalid on the wire (confirmed in wireshark)

Signed-off-by: Dave LeRoy <dleroy@labn.net>
Co-authored-by: Volodymyr Huti <volodymyr.huti@gmail.com>
2024-06-10 16:39:21 -07:00
Volodymyr Huti
51f0700286 nhrp: add cisco-authentication password support
Implemented:
- handling 8 char long password, aka Cisco style.
- minimal error inidication routine
- test case, password change affects conection

Signed-off-by: Volodymyr Huti <v.huti@vyos.io>
2024-06-10 16:39:21 -07:00
Donatas Abraitis
d5b0c76edd
Merge pull request #16183 from LabNConsulting/chopps/notif-doc-update
mgmtd: add empty notif xpath map for completeness
2024-06-10 22:25:10 +03:00
Philippe Guibert
b2c2113f29 doc: fec nexthop resolution documentation
FEC nexthop entry resolution over MPLS networks

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
2024-06-07 12:33:48 +02:00
Christian Hopps
491e608c55 doc: add some text on native message API and notif xpath array
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-06-07 05:50:10 -04:00
Donatas Abraitis
b9c97686ac doc: Add missing clear bgp ASNUM command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-06-05 08:35:34 +03:00
David Ward
172dd682d9 bgpd: Adjust terminology related to DSCP
The default DSCP used for BGP connections is CS6. The DSCP value is
not part of the TCP header.

When setting the IP_TOS or IPV6_TCLASS socket options, the argument
is not the 6-bit DSCP value, but an 8-bit value for the former IPv4
Type of Service field or IPv6 Traffic Class field, respectively.

Fixes: 425bd64be8 ("bgpd: Allow bgp to control the DSCP session TOS value")
Signed-off-by: David Ward <david.ward@ll.mit.edu>
2024-06-02 06:44:59 -04:00
Donald Sharp
cccb0cd805
Merge pull request #16075 from anlancs/ospfd/fix-cmd-instance
ospfd: add instance id for one command
2024-05-28 13:06:43 -04:00
Russ White
ffaddf36a6
Merge pull request #16023 from opensourcerouting/fix/rpki_show_stuff
bgpd: Split `rpki cache` command into separate per SSH/TCP
2024-05-28 10:23:10 -04:00
Christian Hopps
107e3a586d doc: add missing required newline in .rst formatting
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-05-26 22:13:21 +00:00
anlan_cs
b212c4d076 doc: adjust one ospf command
Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-05-25 19:46:55 +08:00
Donatas Abraitis
d536fb675b bgpd: Rename SERVER_PUBKEY to KNOWN_HOSTS_PATH
SERVER_PUBKEY is not the best name to describe what it really is.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-05-21 14:23:16 +03:00
Donatas Abraitis
043cff5286 bgpd: Split rpki cache command into separate per SSH/TCP
Current command (bundled two into one) is absolutely wrong.

When you configure TCP session with the source, the command thinks, that
it's a SSH session with a username.

It's much better to split this into two separate commands where it's much
easier to do the changes in the future (if more options comes in).

Yes, this is a breaking change, but there is no other proper way to overcome
this.

Bonus note how it looks, which also can lead to crashes (due to port 0x0):

```
(gdb) p *cache->tr_config.ssh_config
$11 = {host = 0x5555562f9cd0 "1.1.1.1", port = 0, bindaddr = 0x0,
  username = 0x55555629ad00 "",
  server_hostkey_path = 0x7ffff53667a0 <rpki_create_socket> "Uf\017\357\300H\211\345AWAVAUATSH\201", <incomplete sequence \354\230>, client_privkey_path = 0x0,
  data = 0x0, new_socket = 0x51, connect_timeout = 4143762592,
  password = 0x7ffff6fccca0 <main_arena+96> "\300\"0VUU"}
(gdb) p *cache->tr_config.tcp_config
$12 = {host = 0x5555562f9cd0 "1.1.1.1", port = 0x0, bindaddr = 0x0,
  data = 0x55555629ad00, new_socket = 0x7ffff53667a0 <rpki_create_socket>,
  connect_timeout = 0}
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-05-21 14:23:15 +03:00
Donald Sharp
d284e22296 doc: Add missing show ip route summ command
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-05-20 15:46:29 -04:00
Donald Sharp
31da224cdf doc: Fixup show ip route command doc
The documentation for this command is just... wrong.
Let's clean it up.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-05-20 15:44:00 -04:00
Russ White
2e0208602b
Merge pull request #15911 from opensourcerouting/feature/bgpd_dampening_per_neighbor
bgpd: per-neighbor dampening support
2024-05-13 13:55:24 -04:00
Donatas Abraitis
e797b137f3 lib: Allow doing match/set tag untagged
In route-map: `match tag untagged`.

E.g. Cisco/Juniper allows that, but they use `match tag 0` instead.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-05-10 09:50:18 +03:00
Jafar Al-Gharaibeh
0c9ce7a862
Merge pull request #15975 from opensourcerouting/pim-fixes-20240508
pimd: fixes split off from #15969
2024-05-09 08:52:11 -05:00
David Lamparter
b564c1d890 pimd: fix dr-priority range
0 is a valid DR priority.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-05-08 21:21:30 +02:00
anlan_cs
8b815dd2ad doc: fix one command for isis
Correct one command for isis based on code. And better the web page.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-05-07 22:01:27 +08:00
David Schweizer
b07a21dd1a doc: user doc for route-flap dampening commands
Changes update the user documentation to include a description of the
now available commands to enable/disable route-flap dampening for peers
and peer groups.

Signed-off-by: David Schweizer <dschweizer@opensourcerouting.org>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-05-03 09:30:33 +03:00
Donatas Abraitis
24a9f1c9ae
Merge pull request #15796 from LabNConsulting/aceelindem/ospf-ospfapi-options
ospfd: OSPFAPI Server options to limit to local connections and per-instance TCP
2024-04-26 23:31:38 +03:00
Donatas Abraitis
223eda3d00
Merge pull request #15759 from anlancs/doc-isisd-cleanup-1
doc: clean up a few commands for isis
2024-04-26 23:29:58 +03:00
Donatas Abraitis
524e08c4d6
Merge pull request #15737 from vjardin/cmake_install_prefix
cmake install prefix
2024-04-26 23:29:29 +03:00
Donatas Abraitis
d3c556652a
Merge pull request #15845 from pguibert6WIND/bmp_improvements
Bmp improvements about statistics
2024-04-26 23:24:54 +03:00
Russ White
f19817f71d
Merge pull request #15723 from opensourcerouting/feature/extended_link_bw_refactored_v1
bgpd: Implement extended link-bandwidth
2024-04-26 14:41:05 -04:00
Philippe Guibert
500227ae76 bgpd: add bmp loc-rib 64 bit gauge value
There is no support for option 8, as per RFC7854.
Add the 64 bit counter in the peer structure.
Add the missing per peer statistic.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-26 08:12:41 +02:00
Philippe Guibert
7ba991cf96 bgpd: add 'bmp stat send-experimental' command
Some wireshark versions can not decode the experimental
bmp stat code. This may also be the case for some collectors.
Add a vty command to be able to disable bmp to sending
those values.

> [no] bmp stat send-experimental

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-26 08:12:38 +02:00
Philippe Guibert
e6374a20f3 bgpd: add bmp adj-rib-in 64 bit gauge value
There is no support for option 7, as per RFC7854.
Add the 64 bit counter in the peer structure.
Add the 64 bit bmp value write api.
Add the missing per peer statistic.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-26 08:11:44 +02:00
Donald Sharp
6214396306 bgpd: Explain Better admin w/ redistribution a bit better.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-25 14:17:46 -04:00
Acee Lindem
3b75723061 ospfd: OSPFAPI Server options to limit to local connections and per-instance TCP
This commit include OSPFAPI Server options to:

 1. Allow specification of the OSPFAPI server local address.
 2. Allow different OSPFAPI server TCP ports to be specified for different
    OSPF instances in /etc/services.

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-04-25 16:20:50 +00:00
Vincent JARDIN
f30275d05b docs: libs install-prefix since cmake 3.21
use the new recommendation from cmake:
  --install-prefix <directory>
     New in version 3.21.

     Specify the installation directory, used by the
     CMAKE_INSTALL_PREFIX variable. Must be an
     absolute path.

reminder: the default path is /usr/local instead of /usr

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-04-25 09:52:05 +02:00
Vincent JARDIN
b9161936af docs: sysrepo install-prefix since cmake 3.21
use the new recommendation from cmake:
  --install-prefix <directory>
     New in version 3.21.

     Specify the installation directory, used by the
     CMAKE_INSTALL_PREFIX variable. Must be an
     absolute path.

reminder: the default path is /usr/local instead of /usr

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-04-25 09:52:05 +02:00
Vincent JARDIN
e779a5fd7e docs: libyang install-prefix since cmake 3.21
use the new recommendation from cmake:
  --install-prefix <directory>
     New in version 3.21.

     Specify the installation directory, used by the
     CMAKE_INSTALL_PREFIX variable. Must be an
     absolute path.

reminder: the default path is /usr/local instead of /usr

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-04-25 09:52:05 +02:00
Donatas Abraitis
0d0350aef0
Merge pull request #15783 from LabNConsulting/aceelindem/ospf-neighbor-filter
ospfd: Add prefix-list filtering of OSPF neighbors on OSPF interface
2024-04-24 22:30:11 +03:00
anlan_cs
245b244695 doc: clean up a few commands for isis
Remove a few obsoleted isis commands based on code.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-24 20:36:47 +08:00
Donatas Abraitis
85292ef926 doc: Add neighbor ... extended-link-bandwidth command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-04-22 17:48:37 +03:00
Acee Lindem
0ccad8a2b0 ospfd: Add prefix-list filtering of OSPF neighbors on OSPF interface
This commit adds the capabiity to filter OSPF neighbors using a
prefix-list with rules matching the neighbor's IP source address.
Configuration, filtering, immediate neighbor pruning, topo-tests,
and documentation are included. The command is:

     ip ospf neighbor-filter <prefix-list> [A.B.C.D]

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-04-18 15:32:58 +00:00
Donald Sharp
cfee4e3cf5 bgpd: Allow specification of AS 0 for rpki commands
RFC-7607 specifically calls out the allowed usage
of AS 0 to signal that the a particular address is
not in use and should be guarded against.  Add
the ability to specify this special AS in the rpki
commands.

eva# show rpki  as-number 0
RPKI/RTR prefix table
Prefix                                   Prefix Length  Origin-AS
2.57.180.0                                  22 -  24   0
2.58.144.0                                  22 -  22   0
2.59.116.0                                  24 -  24   0
4.42.228.0                                  22 -  22   0
5.57.80.0                                   22 -  22   0
<snip>
2a13:df87:b400::                            38 -  38   0
2a13:df84::                                 32 -  32   0
2630::                                      16 -  16   0
Number of IPv4 Prefixes: 1166
Number of IPv6 Prefixes: 617

eva# show rpki prefix 2630::/16 0
Prefix                                   Prefix Length  Origin-AS
2630::                                      16 -  16   0
eva#

Fixes: #15778
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-17 09:42:26 -04:00
Donald Sharp
bc9885b22e bgpd: Fix display when using missing-as-worst
The usage of the `bgp bestpath med missing-as-worst` command
was being accepted and applied during bestpath, but during output
of the routes affected by this it would not give any indication
that this was happening or what med value was being used.

Fixes: #15718
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-15 12:33:53 -04:00
Jafar Al-Gharaibeh
692f916b88
Merge pull request #15688 from mjstapp/dplane_api_version
lib, zebra: Add a version scheme for the dataplane API
2024-04-11 23:54:02 -05:00
Russ White
7f6cda36b1
Merge pull request #15660 from LabNConsulting/acee/ospf-p2mp-non-broadcast
ospfd: Implement non-broadcast support for point-to-multipoint networks
2024-04-09 11:56:34 -04:00
Mark Stapp
f8cab99727 doc: add doc about the zebra dataplane api version
Add a block to the dev doc about the dataplane api version.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-09 08:59:13 -04:00
anlan_cs
b8ac0fb23c doc: fix one bgp command
Fixed one bgp comamnd based on code.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-08 17:25:14 +08:00
anlan_cs
fc88f874d1 doc: correct a few commands for isis
Correct a few commands for isis based on code, just complete the missing
`[vrf <NAME|all>]`.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-05 21:39:19 +08:00
Acee Lindem
58e623714b ospfd: Implement non-broadcast support for point-to-multipoint networks
This extends non-broadcast support to point-to-multipoint networks.
Neighbors will be explicitly configured and polled in lieu of multicast
dicovery. Toptotests and documentation updates are included.

Additionally, the ospf neighbor commands have been greatly simplified taking
advantage of DEFPY() capabilities.

The AllOSPFRouters (224.0.0.5) is still joined for non-broadcast networks
since it is joined for NBMA networks. It seems this could be removed but
it should done be in a separate commit.

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-04-02 21:34:29 +00:00
anlan_cs
b5ed504096 doc: fix one command for isis
Correct one command based on code.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-02 15:00:20 +08:00
Jafar Al-Gharaibeh
d5f17cd51e
Merge pull request #15557 from idryzhov/remove-confd
*: remove confd plugin
2024-03-27 12:38:31 -05:00
Russ White
73e0b7a198
Merge pull request #15585 from opensourcerouting/feature/enable_dynamic_capability_for_datacenter_profile
bgpd: Enable BGP dynamic capability by default for datacenter profile
2024-03-26 10:09:50 -04:00
anlan_cs
17f2825809 doc: fix some commands for isis
Signed-off-by: anlan_cs <vic.lan@pica8.com>
2024-03-23 08:45:36 +08:00
Christian Hopps
043a4183c2 grpc: fix grpc for various failures
lib: don't define a `fallthrough` in c++ to avoid conflict with protobuf c++

check: add link libs required by some versions of grpc++ or it's dependent
linked libs

tests: don't fail the test due to known at exit memleaks
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-21 15:57:01 +00:00
Donatas Abraitis
e2ac728c82 bgpd: Enable BGP dynamic capability by default for datacenter profile
Dynamic capability provides more value without resetting the sessions for some
important other capabilities to exchange, like: graceful-restart, addpath, orf,
fqdn, etc.

Since we support it already, enable it by default.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-20 17:11:14 +02:00
Russ White
e2d63567ec
Merge pull request #15565 from LabNConsulting/chopps/code-cover
tests: enable code coverage reporting with topotests
2024-03-19 17:19:45 -04:00
Christian Hopps
71368f9e06 tests: enable code coverage reporting with topotests
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-17 04:53:13 -04:00
Igor Ryzhov
84a00a47b8 *: remove confd plugin
ConfD is not supported anymore and its use is discouraged by developers:
https://discuss.tail-f.com/t/confd-premium-no-longer-available-future-of-confd/4552/6

Remove the code and all mentions of ConfD from the documentation.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-03-15 00:58:10 +02:00
Donald Sharp
894cb4f689 bgpd: When using dev build add pointer information to %pBD
When building FRR with `--enable-dev-build`.  Add a bit of
code to include the pointer value as part of the output.
Helps with tracking down issues and let's us see more data
when using the dev build option.

New output:

2024/03/08 19:48:56 BGP: [V0J1J-W5RHA] 11.0.20.1/32(0x5759ddf8d7c0) for 11.0.20.1/32

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-14 09:45:09 +00:00
David Lamparter
02af04f73d doc: update re. ISO C23 printf changes
The new `%w99d` fixed-width modifier still needs work in `frr-format`,
which unfortunately is not as trivial as `%b` was.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-03-10 15:29:17 +01:00
Russ White
cf4d838e69
Merge pull request #15479 from opensourcerouting/fix/spelling
doc: Fix one spelling `dissallowed` to `disallowed`
2024-03-05 08:48:56 -05:00
Donatas Abraitis
e993ba1812 doc: Fix one spelling dissallowed to disallowed
Closes: https://github.com/FRRouting/frr/issues/15465

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-03-05 08:57:39 +02:00
Donald Sharp
a0c4fe2ca6 doc: Add show fpm status [json] command to documentation
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:06:35 -05:00
Donald Sharp
fef93e6149 zebra: Add fpm_listener
Add a tiny fpm_listener program to allow FRR to test the
fpm.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:06:35 -05:00
Donald Sharp
852a74807f doc, tools: Remove ARRAY_SIZE check
checkpatch.pl wants you to use ARRAY_SIZE in a kernel
header file.  We don't have access to this kernel header
file for normal compilation.  I'm just going to remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:03:46 -05:00
Russ White
b43e1d9b14
Merge pull request #15438 from opensourcerouting/fix/doc_release_reference_table
doc: Update dates in release reference table
2024-02-27 12:01:29 -05:00
Russ White
c4f9b874b7
Merge pull request #14810 from dmytroshytyi-6WIND/srv6_bgp_sid_reachability
SRv6 BGP SID reachability
2024-02-27 10:32:14 -05:00
Russ White
879ca714ed
Merge pull request #15273 from opensourcerouting/feature/paths_limit_capability
bgpd: Implement Paths-Limit capability
2024-02-27 10:24:05 -05:00
Donatas Abraitis
8b73f011d5 doc: Update dates in release reference table
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-27 14:54:16 +02:00
Donatas Abraitis
30330e6c37
Merge pull request #15384 from louis-6wind/isis-show-all-algos
isisd: display all the algorithms at the same time
2024-02-23 09:51:13 +02:00
Louis Scalbert
21e542e2c6 doc: show isis optional algorithm id
Set optional algorithm ID in the show isis commands.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-02-19 10:13:51 +01:00
Donatas Abraitis
ce334222ae doc: Add mgmtd pytest marker into documentation
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-17 11:24:29 +02:00
Donatas Abraitis
4952f23cee
Merge pull request #15288 from donaldsharp/shell_access_removal
vtysh: Remove deprecated shell_access code
2024-02-14 11:20:36 +02:00
Donatas Abraitis
6e96c98bc4 doc: Add neighbor ... addpath-rx-paths-limit command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-13 17:06:04 +02:00
Russ White
17a0a625f0
Merge pull request #15284 from opensourcerouting/feature/bgpd_announce_rpki_state_knob
bgpd: Add neighbor X send-community extended rpki command
2024-02-13 09:35:10 -05:00
Christian Hopps
6374970cb8 doc: docker: update with new more strict protobuf requirements
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-12 06:48:12 -05:00
Vincent JARDIN
14fc0782d4 mgmtd: ripng, libs fully converted
While checking the code, we can notice that they are already converted.

Suggested-by: Igor Ryzhov <iryzhov@nfware.com>
Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-02-09 19:23:01 +01:00
Donatas Abraitis
fce81856ed doc: Fix the documentation for route-map continue statement
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-07 22:57:56 +02:00