]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
2 years agotests: [Topojson] Enhance CLI logging
Kuldeep Kashyap [Mon, 23 May 2022 23:52:16 +0000 (16:52 -0700)]
tests: [Topojson] Enhance CLI logging

As of now we are logging only JSON output of CLIs
in topotests(topojson) executions and same o/p is
getting printed twice, which is of no use.

Enhanced code to show both plain and JSON output
of CLIs and remove duplicate logging.

It will help in reducing execution logs and in
verification, if sometimes there is mis-match
in CLI plain and JSON outputs.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2 years agoMerge pull request #11256 from opensourcerouting/feature/bgp_rpki_json
Donald Sharp [Tue, 24 May 2022 11:51:24 +0000 (07:51 -0400)]
Merge pull request #11256 from opensourcerouting/feature/bgp_rpki_json

bgpd: Add JSON output for `show rpki cache-connection`

2 years agoMerge pull request #11261 from opensourcerouting/fix/double_notify_atomic
Donald Sharp [Tue, 24 May 2022 11:50:26 +0000 (07:50 -0400)]
Merge pull request #11261 from opensourcerouting/fix/double_notify_atomic

bgpd: Don't increment twice notification sent stats counter

2 years agobgpd: Don't increment twice notification sent stats counter
Donatas Abraitis [Tue, 24 May 2022 07:04:50 +0000 (10:04 +0300)]
bgpd: Don't increment twice notification sent stats counter

Before:

```
$ vtysh -c 'clear ip bgp 192.168.10.17'
$ vtysh -c 'show bgp neighbor 192.168.10.17 json' | jq '."192.168.10.17".messageStats.notificationsSent'
2
```

After:

```
$ vtysh -c 'clear ip bgp 192.168.10.17'
$ vtysh -c 'show bgp neighbor 192.168.10.17 json' | jq '."192.168.10.17".messageStats.notificationsSent'
1
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Add JSON output for `show rpki cache-connection`
Donatas Abraitis [Mon, 23 May 2022 16:40:45 +0000 (19:40 +0300)]
bgpd: Add JSON output for `show rpki cache-connection`

```
spine1-debian-11# sh rpki cache-connection
Connected to group 1
rpki tcp cache 192.168.10.17 8283 pref 1 (connected)
rpki tcp cache 192.168.10.17 8282 pref 2
spine1-debian-11# sh rpki cache-connection json
{
  "connectedGroup":1,
  "connections":[
    {
      "mode":"tcp",
      "host":"192.168.10.17",
      "port":"8283",
      "preference":1,
      "state":"connected"
    },
    {
      "mode":"tcp",
      "host":"192.168.10.17",
      "port":"8282",
      "preference":2,
      "state":"disconnected"
    }
  ]
}
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11150 from opensourcerouting/fix/use_librtr_higher_0.8.0
Jafar Al-Gharaibeh [Mon, 23 May 2022 15:11:10 +0000 (11:11 -0400)]
Merge pull request #11150 from opensourcerouting/fix/use_librtr_higher_0.8.0

packaging: Require librtr >= 0.8.0

2 years agoMerge pull request #10836 from anlancs/bgpd-mh-delay-esi
Donatas Abraitis [Mon, 23 May 2022 05:49:08 +0000 (07:49 +0200)]
Merge pull request #10836 from anlancs/bgpd-mh-delay-esi

zebra: delay setting esi in zebra_evpn_local_es_update()

2 years agoMerge pull request #11217 from opensourcerouting/fix/doc_overview
Donald Sharp [Sun, 22 May 2022 19:03:05 +0000 (15:03 -0400)]
Merge pull request #11217 from opensourcerouting/fix/doc_overview

doc: Fix FRR/Slack keyword links in overview section

2 years agoMerge pull request #11238 from opensourcerouting/rtadv-cleanup
Donald Sharp [Sun, 22 May 2022 19:02:27 +0000 (15:02 -0400)]
Merge pull request #11238 from opensourcerouting/rtadv-cleanup

zebra: clean up rtadv integration

2 years agozebra: clean up rtadv integration
David Lamparter [Sun, 18 Apr 2021 10:11:14 +0000 (12:11 +0200)]
zebra: clean up rtadv integration

Move a few things into places they actually belong, and reduce the
number of places we have `#ifdev HAVE_RTADV`.  Just overall code
prettification.

... I had actually done this quite a while ago while doing some other
random hacking and thought it more useful to not be sitting on it on my
disk...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #11227 from donaldsharp/verify_not_queued
Jafar Al-Gharaibeh [Fri, 20 May 2022 20:03:23 +0000 (16:03 -0400)]
Merge pull request #11227 from donaldsharp/verify_not_queued

tests: Ensure routes are not queued when calling verify_rib

2 years agoMerge pull request #11223 from donaldsharp/ospf_shenanigans
David Lamparter [Fri, 20 May 2022 16:32:07 +0000 (18:32 +0200)]
Merge pull request #11223 from donaldsharp/ospf_shenanigans

2 years agoMerge pull request #11232 from opensourcerouting/bgp-sendhold-derp
Donald Sharp [Fri, 20 May 2022 15:10:04 +0000 (11:10 -0400)]
Merge pull request #11232 from opensourcerouting/bgp-sendhold-derp

bgpd: fix oopsie with SendHoldTime==0

2 years agotests: Allow a bit longer for bfd topo tests to synchronize
Donald Sharp [Thu, 19 May 2022 23:28:43 +0000 (19:28 -0400)]
tests: Allow a bit longer for bfd topo tests to synchronize

Allowing only 4 seconds for a bfd test to synchronize is going
to run into problems on extremely loaded systems.  The test
system should value it actually converged over it actually
converged in a reasonable time, especially on test systems
that are loaded because of many multiples of tests running
at the same time.  If it is important to actually test
that something got done by the RFC, the CI system as it
is currently written is not the correct place for this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Make verify_rib wait up to 40 seconds.
Donald Sharp [Thu, 19 May 2022 23:08:39 +0000 (19:08 -0400)]
tests: Make verify_rib wait up to 40 seconds.

Under heavy load I am seeing verify_rib failing after 12 seconds
but succeeding after 17:

2022-05-19 18:52:54,374 DEBUG: topolog: Exiting lib API: verify_rib
2022-05-19 18:52:54,374 DEBUG: topolog: Function returned True
2022-05-19 18:52:54,374 WARNING: topolog: RETRY DIAGNOSTIC: SUCCEED after FAILED with requested timeout of 12.0s; however, succeeded in 14.7s, investigate timeout timing

There is no reason to not have the test wait a bit longer for very very
heavily loaded systems.  Change the time to 40 seconds.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Ensure routes are not queued when calling verify_rib
Donald Sharp [Thu, 19 May 2022 19:54:59 +0000 (15:54 -0400)]
tests: Ensure routes are not queued when calling verify_rib

Lots of tests call verify_rib that takes a list of routes that
need to be verified in some fashion.  This verify_rib functionality
will try up to 12 seconds before failing the check that zebra
has the route and has installed it.

Unfortunately the verify_rib code was not looking to see if
the route was queued for installation and was then allowing
tests to immediately do subsuquent steps that depended on
that route actually being installed sometimes causing tests
to fail.

Write a bit of additional code that looks at the queued
status and allows the test to wait a bit longer for zebra
to finish processing before allowing the test to move on
to the next bit.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agolib: Make thread_is_scheduled a static inline
Donald Sharp [Fri, 20 May 2022 13:53:44 +0000 (09:53 -0400)]
lib: Make thread_is_scheduled a static inline

For performance, yo.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospf6d: Clean up thread interface
Donald Sharp [Tue, 17 May 2022 20:29:29 +0000 (16:29 -0400)]
ospf6d: Clean up thread interface

a) Remove setting of thread pointer to NULL after
thread invocation, this is already done.

b) Use thread_is_scheduled()

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospf6d: Remove double check of default prefix
Donald Sharp [Tue, 17 May 2022 20:08:01 +0000 (16:08 -0400)]
ospf6d: Remove double check of default prefix

The ospf6_is_valid_summary_addr function is checking
to see if a prefix is the default and also then double
comparing it against the v6 prefix part.  No need to do this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11008 from patrasar/sec_addr_list_pimv6
David Lamparter [Fri, 20 May 2022 13:25:52 +0000 (15:25 +0200)]
Merge pull request #11008 from patrasar/sec_addr_list_pimv6

2 years agoMerge pull request #10903 from SaiGomathiN/pimv6debug
David Lamparter [Fri, 20 May 2022 13:23:31 +0000 (15:23 +0200)]
Merge pull request #10903 from SaiGomathiN/pimv6debug

2 years agobgpd: fix oopsie with SendHoldTime==0
David Lamparter [Fri, 20 May 2022 12:16:24 +0000 (14:16 +0200)]
bgpd: fix oopsie with SendHoldTime==0

... *duh*

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #11225 from opensourcerouting/bgp-sendhold
Donald Sharp [Thu, 19 May 2022 18:51:29 +0000 (14:51 -0400)]
Merge pull request #11225 from opensourcerouting/bgp-sendhold

bgpd: implement SendHoldTimer

2 years agoMerge pull request #11216 from chiragshah6/fdev2
Sri Mohana Singamsetty [Thu, 19 May 2022 17:28:25 +0000 (10:28 -0700)]
Merge pull request #11216 from chiragshah6/fdev2

zebra: netlink registry of rtm tunnel notification

2 years agoMerge pull request #11222 from donaldsharp/bgp_zebra_stuff
Sri Mohana Singamsetty [Thu, 19 May 2022 16:41:41 +0000 (09:41 -0700)]
Merge pull request #11222 from donaldsharp/bgp_zebra_stuff

Bgp zebra stuff

2 years agoMerge pull request #11204 from anlancs/fix/bgpd-check-vnihash
Sri Mohana Singamsetty [Thu, 19 May 2022 16:38:10 +0000 (09:38 -0700)]
Merge pull request #11204 from anlancs/fix/bgpd-check-vnihash

bgpd: remove unnecessary check for evpn

2 years agoMerge pull request #11210 from anlancs/fix/zebra-leak-vtp
Sri Mohana Singamsetty [Thu, 19 May 2022 16:35:27 +0000 (09:35 -0700)]
Merge pull request #11210 from anlancs/fix/zebra-leak-vtp

zebra: fix missing delete vtep during vni transition

2 years agobgpd: implement SendHoldTimer
David Lamparter [Thu, 22 Apr 2021 09:04:52 +0000 (11:04 +0200)]
bgpd: implement SendHoldTimer

As described by
https://www.ietf.org/archive/id/draft-spaghetti-idr-bgp-sendholdtimer-04.html

Since this replicates the HoldTime check on the receiver that is already
part of the protocol, I do not believe it necessary to wait for IETF
progress on this draft.  It's just replicating an existing element of
the protocol at the other side of the session.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agodoc: Fix FRR/Slack keyword links in overview section
Donatas Abraitis [Wed, 18 May 2022 09:56:48 +0000 (12:56 +0300)]
doc: Fix FRR/Slack keyword links in overview section

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11183 from opensourcerouting/feature/handle_bgp_gr_notification
Russ White [Wed, 18 May 2022 19:17:59 +0000 (15:17 -0400)]
Merge pull request #11183 from opensourcerouting/feature/handle_bgp_gr_notification

bgpd: Activate Graceful-Restart when receiving CEASE/HOLDTIME notifications

2 years agoMerge pull request #11214 from kuldeepkash/multicast_pim_dr_nondr
Russ White [Wed, 18 May 2022 19:11:15 +0000 (15:11 -0400)]
Merge pull request #11214 from kuldeepkash/multicast_pim_dr_nondr

tests: Fix for test_pim_dr_nondr_with_ospf_topo2 test failure

2 years agoMerge pull request #11218 from opensourcerouting/fix/adv_routes_best_path_wrong_local_as
Russ White [Wed, 18 May 2022 19:10:18 +0000 (15:10 -0400)]
Merge pull request #11218 from opensourcerouting/fix/adv_routes_best_path_wrong_local_as

bgpd: Show a correct local AS for the advertised/bestpath routes

2 years agoMerge pull request #11219 from pguibert6WIND/doc_show_isis
Russ White [Wed, 18 May 2022 19:09:25 +0000 (15:09 -0400)]
Merge pull request #11219 from pguibert6WIND/doc_show_isis

doc: use real wording for the show isis segment-routing node command

2 years agozebra: Fix newline in log message
Donald Sharp [Wed, 18 May 2022 18:41:40 +0000 (14:41 -0400)]
zebra: Fix newline in log message

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Allow nht to work when connection succeeds
Donald Sharp [Wed, 18 May 2022 18:29:16 +0000 (14:29 -0400)]
bgpd: Allow nht to work when connection succeeds

Originally commit: 8761cd6ddb5437767625f58c8e9cc3ccda7887ab
implemented the ability for LL nexthop tracking to be
interface based.  During some more testing the code
to make the interface event happen was noticed to
not properly run in some cases.  This was because
it was originally assumed that the connect could
not succeed.  Testing has shown that the connect
can succeed and FRR needs to handle the nht tracking
in this case too.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11205 from chiragshah6/fdev1
Russ White [Wed, 18 May 2022 15:13:22 +0000 (11:13 -0400)]
Merge pull request #11205 from chiragshah6/fdev1

zebra: new netlink parse utility for rta used to send nhg msg

2 years agozebra: add netlink tunnel msg to dump routine
Chirag Shah [Tue, 17 May 2022 05:52:54 +0000 (22:52 -0700)]
zebra: add netlink tunnel msg to dump routine

This patch parses vxlan vnifilter rtm tunnel
message which contains vni mapping to vxlan device.
The new notifications are RTM_NEWTUNNEL,
RTM_DELTUNNEL, and RTM_GETTUNNEL.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
linux.git/commit/?h=v5.18-rc7&id=7b8135f4df98b155b23754b6065c157861e268f1

Testing Done:

2022/05/18 00:34:25 ZEBRA: netlink_recv_msg: << netlink message dump
[recv]
2022/05/18 00:34:25 ZEBRA: nlmsghdr [len=36 type=(120) NEWTUNNEL
flags=(0x0000) {} seq=0 pid=0]
2022/05/18 00:34:25 ZEBRA:   tnlm [family=(7) AF_BRIDGE ifindex=46
2022/05/18 00:34:25 ZEBRA:   vni_start 4001, vni_end 0

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2 years agozebra: netlink registry rtm tunnel notif
Chirag Shah [Sun, 13 Feb 2022 01:02:03 +0000 (17:02 -0800)]
zebra: netlink registry rtm tunnel notif

The kernel supports l3vxlan device to have (l3vni)
vni filter similar to vlan filtering on bridge device.

To receive netlink notification, FRR to register
for new netlink RTNLGRP_TUNNEL message.
This message required to register via additional
socket option as it's beyond bitmap size.

kernel patches:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
linux.git/commit/?h=v5.18-rc7&id=7b8135f4df98b155b23754b6065c157861e268f1

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
linux.git/commit/?h=v5.18-rc7&id=f9c4bb0b245cee35ef66f75bf409c9573d934cf9

Ticket:#3073812
Testing Done:

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2 years agodoc: use real wording for the show isis segment-routing node command
Philippe Guibert [Wed, 18 May 2022 13:08:18 +0000 (15:08 +0200)]
doc: use real wording for the show isis segment-routing node command

The node keyword does not take 's' at the end.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 years agobgpd: Show a correct local AS for the advertised/bestpath routes
Donatas Abraitis [Wed, 18 May 2022 10:34:02 +0000 (13:34 +0300)]
bgpd: Show a correct local AS for the advertised/bestpath routes

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agodoc: Updated the document for pimv6 debug commands
Sai Gomathi N [Thu, 21 Apr 2022 04:56:58 +0000 (21:56 -0700)]
doc: Updated the document for pimv6 debug commands

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding 'debug node' initialization
Sai Gomathi N [Wed, 30 Mar 2022 14:03:37 +0000 (07:03 -0700)]
pim6d: Adding 'debug node' initialization

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug pimv6 zebra'
Sai Gomathi N [Mon, 28 Mar 2022 06:44:08 +0000 (23:44 -0700)]
pim6d: Add 'debug pimv6 zebra'

Implementing debug pimv6 zebra command for debugging about
the events from zebra that come up through the ZAPI.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug pimv6 trace' and 'debug pimv6 trace detail'
Sai Gomathi N [Mon, 28 Mar 2022 06:28:06 +0000 (23:28 -0700)]
pim6d: Add 'debug pimv6 trace' and 'debug pimv6 trace detail'

Implementing debugs pimv6 trace and trace detail for tracing pim code
and how it is running.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug_pimv6_packetdump_send_cmd' and 'debug_pimv6_packetdump_recv_cmd'
Sai Gomathi N [Mon, 28 Mar 2022 05:36:18 +0000 (22:36 -0700)]
pim6d: Add 'debug_pimv6_packetdump_send_cmd' and 'debug_pimv6_packetdump_recv_cmd'

Implementing debug pimv6 packetdump send and recv coomands for debugging
of pimv6 packet sent and received which are dumped.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug pimv6 packets'
Sai Gomathi N [Mon, 28 Mar 2022 05:15:36 +0000 (22:15 -0700)]
pim6d: Add 'debug pimv6 packets'

Implementing pimv6 packets debug to information about packet generation for sending
and about packet handling from a received packet.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug pimv6 events'
Sai Gomathi N [Thu, 24 Mar 2022 09:09:54 +0000 (02:09 -0700)]
pim6d: Add 'debug pimv6 events'

Implementing debug pimv6 events command for debugging PIMv6 system events.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug pimv6 nht' and 'debug pimv6 nht detial'
Sai Gomathi N [Thu, 24 Mar 2022 08:53:59 +0000 (01:53 -0700)]
pim6d: Add 'debug pimv6 nht' and 'debug pimv6 nht detial'

Implementing debug pimv6 nht command for PIMv6 nexthop tracking.
It will display information about RPF lookups and information about when a nexthop changes.

debug pimv6 nht detial for for PIMv6 nexthop in detail.This is not enabled by default.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'debug pimv6'
Sai Gomathi N [Thu, 24 Mar 2022 08:41:15 +0000 (01:41 -0700)]
pim6d: Add 'debug pimv6'

Implementing debug pimv6 command for PIMv6 protocol activity.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoMerge pull request #11203 from donaldsharp/coverity_bgp_memcpy
Donatas Abraitis [Tue, 17 May 2022 16:42:51 +0000 (18:42 +0200)]
Merge pull request #11203 from donaldsharp/coverity_bgp_memcpy

bgpd: Fix coverity SA issue with copying over prefix data

2 years agobgpd: Fix coverity SA issue with copying over prefix data
Donald Sharp [Sat, 14 May 2022 20:26:27 +0000 (16:26 -0400)]
bgpd: Fix coverity SA issue with copying over prefix data

in bgp_nlri_parse_ip there is a `sanity` check to ensure
that the prefix length as specified by the packet
will fit inside of a `struct prefix` correctly.  The problem
here of course is that this is only v4 / v6 unicast/multicast
parsing and the bytes will never be more than 16, but we are copying
into a part of the struct prefix that is only 16 bytes, but with
this check the length may be up to 47 bytes( but not really possible ).

Limit the size check to at most 16 bytes (since we are only handling
v4 or v6 addresses here )

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11037 from SaiGomathiN/clearcli
David Lamparter [Tue, 17 May 2022 13:00:32 +0000 (15:00 +0200)]
Merge pull request #11037 from SaiGomathiN/clearcli

2 years agoMerge pull request #11192 from cyberstorm-mauritius/zebra_netlink
Mark Stapp [Tue, 17 May 2022 12:13:23 +0000 (08:13 -0400)]
Merge pull request #11192 from cyberstorm-mauritius/zebra_netlink

zebra: Add startup message and display netlink buffer size.

2 years agoMerge pull request #11211 from donaldsharp/ospf6_time_left_in_hello
David Lamparter [Tue, 17 May 2022 11:21:38 +0000 (13:21 +0200)]
Merge pull request #11211 from donaldsharp/ospf6_time_left_in_hello

2 years agoMerge pull request #10775 from opensourcerouting/pim6-mld-pr
Donald Sharp [Tue, 17 May 2022 11:20:08 +0000 (07:20 -0400)]
Merge pull request #10775 from opensourcerouting/pim6-mld-pr

pim6d: MLD code

2 years agodoc: Updated the document for pimv6 clear commands
Sai Gomathi N [Wed, 20 Apr 2022 05:12:43 +0000 (22:12 -0700)]
doc: Updated the document for pimv6 clear commands

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'clear ipv6 mroute [vrf NAME] count' CLI
Sai Gomathi N [Wed, 13 Apr 2022 15:31:45 +0000 (08:31 -0700)]
pim6d: Add 'clear ipv6 mroute [vrf NAME] count' CLI

Adding clear ipv6 mroute count command for resetting
multicast routes and count.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'clear ipv6 pim [vrf NAME] oil' command
Sai Gomathi N [Wed, 13 Apr 2022 14:41:46 +0000 (07:41 -0700)]
pim6d: Add 'clear ipv6 pim [vrf NAME] oil' command

Adding clear ipv6 pim [vrf NAME] oil CLI for resetting
PIMv6 output interface list.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'clear ipv6 mroute [vrf NAME]' command
Sai Gomathi N [Wed, 13 Apr 2022 13:14:02 +0000 (06:14 -0700)]
pim6d: Add 'clear ipv6 mroute [vrf NAME]' command

Adding clear ipv6 mroute cli for resetting the PIMv6 mroutes.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding 'clear ipv6 pim statistics [vrf NAME]' cmd
Sai Gomathi N [Wed, 13 Apr 2022 11:16:59 +0000 (04:16 -0700)]
pim6d: Adding 'clear ipv6 pim statistics [vrf NAME]' cmd

Adding clear ipv6 pim statistics cli for resetting pimv6 statistics

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding pim_cmd_lookup api in pim_cmd_common file
Sai Gomathi N [Wed, 27 Apr 2022 15:07:53 +0000 (08:07 -0700)]
pim6d: Adding pim_cmd_lookup api in pim_cmd_common file

Adding pim_cmd_lookup function for clear CLIs

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopimd: Moving the common functions from pim_cmd.c file
Sai Gomathi N [Tue, 12 Apr 2022 11:36:35 +0000 (04:36 -0700)]
pimd: Moving the common functions from pim_cmd.c file

Moving the functions that are used by both IPV4 and IPV6 to a
common file pim_cmd_common.c file.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoospf6d: Ensure the ospf6 interface hello timer pops in all cases
Donald Sharp [Mon, 16 May 2022 19:20:12 +0000 (15:20 -0400)]
ospf6d: Ensure the ospf6 interface hello timer pops in all cases

If a end users does something like this:

int enp39s0
  ipv6 ospf6 hello-interval 65535

And then the timer pops and we send the hello and immediately
if the end user does this:

  ipv6 ospf6 hello-interval 5

The timer is not being reset and FRR waits the full 65k seconds
before sending the hello again, which then immediately sets
the next hello to go out in 5 seconds.

When FRR receives the new timer value, look at how much time
is left on the timer in seconds.  If this value is greater
than the new hello timer, stop the timer and set it too that
value.

This should fix a CI system test failure found, where the
system is testing setting timer from things like 12 seconds
to 65k seconds then back down to 12 and that the ospf6 neighbor
relationship stays up.

The code was also changed from thread_add_event to thread_add_timer
in all cases.  I am not sure what would happen if a show command
comes in for a thread timer remaining with an event instead of a timer
just make it consistent.

This was chased down because the support bundle showed this:
r0# show ipv6 ospf6 vrf all interface
r0-r1-eth0 is up, type BROADCAST
  Interface ID: 6
  Internet Address:
    inet6: fe80::a4ea:d3ff:fe35:cef1/64
    inet6: fd00::1/64
  Instance ID 0, Interface MTU 1500 (autodetect: 1500)
  MTU mismatch detection: enabled
  Area ID 0.0.0.0, Cost 10
  State DR, Transmit Delay 1 sec, Priority 1
  Timer intervals configured:
   Hello 12(65480.960), Dead 48, Retransmit 5

And looking at the test code is doing stuff like this:
2022/05/16 17:08:15 OSPF6: [M7Q4P-46WDR] vty[5]@(config)# interface r1-r0-eth0

2022/05/16 17:08:15 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# ipv6 ospf6 hello-interval 65535

2022/05/16 17:08:15 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# no ipv6 ospf6 hello-interval
2022/05/16 17:08:16 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# ipv6 ospf6 hello-interval 1
2022/05/16 17:08:16 OSPF6: [M7Q4P-46WDR] vty[5]@(config-if)# ipv6 ospf6 hello-interval 12

If the old timer value pops, the hello interval is set to 65k and never reset again.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11152 from donaldsharp/dscp
Donatas Abraitis [Mon, 16 May 2022 19:53:41 +0000 (22:53 +0300)]
Merge pull request #11152 from donaldsharp/dscp

bgpd: Allow bgp to control the DSCP session TOS value

2 years agozebra: new netlink parse utility for rta
Chirag Shah [Fri, 13 May 2022 05:29:37 +0000 (22:29 -0700)]
zebra: new netlink parse utility for rta

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2 years agozebra: add protocol name to nexthop dump
Chirag Shah [Sun, 15 May 2022 05:13:57 +0000 (22:13 -0700)]
zebra: add protocol name to nexthop dump

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2 years agoospf6d: Give time left in hello timer for `show ipv6 ospf6 int`
Donald Sharp [Mon, 16 May 2022 15:06:29 +0000 (11:06 -0400)]
ospf6d: Give time left in hello timer for `show ipv6 ospf6 int`

When running `show ipv6 ospf6 interface` the hello timer period
is shown, but there is no indication on how much time is left
on the timer.  Add a clue:

sharpd@eva ~/frr5 (master)> vtysh -c "show ipv6 ospf6 int"
enp39s0 is up, type BROADCAST
  Interface ID: 2
  Internet Address:
    inet : 192.168.119.224/24
    inet6: 2603:6080:602:509e:9a14:998:b154:9e9/64
  Instance ID 0, Interface MTU 1500 (autodetect: 1500)
  MTU mismatch detection: enabled
  Area ID 0.0.0.0, Cost 1000
  State DR, Transmit Delay 1 sec, Priority 1
  Timer intervals configured:
   Hello 10(2.652), Dead 40, Retransmit 5
  DR: 192.168.122.1 BDR: 0.0.0.0
  Number of I/F scoped LSAs is 1
    0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
    0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
  Authentication Trailer is disabled

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: delay setting esi in zebra_evpn_local_es_update()
anlan_cs [Wed, 23 Feb 2022 04:10:42 +0000 (23:10 -0500)]
zebra: delay setting esi in zebra_evpn_local_es_update()

Currently, `zif->es_info.esi` is always set even for a few unnecessary
cases in `zebra_evpn_local_es_update()`.

Delay setting `zif->es_info.esi` and remove the annoying rollback
(i.e. unset `zif->es_info.esi`) operation on failure case.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agozebra: fix missing delete vtep during vni transition
anlan_cs [Mon, 16 May 2022 13:18:26 +0000 (09:18 -0400)]
zebra: fix missing delete vtep during vni transition

All `vtep`s in dplane should be deleted/uninstalled during vni transition.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11207 from anlancs/fix/zebra-remove-check-l3vni
Donald Sharp [Mon, 16 May 2022 12:02:58 +0000 (08:02 -0400)]
Merge pull request #11207 from anlancs/fix/zebra-remove-check-l3vni

zebra: remove unncecessary check for l3vni

2 years agoMerge pull request #11199 from donaldsharp/nexthop_dump
Rafael Zalamena [Mon, 16 May 2022 11:09:54 +0000 (08:09 -0300)]
Merge pull request #11199 from donaldsharp/nexthop_dump

zebra: Add encap and group type decoding to nexthop dump

2 years agotests: Fix for test_pim_dr_nondr_with_ospf_topo2 test failure
Kuldeep Kashyap [Mon, 16 May 2022 10:28:02 +0000 (03:28 -0700)]
tests: Fix for test_pim_dr_nondr_with_ospf_topo2 test failure

This test is failing intermittently because sometimes igmp
local join is not getting deleted. I did split the joins means
trying to delete igmp local joins one by one. I tried running
tests multiple times and it seems to be working fine with
current changes.

There was an issue found during debugging this test failure,
which was raised already:
Issue# https://github.com/FRRouting/frr/issues/11105

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2 years agozebra: remove unncecessary check for l3vni
anlan_cs [Thu, 12 May 2022 01:29:10 +0000 (21:29 -0400)]
zebra: remove unncecessary check for l3vni

Since `l3vni` created by `zl3vni_add()` is always valid, remove the check
for it.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11201 from donaldsharp/unused_in_netlink_compiles
Donatas Abraitis [Mon, 16 May 2022 06:57:30 +0000 (09:57 +0300)]
Merge pull request #11201 from donaldsharp/unused_in_netlink_compiles

Remove some unused functions in zebra

2 years agobgpd: remove unnecessary check for evpn
anlan_cs [Thu, 12 May 2022 01:25:16 +0000 (21:25 -0400)]
bgpd: remove unnecessary check for evpn

Since `bgp->vnihash` is naturally non-NULL, remove check for this field.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agodoc: Add RFC8538 to our supported RFC list
Donatas Abraitis [Sat, 14 May 2022 18:46:01 +0000 (21:46 +0300)]
doc: Add RFC8538 to our supported RFC list

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Activate Graceful-Restart when receiving CEASE/HOLDTIME notifications
Donatas Abraitis [Wed, 11 May 2022 16:42:53 +0000 (19:42 +0300)]
bgpd: Activate Graceful-Restart when receiving CEASE/HOLDTIME notifications

If we receive CEASE Notification or HOLDTIME notification, retain STALE
routes if it's not a CEASE/Hard Reset.

When doing `clear ip bgp PEER`, we can control if this would be CEASE/Hard Reset
or not by using `bgp hard-administrative-reset` knob.

When `bgp graceful-restart notification` is disabled, STALE routes won't be
retained when receiving Notification message.

Co-authored-by: Biswajit Sadhu <biswajit.sadhu@gmail.com>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11180 from fdumontet6WIND/flag_pre_post
Donatas Abraitis [Sat, 14 May 2022 18:16:19 +0000 (21:16 +0300)]
Merge pull request #11180 from fdumontet6WIND/flag_pre_post

BMP fix invalid bmp POST POLICY flag

2 years agoMerge pull request #11135 from donaldsharp/bgp_rpki_no_forms
Donatas Abraitis [Sat, 14 May 2022 18:15:54 +0000 (21:15 +0300)]
Merge pull request #11135 from donaldsharp/bgp_rpki_no_forms

bgpd: Fix no form of rpki commands to take values

2 years agoMerge pull request #11149 from donaldsharp/update_group_debugging
Donatas Abraitis [Sat, 14 May 2022 18:15:03 +0000 (21:15 +0300)]
Merge pull request #11149 from donaldsharp/update_group_debugging

Update group debugging

2 years agoMerge pull request #11202 from anlancs/fix/check_zebra_vrf_get_evpn
Donald Sharp [Sat, 14 May 2022 13:53:42 +0000 (09:53 -0400)]
Merge pull request #11202 from anlancs/fix/check_zebra_vrf_get_evpn

zebra: remove unnecessary check for "zevpn_vrf"

2 years agozebra: remove unnecessary check for "zevpn_vrf"
anlan_cs [Sat, 14 May 2022 01:02:11 +0000 (21:02 -0400)]
zebra: remove unnecessary check for "zevpn_vrf"

The global vrf in zebra is always non-NULL. In general, it is bound to
default vrf by `zebra_vrf_init()`, at other times bound to some specific
vrf. Anyway, non-NULL.

So remove all redundant checkings for the returned value of
`zebra_vrf_get_evpn()`.

Additionally, remove the unnecessary check for `zvrf` in
`zebra_vxlan_cleanup_tables()`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agozebra: Remove unused function `route_entry_copy_nexthops`
Donald Sharp [Fri, 13 May 2022 20:11:09 +0000 (16:11 -0400)]
zebra: Remove unused function `route_entry_copy_nexthops`

This function is no longer used.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Remove unused functions in netlink compiles
Donald Sharp [Fri, 13 May 2022 19:58:33 +0000 (15:58 -0400)]
zebra: Remove unused functions in netlink compiles

When compiling with netlink,  Remove the usage of these
functions.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Allow bgp to control the DSCP session TOS value
Pavel Shirshov [Thu, 5 May 2022 18:16:27 +0000 (14:16 -0400)]
bgpd: Allow bgp to control the DSCP session TOS value

Allow BGP to control the TOS DSCP value in the tcp header
via a new command at the bgp global level `bgp session-dscp <0-63>`

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Pavel Shirhov <pavelsh@microsoft.com>
2 years agoMerge pull request #11198 from opensourcerouting/fix/show_ip_bgp_l2vpn_evpn_rd_neighb...
Donald Sharp [Fri, 13 May 2022 18:01:33 +0000 (14:01 -0400)]
Merge pull request #11198 from opensourcerouting/fix/show_ip_bgp_l2vpn_evpn_rd_neighbor_routes_unint

bgpd: Initialize prd for show_ip_bgp_l2vpn_evpn_rd_neighbor_routes()

2 years agoMerge pull request #11195 from anlancs/fix/lib-qsort
Donald Sharp [Fri, 13 May 2022 15:49:51 +0000 (11:49 -0400)]
Merge pull request #11195 from anlancs/fix/lib-qsort

lib: add one check in "list_sort()"

2 years agozebra: Add encap and group type decoding to nexthop dump
Donald Sharp [Fri, 13 May 2022 14:25:13 +0000 (10:25 -0400)]
zebra: Add encap and group type decoding to nexthop dump

Add the ability to give data about the nexthop group type
and encap type so that it is human readable.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10958 from patrasar/pim_passive
Jafar Al-Gharaibeh [Fri, 13 May 2022 13:39:12 +0000 (08:39 -0500)]
Merge pull request #10958 from patrasar/pim_passive

pimd: introduce ip pim passive command

2 years agobgpd: Add a bit of debug to give us data about how an update group is formed
Donald Sharp [Thu, 5 May 2022 15:21:20 +0000 (11:21 -0400)]
bgpd: Add a bit of debug to give us data about how an update group is formed

The creation of the update group is a tiny bit of a black box and is hard
to figure out by hand if it is correct.  Add a bit of code so that FRR
operators/developers can determine if the update group categorization
makes us happy.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Initialize prd for show_ip_bgp_l2vpn_evpn_rd_neighbor_routes()
Donatas Abraitis [Fri, 13 May 2022 12:41:16 +0000 (15:41 +0300)]
bgpd: Initialize prd for show_ip_bgp_l2vpn_evpn_rd_neighbor_routes()

*** CID 1517751:  Uninitialized variables  (UNINIT)
/bgpd/bgp_evpn_vty.c: 1648 in show_ip_bgp_l2vpn_evpn_rd_neighbor_routes()
1642
1643
1644            if (rd_all)
1645                    return bgp_show_ethernet_vpn(vty, NULL, bgp_show_type_neighbor,
1646                                                 peer, SHOW_DISPLAY_STANDARD, uj);
1647            else
>>>     CID 1517751:  Uninitialized variables  (UNINIT)
>>>     Using uninitialized element of array "prd.val" when calling "bgp_show_ethernet_vpn".
1648                    return bgp_show_ethernet_vpn(vty, &prd, bgp_show_type_neighbor,
1649                                                 peer, SHOW_DISPLAY_STANDARD, uj);
1650     }
1651
1652     DEFUN(show_ip_bgp_l2vpn_evpn_neighbor_advertised_routes,
1653           show_ip_bgp_l2vpn_evpn_neighbor_advertised_routes_cmd,

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Make bgp_debug.[ch] take `const struct peer *` and return bool
Donald Sharp [Thu, 5 May 2022 15:31:33 +0000 (11:31 -0400)]
bgpd: Make bgp_debug.[ch] take `const struct peer *` and return bool

Several functions in bgp_debug.[ch] take a const struct peer *
and also return a bool instead of an int.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11197 from opensourcerouting/feature/gr_notification_docs
Donald Sharp [Fri, 13 May 2022 12:36:41 +0000 (08:36 -0400)]
Merge pull request #11197 from opensourcerouting/feature/gr_notification_docs

doc: Add some more documentation about Notification support for GR

2 years agobgpd: Fix no form of rpki commands to take values
Donald Sharp [Mon, 2 May 2022 16:36:22 +0000 (12:36 -0400)]
bgpd: Fix no form of rpki commands to take values

Fix the no forms of some rpki commands to take variable
values on the no form.  So that people cut-n-pasting while
adding a no works.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11194 from donaldsharp/untrusted
Donatas Abraitis [Fri, 13 May 2022 11:43:11 +0000 (14:43 +0300)]
Merge pull request #11194 from donaldsharp/untrusted

Some more Coverity issues solved

2 years agoMerge pull request #11177 from opensourcerouting/fix/memset_memcpy
Donald Sharp [Fri, 13 May 2022 11:40:58 +0000 (07:40 -0400)]
Merge pull request #11177 from opensourcerouting/fix/memset_memcpy

*: memcpy/memset zeroing

2 years agoMerge pull request #11188 from opensourcerouting/fix/argv_find
Donald Sharp [Fri, 13 May 2022 11:35:57 +0000 (07:35 -0400)]
Merge pull request #11188 from opensourcerouting/fix/argv_find

bgpd: Cleanup

2 years agoMerge pull request #9454 from anlancs/fix-ospf6-gr-length
Igor Ryzhov [Fri, 13 May 2022 11:25:06 +0000 (14:25 +0300)]
Merge pull request #9454 from anlancs/fix-ospf6-gr-length

ospf6d: suppress coverity warnings of insecure data handling

2 years agozebra: Add startup message and display netlink buffer size.
Loganaden Velvindron [Thu, 12 May 2022 14:04:17 +0000 (18:04 +0400)]
zebra: Add startup message and display netlink buffer size.

Add startup message and display netlink buffer size.

Signed-off-by: Loganaden Velvindron <logan@cyberstorm.mu>
2 years agodoc: Add some more documentation about Notification support for GR
Donatas Abraitis [Fri, 13 May 2022 09:45:25 +0000 (12:45 +0300)]
doc: Add some more documentation about Notification support for GR

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>