]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
2 years agozebra: Add a configurable knob `zebra nexthop-group keep (1-3600)`
Donald Sharp [Wed, 15 Jun 2022 23:54:29 +0000 (19:54 -0400)]
zebra: Add a configurable knob `zebra nexthop-group keep (1-3600)`

Allow end operator to set how long a nexthop-group is kept around
in the system after it is no-longer being used.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Add a timer to nexthop group deletion
Donald Sharp [Fri, 29 Oct 2021 12:16:13 +0000 (08:16 -0400)]
zebra: Add a timer to nexthop group deletion

Before deleting nexthop groups, that are installed,
from the system, start a timer and hold the nexthop
group for that time.

Suppose you have this scenario

a) create a static route with 1 x ecmp
      creates a nhg with 1 x ecmp
b) create a static route with 2 x ecmp
      creates a nhg with 2 x ecmp
      deletes a's nhg
c) create a static route with 3 x ecmp
      creates a nhg with 3 x ecmp
      deletes b's nhg
d) create a different route with 1 x ecmp
      creates another 1 x ecmp ( since a's ecmp was deleted )
e) create a different route with 2 x ecmp
      creates another 2 x ecmp ( since b's ecmp was deleted )

If you don't delete the nhg, start a timer, the nhg's used
in steps a and b can be reused for steps d and e.  This reduces
overhead work with zebra <-> kernel interactions and improves
the speed of the system.

So modify the code to note that an installed nexthop group should
be kept around a bit and hopefully reused.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Move where zebra marks a nhg as uninstalled in fib
Donald Sharp [Wed, 15 Jun 2022 20:27:07 +0000 (16:27 -0400)]
zebra: Move where zebra marks a nhg as uninstalled in fib

Currently the code is marking the nhg as uninstalled but not
causing that to flood up to the dependent nhgs:

nhg 3 is a group of 1/2
   1 -> interface A
   2 -> interface B

Suppose A goes down, old code would mark nhg 1 as !VALID and !INSTALLED.
Suppose B then goes down, old code would mark nhg 2 as !VALID and !INSTALLED
But would not mark nhg 3 as !VALID and !INSTALLED (sort of assuming that
it would just be cleaned up by NHG refcounts ).  I would prefer that
the code is pedantic about nhg 3 actually being removed from the system.

This code moves the setting of !INSTALLED into zebra_nhg.c where it
really belongs.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Document some data structures better
Donald Sharp [Wed, 15 Jun 2022 21:24:39 +0000 (17:24 -0400)]
zebra: Document some data structures better

I keep getting confused about nhg_depends and nhg_dependents.
So take a second and write them down for the next person.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Use %pSU instead of sockunion2str
Donald Sharp [Thu, 16 Jun 2022 18:45:28 +0000 (14:45 -0400)]
bgpd: Use %pSU instead of sockunion2str

Commit: 09f267ec95de6d introduced more sockunion2str
usages when FRR should be using %pSU.  This commit
broke the compile when using --enable-dev-build

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11353 from fdumontet6WIND/bmp_src_interface
Donatas Abraitis [Thu, 16 Jun 2022 18:30:28 +0000 (21:30 +0300)]
Merge pull request #11353 from fdumontet6WIND/bmp_src_interface

bmp: add a interface source to bmp connect command

2 years agoMerge pull request #11415 from donaldsharp/interface_duplication_linux
Donatas Abraitis [Thu, 16 Jun 2022 18:19:14 +0000 (21:19 +0300)]
Merge pull request #11415 from donaldsharp/interface_duplication_linux

Interface duplication linux

2 years agoMerge pull request #11408 from donaldsharp/common_config
Martin Winter [Thu, 16 Jun 2022 16:45:15 +0000 (18:45 +0200)]
Merge pull request #11408 from donaldsharp/common_config

2 years agoMerge pull request #11409 from donaldsharp/zebra_nhg_debug
Russ White [Thu, 16 Jun 2022 14:13:20 +0000 (10:13 -0400)]
Merge pull request #11409 from donaldsharp/zebra_nhg_debug

Zebra nhg debug

2 years agoMerge pull request #11414 from donaldsharp/memory_cannot_fail
Rafael Zalamena [Thu, 16 Jun 2022 13:58:05 +0000 (10:58 -0300)]
Merge pull request #11414 from donaldsharp/memory_cannot_fail

Memory cannot fail

2 years agobmp: add a interface source to bmp connect command
Francois Dumontet [Tue, 31 May 2022 15:40:39 +0000 (17:40 +0200)]
bmp: add a interface source to bmp connect command

With current release, forcin the source ip address when setting up a BMP
connection is not possible.

The need is to add an extra parameter for the following vty command:

router bgp 65500
bmp targets AAA
bmp connect 2.2.2.2 port 666 min-retry 100 max-retry 700
bmp connect 2:2::2:2 port 666 min-retry 100 max-retry 700 [source-interface lo1]

Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2 years agoMerge pull request #11272 from AbhishekNR/flag_removal
Donald Sharp [Thu, 16 Jun 2022 00:19:34 +0000 (20:19 -0400)]
Merge pull request #11272 from AbhishekNR/flag_removal

pim6d: Removed PIM_IPV == 4 flag

2 years agoMerge pull request #11405 from kuldeepkash/multicast_pim_bsm
Donald Sharp [Thu, 16 Jun 2022 00:17:56 +0000 (20:17 -0400)]
Merge pull request #11405 from kuldeepkash/multicast_pim_bsm

tests: Verify PIM neighbors and static routes for BSM tests

2 years agoMerge pull request #11412 from mobash-rasool/fixes
Donald Sharp [Thu, 16 Jun 2022 00:17:16 +0000 (20:17 -0400)]
Merge pull request #11412 from mobash-rasool/fixes

pimd: Fix the setting of oif_flags in channel oil

2 years agoMerge pull request #11416 from opensourcerouting/ldp_vpls_topo1_fix
Donald Sharp [Wed, 15 Jun 2022 23:19:04 +0000 (19:19 -0400)]
Merge pull request #11416 from opensourcerouting/ldp_vpls_topo1_fix

tests: fix ldp_vpls_topo1 to work as expected

2 years agodoc: document ldpd's "ttl-security" commands
Renato Westphal [Wed, 15 Jun 2022 17:12:35 +0000 (14:12 -0300)]
doc: document ldpd's "ttl-security" commands

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2 years agotests: fix ldp_vpls_topo1 to work as expected
Renato Westphal [Wed, 15 Jun 2022 14:39:48 +0000 (11:39 -0300)]
tests: fix ldp_vpls_topo1 to work as expected

In the last step of this test, r1's link to r2 is shut down but
both routers stay connected through a multi-hop LDP session. That
happens because r1 and r2 have a targeted adjacency created by
the pseudowire.  The test then checks whether the pseudowire is
still up, using an alternate path for nexthop resolution.

Everything's fine except for the fact that LDP GTSM (aka
ttl-security) is enabled by default. This means that messages sent
over a multi-hop session are not delivered. In the case of this
test, it can prevent PW-Status notifications from being delivered,
which in turn can prevent the pseudowire from coming back up.

Fix the test by disabling GTSM so that LDP multi-hop sessions can
work normally. This is in accordance with RFC6720 which mentions
that GTSM should be disabled (statically or dynamically) for
multi-hop sessions.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2 years agoMerge pull request #11355 from patrasar/pim6reg
Donald Sharp [Wed, 15 Jun 2022 15:29:25 +0000 (11:29 -0400)]
Merge pull request #11355 from patrasar/pim6reg

pim6d: creating pim6reg

2 years agozebra: On linux let interface data come in through netlink messaging
Donald Sharp [Wed, 15 Jun 2022 12:27:32 +0000 (08:27 -0400)]
zebra: On linux let interface data come in through netlink messaging

Consolidate on linux to using the netlink api for gathering all data
about a interface.  Leave this interface alone in the meantime for
other OS's.

This also has the side effect of reducing the amount of work
being done on linux in that FRR was handling shut/no shut
events 2 times.  Once for the ioctl question asked and
once for the netlink message received.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Attempt to make ioctl.c have a bit more useful log messges
Donald Sharp [Wed, 15 Jun 2022 11:31:53 +0000 (07:31 -0400)]
zebra: Attempt to make ioctl.c have a bit more useful log messges

While examining the code, it was noticed that there was a chance
to improve the log output in some cases to give a fuller understanding
of what went wrong where.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd, ospfd: Remove extra newline for `show debugging`
Donald Sharp [Wed, 15 Jun 2022 14:32:53 +0000 (10:32 -0400)]
bgpd, ospfd: Remove extra newline for `show debugging`

This extra newline was adding a weird output to `show debugging`
display where there would be extra newlines sometims and not
others.  Make it consistent.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: stream_dup cannot fail
Donald Sharp [Wed, 15 Jun 2022 14:22:29 +0000 (10:22 -0400)]
zebra: stream_dup cannot fail

If stream_dup was unable to actually allocate memory
then FRR would crash instead.  So let's remove the
check for null since it is not needed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agolib: stream_dup memory alloc cannot fail
Donald Sharp [Wed, 15 Jun 2022 14:23:28 +0000 (10:23 -0400)]
lib: stream_dup memory alloc cannot fail

If stream_dup calls stream_new, stream_new can never
return a NULL pointer so the check is unneeded.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopim6d: creating pim6reg interface for pim6d
Sarita Patra [Wed, 8 Jun 2022 07:50:48 +0000 (00:50 -0700)]
pim6d: creating pim6reg interface for pim6d

Signed-off-by: Sarita Patra <saritap@vmware.com>
2 years agoMerge pull request #11404 from donaldsharp/pim_rpf_debug_improvement
mobash-rasool [Wed, 15 Jun 2022 13:10:37 +0000 (18:40 +0530)]
Merge pull request #11404 from donaldsharp/pim_rpf_debug_improvement

pimd: Cleanup rpf lookup debug to help us figure out what is going on

2 years agoMerge pull request #11400 from opensourcerouting/fix/vrf_autocomplete_for_router_bgp
Donald Sharp [Wed, 15 Jun 2022 11:19:39 +0000 (07:19 -0400)]
Merge pull request #11400 from opensourcerouting/fix/vrf_autocomplete_for_router_bgp

vtysh: Add autocomplete for VRFs when using with `router bgp`

2 years agoMerge pull request #11403 from maxiestudies/doc_routeserver
Donald Sharp [Wed, 15 Jun 2022 11:18:11 +0000 (07:18 -0400)]
Merge pull request #11403 from maxiestudies/doc_routeserver

replace the import/export keywords for in/out

2 years agopimd: Fix the setting of oif_flags in channel oil
Mobashshera Rasool [Wed, 15 Jun 2022 07:34:46 +0000 (00:34 -0700)]
pimd: Fix the setting of oif_flags in channel oil

When pim_upstream_inherited_olist_decide calls the api
pim_channel_add_oif, it can pass PIM_OIF_FLAG_PROTO_GM,
PIM_OIF_FLAG_PROTO_PIM and/or PIM_OIF_FLAG_PROTO_STAR.
Now a consider a case where PIM flag was already set
but STAR flag was not set and this api tries to set
both STAR + PIM and passes the same. The api pim_channel_add_oif
returns since it sees that PIM is already set without
setting the STAR flag.

So basically this will lead to issues in scenarios where for the
same OIF multiple flags(IGMP, PIM, STAR) needs to be set.

Fixing it for all combinations.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agoMerge pull request #11407 from opensourcerouting/ldp_topo1_fix
Donald Sharp [Wed, 15 Jun 2022 00:27:01 +0000 (20:27 -0400)]
Merge pull request #11407 from opensourcerouting/ldp_topo1_fix

tests: fix sporadic failures in the ldp_topo1 topotest

2 years agozebra: Convert debugs to use %pNG
Donald Sharp [Tue, 14 Jun 2022 19:02:27 +0000 (15:02 -0400)]
zebra: Convert debugs to use %pNG

The nexthop group debugs were using %u to just display the id.
I found this very hard to figure out what was going on.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Add `%pNG` to zebra print routines
Donald Sharp [Tue, 14 Jun 2022 18:45:01 +0000 (14:45 -0400)]
zebra: Add `%pNG` to zebra print routines

Add `%pNG` so that a nexthop group can be displayed in debugs/logs
such that it can provide useful information.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Verify PIM neighbor and static routes for BSM tests
Kuldeep Kashyap [Tue, 14 Jun 2022 08:03:09 +0000 (01:03 -0700)]
tests: Verify PIM neighbor and static routes for BSM tests

Verifying and making sure PIM neighbors are
up before sending BSM packet using Scapy.

Verifying static routes are installed before
proceeding fruther.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2 years agolib: Abstract usage of '%pNHs' so that nexthop groups can use it too
Donald Sharp [Tue, 14 Jun 2022 18:42:11 +0000 (14:42 -0400)]
lib: Abstract usage of '%pNHs' so that nexthop groups can use it too

Abstract the usage of '%pNHs' so that when nexthop groups get
a new special printfrr that it can take advantage of this
functionality too.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11229 from anlancs/fix/zebra-nb-remove-checknode
Donald Sharp [Tue, 14 Jun 2022 17:58:16 +0000 (13:58 -0400)]
Merge pull request #11229 from anlancs/fix/zebra-nb-remove-checknode

zebra: remove one unnecessary check for l3vni nb

2 years agotests: Fix verify_rib such that it will look at the selected route
Donald Sharp [Tue, 14 Jun 2022 16:21:19 +0000 (12:21 -0400)]
tests: Fix verify_rib such that it will look at the selected route

When you have a static route with multiple different admin
distances there exists a chance that route will have been
installed multiple times due to system load when inserted
at about the same time.  If this is the case then the
verify_rib function can and will select the wrong route
that happens to have a nexthop group that is still installed.

Modify verify_rib to ensure that the route that is going to
be looked at for nexthop correctness is the actual installed
route, not a previous version of it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11243 from patrasar/pimv6_issue_11240
Donald Sharp [Tue, 14 Jun 2022 15:59:42 +0000 (11:59 -0400)]
Merge pull request #11243 from patrasar/pimv6_issue_11240

pim6d: Don't enable mld on pimreg interface by default

2 years agotests: fix sporadic failures in the ldp_topo1 topotest
Renato Westphal [Mon, 13 Jun 2022 18:49:45 +0000 (15:49 -0300)]
tests: fix sporadic failures in the ldp_topo1 topotest

The sporadic failures were happening because, under heavy load,
the r4 router could form an OSPF adjacency with r3 a few seconds
before doing the same with r2. In that interim, LDP could establish
a neighborship with r2 going through r3 (instead of connecting
directly). That would cause all label mappings received from r3
to be ignored since they can't be mapped to the routes' nexthops
received from zebra, causing all sorts of test failures. None of
this is erroneous behavior as LDP simply follows the IGP.

The fix consists of updating the test to ensure all expected OSPF
adjacencies fully converged before proceeding to the LDP checks.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2 years agoMerge pull request #11395 from opensourcerouting/fix/autocompete_for_rmap_bgp
Donald Sharp [Tue, 14 Jun 2022 14:48:36 +0000 (10:48 -0400)]
Merge pull request #11395 from opensourcerouting/fix/autocompete_for_rmap_bgp

*: Use autocomplete for route-maps under commands that require it

2 years agopimd: Cleanup rpf lookup debug to help us figure out what is going on
Donald Sharp [Tue, 14 Jun 2022 13:50:54 +0000 (09:50 -0400)]
pimd: Cleanup rpf lookup debug to help us figure out what is going on

The rpf lookup debug was not taking into account the fact that a prefix-list
might be applied and also we might need to make a choice between the two.
So let's give ourselves a bit more data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agodoc: replace the import/export keywords for in/out
Maximiliano Estudies [Tue, 14 Jun 2022 13:16:43 +0000 (15:16 +0200)]
doc: replace the import/export keywords for in/out

Signed-off-by: Maximiliano Estudies <maxiestudies@gmail.com>
2 years agoMerge pull request #11344 from opensourcerouting/feature/wrap_ipv4_unicast_valid
Russ White [Tue, 14 Jun 2022 11:48:32 +0000 (07:48 -0400)]
Merge pull request #11344 from opensourcerouting/feature/wrap_ipv4_unicast_valid

bgpd: Wrap IPV4_CLASS_DE into ipv4_unicast_valid() helper

2 years agoMerge pull request #11392 from opensourcerouting/fix/ttl_set
Russ White [Tue, 14 Jun 2022 11:43:49 +0000 (07:43 -0400)]
Merge pull request #11392 from opensourcerouting/fix/ttl_set

bgpd: Set TTL for iBGP/eBGP by checking only if Generic TTL security applied

2 years agoMerge pull request #11343 from opensourcerouting/fix/local_preference_plus_minus_rout...
Russ White [Tue, 14 Jun 2022 10:53:08 +0000 (06:53 -0400)]
Merge pull request #11343 from opensourcerouting/fix/local_preference_plus_minus_route_maps

bgpd: Initialize attr->local_pref to the configured default value

2 years agovtysh: Add autocomplete for VRFs when using with `router bgp`
Donatas Abraitis [Tue, 14 Jun 2022 10:41:13 +0000 (13:41 +0300)]
vtysh: Add autocomplete for VRFs when using with `router bgp`

```
donatas-laptop(config)# router bgp 123 vrf ?
  VIEWVRFNAME  View/VRF name
       default mgmt1 servers2
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years ago*: Use autocomplete for route-maps under commands that require it
Donatas Abraitis [Mon, 13 Jun 2022 09:18:36 +0000 (12:18 +0300)]
*: Use autocomplete for route-maps under commands that require it

For example:

```
donatas-laptop# show bgp ipv4 unicast neighbors 127.0.0.2 advertised-routes route-map ?
  RMAP_NAME  Name of the route map
       testas2 testas

donatas-laptop(config)# router bgp
donatas-laptop(config-router)# address-family ipv4
donatas-laptop(config-router-af)# redistribute connected route-map ?
  RMAP_NAME  Pointer to route-map entries
       testas2 testas

donatas-laptop(config-router-af)# network 192.168.0.0/23 route-map ?
  RMAP_NAME  Name of the route map
       testas2 testas
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Wrap IPV4_CLASS_DE into ipv4_unicast_valid() helper
Donatas Abraitis [Mon, 6 Jun 2022 07:47:27 +0000 (10:47 +0300)]
bgpd: Wrap IPV4_CLASS_DE into ipv4_unicast_valid() helper

Linux kernel allows (FreeBSD/OpenBSD too) using reserved class E IP ranges.

This is a preparation commit that ease the global switch to allow/deny
class E IP ranges in FRR.

https://datatracker.ietf.org/doc/html/draft-chen-ati-adaptive-ipv4-address-space

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11333 from opensourcerouting/fix/memory_leak_with_rmaps
Donald Sharp [Mon, 13 Jun 2022 12:27:24 +0000 (08:27 -0400)]
Merge pull request #11333 from opensourcerouting/fix/memory_leak_with_rmaps

bgpd: Fix memory leak when setting [l]community at egress

2 years agoMerge pull request #11294 from mobash-rasool/pim-cli-top
Donald Sharp [Mon, 13 Jun 2022 12:26:09 +0000 (08:26 -0400)]
Merge pull request #11294 from mobash-rasool/pim-cli-top

pim6d: Adding PIM protocol packets stats CLI

2 years agoMerge pull request #11358 from opensourcerouting/fix/implicit_withdraw_for_vrf_leakin...
Donald Sharp [Mon, 13 Jun 2022 11:46:18 +0000 (07:46 -0400)]
Merge pull request #11358 from opensourcerouting/fix/implicit_withdraw_for_vrf_leaking_with_route_maps

bgpd: Fix VRF leaking when import/export RT list changed with route-maps

2 years agodoc: Updated the doc for new CLI addition
Mobashshera Rasool [Thu, 26 May 2022 09:53:37 +0000 (02:53 -0700)]
doc: Updated the doc for new CLI addition

Added doc for "show ipv6 pim interface traffic" cli

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Implement show ipv6 pim interface traffic
Mobashshera Rasool [Thu, 26 May 2022 09:50:32 +0000 (02:50 -0700)]
pim6d: Implement show ipv6 pim interface traffic

This CLI shows the number of PIM protocol packets
sent/received on each interface.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd: Change to DEFPY and make the api common
Mobashshera Rasool [Wed, 1 Jun 2022 15:58:33 +0000 (08:58 -0700)]
pimd: Change to DEFPY and make the api common

For show ip pim interface traffic cli, doing the below changes
1. Changing DEFUN to DEFPY
2. Move the whole code to a common api and modify it so that can
be reused for pimv6.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopim6d: Moving show apis to common file
Mobashshera Rasool [Fri, 27 May 2022 05:11:12 +0000 (22:11 -0700)]
pim6d: Moving show apis to common file

Moving pim_show_interface_traffic and pim_show_interface_traffic_single
to pim_cmd_common.c from pim_cmd.c to make it common to
pimd and pim6d.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agoMerge pull request #11385 from AbhishekNR/show_cli
Donald Sharp [Sun, 12 Jun 2022 12:06:01 +0000 (08:06 -0400)]
Merge pull request #11385 from AbhishekNR/show_cli

pimd, pim6d: Moving reusable code to common api for show CLI's.

2 years agoMerge pull request #11388 from opensourcerouting/feature/github_stale_issues_prs
Donald Sharp [Sun, 12 Jun 2022 12:00:42 +0000 (08:00 -0400)]
Merge pull request #11388 from opensourcerouting/feature/github_stale_issues_prs

github: Mark issues with no activity in 180 days as stale

2 years agoMerge pull request #11387 from SaiGomathiN/pimshow
Donald Sharp [Sun, 12 Jun 2022 12:00:01 +0000 (08:00 -0400)]
Merge pull request #11387 from SaiGomathiN/pimshow

pimd, pim6d: Moving the reusable code to common api for PIM show CLIs

2 years agoMerge pull request #11378 from ton31337/fix/compile_sysrepo
Jafar Al-Gharaibeh [Fri, 10 Jun 2022 21:10:27 +0000 (16:10 -0500)]
Merge pull request #11378 from ton31337/fix/compile_sysrepo

lib: sysrepo compilation issues

2 years agoMerge pull request #11389 from ton31337/fix/some_codeql_fixes
Jafar Al-Gharaibeh [Fri, 10 Jun 2022 21:08:12 +0000 (16:08 -0500)]
Merge pull request #11389 from ton31337/fix/some_codeql_fixes

bgpd: Minor warning fixes

2 years agobgpd: Show TTL value unconditionally for neighbors
Donatas Abraitis [Fri, 10 Jun 2022 13:50:24 +0000 (16:50 +0300)]
bgpd: Show TTL value unconditionally for neighbors

If GTSM configured - show this value, otherwise TTL.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Set TTL for iBGP/eBGP by checking only if Generic TTL security applied
Donatas Abraitis [Fri, 10 Jun 2022 13:32:39 +0000 (16:32 +0300)]
bgpd: Set TTL for iBGP/eBGP by checking only if Generic TTL security applied

We set peer->ttl according if it's iBGP or eBGP, but when setting the TTL,
we technically ignore it.

Relax a bit and set TTL only if no GTSM configured.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agotests: Check if old paths are flushed when import/export RT list was changed
Donatas Abraitis [Fri, 10 Jun 2022 11:49:36 +0000 (14:49 +0300)]
tests: Check if old paths are flushed when import/export RT list was changed

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Drop sockunion_vty_out() wrong definition
Donatas Abraitis [Fri, 10 Jun 2022 09:53:10 +0000 (12:53 +0300)]
bgpd: Drop sockunion_vty_out() wrong definition

Probably leftover.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: last_reset_cause_size can't be larger than 65k bytes
Donatas Abraitis [Fri, 10 Jun 2022 09:35:00 +0000 (12:35 +0300)]
bgpd: last_reset_cause_size can't be larger than 65k bytes

Reduce the scope, to avoid comparing uint16_t vs. size_t in a loop.

```
vty_out(vty,
"  Message received that caused BGP to send a NOTIFICATION:\n    ");
for (i = 1; i <= p->last_reset_cause_size;
     i++) {
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agogithub: Mark issues with no activity in 180 days as stale
Donatas Abraitis [Fri, 10 Jun 2022 07:03:05 +0000 (10:03 +0300)]
github: Mark issues with no activity in 180 days as stale

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopim6d: Moving the reusable code of pim_show_join cli
Sai Gomathi N [Fri, 10 Jun 2022 05:43:52 +0000 (22:43 -0700)]
pim6d: Moving the reusable code of pim_show_join cli

Moving the common lines of pim_show_join_vrf and pim_show_join_vrf_all cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoMerge pull request #11367 from donaldsharp/babel_updates
Donatas Abraitis [Fri, 10 Jun 2022 05:42:01 +0000 (08:42 +0300)]
Merge pull request #11367 from donaldsharp/babel_updates

Babel updates

2 years agoMerge pull request #11328 from opensourcerouting/fix/drop_label_pton_ntop
Russ White [Thu, 9 Jun 2022 18:11:11 +0000 (14:11 -0400)]
Merge pull request #11328 from opensourcerouting/fix/drop_label_pton_ntop

bgpd: Drop label_ntop/label_pton functions

2 years agoMerge pull request #11259 from kuldeepkash/multicast_pim_dr_nondr
Russ White [Thu, 9 Jun 2022 17:42:29 +0000 (13:42 -0400)]
Merge pull request #11259 from kuldeepkash/multicast_pim_dr_nondr

tests: [Topojson] Enhance CLI logging

2 years agoMerge pull request #11372 from donaldsharp/pim_if_cmp_bug
mobash-rasool [Thu, 9 Jun 2022 17:15:49 +0000 (22:45 +0530)]
Merge pull request #11372 from donaldsharp/pim_if_cmp_bug

pimd: Fix pim_channel_oil_empty tests

2 years agoMerge pull request #11377 from donaldsharp/pim_show_interface_traffic
Jafar Al-Gharaibeh [Thu, 9 Jun 2022 17:00:58 +0000 (12:00 -0500)]
Merge pull request #11377 from donaldsharp/pim_show_interface_traffic

pimd: Show interface traffic even if interface is currently `down`

2 years agolib: Require at least 2.1.42 version of sysrepo when compiling
Donatas Abraitis [Thu, 9 Jun 2022 14:38:37 +0000 (17:38 +0300)]
lib: Require at least 2.1.42 version of sysrepo when compiling

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agolib: Update sysrepo code with the latest API changes
Donatas Abraitis [Thu, 9 Jun 2022 14:33:22 +0000 (17:33 +0300)]
lib: Update sysrepo code with the latest API changes

* sr_event_notif_send -> sr_notif_send
* sr_process_events -> sr_subscription_process_events
* sr_oper_get_items_subscribe -> sr_oper_get_subscribe
* Removed SR_SUBSCR_CTX_REUSE flag from the code at all

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopimd: Show interface traffic even if interface is currently `down`
Donald Sharp [Thu, 9 Jun 2022 14:29:04 +0000 (10:29 -0400)]
pimd: Show interface traffic even if interface is currently `down`

the `show ip pim interface [x] traffic` command was deciding
to skip display of interfaces if they happened to be down at
that moment.  This of course does not make a bunch of sense
to limit the output for a interface that may have sent data
in the past.

This fixes this test crash:
rnode = <lib.topogen.TopoRouter object at 0x7fc755be3880>, dut = 'c1', input_dict = {'c1': {'c1-l1-eth2': ['helloTx', 'helloRx']}}, output_dict = {'c1': {}}

    def show_pim_intf_traffic(rnode, dut, input_dict, output_dict):
        show_pim_intf_traffic_json = run_frr_cmd(
            rnode, "show ip pim interface traffic json", isjson=True
        )

        output_dict[dut] = {}
        for intf, data in input_dict[dut].items():
>           interface_json = show_pim_intf_traffic_json[intf]
E           KeyError: 'c1-l1-eth2'

/home/sharpd/frr8/tests/topotests/lib/pim.py:1496: KeyError

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd: Fixup oil_if_has and oil_if_set to be consistent
Donald Sharp [Thu, 9 Jun 2022 11:06:30 +0000 (07:06 -0400)]
pimd: Fixup oil_if_has and oil_if_set to be consistent

the v4 and v6 versions were different.  Make them the same.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Clarify what test_pim_dr_nondr_with_static_routes_topo1.py is doing
Donald Sharp [Wed, 8 Jun 2022 20:56:22 +0000 (16:56 -0400)]
tests: Clarify what test_pim_dr_nondr_with_static_routes_topo1.py is doing

There are a couple steps listing what is being done that are both inprecise
and missleading.  Fix to actually say what is going on.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd: Fix pim_channel_oil_empty tests
Donald Sharp [Wed, 8 Jun 2022 20:51:48 +0000 (16:51 -0400)]
pimd: Fix pim_channel_oil_empty tests

The pim_channel_oil_empty() function was setting
the pimreg if it ever existed for NULL comparison
but of course the pimreg device is never pulled back
out again when it was needed to be when the pimreg
is not present.

Commit: a5fa982256b23d53d5b833f75224fb7f96054b9b
broke this.

Fixes: #11368
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopim6d: Moving reusable code to common api for "show mroute summary" command
Abhishek N R [Thu, 9 Jun 2022 11:53:12 +0000 (04:53 -0700)]
pim6d: Moving reusable code to common api for "show mroute summary" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show ip/ipv6 mroute count" command
Abhishek N R [Thu, 9 Jun 2022 11:43:28 +0000 (04:43 -0700)]
pim6d: Moving reusable code to common api for "show ip/ipv6 mroute count" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show ip/ipv6 mroute" command
Abhishek N R [Thu, 9 Jun 2022 11:27:20 +0000 (04:27 -0700)]
pim6d: Moving reusable code to common api for "show ip/ipv6 mroute" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_nexthop_lookup cli
Sai Gomathi N [Thu, 9 Jun 2022 11:22:42 +0000 (04:22 -0700)]
pim6d: Moving the common lines of pim_show_nexthop_lookup cli

Moving the common lines of pim_show_nexthop_lookup cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show ip/ipv6 multicast count" command
Abhishek N R [Thu, 9 Jun 2022 11:04:14 +0000 (04:04 -0700)]
pim6d: Moving reusable code to common api for "show ip/ipv6 multicast count" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agobabeld: Ignore sub-tlv's with mandatory bit set
Donald Sharp [Wed, 8 Jun 2022 13:01:31 +0000 (09:01 -0400)]
babeld: Ignore sub-tlv's with mandatory bit set

RFC 8966 4.4

   If the mandatory bit is set, then the
   whole enclosing TLV MUST be silently ignored (except for updating the
   parser state by a Router-Id, Next Hop, or Update TLV, as described in
   the next section).

Fixes: #11349
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobabeld: Update to ignore unicast hellos
Donald Sharp [Wed, 8 Jun 2022 12:41:05 +0000 (08:41 -0400)]
babeld: Update to ignore unicast hellos

RFC 8966 requires a bit of work to make FRR forward compabitble with
it for the moment.

tl;dr -> Flags of hellos should be 0 except the main bit and
The Unicast Hello bit if set should cause the packet to be ignored.
Additionally FRR needs to ignore Hello packets with the interval field
set to 0.

Fixes: #11349
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopim6d: Moving reusable code to common api for "show ip/ipv6 multicast" command
Abhishek N R [Thu, 9 Jun 2022 10:51:41 +0000 (03:51 -0700)]
pim6d: Moving reusable code to common api for "show ip/ipv6 multicast" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show pim state" command
Abhishek N R [Thu, 9 Jun 2022 10:29:02 +0000 (03:29 -0700)]
pim6d: Moving reusable code to common api for "show pim state" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_nexthop cli
Sai Gomathi N [Thu, 9 Jun 2022 10:23:28 +0000 (03:23 -0700)]
pim6d: Moving the common lines of pim_show_nexthop cli

Moving the common lines of pim_show_nexthop cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show pim upstream rpf" command
Abhishek N R [Thu, 9 Jun 2022 10:10:21 +0000 (03:10 -0700)]
pim6d: Moving reusable code to common api for "show pim upstream rpf" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show pim upstream join desired" command
Abhishek N R [Thu, 9 Jun 2022 09:57:49 +0000 (02:57 -0700)]
pim6d: Moving reusable code to common api for "show pim upstream join desired" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show pim upstream" command
Abhishek N R [Thu, 9 Jun 2022 09:40:21 +0000 (02:40 -0700)]
pim6d: Moving reusable code to common api for "show pim upstream" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_neighbors_vrf_all cli
Sai Gomathi N [Thu, 9 Jun 2022 09:36:08 +0000 (02:36 -0700)]
pim6d: Moving the common lines of pim_show_neighbors_vrf_all cli

Moving the common lines of pim_show_neighbors_vrf_all cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show pim statistics" command
Abhishek N R [Thu, 9 Jun 2022 08:59:58 +0000 (01:59 -0700)]
pim6d: Moving reusable code to common api for "show pim statistics" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_neighbors cli
Sai Gomathi N [Thu, 9 Jun 2022 08:34:06 +0000 (01:34 -0700)]
pim6d: Moving the common lines of pim_show_neighbors cli

Moving the common lines of pim_show_neighbors cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving reusable code to common api for "show pim secondary" command
Abhishek N R [Thu, 9 Jun 2022 08:33:01 +0000 (01:33 -0700)]
pim6d: Moving reusable code to common api for "show pim secondary" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving resuable code to common api for "show pim rp-info" command
Abhishek N R [Thu, 9 Jun 2022 07:49:38 +0000 (00:49 -0700)]
pim6d: Moving resuable code to common api for "show pim rp-info" command

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agopim6d: Moving the common lines of pim_local_membership cli
Sai Gomathi N [Thu, 9 Jun 2022 07:31:33 +0000 (00:31 -0700)]
pim6d: Moving the common lines of pim_local_membership cli

Moving the common lines of pim_local_membership cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_jp_agg cli
Sai Gomathi N [Thu, 9 Jun 2022 07:15:11 +0000 (00:15 -0700)]
pim6d: Moving the common lines of pim_show_jp_agg cli

Moving the common lines of pim_show_jp_agg cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoMerge pull request #11370 from donaldsharp/lib_zebra_cleanup
Donatas Abraitis [Thu, 9 Jun 2022 07:17:24 +0000 (10:17 +0300)]
Merge pull request #11370 from donaldsharp/lib_zebra_cleanup

Lib zebra cleanup

2 years agopim6d: Moving the common lines of pim_show_interface_vrf_all cli
Sai Gomathi N [Thu, 9 Jun 2022 06:56:17 +0000 (23:56 -0700)]
pim6d: Moving the common lines of pim_show_interface_vrf_all cli

Moving the common lines of pim_show_interface_vrf_all cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_interface cli
Sai Gomathi N [Thu, 9 Jun 2022 06:10:22 +0000 (23:10 -0700)]
pim6d: Moving the common lines of pim_show_interface cli

Moving the common lines of pim_show_interface cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Moving the common lines of pim_show_channel cli
Sai Gomathi N [Thu, 2 Jun 2022 04:54:44 +0000 (21:54 -0700)]
pim6d: Moving the common lines of pim_show_channel cli

Moving the common lines of pim_show_channel cli
in pim_cmd.c and pim6_cmd.c to pim_cmd_common.c file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>