]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
2 years agoospf6d: Remove unused variable
Donald Sharp [Thu, 11 Aug 2022 17:40:50 +0000 (13:40 -0400)]
ospf6d: Remove unused variable

last_serviced_oi is always NULL.  Remove

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospfd: Add how many packets the interface has queued to send
Donald Sharp [Thu, 11 Aug 2022 11:39:33 +0000 (07:39 -0400)]
ospfd: Add how many packets the interface has queued to send

In `show ip ospf interface traffic` how many packets this
interface has queued to send.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospfd: Refactor fifo_flush for the interface
Donald Sharp [Thu, 11 Aug 2022 01:56:40 +0000 (21:56 -0400)]
ospfd: Refactor fifo_flush for the interface

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospfd: When a neighbor goes down clear the oi->obuf if we can
Donald Sharp [Thu, 11 Aug 2022 01:49:37 +0000 (21:49 -0400)]
ospfd: When a neighbor goes down clear the oi->obuf if we can

When a neighbor goes down on an interface and that interface
has no more neighbors in a viable state where packets should
be being sent, then let's clear up the oi->obuf associated
with the interface the neighbor is on.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospfd: Cleanup indentation surrounding oi->nbr
Donald Sharp [Wed, 10 Aug 2022 22:14:23 +0000 (18:14 -0400)]
ospfd: Cleanup indentation surrounding oi->nbr

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoospfd: Increase packets sent at one time in ospf_write
Donald Sharp [Wed, 10 Aug 2022 20:15:29 +0000 (16:15 -0400)]
ospfd: Increase packets sent at one time in ospf_write

ospf_write pulls an interface off the ospf->oi_write_q
then writes one packet and places it back on the queue,
keeping track of the first one sent.  Then it will
stop sending packets even if we get back to the first
interface written too but before we have sent the full
pkt_count.  I do not believe this makes a whole bunch
of sense and is very restrictive of how much data can
be sent especially if you have a limited number of peers
but large amounts of data.  Why be so restrictive?

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11778 from AbhishekNR/ttable_mroute
Donald Sharp [Thu, 11 Aug 2022 12:32:32 +0000 (08:32 -0400)]
Merge pull request #11778 from AbhishekNR/ttable_mroute

pimd, pim6d:  Using ttable for displaying output of show mroute commands

2 years agoMerge pull request #11782 from AbhishekNR/ttable_mroute_count
Donald Sharp [Thu, 11 Aug 2022 12:32:01 +0000 (08:32 -0400)]
Merge pull request #11782 from AbhishekNR/ttable_mroute_count

pimd, pim6d: Using ttable for displaying output of show mroute count command

2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 mroute count" command output.
Abhishek N R [Thu, 11 Aug 2022 08:01:51 +0000 (01:01 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 mroute count" command output.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agoMerge pull request #11775 from AbhishekNR/ttable
Donald Sharp [Wed, 10 Aug 2022 16:29:26 +0000 (12:29 -0400)]
Merge pull request #11775 from AbhishekNR/ttable

pimd, pim6d: Using ttable for displaying output of show multicast command

2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 mroute" command output.
Abhishek N R [Wed, 10 Aug 2022 15:58:23 +0000 (08:58 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 mroute" command output.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agoMerge pull request #11776 from opensourcerouting/fix/callback_readline
Donald Sharp [Wed, 10 Aug 2022 16:05:21 +0000 (12:05 -0400)]
Merge pull request #11776 from opensourcerouting/fix/callback_readline

vtysh: Handle SIGTSTP (C-z) without exiting the vty shell

2 years agoMerge pull request #11774 from donaldsharp/zebra_meta_q_shakeups
Donatas Abraitis [Wed, 10 Aug 2022 13:32:12 +0000 (16:32 +0300)]
Merge pull request #11774 from donaldsharp/zebra_meta_q_shakeups

Zebra meta q shakeups

2 years agovtysh: Handle SIGTSTP (C-z) without exiting the vty shell
Donatas Abraitis [Wed, 10 Aug 2022 10:43:11 +0000 (13:43 +0300)]
vtysh: Handle SIGTSTP (C-z) without exiting the vty shell

After 4c92dd90d3d15cff640de063ff14eec950402d25 switching to poll-based I/O,
vtysh prompt exits on C-z signal.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agozebra: Remove unused return codes in zebra_mpls.c
Donald Sharp [Tue, 9 Aug 2022 18:12:15 +0000 (14:12 -0400)]
zebra: Remove unused return codes in zebra_mpls.c

There are some return codes for functions that
are not really used.  Clean them up.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Combine meta_queue_free and meta_queue_vrf_free functions
Donald Sharp [Tue, 9 Aug 2022 17:09:16 +0000 (13:09 -0400)]
zebra: Combine meta_queue_free and meta_queue_vrf_free functions

These functions essentially do the same thing.  Combine them
for the goodness of mankind.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: System routes should be processed the same time as kernel
Donald Sharp [Tue, 9 Aug 2022 14:23:35 +0000 (10:23 -0400)]
zebra: System routes should be processed the same time as kernel

For whatever reason.  ZEBRA_ROUTE_SYSTEM routes were being processed
last.  Since a system route is just another kernel route type.  Let's
just switch it to be processed the same time as kernel routes.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Let's use enum for META Queue indexes
Donald Sharp [Tue, 9 Aug 2022 13:47:44 +0000 (09:47 -0400)]
zebra: Let's use enum for META Queue indexes

Convert the meta queue values to an enum and use
them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Explicitly call out the correct queue name
Donald Sharp [Tue, 9 Aug 2022 13:22:43 +0000 (09:22 -0400)]
zebra: Explicitly call out the correct queue name

There were more than a few places where the NHG meta
queue was not being explicitly called out.  Let's
be consistent and use the same nomenclature as much
as possible when talking about metaQ's.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11768 from donaldsharp/multiple_connected_installs
Donatas Abraitis [Wed, 10 Aug 2022 11:04:18 +0000 (14:04 +0300)]
Merge pull request #11768 from donaldsharp/multiple_connected_installs

zebra: Don't install connected routes multiple times into FRR

2 years agopimd, pim6d: Using ttable for displaying "show ip/ipv6 multicast count" command.
Abhishek N R [Wed, 10 Aug 2022 09:04:04 +0000 (02:04 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 multicast count" command.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agoMerge pull request #11668 from rampxxxx/bfd_rtt_in_echo_pkt
Rafael Zalamena [Tue, 9 Aug 2022 15:20:24 +0000 (15:20 +0000)]
Merge pull request #11668 from rampxxxx/bfd_rtt_in_echo_pkt

BFDD: Add RTT to BFD IPV4 Echo packet processing

2 years agoMerge pull request #11752 from opensourcerouting/fix/update_policy_on_filters
Russ White [Tue, 9 Aug 2022 12:32:33 +0000 (08:32 -0400)]
Merge pull request #11752 from opensourcerouting/fix/update_policy_on_filters

bgpd: Handle ORF remove-all events correctly and update ORF prefix-list on changes

2 years agoMerge pull request #11770 from donaldsharp/static_mpls_label_change
Russ White [Tue, 9 Aug 2022 12:23:23 +0000 (08:23 -0400)]
Merge pull request #11770 from donaldsharp/static_mpls_label_change

staticd: When changing the underlying nh ensure it is reinstalled

2 years agoMerge pull request #11765 from lyq140/patch-pimDoc
Jafar Al-Gharaibeh [Tue, 9 Aug 2022 06:12:18 +0000 (01:12 -0500)]
Merge pull request #11765 from lyq140/patch-pimDoc

doc: pimd needs linux kernel 4.19(IGMPMSG_WRVIFWHOLE)

2 years agodoc: pimd needs linux kernel 4.19(IGMPMSG_WRVIFWHOLE)
ron [Mon, 8 Aug 2022 07:56:58 +0000 (15:56 +0800)]
doc: pimd needs linux kernel 4.19(IGMPMSG_WRVIFWHOLE)

Signed-off-by: ron <lyq140hf2006@163.com>
2 years agoMerge pull request #11769 from opensourcerouting/fix/no_rib_implied
Donald Sharp [Mon, 8 Aug 2022 22:34:39 +0000 (18:34 -0400)]
Merge pull request #11769 from opensourcerouting/fix/no_rib_implied

bgpd: When specifying listen address for bgpd we shouldn't imply no fib flag

2 years agostaticd: When changing the underlying nh ensure it is reinstalled
Donald Sharp [Mon, 8 Aug 2022 19:41:42 +0000 (15:41 -0400)]
staticd: When changing the underlying nh ensure it is reinstalled

There exists some nexthop attributes that are not the unique
part of the nexthop and if you change the static route
with those values then the route is not being updated
in zebra with the new values:

Example of brokenness:

eva# conf
eva(config)# ip route 1.2.3.9/32 192.168.119.1 enp39s0 label 16020
eva(config)# do show ip route 1.2.3.9
Routing entry for 1.2.3.9/32
  Known via "static", distance 1, metric 0, best
  Last update 00:00:05 ago
  * 192.168.119.1, via enp39s0, label 16020, weight 1

eva(config)# ip route 1.2.3.9/32 192.168.119.1 enp39s0 label 16040
eva(config)# do show ip route 1.2.3.9
Routing entry for 1.2.3.9/32
  Known via "static", distance 1, metric 0, best
  Last update 00:00:12 ago
  * 192.168.119.1, via enp39s0, label 16020, weight 1

Fixed behavior:

eva# conf
eva(config)# ip route 1.2.3.10/32 192.168.119.1 enp39s0 label 16020
eva(config)# do show ip route 1.2.3.10
Routing entry for 1.2.3.10/32
  Known via "static", distance 1, metric 0, best
  Last update 00:00:04 ago
  * 192.168.119.1, via enp39s0, label 16020, weight 1

eva(config)# ip route 1.2.3.10/32 192.168.119.1 enp39s0 label 16040
eva(config)# do show ip route 1.2.3.10
Routing entry for 1.2.3.10/32
  Known via "static", distance 1, metric 0, best
  Last update 00:00:01 ago
  * 192.168.119.1, via enp39s0, label 16040, weight 1

I've gone through most of the items in staticd that can change
the nexthop
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: When specifying listen address for bgpd we shouldn't imply no fib flag
Donatas Abraitis [Mon, 8 Aug 2022 18:22:02 +0000 (21:22 +0300)]
bgpd: When specifying listen address for bgpd we shouldn't imply no fib flag

When `-l` is used, then no routes are exported to the kernel.

```
$ grep bgpd_options /etc/frr/daemons
bgpd_options="   -A 127.0.0.1 -l 127.0.0.2"
```

Before:

```
donatas-pc# sh run | include no-rib
bgp no-rib
donatas-pc#
```

After:

```
donatas-pc# sh run | include no-rib
donatas-pc#
```

Signed-off-by: Kris Shannon <k.shannon@amaze.com.au>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agozebra: Don't install connected routes multiple times into FRR
Donald Sharp [Mon, 8 Aug 2022 16:32:15 +0000 (12:32 -0400)]
zebra: Don't install connected routes multiple times into FRR

When moving an interface between vrf's we do not need
to install the connected routes multiple times.

eva# show ip route vrf all
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

VRF BLUE:
C>* 4.5.6.7/32 is directly connected, dummy7, 00:00:10

VRF default:
K>* 0.0.0.0/0 [0/100] via 192.168.119.1, enp39s0, 00:00:10
C>* 192.168.119.0/24 is directly connected, enp39s0, 00:00:10
eva# exit
sharpd@eva ~/f/t/topotests (multiple_connected_installs)> sudo ip link add GREEN type vrf table 11000
sharpd@eva ~/f/t/topotests (multiple_connected_installs)> sudo ip link set GREEN up
sharpd@eva ~/f/t/topotests (multiple_connected_installs)> sudo ip link set dummy7 master GREEN
sharpd@eva ~/f/t/topotests (multiple_connected_installs)> vtysh

Hello, this is FRRouting (version 8.4-dev).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

eva# show ip route vrf all
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

VRF GREEN:
C>* 4.5.6.7/32 is directly connected, dummy7, 00:00:05

VRF default:
K>* 0.0.0.0/0 [0/100] via 192.168.119.1, enp39s0, 00:01:03
C>* 192.168.119.0/24 is directly connected, enp39s0, 00:01:03
eva# exit
sharpd@eva ~/f/t/topotests (multiple_connected_installs)> sudo ip link set dummy7 nomaster
sharpd@eva ~/f/t/topotests (multiple_connected_installs)> sudo vtysh -c "show ip route vrf all"
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

VRF default:
K>* 0.0.0.0/0 [0/100] via 192.168.119.1, enp39s0, 00:03:22
C>* 4.5.6.7/32 is directly connected, dummy7, 00:00:08
C>* 192.168.119.0/24 is directly connected, enp39s0, 00:03:22
sharpd@eva ~/f/t/topotests (multiple_connected_installs)>
 @  11 0:-*                                                                                                                                                         5h50m 0.06 24x1.9GHz 31.4G26% 426G70% 2022-08-08 13:49:24

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11501 from donaldsharp/mpls_turns_on
Donatas Abraitis [Mon, 8 Aug 2022 16:04:49 +0000 (19:04 +0300)]
Merge pull request #11501 from donaldsharp/mpls_turns_on

Mpls turns on

2 years agotests: Convert one test to use interface based mpls config
Donald Sharp [Wed, 29 Jun 2022 17:20:11 +0000 (13:20 -0400)]
tests: Convert one test to use interface based mpls config

To prove that this works.  Modify a test that uses mpls to
turn on mpls for the interfaces that need mpls via the
new mpls command.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Add a `mpls enable` interface node command
Donald Sharp [Wed, 29 Jun 2022 11:43:50 +0000 (07:43 -0400)]
zebra: Add a `mpls enable` interface node command

Allow individual interfaces to turn on/off the mpls subsystem
for it in linux.

sharpd@eva:~/frr9$ sudo sysctl -a | grep enp39s0 | grep mpls
net.mpls.conf.enp39s0.input = 0
sharpd@eva:~/frr9$ vtysh -c "conf" -c "int enp39s0" -c "mpls enable"
sharpd@eva:~/frr9$ sudo sysctl -a | grep enp39s0 | grep mpls
net.mpls.conf.enp39s0.input = 1
sharpd@eva:~/frr9$ vtysh -c "conf" -c "int enp39s0" -c "no mpls enable"
sharpd@eva:~/frr9$ sudo sysctl -a | grep enp39s0 | grep mpls
net.mpls.conf.enp39s0.input = 0
sharpd@eva:~/frr9$

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Notice when an interface is turned on w/ mpls and enable mpls subsystem
Donald Sharp [Tue, 28 Jun 2022 18:58:55 +0000 (14:58 -0400)]
zebra: Notice when an interface is turned on w/ mpls and enable mpls subsystem

Currently when FRR starts up it queries the kernel to see if mpls is turned on.
If not FRR does not enable zebra's mpls subsection.  If at a later time mpls
is turned on, let's notice that an interface now is enabled for mpls( thus
implying that all the bits and bobs in the kernel are now setup properly ).

a) convert mpls_enabled to a bool
b) abstract a new function zebra_mpls_turned_on and call it
when FRR notices that an interface now has mpls enabled.
c) mpls_processq_init cannot fail, so actually notice that
and don't have special code to detect a failure.

New results:

sharpd@eva ~> vtysh -c "show zebra"
 OS                           Linux(5.10.0-12-amd64)
 ECMP Maximum                 128
 v4 Forwarding                On
 v6 Forwarding                On
 MPLS                         Off
 EVPN                         Off
 Kernel socket buffer size    90000000
 VRF                          l3mdev Available
 ASIC offload                 Unavailable
 RA                           Compiled in
 RFC 5549                     BGP is not using
 Kernel NHG                   Available
 v4 All LinkDown Routes       Off
 v4 Default LinkDown Routes   Off
 v6 All LinkDown Routes       Off
 v6 Default LinkDown Routes   Off
 v4 All MC Forwarding         On
 v4 Default MC Forwarding     Off
 v6 All MC Forwarding         On
 v6 Default MC Forwarding     Off

                            Route      Route      Neighbor   LSP        LSP
VRF                         Installs   Removals    Updates   Installs   Removals
default                           26          7          0          0          0
<turn on mpls_iptunnel and mpls_router modules in the kernel and then do this>:
sharpd@eva ~> sudo sysctl -w net.mpls.conf.enp39s0.input=1
[sudo] password for sharpd:
net.mpls.conf.enp39s0.input = 1
sharpd@eva ~> vtysh -c "show zebra"
 OS                           Linux(5.10.0-12-amd64)
 ECMP Maximum                 128
 v4 Forwarding                On
 v6 Forwarding                On
 MPLS                         On
 EVPN                         Off
 Kernel socket buffer size    90000000
 VRF                          l3mdev Available
 ASIC offload                 Unavailable
 RA                           Compiled in
 RFC 5549                     BGP is not using
 Kernel NHG                   Available
 v4 All LinkDown Routes       Off
 v4 Default LinkDown Routes   Off
 v6 All LinkDown Routes       Off
 v6 Default LinkDown Routes   Off
 v4 All MC Forwarding         On
 v4 Default MC Forwarding     Off
 v6 All MC Forwarding         On
 v6 Default MC Forwarding     Off

                            Route      Route      Neighbor   LSP        LSP
VRF                         Installs   Removals    Updates   Installs   Removals
default                           26          7          0          0          0
sharpd@eva ~>

I am doing this work because FRR keeps having operators not know about how
to properly use mpls.  Let's make FRR behave a bit better in this weird edge
case.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Add IF_ZEBRA_DATA_X define
Donald Sharp [Wed, 29 Jun 2022 13:05:17 +0000 (09:05 -0400)]
zebra: Add IF_ZEBRA_DATA_X define

There are 2 defines IF_ZEBRA_MULTICAST_X and
IF_ZEBRA_SHUTDOWN_X macros that do the same
thing.  Combine into one.

Future commits will use the IF_ZEBRA_DATA_X macro
as well.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Cleanup unguarded debug
Donald Sharp [Wed, 29 Jun 2022 17:13:10 +0000 (13:13 -0400)]
zebra: Cleanup unguarded debug

Left over debug from earlier commits

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11766 from liwg06/master
Donatas Abraitis [Mon, 8 Aug 2022 11:55:42 +0000 (14:55 +0300)]
Merge pull request #11766 from liwg06/master

lib: Remove invalid function declaration

2 years agolib: Remove invalid function declaration
Weiguo Li [Mon, 8 Aug 2022 09:20:52 +0000 (17:20 +0800)]
lib: Remove invalid function declaration

there is no definition of ttable_cell_del(), thus remove its declaration.

Signed-off-by: Weiguo Li <liwg06@foxmail.com>
2 years agoMerge pull request #11750 from AbhishekNR/debug_msdp
Donatas Abraitis [Mon, 8 Aug 2022 08:05:22 +0000 (11:05 +0300)]
Merge pull request #11750 from AbhishekNR/debug_msdp

pim6d: Removing the temporary enabled debugs.

2 years agoMerge pull request #11623 from taspelund/prefer_mp_nexthop
Donatas Abraitis [Mon, 8 Aug 2022 07:18:57 +0000 (10:18 +0300)]
Merge pull request #11623 from taspelund/prefer_mp_nexthop

bgpd: ignore NEXT_HOP for MP_REACH_NLRI

2 years agoMerge pull request #11720 from SaiGomathiN/pimv6debugfix
Donatas Abraitis [Mon, 8 Aug 2022 07:11:38 +0000 (10:11 +0300)]
Merge pull request #11720 from SaiGomathiN/pimv6debugfix

pim6d: Add 'show debugging [pimv6]' CLI and some fixes

2 years agoMerge pull request #11759 from donaldsharp/bfd_noarp
Donatas Abraitis [Mon, 8 Aug 2022 07:10:13 +0000 (10:10 +0300)]
Merge pull request #11759 from donaldsharp/bfd_noarp

bfdd: Some interfaces don't have mac addresses

2 years agopim6d: Removing the temporary enabled debugs.
Abhishek N R [Fri, 5 Aug 2022 10:20:16 +0000 (03:20 -0700)]
pim6d: Removing the temporary enabled debugs.

Debug pimv6 cli's are implemented.
Therefore removing this.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agoMerge pull request #11751 from donaldsharp/pim6d_tools_fixup
mobash-rasool [Sat, 6 Aug 2022 14:51:20 +0000 (20:21 +0530)]
Merge pull request #11751 from donaldsharp/pim6d_tools_fixup

tools: Add pim6d to tools so that pim6d will work properly

2 years agobfdd: Some interfaces don't have mac addresses
Donald Sharp [Sat, 6 Aug 2022 01:40:11 +0000 (21:40 -0400)]
bfdd: Some interfaces don't have mac addresses

When an interface does not have a mac address, don't
try to retrieve the mac address ( for it to just fail ).

Example interface:
sharpd@eva [2]> ip link show tun100
21: tun100@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ipip 192.168.119.224 peer 192.168.119.120

Let's just notice that there is a NOARP flag and abort the call.

Fixes: #11733
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotools: Add pim6d to tools so that pim6d will work properly
Donald Sharp [Fri, 5 Aug 2022 12:14:06 +0000 (08:14 -0400)]
tools: Add pim6d to tools so that pim6d will work properly

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11744 from donaldsharp/nhgs
Donatas Abraitis [Sat, 6 Aug 2022 11:58:57 +0000 (14:58 +0300)]
Merge pull request #11744 from donaldsharp/nhgs

NHGs Various Fixes

2 years agotests: Check if ORF filtering works correctly when modifying prefix-lists
Donatas Abraitis [Fri, 5 Aug 2022 12:27:59 +0000 (15:27 +0300)]
tests: Check if ORF filtering works correctly when modifying prefix-lists

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Send route update when modifying access/aspath/prefix lists
Donatas Abraitis [Fri, 5 Aug 2022 12:06:00 +0000 (15:06 +0300)]
bgpd: Send route update when modifying access/aspath/prefix lists

Handle ORF REMOVE_ALL events as well, because now we just silently return, and
a stale dynamic prefix-list is used instead of the new one.

Before this, soft clear/route refresh was needed. Don't know the reason, but
we didn't send updates when modifying the filters.

Probably due to a massive change of filters and to avoid automatic updates :/

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agozebra: zrouter.in_shutdown is an atomic variable
Donald Sharp [Thu, 4 Aug 2022 11:36:51 +0000 (07:36 -0400)]
zebra: zrouter.in_shutdown is an atomic variable

So let's treat the variable like it is atomic and
properly load it when we need to look at it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Fix memory leaks and use after frees in nhg's on shutdown
Donald Sharp [Thu, 4 Aug 2022 11:05:46 +0000 (07:05 -0400)]
zebra: Fix memory leaks and use after frees in nhg's on shutdown

Fixup both memory leaks as well as use after free's in nhg's
on shutdown.

This approach is effectively just iterating through all the
hash items and directly just freeing the memory instead
of handling ref counts or cross references.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: When saving nhg for later stop processing
Donald Sharp [Tue, 2 Aug 2022 19:43:46 +0000 (15:43 -0400)]
zebra: When saving nhg for later stop processing

Commit 35729f38fa5713b introduced the idea of
holding a nexthop group for a small amount of time
before removing it from the system.  When this code
was introduced the nexthop group entry was saved
and a timer started, except instead of stopping
processing at that point in time, zebra was
continuing on and deleting nexthop group entries
that that entry depended on as well.  This
should not be done until the timer pops.

Fixes: #11596
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11636 from AbhishekNR/clear_cmd
Donald Sharp [Fri, 5 Aug 2022 11:45:47 +0000 (07:45 -0400)]
Merge pull request #11636 from AbhishekNR/clear_cmd

pim6d: Implementing "clear ipv6 pim interface traffic" command.

2 years agoMerge pull request #11559 from patrasar/fix_clear_ipv6_mroute
Donald Sharp [Fri, 5 Aug 2022 11:43:12 +0000 (07:43 -0400)]
Merge pull request #11559 from patrasar/fix_clear_ipv6_mroute

pim6d: fix clear ipv6 mroute

2 years agoMerge pull request #11741 from Pdoijode/bgp-evpn-flood-op-chg-master
Donatas Abraitis [Fri, 5 Aug 2022 11:41:17 +0000 (14:41 +0300)]
Merge pull request #11741 from Pdoijode/bgp-evpn-flood-op-chg-master

bgpd: addition of vxlanFlooding field in show output

2 years agoMerge pull request #11749 from ad8-bdl/patch-1
Donald Sharp [Fri, 5 Aug 2022 11:37:44 +0000 (07:37 -0400)]
Merge pull request #11749 from ad8-bdl/patch-1

doc/user/ripd: clarify unicast behaviour

2 years agodoc/user/ripd: clarify unicast behaviour
Ben [Fri, 5 Aug 2022 07:02:55 +0000 (17:02 +1000)]
doc/user/ripd: clarify unicast behaviour

Current wording _implies_ `neighbor` updates are sent unicast; this makes it explicit.

Signed-off-by: Ben L <47653825+ad8-bdl@users.noreply.github.com>
2 years agoMerge pull request #11716 from mobash-rasool/fixes2
Donald Sharp [Fri, 5 Aug 2022 02:06:49 +0000 (22:06 -0400)]
Merge pull request #11716 from mobash-rasool/fixes2

pimd, pim6d: Send register msg via reg socket, solve FHR/RP same node issue

2 years agoMerge pull request #11705 from Jafaral/pim-static
Donald Sharp [Fri, 5 Aug 2022 02:04:02 +0000 (22:04 -0400)]
Merge pull request #11705 from Jafaral/pim-static

pimd: fix static mroute to also take into account the input interface

2 years agoMerge pull request #11730 from SaiGomathiN/ttable
Donald Sharp [Thu, 4 Aug 2022 20:40:14 +0000 (16:40 -0400)]
Merge pull request #11730 from SaiGomathiN/ttable

pimd, pim6d: Using ttable for displaying purpose

2 years agobgpd: ignore NEXT_HOP for MP_REACH_NLRI
Trey Aspelund [Tue, 26 Jul 2022 22:04:14 +0000 (22:04 +0000)]
bgpd: ignore NEXT_HOP for MP_REACH_NLRI

RFC 4760 states we SHOULD ignore the NEXT_HOP attribute for BGP Update
messages carrying only MP_REACH_NLRI attributes. Thus we should use the
Network Address of Next Hop field of the MP_REACH_NLRI as the nexthop.

Instead of always looking for BGP_ATTR_NEXT_HOP, this commit ensures:
1) we set mp_nexthop_len to BGP_ATTR_NHLEN_IPV4 for v4 bgp_static routes
2) we check mp_nexthop_len when choosing the nexthop to use for nht
3) we check mp_nexthop_len when choosing the nexthop to send to zebra
4) we check mp_nexthop_len when picking the nexthop to shown by vtysh

Reported-by: Binon Gorbutt <binon@aervivo.com>
Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2 years agobgpd: addition of vxlanFlooding field to show output
Pdoijode [Thu, 4 Aug 2022 18:28:33 +0000 (11:28 -0700)]
bgpd: addition of vxlanFlooding field to show output

Instead of changing the value of 'BUM flooding' field in
'show bgp l2vpn evpn vni' vty and JSON command from
'Head-end replication' to 'enabled', adding a new field named
'vxlanFlooding' to 'show bgp l2vpn evpn vni' vty and JSON output.

This is done to maintain backward compatibility.'BUM flooding' field
in vty and JSON output will be deprecated later.

Signed-off-by: Pooja Doijode <pdoijode@nvidia.com>
2 years agobgpd: add BGP_ATTR_MP_NEXTHOP_LEN_IP6 macro
Trey Aspelund [Sun, 17 Jul 2022 02:13:43 +0000 (02:13 +0000)]
bgpd: add BGP_ATTR_MP_NEXTHOP_LEN_IP6 macro

Move the logic to check the mp_nexthop_len against v6 lengths into its
own macro so we can apply that logic elsewhere on its own without always
checking for presence of BGP_ATTR_NEXT_HOP.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2 years agoMerge pull request #11745 from mjstapp/fix_a_dot_py
Donald Sharp [Thu, 4 Aug 2022 17:24:50 +0000 (13:24 -0400)]
Merge pull request #11745 from mjstapp/fix_a_dot_py

*: remove test python file

2 years ago*: remove test python file
Mark Stapp [Thu, 4 Aug 2022 15:06:59 +0000 (11:06 -0400)]
*: remove test python file

Looks like a test script was added recently; remove it.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
2 years agopimd, pim6d: Using ttable for displaying
Sai Gomathi N [Wed, 3 Aug 2022 09:22:28 +0000 (02:22 -0700)]
pimd, pim6d: Using ttable for displaying

Using termtable for show ip|ipv6 pim interface
for dynamic space alignments

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoMerge pull request #11739 from opensourcerouting/fix/bgp_best_path_select_defer
Donald Sharp [Thu, 4 Aug 2022 11:18:47 +0000 (07:18 -0400)]
Merge pull request #11739 from opensourcerouting/fix/bgp_best_path_select_defer

bgpd: bgp_best_path_select_defer never returns negative

2 years agolib: Add errno details to the sockopt_reuseaddr api
Mobashshera Rasool [Thu, 4 Aug 2022 07:50:36 +0000 (00:50 -0700)]
lib: Add errno details to the sockopt_reuseaddr api

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agopimd, pim6d: Send register msg via register socket
Mobashshera Rasool [Tue, 2 Aug 2022 06:12:53 +0000 (23:12 -0700)]
pimd, pim6d: Send register msg via register socket

The problem here is when the same node is FHR as well as RP,
then the node keeps on sending the register packet.
Register-stop is not sent as well.

This problem has occurred because the RP is the same node
and there is no socket created on loopback interface, so the
packet is never send out and never received back on the same
node, so register recv could not be processed on the node and
hence no register-stop is sent.

Since register packets are unicast packets, its better to handle
the send of register packet via a separate register socket.
This fixes the problem mentioned above as well.

Fixes: #11331
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agoMerge pull request #11742 from taspelund/evpn_rd_crash
Donatas Abraitis [Thu, 4 Aug 2022 07:36:38 +0000 (10:36 +0300)]
Merge pull request #11742 from taspelund/evpn_rd_crash

bgpd: fix show bgp l2vpn evpn route rd crashes

2 years agobgpd: fix show bgp l2vpn evpn route rd crashes
Trey Aspelund [Thu, 4 Aug 2022 01:43:31 +0000 (01:43 +0000)]
bgpd: fix show bgp l2vpn evpn route rd crashes

bgpd was crashing every time `show bgp l2vpn evpn route rd` was issued
with an RD that didn't match "all".  This was introduced by 9b01d289883
which changed how argv_find() is handled in various vtysh commands, but
the new changes forgot a "!".  So let's re-add the "!".

Before:
```
ub20# show bgp l2vpn evpn route rd 399672:100
vtysh: error reading from bgpd: Resource temporarily unavailable (11)Warning: closing connection to bgpd because of an I/O error!
ub20#

ub20# show bgp l2vpn evpn route rd 399672:100 mac 11:11:11:11:11:11
vtysh: error reading from bgpd: Resource temporarily unavailable (11)Warning: closing connection to bgpd because of an I/O error!
ub20#
```

After:
```
ub20# show bgp l2vpn evpn route rd 399672:100
ub20#

ub20# show bgp l2vpn evpn route rd 399672:100 mac 11:11:11:11:11:11
% Network not in table
ub20#
```

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2 years agobgpd: bgp_best_path_select_defer never returns negative
Donatas Abraitis [Wed, 3 Aug 2022 15:43:01 +0000 (18:43 +0300)]
bgpd: bgp_best_path_select_defer never returns negative

Just drop the test and convert to void.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopim6d: fix clear ipv6 mroute
Sarita Patra [Thu, 7 Jul 2022 15:03:45 +0000 (08:03 -0700)]
pim6d: fix clear ipv6 mroute

Signed-off-by: Sarita Patra <saritap@vmware.com>
2 years agoMerge pull request #11731 from opensourcerouting/feature/show_bgp_access-list
Donald Sharp [Wed, 3 Aug 2022 14:29:30 +0000 (10:29 -0400)]
Merge pull request #11731 from opensourcerouting/feature/show_bgp_access-list

bgpd: Add `show bgp access-list` command

2 years agoMerge pull request #11713 from anlancs/fix/evpn-mh-bond-redirect
Stephen Worley [Wed, 3 Aug 2022 14:11:08 +0000 (10:11 -0400)]
Merge pull request #11713 from anlancs/fix/evpn-mh-bond-redirect

zebra: fix bond down for evpn-mh

2 years agodoc: Add `show bgp access-list` command
Donatas Abraitis [Wed, 3 Aug 2022 10:27:07 +0000 (13:27 +0300)]
doc: Add `show bgp access-list` command

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11722 from donaldsharp/qdb
Donatas Abraitis [Wed, 3 Aug 2022 10:24:10 +0000 (13:24 +0300)]
Merge pull request #11722 from donaldsharp/qdb

qpb: Tell coverity the actual size we are copying

2 years agobgpd: Add `show bgp access-list` command to filter routes by ACL
Donatas Abraitis [Wed, 3 Aug 2022 09:53:16 +0000 (12:53 +0300)]
bgpd: Add `show bgp access-list` command to filter routes by ACL

The same as with prefix-list/route-maps/etc.

```
donatas-pc# show ip access-list spine
ZEBRA:
Zebra IP access list spine
    seq 5 permit 200.200.200.200/32
BGP:
Zebra IP access list spine
    seq 5 permit 200.200.200.200/32
PIM:
Zebra IP access list spine
    seq 5 permit 200.200.200.200/32
BABELD:
Zebra IP access list spine
    seq 5 permit 200.200.200.200/32
donatas-pc# show bgp ipv4 unicast access-list
  ACCESSLIST_NAME  Access-list name
     spine
donatas-pc# show bgp ipv4 unicast access-list spine
BGP table version is 9, local router ID is 172.17.0.3, vrf id 0
Default local pref 100, local AS 1
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

   Network          Next Hop            Metric LocPrf Weight Path
*> 200.200.200.200/32
                    enp3s0                   0             0 65000 3456 ?

Displayed  1 routes and 10 total paths
donatas-pc#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11710 from donaldsharp/split_up_test_multicast_pim_static_rp
Donatas Abraitis [Wed, 3 Aug 2022 08:11:37 +0000 (11:11 +0300)]
Merge pull request #11710 from donaldsharp/split_up_test_multicast_pim_static_rp

some test fixes and a coverity fix

2 years agozebra: fix bond down for evpn-mh
anlan_cs [Mon, 1 Aug 2022 07:30:07 +0000 (03:30 -0400)]
zebra: fix bond down for evpn-mh

The test case is with `redirect-off` in evpn multi-homing environment:
```
evpn mh redirect-off
```

After the environment is setup, do the following steps:
1) Let one member of ES learn one mac:
```
2e:52:bb:bb:2f:46 dev ae1 vlan 100 master bridge0 static
```
Now everything is ok and the mac can be synced to other ES peers.

2) Shutdown bond1. At this time, zebra will get three netlink messages,
not one as current code expected. Like:
```
e4:f0:04:89:b6:46 dev vxlan10030 vlan 30 master bridge0 static <-A
e4:f0:04:89:b6:46 dev vxlan10030 nhid 536870913 self extern_learn <-B
e4:f0:04:89:b6:46 dev vxlan10030 vlan 30 self <-C
```

With A), zebra will wrongly remove this mac again:
```
ZEBRA: dpAdd remote MAC e4:f0:04:89:b6:46 VID 30
ZEBRA: Add/update remote MAC e4:f0:04:89:b6:46 intf vxlan10030(26) VNI 10030 flags 0xa01 - del local
ZEBRA: Send MACIP Del f None  MAC e4:f0:04:89:b6:46 IP (null) seq 0 L2-VNI 10030 ESI - to bgp
```

With C), zebra will wrongly add this mac again:
```
ZEBRA: Rx RTM_NEWNEIGH AF_BRIDGE IF 26 VLAN 30 st 0x2 fl 0x2 MAC e4:f0:04:89:b6:46 nhg 0
ZEBRA: dpAdd remote MAC e4:f0:04:89:b6:46 VID 30
```

zebra should skip the two messages with `vid`. Otherwise, it will send many
*wrong* messages to bgpd, and the logic is wrong.

`nhg/dst` is in 2nd message without `vid`, it is useful to call
`zebra_evpn_add_update_local_mac()`. But it will fail with "could not find EVPN"
warning for no `vid`, can't call `zebra_evpn_add_update_local_mac()`:
With B):
```
ZEBRA: Rx RTM_NEWNEIGH AF_BRIDGE IF 26 st 0x2 fl 0x12 MAC e4:f0:04:89:b6:46 nhg 536870913
ZEBRA: dpAdd local-nw-MAC e4:f0:04:89:b6:46 VID 0
ZEBRA:         Add/Update MAC e4:f0:04:89:b6:46 intf ae1(18) VID 0, could not find EVPN
```
Here, we can get `vid` from vxlan interface instead of from netlink message.

In summary, `zebra_vxlan_dp_network_mac_add()` will process the three messages
wrongly expecting only one messsage, so its logic is wrong. Just skip the two
unuseful messages with `vid`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11723 from anlancs/fix/minor-10
mobash-rasool [Wed, 3 Aug 2022 06:23:47 +0000 (11:53 +0530)]
Merge pull request #11723 from anlancs/fix/minor-10

ospf6d: combine two conditions for lsa prefix

2 years agoospf6d: combine two conditions for lsa prefix
anlan_cs [Mon, 1 Aug 2022 11:37:51 +0000 (07:37 -0400)]
ospf6d: combine two conditions for lsa prefix

For both router and network LSAs, combine the two conditions and process lsa
prefix uniformly.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11715 from Orange-OpenSource/link_state
Donald Sharp [Wed, 3 Aug 2022 00:20:06 +0000 (20:20 -0400)]
Merge pull request #11715 from Orange-OpenSource/link_state

lib: Correct valgrind errors

2 years agobgpd: BUM flooding display change
Pooja [Tue, 2 Aug 2022 22:16:14 +0000 (15:16 -0700)]
bgpd: BUM flooding display change

Changed BUM flooding output in 'show bgp l2vpn evpn vni'
command from 'Head-end replication' to 'Enabled'

Signed-off-by: Pooja Doijode <pdoijode@nvidia.com>
2 years agoqpb: Tell coverity the actual size we are copying
Donald Sharp [Tue, 2 Aug 2022 19:34:43 +0000 (15:34 -0400)]
qpb: Tell coverity the actual size we are copying

`struct prefix` is a superset of `struct prefix_ipv4` and
`struct prefix_ipv6`.  Let's let coverity figure it out

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11721 from donaldsharp/build_checks
Russ White [Tue, 2 Aug 2022 18:35:31 +0000 (14:35 -0400)]
Merge pull request #11721 from donaldsharp/build_checks

build: unconditionally enable format checks

2 years agobuild: unconditionally enable format checks
David Lamparter [Tue, 26 Jul 2022 19:46:33 +0000 (15:46 -0400)]
build: unconditionally enable format checks

The format message checks done by clippy/xrelfo were still guarded
behind `--enable-dev-build`.  They've been clean and reliable, so it's
time to enable them unconditionally.

Fixes: #11680
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib: Remove usage of inet_ntop in lib/sockopt.c
Donald Sharp [Tue, 2 Aug 2022 14:37:11 +0000 (10:37 -0400)]
lib: Remove usage of inet_ntop in lib/sockopt.c

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoDoc: Update documentation for BFD Echo.
lynnemorrison [Mon, 25 Jul 2022 23:03:38 +0000 (19:03 -0400)]
Doc: Update documentation for BFD Echo.

Add information about Round Trip Time added to IPV4 BFD Echo.

Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
2 years agoBFDD: Add RTT to BFD IPV4 Echo packet processing
lynnemorrison [Mon, 25 Jul 2022 23:02:46 +0000 (19:02 -0400)]
BFDD: Add RTT to BFD IPV4 Echo packet processing

Add a send time into the BFD Echo packet. When the BFD Echo
packet is received back store time it took in usec. When
user issues a show bfd peer(s) command calculate and display
minimum, average, and max time it took for the BFD Echo packet
to be looped back.

Signed-off-by: Lynne Morrison <lynne.morrison@ibm.com>
2 years agopim6d: Change the show running commands for pimv6 debugs
Sai Gomathi N [Tue, 2 Aug 2022 13:34:30 +0000 (06:34 -0700)]
pim6d: Change the show running commands for pimv6 debugs

Change the show running commands for bsm and vxlan pimv4 and pimv6
debug commands based on the address family.
Including bsm and vxlan in no debug pimv6 debug.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoMerge pull request #11684 from donaldsharp/cleanup_for_dev_builds
Russ White [Tue, 2 Aug 2022 13:02:55 +0000 (09:02 -0400)]
Merge pull request #11684 from donaldsharp/cleanup_for_dev_builds

Cleanup for dev builds

2 years agopim6d: Removing the to-do item in pimv6 debug
Sai Gomathi N [Tue, 2 Aug 2022 12:50:02 +0000 (05:50 -0700)]
pim6d: Removing the to-do item in pimv6 debug

Removing the temporary enabling of all debugs for pimv6

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Add 'show debugging [pimv6]' CLI
Sai Gomathi N [Tue, 2 Aug 2022 12:36:02 +0000 (05:36 -0700)]
pim6d: Add 'show debugging [pimv6]' CLI

Adding show debugging CLI for pimv6 debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Implementing "clear ipv6 pim interface traffic" command.
Abhishek N R [Mon, 18 Jul 2022 13:08:19 +0000 (06:08 -0700)]
pim6d: Implementing "clear ipv6 pim interface traffic" command.

Signed-off-by: Abhishek N R <abnr@vmware.com>
2 years agolib: Correct valgrind errors
Olivier Dugeon [Mon, 1 Aug 2022 15:26:36 +0000 (17:26 +0200)]
lib: Correct valgrind errors

In CSPF topo test, valgrind detects uninitialized bytes when exporting TE
Opaque information through ZEBRA. This is due to C pragma compilation directive
__attribute__(aligned(8)) in struct ls_node_id in link_state.h. Valgrind
consideris that struct ls_node_id nid = {} doesn't initialized the padding
bytes introduced by gcc.

This patch simply removes the C pragma compilation directive and also takes
opportunity to remove the transmission of remote node id for vertices and
subnets which is not known. Indeed, remote node id is only pertinent for
edges.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2 years agoMerge pull request #11691 from mxyns/bmp-vpnv4monupd-fix
Donald Sharp [Mon, 1 Aug 2022 11:49:18 +0000 (07:49 -0400)]
Merge pull request #11691 from mxyns/bmp-vpnv4monupd-fix

bgpd: fixed bmp vpnv4 monitoring sending withdraws instead of updates

2 years agoMerge pull request #11692 from opensourcerouting/fix/bgpd_as_override
Donald Sharp [Mon, 1 Aug 2022 11:19:11 +0000 (07:19 -0400)]
Merge pull request #11692 from opensourcerouting/fix/bgpd_as_override

bgpd: Override ASN without checking if an entire as-path is from a single ASN

2 years agoMerge pull request #11712 from mobash-rasool/fixes2
Donald Sharp [Mon, 1 Aug 2022 11:18:10 +0000 (07:18 -0400)]
Merge pull request #11712 from mobash-rasool/fixes2

pimd: Simply the code a bit, reduce code complexity

2 years agopimd: Simply the code a bit, reduce code complexity
Mobashshera Rasool [Mon, 1 Aug 2022 06:37:56 +0000 (23:37 -0700)]
pimd: Simply the code a bit, reduce code complexity

Combine all the if conditions in api pim_if_addr_add_all to
reduce nested loops.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>