]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
2 years agodoc: fix typo in zebra doc
Mark Stapp [Mon, 28 Feb 2022 16:28:25 +0000 (11:28 -0500)]
doc: fix typo in zebra doc

Fix a typo in the zebra doc file that triggers a warning.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agoMerge pull request #10678 from donaldsharp/staticd_make_check_fix
Jafar Al-Gharaibeh [Mon, 28 Feb 2022 15:40:12 +0000 (09:40 -0600)]
Merge pull request #10678 from donaldsharp/staticd_make_check_fix

staticd: Fix `make check` failures

2 years agoMerge pull request #10668 from Jafaral/frr-conf-topotest
Donald Sharp [Mon, 28 Feb 2022 15:28:10 +0000 (10:28 -0500)]
Merge pull request #10668 from Jafaral/frr-conf-topotest

topotests: add support for frr.conf as a unified config

2 years agoMerge pull request #10667 from donaldsharp/bufsize
David Lamparter [Mon, 28 Feb 2022 14:56:51 +0000 (15:56 +0100)]
Merge pull request #10667 from donaldsharp/bufsize

2 years agoMerge pull request #10627 from ton31337/fix/enforce_using_documentation_prefixes
Russ White [Mon, 28 Feb 2022 14:54:09 +0000 (09:54 -0500)]
Merge pull request #10627 from ton31337/fix/enforce_using_documentation_prefixes

doc: Enforce using IPv4/IPv6 reserved ranges for documentation

2 years agoMerge pull request #10636 from ton31337/fix/use_get_set_for_communities
Russ White [Mon, 28 Feb 2022 14:52:50 +0000 (09:52 -0500)]
Merge pull request #10636 from ton31337/fix/use_get_set_for_communities

bgpd: Reuse get/set helpers for attr->community

2 years agoMerge pull request #10566 from whichbug/master
Russ White [Mon, 28 Feb 2022 14:44:47 +0000 (09:44 -0500)]
Merge pull request #10566 from whichbug/master

isisd: use base64 to encode the binary data.

2 years agoMerge pull request #10353 from opensourcerouting/vtysh-live-log
Donald Sharp [Mon, 28 Feb 2022 14:43:29 +0000 (09:43 -0500)]
Merge pull request #10353 from opensourcerouting/vtysh-live-log

lib & vtysh: RFC5424 syslog + vtysh live log display

2 years agoMerge pull request #9674 from leonshaw/fix/staticd-nht-reg
Donald Sharp [Mon, 28 Feb 2022 14:05:44 +0000 (09:05 -0500)]
Merge pull request #9674 from leonshaw/fix/staticd-nht-reg

staticd: Don't register existing nexthop to zebra

2 years agostaticd: Fix `make check` failures
Donald Sharp [Mon, 28 Feb 2022 13:18:55 +0000 (08:18 -0500)]
staticd: Fix `make check` failures

Recent commit:
abc246e19345cbd2bc74c7dc50dac0b9cf2addf8

Has broken `make check` with recently new compilers:

/usr/bin/ld: staticd/libstatic.a(static_nb_config.o): warning: relocation against `zebra_ecmp_count' in read-only section `.text'
  CCLD     tests/bgpd/test_peer_attr
  CCLD     tests/bgpd/test_packet
/usr/bin/ld: staticd/libstatic.a(static_zebra.o): in function `static_zebra_capabilities':
/home/sharpd/frr5/staticd/static_zebra.c:208: undefined reference to `zebra_ecmp_count'
/usr/bin/ld: staticd/libstatic.a(static_zebra.o): in function `static_zebra_route_add':
/home/sharpd/frr5/staticd/static_zebra.c:418: undefined reference to `zebra_ecmp_count'
/usr/bin/ld: staticd/libstatic.a(static_nb_config.o): in function `static_nexthop_create':
/home/sharpd/frr5/staticd/static_nb_config.c:174: undefined reference to `zebra_ecmp_count'
/usr/bin/ld: /home/sharpd/frr5/staticd/static_nb_config.c:175: undefined reference to `zebra_ecmp_count'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
make: *** [Makefile:8679: tests/lib/test_grpc] Error 1
make: *** Waiting for unfinished jobs....

Essentially the newly introduced variable zebra_ecmp_count is not available in the
libstatic.a compiled and make check has code that compiles against it.

The fix is to just move the variable to the library.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10639 from patrasar/master_pimv6_upstream
David Lamparter [Mon, 28 Feb 2022 13:10:44 +0000 (14:10 +0100)]
Merge pull request #10639 from patrasar/master_pimv6_upstream

2 years agopim6d: Handling IPV6 in pim_upstream
sarita patra [Wed, 23 Feb 2022 13:58:23 +0000 (05:58 -0800)]
pim6d: Handling IPV6 in pim_upstream

Signed-off-by: sarita patra <saritap@vmware.com>
2 years agovtysh: show live log messages
David Lamparter [Fri, 6 Dec 2019 12:48:06 +0000 (13:48 +0100)]
vtysh: show live log messages

https://www.youtube.com/watch?v=8psFQCEgA18

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #10664 from opensourcerouting/checksum-iov
Donald Sharp [Mon, 28 Feb 2022 12:28:49 +0000 (07:28 -0500)]
Merge pull request #10664 from opensourcerouting/checksum-iov

lib: make checksum code take iovec for input

2 years agovtysh: use poll/callback-driven readline interface
David Lamparter [Wed, 4 Dec 2019 07:10:42 +0000 (08:10 +0100)]
vtysh: use poll/callback-driven readline interface

Create a thread_master and funnel readline terminal I/O through it.
This allows processing other input in parallel, e.g. log messages.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agovtysh: receive file descriptors from daemons
David Lamparter [Tue, 3 Dec 2019 23:17:50 +0000 (00:17 +0100)]
vtysh: receive file descriptors from daemons

The other half of yielding back a file descriptor from a daemon to
vtysh.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agopython: improve clippy/clidef macro processing
David Lamparter [Sun, 16 Jan 2022 20:43:55 +0000 (21:43 +0100)]
python: improve clippy/clidef macro processing

Process macros from the current file, and warn if something is
redefined (to a different value).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib: implement `terminal monitor` for vtysh
David Lamparter [Wed, 4 Dec 2019 07:10:42 +0000 (08:10 +0100)]
lib: implement `terminal monitor` for vtysh

Adds a new logging target that sends log messages to vtysh.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib: allow returning a file descriptor over vtysh
David Lamparter [Tue, 3 Dec 2019 23:17:50 +0000 (00:17 +0100)]
lib: allow returning a file descriptor over vtysh

This adds the plumbing necessary to yield back a file descriptor to
vtysh.  The fd is passed on the command status code bytes through
AF_UNIX SCM_RIGHTS.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib: add accessor for raw timestamp in zlog
David Lamparter [Sun, 16 Jan 2022 12:20:50 +0000 (13:20 +0100)]
lib: add accessor for raw timestamp in zlog

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #10387 from mobash-rasool/pim-cli-top
David Lamparter [Mon, 28 Feb 2022 12:22:06 +0000 (13:22 +0100)]
Merge pull request #10387 from mobash-rasool/pim-cli-top

2 years agostaticd: Don't register existing nexthop to zebra
Xiao Liang [Mon, 27 Sep 2021 02:23:37 +0000 (10:23 +0800)]
staticd: Don't register existing nexthop to zebra

Zebra sends a nexthop-update message on registeration, which will cause
existing routes to be reconfigured even no changes actually happened.
Don't register the nexthop again if it's already done.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2 years agopim6d: Add ipv6 pim register-suppress-time CLI
Mobashshera Rasool [Wed, 19 Jan 2022 13:50:02 +0000 (05:50 -0800)]
pim6d: Add ipv6 pim register-suppress-time CLI

Adding below CLI for pim6d
[no] ipv6 pim register-suppress-time (1-65535)

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding ipv6 pim rp keep-alive-timer
Mobashshera Rasool [Wed, 19 Jan 2022 13:36:05 +0000 (05:36 -0800)]
pim6d: Adding ipv6 pim rp keep-alive-timer

Adding below CLI for pim6d daemon
[no] ipv6 pim rp keep-alive-timer [(1-65535)]

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding ipv6 pim keep-alive-timer
Mobashshera Rasool [Wed, 19 Jan 2022 13:27:24 +0000 (05:27 -0800)]
pim6d: Adding ipv6 pim keep-alive-timer

Adding the below CLI for pim6d daemon:
ipv6 pim keep-alive-timer (1-65535)

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding ipv6 pim packet CLI
Mobashshera Rasool [Wed, 19 Jan 2022 13:21:20 +0000 (05:21 -0800)]
pim6d: Adding ipv6 pim packet CLI

Adding below CLI for pim6d daemon:
[no] ipv6 pim packet (1-255)

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding ipv6 pim spt-switchover CLI
Mobashshera Rasool [Wed, 19 Jan 2022 09:35:35 +0000 (01:35 -0800)]
pim6d: Adding ipv6 pim spt-switchover CLI

Adding the below CLIs for ipv6:
[no] ipv6 pim spt-switchover infinity-and-beyond
[no] ipv6 pim spt-switchover infinity-and-beyond prefix-list WORD

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Implementing join-prune interval CLI
Mobashshera Rasool [Wed, 19 Jan 2022 08:06:41 +0000 (00:06 -0800)]
pim6d: Implementing join-prune interval CLI

Adding "ipv6 pim join-prune interval (1-65535)

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Add FRR_PIM_AF_XPATH_VAL for v4 and v6
Mobashshera Rasool [Thu, 10 Feb 2022 08:18:13 +0000 (00:18 -0800)]
pim6d: Add FRR_PIM_AF_XPATH_VAL for v4 and v6

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Moving pim_cli_get_vrf_name function to common file
Mobashshera Rasool [Fri, 25 Feb 2022 08:59:14 +0000 (00:59 -0800)]
pimd: Moving pim_cli_get_vrf_name function to common file

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Adding pim_cmd_common.h and .c
Mobashshera Rasool [Thu, 10 Feb 2022 08:14:41 +0000 (00:14 -0800)]
pimd: Adding pim_cmd_common.h and .c

This is to keep the cmd changes common to v4 and v6 in this file.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Change the show running commands based on address family
Mobashshera Rasool [Wed, 19 Jan 2022 08:16:03 +0000 (00:16 -0800)]
pimd: Change the show running commands based on address family

Change the show running commands for pimv4 and pimv6 based on the
address family.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Removing unnecessary #if
Mobashshera Rasool [Thu, 20 Jan 2022 08:58:40 +0000 (00:58 -0800)]
pimd: Removing unnecessary #if

Since pim_cmd.c file is moved to pimv4 make file, therefore
removing #if PIM_IPV !=6.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding show running for ipv6 mld commands
Sai Gomathi N [Wed, 19 Jan 2022 13:16:55 +0000 (05:16 -0800)]
pim6d: Adding show running for ipv6 mld commands

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Moving igmp "show running-config" to a function
Mobashshera Rasool [Fri, 25 Feb 2022 11:01:57 +0000 (03:01 -0800)]
pimd: Moving igmp "show running-config" to a function

Moving the igmp related commands running config to
a new function specific to pimv4.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding PIM_AF_NAME "ip" / "ipv6" for "show running-config"
Mobashshera Rasool [Fri, 25 Feb 2022 09:29:29 +0000 (01:29 -0800)]
pim6d: Adding PIM_AF_NAME "ip" / "ipv6" for "show running-config"

Adding PIM_AF_NAME to use in the show running config for both
pimv4 and pimv6 commands.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Moving ipv4 running-configs to a separate function
Sai Gomathi N [Wed, 19 Jan 2022 13:00:56 +0000 (05:00 -0800)]
pimd: Moving ipv4 running-configs to a separate function

Co-authored-by: Sai Gomathi <nsaogimathi@vmware.com>
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Adding the base changes
Sai Gomathi N [Tue, 18 Jan 2022 14:36:17 +0000 (06:36 -0800)]
pim6d: Adding the base changes

Adding the file pim6_cmd.h and pim6d_cmd.c as the base changes
for implementing the CLI changes

Removed the pim_cmd_init from the stub file.

Co-authored-by: Sarita Patra <saritap@vmware.com>
Co-authored-by: Abhishek N R <abnr@vmware.com>
Co-authored-by: Sai Gomathi N <nsaigomathi@vmware.com>
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agoMerge pull request #10376 from patrasar/master_pimv6_vtysh
David Lamparter [Mon, 28 Feb 2022 09:26:22 +0000 (10:26 +0100)]
Merge pull request #10376 from patrasar/master_pimv6_vtysh

2 years agotopotests: add support for frr.conf as a unified config
Jafar Al-Gharaibeh [Sun, 27 Feb 2022 01:59:48 +0000 (19:59 -0600)]
topotests: add support for frr.conf as a unified config

This PR adds support for configuring topotest routers using a single file.
  instead of:
```
        router.load_config(
    TopoRouter.RD_ZEBRA, os.path.join(CWD, "{}/zebra.conf".format(rname))
    )
router.load_config(
    TopoRouter.RD_OSPF, os.path.join(CWD, "{}/ospfd.conf".format(rname))
    )
router.load_config(
    TopoRouter.RD_BGP, os.path.join(CWD, "{}/bgpd.conf".format(rname))
    )
```
  you can now do:
```
        router.load_frr_config(
    os.path.join(CWD, "{}/frr.conf".format(rname)),
    [TopoRouter.RD_ZEBRA, TopoRouter.RD_OSPF, TopoRouter.RD_BGP]
    )
```
or just:

```
        router.load_frr_config(os.path.join(CWD, "{}/frr.conf".format(rname)))
```
In this latter case, the daemons list will be inferred from frr.conf file.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2 years agodoc: Document a existing cli for zebra that was missing
Donald Sharp [Sat, 26 Feb 2022 20:45:47 +0000 (15:45 -0500)]
doc: Document a existing cli for zebra that was missing

The -s or --nl-bufsize option was missing, document it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Allow *BSD to specify a receive buffer size
Donald Sharp [Sat, 26 Feb 2022 20:40:15 +0000 (15:40 -0500)]
zebra: Allow *BSD to specify a receive buffer size

End operator is reporting that they are receiving buffer overruns
when attempting to read from the kernel receive socket.  It is
possible to adjust this size to more modern levels especially
for when the system is under load.  Modify the code base
so that *BSD operators can use the zebra `-s XXX` option
to specify a read buffer.

Additionally setup the default receive buffer size on *BSD
to be 128k instead of the 8k so that FRR does not run into
this issue again.

Fixes: #10666
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10669 from anlancs/bgpd-line
Donald Sharp [Sun, 27 Feb 2022 12:43:28 +0000 (07:43 -0500)]
Merge pull request #10669 from anlancs/bgpd-line

*: Add necessary new line for output of vty_out()

2 years ago*: Add necessary new line for output of vty_out()
anlan_cs [Sun, 27 Feb 2022 01:38:29 +0000 (09:38 +0800)]
*: Add necessary new line for output of vty_out()

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agotests: use PRNG in checksum test
David Lamparter [Sat, 26 Feb 2022 14:13:28 +0000 (15:13 +0100)]
tests: use PRNG in checksum test

(And don't try to go beyond fletcher checksum offset special value.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib: use iovec for checksum code
David Lamparter [Sat, 26 Feb 2022 12:20:16 +0000 (13:20 +0100)]
lib: use iovec for checksum code

... to allow checksumming noncontiguous blurbs of data.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib: guard checksum.h against multiple inclusion
David Lamparter [Sat, 26 Feb 2022 11:02:10 +0000 (12:02 +0100)]
lib: guard checksum.h against multiple inclusion

checksum.h was throwing errors if it ended up included twice.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #9947 from mjstapp/mpls_incoming
David Lamparter [Sat, 26 Feb 2022 15:47:08 +0000 (16:47 +0100)]
Merge pull request #9947 from mjstapp/mpls_incoming

2 years agoMerge pull request #10665 from opensourcerouting/pim6-fix-warning
Donald Sharp [Sat, 26 Feb 2022 15:14:29 +0000 (10:14 -0500)]
Merge pull request #10665 from opensourcerouting/pim6-fix-warning

pimd: fix unused variable

2 years agopimd: fix unused variable
David Lamparter [Sat, 26 Feb 2022 14:32:41 +0000 (15:32 +0100)]
pimd: fix unused variable

Fix `-Werror` build.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #10400 from opensourcerouting/pim6-compilefix
Donald Sharp [Sat, 26 Feb 2022 13:03:06 +0000 (08:03 -0500)]
Merge pull request #10400 from opensourcerouting/pim6-compilefix

pim6d: get running with ipv6 types throughout

2 years agoMerge pull request #10658 from proelbtn/fix/srv6-l3vpn-transposition
Russ White [Fri, 25 Feb 2022 21:06:47 +0000 (16:06 -0500)]
Merge pull request #10658 from proelbtn/fix/srv6-l3vpn-transposition

bgpd: Change the format of announcement for SRv6 L3VPN

2 years agoMerge pull request #10655 from donaldsharp/timers_warning_when_large
Sri Mohana Singamsetty [Fri, 25 Feb 2022 16:05:45 +0000 (08:05 -0800)]
Merge pull request #10655 from donaldsharp/timers_warning_when_large

lib: Add a Dev catch for when a timer is set for > 1 year

2 years agobgpd: change the treatment for SRv6 routes
Ryoga Saito [Fri, 25 Feb 2022 13:44:07 +0000 (13:44 +0000)]
bgpd: change the treatment for SRv6 routes

This patch adds transpostion_offset and transposition_len to bgp_sid_info,
and transposes SID only at bgp_zebra_announce.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2 years agobgpd: announce locators instead of transposed SIDs
Ryoga Saito [Fri, 25 Feb 2022 13:42:32 +0000 (13:42 +0000)]
bgpd: announce locators instead of transposed SIDs

This patch changes the format of the Prefix-SID advertised by
bgpd. In current implementation, transposed SIDs were
advertised, which caused two problems:

1. bgpd that receives SRv6 L3VPN routes whose SID is
   transposed couldn't put bgp_attr_srv6_l3vpn whose those
   routes together. This leads extra memory consumption.

2. Some implementation will reject a route with transposed SID.
   This will affect interoperability.

For those reasons, in this patch, instead of advertising
transposed SID, we change it to advertise the locator of SID.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2 years agobgpd: update logic to allocate SRv6 locator
Ryoga Saito [Fri, 25 Feb 2022 13:40:28 +0000 (13:40 +0000)]
bgpd: update logic to allocate SRv6 locator

For the later patches, this patch changes the behavior of alloc_new sid
so that bgpd record not only SID for VRF, but also Locator of SID.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2 years agozebra: use dataplane to read interface NETCONF info
Mark Stapp [Thu, 28 Oct 2021 15:23:31 +0000 (11:23 -0400)]
zebra: use dataplane to read interface NETCONF info

Use the dataplane to query and read interface NETCONF data;
add netconf-oriented data to the dplane context object, and
add accessors for it. Add handler for incoming update
processing.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agozebra: add dplane type for NETCONF data
Mark Stapp [Thu, 28 Oct 2021 15:19:32 +0000 (11:19 -0400)]
zebra: add dplane type for NETCONF data

Add a new dplane op for interface NETCONF data; add the new
enum value to several switch statements.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agozebra: avoid default clause in FPM switch
Mark Stapp [Wed, 27 Oct 2021 17:56:06 +0000 (13:56 -0400)]
zebra: avoid default clause in FPM switch

Avoid default clause in a switch in the FPM module that handles
dplane op codes - include all the codes.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agozebra: add xxxNETCONF messages to the netlink BPF filter
Mark Stapp [Mon, 18 Oct 2021 15:55:24 +0000 (11:55 -0400)]
zebra: add xxxNETCONF messages to the netlink BPF filter

Allow self-produced xxxNETCONF netlink messages through the BPF
filter we use. Just like address-configuration actions, we'll
process NETCONF changes in one path, whether the changes were
generated by zebra or by something else in the host OS.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agozebra: add netlink debug dump for netconf messages
Mark Stapp [Fri, 17 Sep 2021 20:38:16 +0000 (16:38 -0400)]
zebra: add netlink debug dump for netconf messages

Add the RTM_NETCONF messages to the detailed netlink message
dump module.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agozebra: include mpls enabled status in interface output
Mark Stapp [Fri, 17 Sep 2021 20:32:27 +0000 (16:32 -0400)]
zebra: include mpls enabled status in interface output

Add mpls status to the zebra interface struct; include mpls
status in show interface output.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agobuild: correct help output about netlink debug
Mark Stapp [Fri, 17 Sep 2021 20:30:23 +0000 (16:30 -0400)]
build: correct help output about netlink debug

The configure flag _disables_ netlink debug; make the help
text match that.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agozebra: Start of work to get data about mpls from kernel
Donald Sharp [Tue, 4 May 2021 12:50:00 +0000 (08:50 -0400)]
zebra: Start of work to get data about mpls from kernel

a) We'll need to pass the info up via some dataplane control method
(This way bsd and linux can both be zebra agnostic of each other)

b) We'll need to modify `struct interface *` to track this data
and when it changes to notify upper level protocols about it.

c) Work is needed to dump the entire mpls state at the start
so we can gather interface state.  This should be done
after interface data gathering from the kernel.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agopim6d: Adding PIMV6 as VTYSH client
sarita patra [Tue, 18 Jan 2022 06:01:18 +0000 (22:01 -0800)]
pim6d: Adding PIMV6 as VTYSH client

Co-authored-by: Mobashshera Rasool <mrasool@vmware.com>
Signed-off-by: sarita patra <saritap@vmware.com>
2 years agolib: Add a Dev catch for when a timer is set for > 1 year
Donald Sharp [Fri, 25 Feb 2022 13:19:07 +0000 (08:19 -0500)]
lib: Add a Dev catch for when a timer is set for > 1 year

Since there are timers that are created based upon doing some
math and we know that unsigned values when doing math and we accidently
subtract a larger number from a smaller number causes the unsigned
number to wrap to very large numbers, let's put in a small catch
in place to see if there are any places in the system that
mistakes are made and FRR is accidently creating a problem
for itself.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Reuse get/set helpers for attr->community
Donatas Abraitis [Wed, 23 Feb 2022 07:05:47 +0000 (09:05 +0200)]
bgpd: Reuse get/set helpers for attr->community

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2 years agodoc: Enforce using IPv4/IPv6 reserved ranges for documentation
Donatas Abraitis [Mon, 21 Feb 2022 08:08:21 +0000 (10:08 +0200)]
doc: Enforce using IPv4/IPv6 reserved ranges for documentation

Just to avoid publicly IPv4/IPv6 ranges in topotests/documentation.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2 years agoMerge pull request #10650 from rgirada/ospf_ei
Donald Sharp [Thu, 24 Feb 2022 19:44:55 +0000 (14:44 -0500)]
Merge pull request #10650 from rgirada/ospf_ei

ospfd: NULL passed instead of ei pointer in external lsa origination

2 years agoospfd: NULL passed instead of ei pointer in external lsa origination
rgirada [Thu, 24 Feb 2022 17:33:08 +0000 (09:33 -0800)]
ospfd: NULL passed instead of ei pointer in external lsa origination

Description:
NULL pointer wrongly passed instead of 'ei' pointer to
ospf_external_lsa_originate() API in opaque capability enable/disable
which always make it to fail in origination.
Corrected it by passing actual ei pointer.

Signed-off-by: Rajesh Girada <rgirada@vmware.com>
2 years agoMerge pull request #10632 from donaldsharp/thread_return_null
Christian Hopps [Thu, 24 Feb 2022 06:43:48 +0000 (01:43 -0500)]
Merge pull request #10632 from donaldsharp/thread_return_null

*: Change thread->func to return void instead of int

2 years agoMerge pull request #10628 from anlancs/pimd-minors
Jafar Al-Gharaibeh [Thu, 24 Feb 2022 05:26:58 +0000 (23:26 -0600)]
Merge pull request #10628 from anlancs/pimd-minors

pimd: cosmetic change

2 years ago*: Change thread->func to return void instead of int
Donald Sharp [Wed, 23 Feb 2022 00:04:25 +0000 (19:04 -0500)]
*: Change thread->func to return void instead of int

The int return value is never used.  Modify the code
base to just return a void instead.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10385 from iqras23/nh
Russ White [Wed, 23 Feb 2022 21:45:36 +0000 (16:45 -0500)]
Merge pull request #10385 from iqras23/nh

zebra: Nexthop tracking, route resolution recursive lookup

2 years agoMerge pull request #10621 from donaldsharp/cov_fun
Jafar Al-Gharaibeh [Wed, 23 Feb 2022 17:33:46 +0000 (11:33 -0600)]
Merge pull request #10621 from donaldsharp/cov_fun

Cov fun

2 years agoMerge pull request #10585 from ton31337/feature/advmap_set
Igor Ryzhov [Wed, 23 Feb 2022 16:23:03 +0000 (19:23 +0300)]
Merge pull request #10585 from ton31337/feature/advmap_set

bgpd: Allow setting attributes over route-maps for conditional advert…

2 years agoMerge pull request #10633 from ton31337/fix/deprecate_sr_local-block
Igor Ryzhov [Wed, 23 Feb 2022 11:37:45 +0000 (14:37 +0300)]
Merge pull request #10633 from ton31337/fix/deprecate_sr_local-block

isisd: Drop deprecated `segment-routing local-block` command

2 years agoisisd: Drop deprecated `segment-routing local-block` command
Donatas Abraitis [Wed, 23 Feb 2022 06:43:07 +0000 (08:43 +0200)]
isisd: Drop deprecated `segment-routing local-block` command

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2 years agoisisd: fix #10505 using base64 encoding
whichbug [Fri, 11 Feb 2022 03:49:41 +0000 (22:49 -0500)]
isisd: fix #10505 using base64 encoding

Using base64 instead of the raw string to encode
the binary data.

Signed-off-by: whichbug <whichbug@github.com>
2 years agoMerge pull request #10615 from mobash-rasool/fixes
Jafar Al-Gharaibeh [Tue, 22 Feb 2022 17:45:45 +0000 (11:45 -0600)]
Merge pull request #10615 from mobash-rasool/fixes

pimd: Do not allow 224.0.0.0/24 range in igmp join

2 years agotests: Fix style issues in common_config.py
Iqra Siddiqui [Tue, 22 Feb 2022 17:25:58 +0000 (09:25 -0800)]
tests: Fix style issues in common_config.py

Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2 years agotests: Add supporting test to validate NH resolution logic
Iqra Siddiqui [Thu, 17 Feb 2022 09:58:15 +0000 (01:58 -0800)]
tests: Add supporting test to validate NH resolution logic

Co-authored-by: Vijay Kumar Gupta <vijayg@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2 years agozebra: Nexthop tracking, route resolution recursive lookup
vdhingra [Wed, 3 Feb 2021 13:58:12 +0000 (05:58 -0800)]
zebra: Nexthop tracking, route resolution recursive lookup

Description:
===========
Change is intended for fixing the NHT resolution logic.
While recursively resolving nexthop, keep looking for a valid/useable route in the rib,
by not stopping at the first/most-specific route in the rib.

Consider the following set of events taking place on R1:
R1(config)# ip route 2.2.2.0/24 ens192
R1# sharp watch nexthop 2.2.2.32 connected
R1# show ip nht
2.2.2.32(Connected)
 resolved via static
 is directly connected, ens192
 Client list: sharp(fd 33)

-2.2.2.32 NHT is resolved over the above valid static route.

R1# sharp install routes 2.2.2.32 nexthop 2.2.2.32 1
R1# 2.2.2.32(Connected)
 resolved via static
 is directly connected, ens192
 Client list: sharp(fd 33)

-.32/32 comes which is going to resolve through itself, but since this is an invalid route,
it will be marked as inactive and will not affect the NHT.

R1# sharp install routes 2.2.2.31 nexthop 2.2.2.32 1
R1# 2.2.2.32(Connected)
 unresolved(Connected)
 Client list: sharp(fd 50)

-Now a .31/32 comes which will resolve over .32 route, but as per the current logic,
this will trigger the NHT check, in turn making the NHT unresolved.

-With fix, NHT should stay in resolved state as long as the valid static or connected route stays installed

Fix:
====
-While resolving nexthops, walk up the tree from the most-specific match,
walk up the tree without any ZEBRA_NHT_CONNECTED check.

Co-authored-by: Vishal Dhingra <vdhingra@vmware.com>
Co-authored-by: Kantesh Mundaragi <kmundaragi@vmware.com>
Signed-off-by: Iqra Siddiqui <imujeebsiddi@vmware.com>
2 years agoMerge pull request #10593 from donaldsharp/rip_cleanup
Russ White [Tue, 22 Feb 2022 16:30:36 +0000 (11:30 -0500)]
Merge pull request #10593 from donaldsharp/rip_cleanup

ripd: Cleanup ripd.c indentation levels and comments

2 years agoMerge pull request #10625 from Jafaral/ospf-ns-vrf
Russ White [Tue, 22 Feb 2022 16:28:19 +0000 (11:28 -0500)]
Merge pull request #10625 from Jafaral/ospf-ns-vrf

topotests: give  a couple of ospf topotests better descriptive names

2 years agopceplib: Fix uninited data in test vehicle
Donald Sharp [Tue, 22 Feb 2022 13:21:32 +0000 (08:21 -0500)]
pceplib: Fix uninited data in test vehicle

Coverity SA found this.  Fix

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoeigrpd: Up convert to uint64_t before doing math
Donald Sharp [Fri, 18 Feb 2022 15:55:16 +0000 (10:55 -0500)]
eigrpd: Up convert to uint64_t before doing math

Intentionally up convert uint8_t and uint32_t values
to a uint64_t before doing math to make Coverity happy.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobfdd: Fix overflow possibility with time statements
Donald Sharp [Fri, 18 Feb 2022 15:45:46 +0000 (10:45 -0500)]
bfdd: Fix overflow possibility with time statements

If time ( a uint64_t ) is large enough doing division
and subtraction can still lead to situations where
the resulting number is greater than a uint32_t.
Just use uint32_t as an intermediate storage spot.
This is unlikely to every occur in a time frame
I could possibly care about but makes Coverity happy.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agolib: Fix possible usage of uninited data
Donald Sharp [Thu, 17 Feb 2022 19:07:57 +0000 (14:07 -0500)]
lib: Fix possible usage of uninited data

assert when if_lookup_address is passed with
a family that is not AF_INET or AF_INET6 as
that we are dead in the water and this is a
dev escape

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10618 from louis-oui/topo-win-title
Jafar Al-Gharaibeh [Mon, 21 Feb 2022 16:26:34 +0000 (10:26 -0600)]
Merge pull request #10618 from louis-oui/topo-win-title

topotests: fix the usage of screen

2 years agopimd: cosmetic change
anlan_cs [Sun, 30 Jan 2022 07:13:39 +0000 (02:13 -0500)]
pimd: cosmetic change

Remove one empty line. And correct one word.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agotopotests: set router name as title in screen and xterm
Louis Scalbert [Fri, 18 Feb 2022 12:37:00 +0000 (13:37 +0100)]
topotests: set router name as title in screen and xterm

When running a topotest with the --shell or --vtysh argument, the
window titles of the routers are generic.

Set the router name as title to identify correctly the window.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agotopotests: fix usage of screen
Louis Scalbert [Fri, 18 Feb 2022 12:34:50 +0000 (13:34 +0100)]
topotests: fix usage of screen

Opening new tab in screen is not possible when using option --vtysh or
--shell. Error 'No such file or directory'.

Fix the issue.

Fixes: 6a5433ef0b ("tests: NEW micronet replacement for mininet")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2 years agopimd: Do not allow 224.0.0.0/24 range in igmp join
Mobashshera Rasool [Fri, 18 Feb 2022 06:03:07 +0000 (22:03 -0800)]
pimd: Do not allow 224.0.0.0/24 range in igmp join

224.0.0.0/24 cannot be used by igmp since this is reserved
for routing protocols and other low-level topology discovery or
maintenance protocols.

Fixes: #10614
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agotests: rename topotest ospf_topo1_vrf to ospf_netns_vrf
Jafar Al-Gharaibeh [Sun, 20 Feb 2022 20:12:43 +0000 (14:12 -0600)]
tests: rename topotest ospf_topo1_vrf to ospf_netns_vrf

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2 years agotests: rename topotest ospf_topo2 to ospf_unnumbered
Jafar Al-Gharaibeh [Sun, 20 Feb 2022 19:57:56 +0000 (13:57 -0600)]
tests: rename topotest ospf_topo2 to ospf_unnumbered

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2 years agoMerge pull request #10539 from chiragshah6/evpn_dev1
Donatas Abraitis [Sat, 19 Feb 2022 09:08:29 +0000 (11:08 +0200)]
Merge pull request #10539 from chiragshah6/evpn_dev1

bgpd: evpn route-map match ead type-1 route-type

2 years agobgpd: Allow setting attributes over route-maps for conditional advertisements
Donatas Abraitis [Tue, 15 Feb 2022 16:08:32 +0000 (18:08 +0200)]
bgpd: Allow setting attributes over route-maps for conditional advertisements

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2 years agoMerge pull request #10604 from mjstapp/fix_staticd_nh_count
Jafar Al-Gharaibeh [Fri, 18 Feb 2022 00:51:51 +0000 (18:51 -0600)]
Merge pull request #10604 from mjstapp/fix_staticd_nh_count

staticd: reject route config with too many nexthops

2 years agoMerge pull request #10591 from donaldsharp/rip_packet_fix
Donatas Abraitis [Thu, 17 Feb 2022 19:58:50 +0000 (21:58 +0200)]
Merge pull request #10591 from donaldsharp/rip_packet_fix

ripd: Fix packet send for non primary addresses