]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
2 years agotests: Fix test_multicast_pim_sm_topo3.py from generating a support bundle
Donald Sharp [Tue, 5 Apr 2022 13:26:18 +0000 (09:26 -0400)]
tests: Fix test_multicast_pim_sm_topo3.py from generating a support bundle

The test_multicast_pim_sm_topo3.py test is both spending extra time
looking for state that will never occurr but also generating a support
bundle when it doesn't find it.  Fix the test to come to the correct
solution faster.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10919 from donaldsharp/lost_kernel_routes
Russ White [Sat, 9 Apr 2022 15:09:40 +0000 (11:09 -0400)]
Merge pull request #10919 from donaldsharp/lost_kernel_routes

zebra: Allow multiple connected routes to be choosen for kernel routes

2 years agoMerge pull request #10981 from opensourcerouting/vty-wrmem-newline
mobash-rasool [Fri, 8 Apr 2022 16:39:16 +0000 (22:09 +0530)]
Merge pull request #10981 from opensourcerouting/vty-wrmem-newline

vtysh: remove extraneous newline

2 years agotests: Add a test to ensure that FRR does not loose kernel routes
Donald Sharp [Wed, 30 Mar 2022 13:13:12 +0000 (09:13 -0400)]
tests: Add a test to ensure that FRR does not loose kernel routes

Add a test case to ensure that Kernel routes are not lost
when there are multiple overlapping connected routes.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra: Allow multiple connected routes to be choosen for kernel routes
Donald Sharp [Tue, 29 Mar 2022 14:55:34 +0000 (10:55 -0400)]
zebra: Allow multiple connected routes to be choosen for kernel routes

This bug should only really affect kernel routes.  To reproduce:

a) Have multiple connected routes that point to the same prefix
swp8  up      default         169.254.0.250/30
swp9  up      default         169.254.0.250/30

b) Have a kernel route that uses one of those connected routes
7.6.2.8 via 169.254.0.249 dev swp8 proto static
(But have it choose a non-selected connected nexthop)

c) Introduce an event that causes the rib table to be reprocessed,
say a unrelated interface going up / down

  This causes the route to be lost with this message:
2022/03/28 21:21:53 ZEBRA: [YXCJP-0WZWV] netlink_nexthop_msg_encode: ID (3454): 169.254.0.249, via swp8(1383) vrf default(0)
2022/03/28 21:21:53 ZEBRA: [YF2E6-J60JH] nexthop_active: 169.254.0.249, via swp8 given ifindex does not match nexthops ifindex found found: directly connected, swp9

Effectively the nexthop that zebra is choosing would not be the one
that the kernel route has choosen and FRR removes the route:
022/03/28 21:21:53 ZEBRA: [NM15X-X83N9] rib_process: (0:254):7.6.2.8/32: rn 0x56042e632e90, removing re 0x56042e6316e0
2022/03/28 21:21:53 ZEBRA: [Y53JX-CBC5H] rib_unlink: (0:254):7.6.2.8/32: rn 0x56042e632e90, re 0x56042e6316e0
2022/03/28 21:21:53 ZEBRA: [KT8QQ-45WQ0] rib_gc_dest: (0:?):7.6.2.8/32: removing dest from table

What is happening?

Zebra is not looking at all connected routes and if any of them
would have the appropriate ifindex and just blindly rejecting
the route.

So when nexthop resolution happens and it matches a connected
route and the dest->selected nexthop ifindex does not match, let's sort
through the rest of them and see if any of them match and if so
let's keep the route.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10982 from donaldsharp/enum_watchfrr
Donatas Abraitis [Fri, 8 Apr 2022 11:58:36 +0000 (14:58 +0300)]
Merge pull request #10982 from donaldsharp/enum_watchfrr

Enum watchfrr

2 years agoMerge pull request #10979 from opensourcerouting/pim-ssm-clean
Donald Sharp [Thu, 7 Apr 2022 17:08:01 +0000 (13:08 -0400)]
Merge pull request #10979 from opensourcerouting/pim-ssm-clean

lib, pimd: small cleanup in multicast addr helpers (SSM & co.)

2 years agovtysh: remove extraneous newline
David Lamparter [Thu, 7 Apr 2022 12:44:23 +0000 (14:44 +0200)]
vtysh: remove extraneous newline

vtysh_client_execute() expects just a string without a newline; the
newline is passed through and ends up in logging output where newlines
are not quite wanted.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agowatchfrr: Convert daemon_state_t to an enum instead of a typedef
Donald Sharp [Wed, 6 Apr 2022 14:44:41 +0000 (10:44 -0400)]
watchfrr: Convert daemon_state_t to an enum instead of a typedef

Align watchfrr with our coding standard

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agowatchfrr: Rename restart_phase_t to `enum restart_phase`
Donald Sharp [Wed, 6 Apr 2022 13:21:37 +0000 (09:21 -0400)]
watchfrr: Rename restart_phase_t to `enum restart_phase`

This will align with our coding standards.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd: use SSM check helper
David Lamparter [Thu, 7 Apr 2022 11:51:35 +0000 (13:51 +0200)]
pimd: use SSM check helper

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agolib, pimd: add a bunch of address helpers
David Lamparter [Thu, 7 Apr 2022 11:47:37 +0000 (13:47 +0200)]
lib, pimd: add a bunch of address helpers

Just simple helpers to get a scope value, never-forward, and is-SSM for
a given address.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #10927 from bobuhiro11/refactor_srv6_locator_chunks
Igor Ryzhov [Wed, 6 Apr 2022 18:36:39 +0000 (21:36 +0300)]
Merge pull request #10927 from bobuhiro11/refactor_srv6_locator_chunks

bgpd: refactor type of srv6_locator_chunks list

2 years agoMerge pull request #10971 from opensourcerouting/fix/rpki_nits
Donald Sharp [Wed, 6 Apr 2022 11:41:53 +0000 (07:41 -0400)]
Merge pull request #10971 from opensourcerouting/fix/rpki_nits

bgpd: RPKI memory leak

2 years agobgpd: Delay returning RPKI instance as running
Donatas Abraitis [Tue, 5 Apr 2022 13:54:19 +0000 (16:54 +0300)]
bgpd: Delay returning RPKI instance as running

Start a separate timer which does the sync with the RPKI manager until
returns the synced status.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Return enum RPKI_NOT_BEING_USED instead of 0
Donatas Abraitis [Tue, 5 Apr 2022 12:52:40 +0000 (15:52 +0300)]
bgpd: Return enum RPKI_NOT_BEING_USED instead of 0

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Reuse is_stopping() in RPKI code same as with is_running()
Donatas Abraitis [Tue, 5 Apr 2022 11:14:00 +0000 (14:14 +0300)]
bgpd: Reuse is_stopping() in RPKI code same as with is_running()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Reuse is_running() function in RPKI code for rtr_is_running
Donatas Abraitis [Tue, 5 Apr 2022 11:10:16 +0000 (14:10 +0300)]
bgpd: Reuse is_running() function in RPKI code for rtr_is_running

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #10973 from mobash-rasool/fixes
Donatas Abraitis [Wed, 6 Apr 2022 07:32:02 +0000 (10:32 +0300)]
Merge pull request #10973 from mobash-rasool/fixes

pimd: Remove pim_channel_oil_change_iif from header file

2 years agopimd: Remove pim_channel_oil_change_iif from header file
Mobashshera Rasool [Wed, 6 Apr 2022 04:54:01 +0000 (21:54 -0700)]
pimd: Remove pim_channel_oil_change_iif from header file

pim_channel_oil_change_iif is sitting idly in .h file with no
definition.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2 years agobgpd: refactor type of srv6_locator_chunks list
Nobuhiro MIKI [Wed, 6 Apr 2022 04:40:14 +0000 (13:40 +0900)]
bgpd: refactor type of srv6_locator_chunks list

Since additional information such as block_bits_length is needed to
generate SIDs properly, the type of elements in srv6_locator_chunks
list is extended from "struct prefix_ipv6 *" to
"struct srv6_locator_chunk *". Even in terms of variable name,
"struct srv6_locator_chunk *" is appropriate.

Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp>
2 years agoMerge pull request #10965 from opensourcerouting/fix/pim_igmp_group_delete
mobash-rasool [Tue, 5 Apr 2022 22:37:30 +0000 (04:07 +0530)]
Merge pull request #10965 from opensourcerouting/fix/pim_igmp_group_delete

pimd: Replace ALL_LIST_ELEMENTS_RO to ALL_LIST_ELEMENTS group_list it…

2 years agoMerge pull request #10966 from opensourcerouting/fix/memory_leak_rpki
Donald Sharp [Tue, 5 Apr 2022 22:27:52 +0000 (18:27 -0400)]
Merge pull request #10966 from opensourcerouting/fix/memory_leak_rpki

bgpd: RPKI changes

2 years agoMerge pull request #10365 from SaiGomathiN/ipv6-config-cmd
David Lamparter [Tue, 5 Apr 2022 19:07:15 +0000 (21:07 +0200)]
Merge pull request #10365 from SaiGomathiN/ipv6-config-cmd

2 years agoMerge pull request #10849 from anlancs/bgpd-cleanup-2
Russ White [Tue, 5 Apr 2022 15:40:12 +0000 (11:40 -0400)]
Merge pull request #10849 from anlancs/bgpd-cleanup-2

bgpd: remove unnecessary checkings for bgp_evpn_es_new()

2 years agoMerge pull request #10968 from opensourcerouting/fix/gr_ordering
Russ White [Tue, 5 Apr 2022 14:20:15 +0000 (10:20 -0400)]
Merge pull request #10968 from opensourcerouting/fix/gr_ordering

bgpd: Use proper debug msg for graceful restart commands

2 years agoMerge pull request #10928 from anlancs/zebra-cleanup-1
Donald Sharp [Tue, 5 Apr 2022 13:49:00 +0000 (09:49 -0400)]
Merge pull request #10928 from anlancs/zebra-cleanup-1

zebra: use "assert" instead of unnecessary check

2 years agoMerge pull request #10940 from opensourcerouting/pim-5549-clarify
Donald Sharp [Tue, 5 Apr 2022 13:43:39 +0000 (09:43 -0400)]
Merge pull request #10940 from opensourcerouting/pim-5549-clarify

pimd: clarify RFC5549 nexthop handling (& fix for pim6d)

2 years agoMerge pull request #10959 from patrasar/pim_coverity
Donald Sharp [Tue, 5 Apr 2022 13:38:42 +0000 (09:38 -0400)]
Merge pull request #10959 from patrasar/pim_coverity

pimd: Fixing pim coverity issues

2 years agoMerge pull request #10938 from anlancs/fix-zebra-vxlan-change-vrfid
Russ White [Tue, 5 Apr 2022 12:55:42 +0000 (08:55 -0400)]
Merge pull request #10938 from anlancs/fix-zebra-vxlan-change-vrfid

zebra: fix missing vrf change of l2vni on vxlan interface

2 years agoMerge pull request #10948 from anlancs/bgpd-cleanup-4
Russ White [Tue, 5 Apr 2022 12:54:00 +0000 (08:54 -0400)]
Merge pull request #10948 from anlancs/bgpd-cleanup-4

bgpd : use "assert" for one check on evpn-mh

2 years agobgpd: Use proper debug msg for graceful restart commands
Donatas Abraitis [Tue, 5 Apr 2022 10:57:35 +0000 (13:57 +0300)]
bgpd: Use proper debug msg for graceful restart commands

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #10960 from opensourcerouting/pim-unmacro-1
mobash-rasool [Tue, 5 Apr 2022 09:47:25 +0000 (15:17 +0530)]
Merge pull request #10960 from opensourcerouting/pim-unmacro-1

pimd: remove useless PIM_IF_* macros

2 years agobgpd: No need to check for NULL before calling XFREE() in RPKI code
Donatas Abraitis [Tue, 5 Apr 2022 08:12:22 +0000 (11:12 +0300)]
bgpd: No need to check for NULL before calling XFREE() in RPKI code

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Track RTRLib memory allocations separately
Donatas Abraitis [Tue, 5 Apr 2022 08:02:07 +0000 (11:02 +0300)]
bgpd: Track RTRLib memory allocations separately

With fast `rpki reset`, seems that RTRLib related memory allocations leak
the memory. Need to figure this out later.

```
$ vtysh -c 'show memory | include RPKI'
BGP RPKI Cache server         :       12 variable       576       12       576
BGP RPKI Cache server group   :        0     48           0        1        56
BGP RPKI RTRLib               :   849657 variable  34453096   849662  41293504

$ for x in $(seq 1 60); do vtysh -c 'con' -c 'rpki' -c 'rpki reset'; sleep 1; done

$ vtysh -c 'show memory | include RPKI'
BGP RPKI Cache server         :       12 variable       576       12       576
BGP RPKI Cache server group   :        0     48           0        1        56
BGP RPKI RTRLib               :   849699 variable  69490616   849701  76323832
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopimd: Replace ALL_LIST_ELEMENTS_RO to ALL_LIST_ELEMENTS group_list iteration
Donatas Abraitis [Tue, 5 Apr 2022 07:48:56 +0000 (10:48 +0300)]
pimd: Replace ALL_LIST_ELEMENTS_RO to ALL_LIST_ELEMENTS group_list iteration

To reproduce:
```
ip pim ssm prefix-list pim-ssm-group
ip prefix-list pim-ssm-group seq 10 permit 238.4.0.0/16 ge 32 le 32
```

Assert:
```
pimd[645545]: pimd/pim_igmp.c:148: igmp_source_forward_reevaluate_all(): assertion ((srcnode)->data != NULL) failed
PIM[645545]: Received signal 6 at 1649140750 (si_addr 0x6e0009d9a9, PC 0x7fe5e3f95ce1); aborting...
PIM[645545]: /usr/local/lib/libfrr.so.0(zlog_backtrace_sigsafe+0x5e) [0x7fe5e41f2d7e]
PIM[645545]: /usr/local/lib/libfrr.so.0(zlog_signal+0xe6) [0x7fe5e41f2f56]
PIM[645545]: /usr/local/lib/libfrr.so.0(+0xc9412) [0x7fe5e421d412]
PIM[645545]: /lib/x86_64-linux-gnu/libpthread.so.0(+0x14140) [0x7fe5e4133140]
PIM[645545]: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x141) [0x7fe5e3f95ce1]
PIM[645545]: /lib/x86_64-linux-gnu/libc.so.6(abort+0x123) [0x7fe5e3f7f537]
PIM[645545]: /usr/local/lib/libfrr.so.0(_zlog_assert_failed+0xd7) [0x7fe5e4246c37]
PIM[645545]: /usr/lib/frr/pimd(igmp_source_forward_reevaluate_all+0x230) [0x5638c65e3d90]
PIM[645545]: /usr/lib/frr/pimd(pim_prefix_list_update+0x53) [0x5638c65cbbf3]
PIM[645545]: /usr/local/lib/libfrr.so.0(prefix_list_entry_update_start+0x82) [0x7fe5e420a0a2]
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopim6d: Adding ipv6 mld watermark-warn CLI
Sai Gomathi N [Tue, 18 Jan 2022 15:39:01 +0000 (07:39 -0800)]
pim6d: Adding ipv6 mld watermark-warn CLI

Adding the config mode command

ipv6 mld watermark-warn <1-65535>
This command can be use to warn the user
when more than the desired limit of groups gets configured.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopimd: Moving the common function from pim_cmd.h file
Sai Gomathi N [Wed, 2 Mar 2022 14:40:19 +0000 (06:40 -0800)]
pimd: Moving the common function from pim_cmd.h file

Moving the PIM_DECLVAR_CONTEXT function to the
common file pim_cmd_common.h file

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "ipv6 mld last-member-query-interval" CLI
Sai Gomathi N [Tue, 18 Jan 2022 15:31:56 +0000 (07:31 -0800)]
pim6d: Adding "ipv6 mld last-member-query-interval" CLI

Adding the Interface level config command

ipv6 mld last-member-query-interval (1-65535)
This command can be use to tune the response time for group specific queries.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding ipv6 mld last-member-query-count CLI
Sai Gomathi N [Tue, 18 Jan 2022 15:24:11 +0000 (07:24 -0800)]
pim6d: Adding ipv6 mld last-member-query-count CLI

Adding the Interface level config command

ipv6 mld last-member-query-count (1-255)
This command can be use to tune the number of Multicast-Address- Specific Queries
sent before the router assumes there are no remaining listeners for an address on a link.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "ipv6 mld query-max-response-time" CLI
Sai Gomathi N [Tue, 18 Jan 2022 15:16:51 +0000 (07:16 -0800)]
pim6d: Adding "ipv6 mld query-max-response-time" CLI

Adding the Interface level config command

ipv6 mld query-max-response-time <1-65535>
This command can be use to tune the max response time for general queries.
The number of seconds represented by the [Query Response Interval] must be less than the [Query Interval]

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agoMerge pull request #10953 from leonshaw/fix/bgp-rm-leak
Donatas Abraitis [Tue, 5 Apr 2022 06:09:35 +0000 (09:09 +0300)]
Merge pull request #10953 from leonshaw/fix/bgp-rm-leak

bgpd: Fix memory leak in subgroup_announce_check

2 years agoMerge pull request #10946 from donaldsharp/pim_fhr_lhr_same_pimreg
Jafar Al-Gharaibeh [Mon, 4 Apr 2022 19:00:49 +0000 (14:00 -0500)]
Merge pull request #10946 from donaldsharp/pim_fhr_lhr_same_pimreg

pimd: Send immediate join( with possible SG RPT prune bit set

2 years agopim6d: fix mis-printed nexthop
David Lamparter [Thu, 31 Mar 2022 11:09:29 +0000 (13:09 +0200)]
pim6d: fix mis-printed nexthop

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agopimd, pim6d: clarify RFC5549 MRIB nexthop handling
David Lamparter [Thu, 10 Mar 2022 14:45:31 +0000 (15:45 +0100)]
pimd, pim6d: clarify RFC5549 MRIB nexthop handling

The entire `case NEXTHOP_TYPE_IPV6_IFINDEX:` block here was a bit of a
tripwire to stumble over, since there was no indication at all that this
concerns RFC5549 nexthop handling.  So it got mis-adapted for PIM IPv6
support.

Clarify this a whole bunch that this is for v4-over-v6 nexthop mangling,
and nothing else.

This should really also use neighbor's secondary address lists for the
lookup, but that is probably going to break compatibility with other
boxes that don't include v6 addrs in v4 hellos and needs further
machinery to do properly, so for now just leave a breadcrumb.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #10710 from SaiGomathiN/pimv6-showcli
David Lamparter [Mon, 4 Apr 2022 12:42:27 +0000 (14:42 +0200)]
Merge pull request #10710 from SaiGomathiN/pimv6-showcli

2 years agopimd: fix pim_instance NULL deference in zclient_lookup_read_pipe
sarita patra [Mon, 4 Apr 2022 10:55:23 +0000 (03:55 -0700)]
pimd: fix pim_instance NULL deference in zclient_lookup_read_pipe

Fixing the below coverity issue.
>>>     CID 1515546:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "NULL" "pim" when calling "zclient_lookup_nexthop_once".
391             zclient_lookup_nexthop_once(pim, nexthop_tab, 10, l);

Signed-off-by: sarita patra <saritap@vmware.com>
2 years agopimd: fix pim_instance NULL deference in pim_zebra_if_address_add
sarita patra [Mon, 4 Apr 2022 10:54:42 +0000 (03:54 -0700)]
pimd: fix pim_instance NULL deference in pim_zebra_if_address_add

Signed-off-by: sarita patra <saritap@vmware.com>
2 years agopimd: fix pim_instance NULL deference in pim_vxlan_mlag_update
sarita patra [Mon, 4 Apr 2022 10:53:36 +0000 (03:53 -0700)]
pimd: fix pim_instance NULL deference in pim_vxlan_mlag_update

Fixing the below coverity issue.
>>>     CID 1515545:    (NULL_RETURNS)
>>>     Dereferencing a pointer that might be "NULL" "pim" when calling "pim_vxlan_set_peerlink_rif".
902                     pim_vxlan_set_peerlink_rif(pim, NULL);

Signed-off-by: sarita patra <saritap@vmware.com>
2 years agopimd: remove useless PIM_IF_* macros
David Lamparter [Mon, 4 Apr 2022 12:00:59 +0000 (14:00 +0200)]
pimd: remove useless PIM_IF_* macros

The only function these macros have is to make the code confusing.
"PIM_IF_DO_PIM" sounds like it triggers some action, but it doesn't.

Replace with "bool" fields in struct pim_interface.

(Note: PIM_IF_*_IGMP_LISTEN_ALLROUTERS was always set, without any way
to unset it.  It is completely removed now and always enabled.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agopim6d: Adding show ipv6 pim nexthop and nexthop-lookup commands
Sai Gomathi N [Wed, 2 Mar 2022 10:33:49 +0000 (02:33 -0800)]
pim6d: Adding show ipv6 pim nexthop and nexthop-lookup commands

Adding new show commands to display pim nexthops and
pim nexthop lookups received from zebra.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "show ipv6 [vrf|vrf ALL] pim neighbor" command
Sai Gomathi N [Wed, 2 Mar 2022 09:22:13 +0000 (01:22 -0800)]
pim6d: Adding "show ipv6 [vrf|vrf ALL] pim neighbor" command

Adding new show CLI to display regarding pim neighbors.
Changing DEFUN to DEFPY for "show ip pim neighbor" command.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "show ipv6 pim local-membership"
Sai Gomathi N [Wed, 2 Mar 2022 06:15:32 +0000 (22:15 -0800)]
pim6d: Adding "show ipv6 pim local-membership"

Adding the new cli to display pim local membership information.
Changing DEFUN to DEPFY for "show ip pim local-membership"

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "show ipv6 pim jp-agg" command
Sai Gomathi N [Wed, 2 Mar 2022 05:13:01 +0000 (21:13 -0800)]
pim6d: Adding "show ipv6 pim jp-agg" command

Adding new show CLI to display pim join prune aggregate information.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "show ipv6 pim [vrf|vrf all] join" command
Sai Gomathi N [Wed, 2 Mar 2022 04:50:22 +0000 (20:50 -0800)]
pim6d: Adding "show ipv6 pim [vrf|vrf all] join" command

Adding show ipv6 pim join and show ipv6 pim vrf all join
CLIs to display pim join related information and
formatted the json output for "show ip pim join" and
"show ip pim vrf all join" commands.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "show ipv6 pim [vrf|vrf all] interface" command
Sai Gomathi N [Mon, 28 Feb 2022 10:28:14 +0000 (02:28 -0800)]
pim6d: Adding "show ipv6 pim [vrf|vrf all] interface" command

Adding show ipv6 pim interface and show ipv6 pim vrf all interface
CLIs to display pim enabled interface informations and
formatted the json output for "show ip pim interface" and
"show ip pim vrf all interface" commands.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
2 years agopim6d: Adding "show ipv6 pim channel" command
Sai Gomathi N [Fri, 25 Feb 2022 09:47:35 +0000 (01:47 -0800)]
pim6d: Adding "show ipv6 pim channel" command

Adding new CLI to display pim channel informations.
Changing DEFUN to DEPFY for ""show ip pim channel"

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, 8 Feb 2022 17:14:26 +0000 (09:14 -0800)]
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 agoMerge pull request #10831 from anlancs/doc-mh-esi-type0
Donatas Abraitis [Mon, 4 Apr 2022 05:47:01 +0000 (08:47 +0300)]
Merge pull request #10831 from anlancs/doc-mh-esi-type0

doc: add mh type-0 ESI support

2 years agoMerge pull request #10954 from donaldsharp/speell
Jafar Al-Gharaibeh [Sun, 3 Apr 2022 00:08:30 +0000 (19:08 -0500)]
Merge pull request #10954 from donaldsharp/speell

Speell

2 years agolib, yang: Fix spellinig of miliseconds
Donald Sharp [Sat, 2 Apr 2022 11:48:18 +0000 (07:48 -0400)]
lib, yang: Fix spellinig of miliseconds

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years ago*: Fix spelling of Inteface
Donald Sharp [Sat, 2 Apr 2022 11:38:11 +0000 (07:38 -0400)]
*: Fix spelling of Inteface

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years ago*: Fix spelling of ojbect
Donald Sharp [Sat, 2 Apr 2022 11:33:53 +0000 (07:33 -0400)]
*: Fix spelling of ojbect

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years ago*: Fix spelling of wether
Donald Sharp [Sat, 2 Apr 2022 11:32:57 +0000 (07:32 -0400)]
*: Fix spelling of wether

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Fix spelling of disbale
Donald Sharp [Sat, 2 Apr 2022 11:31:41 +0000 (07:31 -0400)]
tests: Fix spelling of disbale

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd, zebra: Fix spelling of fowarding
Donald Sharp [Sat, 2 Apr 2022 11:29:22 +0000 (07:29 -0400)]
pimd, zebra: Fix spelling of fowarding

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Fix spelliing of serach
Donald Sharp [Sat, 2 Apr 2022 11:28:40 +0000 (07:28 -0400)]
bgpd: Fix spelliing of serach

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years ago*: Fix spelling of Gracefull
Donald Sharp [Sat, 2 Apr 2022 11:27:28 +0000 (07:27 -0400)]
*: Fix spelling of Gracefull

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd, vtysh: Fix spelliing of explicitely
Donald Sharp [Sat, 2 Apr 2022 11:25:18 +0000 (07:25 -0400)]
bgpd, vtysh: Fix spelliing of explicitely

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Fix spelling of neigbors
Donald Sharp [Sat, 2 Apr 2022 11:24:03 +0000 (07:24 -0400)]
tests: Fix spelling of neigbors

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agodoc: add mh type-0 ESI support
anlan_cs [Mon, 21 Mar 2022 01:36:05 +0000 (21:36 -0400)]
doc: add mh type-0 ESI support

Add type-0 ESI support for `evpn mh es-id` command.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #10925 from qlyoung/fix-grpc-wants-installed-frr
Christian Hopps [Sat, 2 Apr 2022 09:22:53 +0000 (05:22 -0400)]
Merge pull request #10925 from qlyoung/fix-grpc-wants-installed-frr

tests: skip grpc test if frr not installed

2 years agobgpd: Fix memory leak in subgroup_announce_check
Xiao Liang [Sat, 2 Apr 2022 09:00:26 +0000 (17:00 +0800)]
bgpd: Fix memory leak in subgroup_announce_check

Flush dummy attr to release objects allocated by route-map.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
2 years agoMerge pull request #10875 from anlancs/doc-mh-esi-1
Donatas Abraitis [Sat, 2 Apr 2022 08:54:51 +0000 (11:54 +0300)]
Merge pull request #10875 from anlancs/doc-mh-esi-1

doc: two minor changes for evpn-mh

2 years ago*: Fix spelling of Following
Donald Sharp [Fri, 1 Apr 2022 20:27:55 +0000 (16:27 -0400)]
*: Fix spelling of Following

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Fix spelling of daemons
Donald Sharp [Fri, 1 Apr 2022 20:26:38 +0000 (16:26 -0400)]
tests: Fix spelling of daemons

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Fix spelling of kernel
Donald Sharp [Fri, 1 Apr 2022 20:25:19 +0000 (16:25 -0400)]
tests: Fix spelling of kernel

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Fix perticular spelling
Donald Sharp [Fri, 1 Apr 2022 20:23:27 +0000 (16:23 -0400)]
tests: Fix perticular spelling

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10950 from donaldsharp/uninit_test
Donatas Abraitis [Fri, 1 Apr 2022 19:26:53 +0000 (22:26 +0300)]
Merge pull request #10950 from donaldsharp/uninit_test

tests: Fix uninitialized usage of variables in tests

2 years agoMerge pull request #10942 from opensourcerouting/feature/printfrr_extension_for_peer_...
Donald Sharp [Fri, 1 Apr 2022 15:28:47 +0000 (11:28 -0400)]
Merge pull request #10942 from opensourcerouting/feature/printfrr_extension_for_peer_hostname

bgpd: Add `%pBP` printfrr() extension to print `IP(hostname)` for BGP peer

2 years agoMerge pull request #10944 from pguibert6WIND/isis_misc_fixes
Donald Sharp [Fri, 1 Apr 2022 13:17:05 +0000 (09:17 -0400)]
Merge pull request #10944 from pguibert6WIND/isis_misc_fixes

Isis misc fixes

2 years agoMerge pull request #10945 from taspelund/ra_log_gooder
mobash-rasool [Fri, 1 Apr 2022 13:16:44 +0000 (18:46 +0530)]
Merge pull request #10945 from taspelund/ra_log_gooder

zebra: don't send RAs w/o LLv6 or on bridge-ports

2 years agotests: Fix uninitialized usage of variables in tests
Donald Sharp [Fri, 1 Apr 2022 13:14:11 +0000 (09:14 -0400)]
tests: Fix uninitialized usage of variables in tests

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agopimd: Send immediate join( with possible SG RPT prune bit set
Donald Sharp [Thu, 31 Mar 2022 17:07:06 +0000 (13:07 -0400)]
pimd: Send immediate join( with possible SG RPT prune bit set

When pimd has this setup:

src ----- rtr ------ receiver
           |
          rp

And the receiver sends a *,G join to rtr.  When the
src starts sending a S,G, rtr can wait up to one join/prune
interval before sending a S,G rpt prune.  This interval
causes the pimreg device to be in the S,G OIL as that the
RP does not know to prune this leg off.

before:

Timestamp: Thu Mar 31 10:15:18 2022 288767 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:18 2022 288777 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:18 2022 288789 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: pimreg rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 10:15:49 2022 324995 usec
[MROUTE](10.103.0.5,239.0.0.4)           Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
<31 seconds>

After:

Timestamp: Thu Mar 31 12:56:15 2022 501921 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: pimreg rtr-lan  State: resolved Table: default
Timestamp: Thu Mar 31 12:56:15 2022 501930 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: pimreg rtr-lan rtr-lan-1  State: resolved Table: default
Timestamp: Thu Mar 31 12:56:15 2022 502181 usec
(10.103.0.5,239.0.0.27)          Iif: rtr-lan_src Oifs: rtr-lan rtr-lan-1  State: resolved Table: default
<sub second>

What is actually happening:

rtr receives a *,G igmp join, sends a *,G join towards the rp
rtr receives a S,G packet <WRVIFWHOLE>
creates the S,G upstream, sends the register packet to the rp
the rp sees that it still has downstream interest so it forwards the packet on
After (up to 60 seconds ) the rtr, sends the normally scheduled join for
the G and sends the S,GRPT prune as part of it.

What is being done to fix it:

In wrvifwhole handling, when pimd detects that this is the FHR
and is not the RP *and* the incoming interface for the *,G
is different than the incomding interface for the S,G immediately
send a single join packet for the G( which will have the S,G RPT
prune in it ).  Only do this on the first time receiving the
WRVIFWHOLE.

Ticket: #2755650
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agotests: Reduce some pim test timings to more manageable levels
Donald Sharp [Fri, 1 Apr 2022 12:47:38 +0000 (08:47 -0400)]
tests: Reduce some pim test timings to more manageable levels

a) Remove the retry mechanism to continue looking for 75%
of the time for pim code.

   This alone saves a bunch of time in tests that use lib/pim.py
   Effectively all the times given for retry are already long
   enough.  Additionally some tests are gathering data with
   the expectation that they will not find data so the entire
   time is being taken up in retry's.  Extending the retry
   mechanism makes this even worse.  This is especially bad
   for pim in that keep alive timers are counting down and
   state can be removed due to excessive time waiting.

b) Reduce verify verify_multicast_traffic from 40 seconds
to 20 seconds to gather traffic data.

   A bunch of tests are doing this:
   a) gather pre test start traffic data( taking about 70
   seconds to run, because a bunch of time it was looking
   for data that does not exist yet)
   b) run a change to introduce a different traffic flow
   c) gather post test traffic data ( taking about 70
   seconds to run )

   Why does this matter?  Tests were iterating through
   all the different routers looking for traffic flow
   as well as different mroute state.  This is against
   the keepalive timer of 210 seconds.  It does not take
   long before the stream can be removed and the test is
   still looking for data that is no longer there due
   to state timeout.

   The multicast_pim_sm_topo3/test_multicast_pim_sm_topo3.py
   test reduced run time from 398 seconds to 297 seconds.
   Greatly reducing keepalive timeout problems.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10947 from donaldsharp/isis_crash
Donatas Abraitis [Fri, 1 Apr 2022 07:29:17 +0000 (10:29 +0300)]
Merge pull request #10947 from donaldsharp/isis_crash

isisd, lib, ospfd, pathd: Null out free'd pointer

2 years agobgpd: use "assert" for one check on evpn-mh
anlan_cs [Fri, 1 Apr 2022 06:22:24 +0000 (02:22 -0400)]
bgpd: use "assert" for one check on evpn-mh

"no ead-es-route-target export RT":
Since existance is already checked in `bgp_evpn_ead_es_rt_cmd`
with `bgp_evpn_rt_matches_existing()`, there MUST be a deleting
node in evpn's `bgp_mh_info->ead_es_export_rtl` list.

Just modify the check for deleting node to an `assert`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agodoc: two minor changes for evpn-mh
anlan_cs [Fri, 25 Mar 2022 05:51:21 +0000 (01:51 -0400)]
doc: two minor changes for evpn-mh

Correct one word - `EAD-per-ES`, and remove one unuseful `index::` line.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoisisd, lib, ospfd, pathd: Null out free'd pointer
Donald Sharp [Thu, 31 Mar 2022 19:56:24 +0000 (15:56 -0400)]
isisd, lib, ospfd, pathd: Null out free'd pointer

The commands:

router isis 1
  mpls-te on
  no mpls-te on
  mpls-te on
  no mpls-te on
!

Will crash

Valgrind gives us this:
==652336== Invalid read of size 8
==652336==    at 0x49AB25C: typed_rb_min (typerb.c:495)
==652336==    by 0x4943B54: vertices_const_first (link_state.h:424)
==652336==    by 0x493DCE4: vertices_first (link_state.h:424)
==652336==    by 0x493DADC: ls_ted_del_all (link_state.c:1010)
==652336==    by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871)
==652336==    by 0x495BE20: nb_callback_destroy (northbound.c:1131)
==652336==    by 0x495B5AC: nb_callback_configuration (northbound.c:1356)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==  Address 0x6f928e0 is 272 bytes inside a block of size 320 free'd
==652336==    at 0x48399AB: free (vg_replace_malloc.c:538)
==652336==    by 0x494BA30: qfree (memory.c:141)
==652336==    by 0x493D99D: ls_ted_del (link_state.c:997)
==652336==    by 0x493DC20: ls_ted_del_all (link_state.c:1018)
==652336==    by 0x47E77B: isis_instance_mpls_te_destroy (isis_nb_config.c:1871)
==652336==    by 0x495BE20: nb_callback_destroy (northbound.c:1131)
==652336==    by 0x495B5AC: nb_callback_configuration (northbound.c:1356)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==  Block was alloc'd at
==652336==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==652336==    by 0x494B6F8: qcalloc (memory.c:116)
==652336==    by 0x493D7D2: ls_ted_new (link_state.c:967)
==652336==    by 0x47E4DD: isis_instance_mpls_te_create (isis_nb_config.c:1832)
==652336==    by 0x495BB29: nb_callback_create (northbound.c:1034)
==652336==    by 0x495B547: nb_callback_configuration (northbound.c:1348)
==652336==    by 0x4958127: nb_transaction_process (northbound.c:1473)
==652336==    by 0x4958275: nb_candidate_commit_apply (northbound.c:906)
==652336==    by 0x49585B8: nb_candidate_commit (northbound.c:938)
==652336==    by 0x495CE4A: nb_cli_classic_commit (northbound_cli.c:64)
==652336==    by 0x495D6C5: nb_cli_apply_changes_internal (northbound_cli.c:250)
==652336==    by 0x495D23E: nb_cli_apply_changes (northbound_cli.c:268)

Let's null out the pointer.  After this change.  Valgrind no longer reports issues
and isisd no longer crashes.

Fixes: #10939
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #10943 from opensourcerouting/build-ldflags-g
Mark Stapp [Thu, 31 Mar 2022 19:26:13 +0000 (15:26 -0400)]
Merge pull request #10943 from opensourcerouting/build-ldflags-g

build: stick `-g` into LDFLAGS

2 years agobgpd: Add `%pBP` printfrr() extension to print `IP(hostname)` for BGP peer
Donatas Abraitis [Thu, 31 Mar 2022 12:59:06 +0000 (15:59 +0300)]
bgpd: Add `%pBP` printfrr() extension to print `IP(hostname)` for BGP peer

Replace existing bgp_peer_hostname() function.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #10916 from rampxxxx/feat_frr_ubi8_docker
Donatas Abraitis [Thu, 31 Mar 2022 18:18:30 +0000 (21:18 +0300)]
Merge pull request #10916 from rampxxxx/feat_frr_ubi8_docker

docker: Adding support for ubi-8 images.

2 years agoMerge pull request #10917 from rampxxxx/fix_fxx_centos8_docker
Donatas Abraitis [Thu, 31 Mar 2022 18:13:43 +0000 (21:13 +0300)]
Merge pull request #10917 from rampxxxx/fix_fxx_centos8_docker

docker: Centos-8 dockerfile fix.

2 years agozebra: don't send RAs w/o LLv6 or on bridge-ports
Trey Aspelund [Thu, 31 Mar 2022 16:35:18 +0000 (16:35 +0000)]
zebra: don't send RAs w/o LLv6 or on bridge-ports

It's confusing for a user to see 'Tx RA failed' in the logs when
they've enabled RAs (either through interface config or BGP unnumbered)
on an interface that can't send them.  Let's avoid sending RAs on
interfaces that are bridge_slaves or don't have a link-local address,
since they are the two of the most common reasons for RA Tx failures.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
2 years agobuild: stick `-g` into LDFLAGS
David Lamparter [Thu, 31 Mar 2022 15:35:32 +0000 (17:35 +0200)]
build: stick `-g` into LDFLAGS

Without `-g` in LDFLAGS we won't get debug info even if it's enabled in
CFLAGS.  Since we're controlling debug info through CFLAGS, there's no
harm in always having `-g` in LDFLAGS.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agoMerge pull request #10937 from opensourcerouting/fix/bgpd_rmap_match_script
Igor Ryzhov [Thu, 31 Mar 2022 12:14:20 +0000 (15:14 +0300)]
Merge pull request #10937 from opensourcerouting/fix/bgpd_rmap_match_script

bgpd: Show `match script SCRIPT` in running config

2 years agoMerge pull request #10915 from opensourcerouting/printfrr-pzn
Mark Stapp [Thu, 31 Mar 2022 11:22:14 +0000 (07:22 -0400)]
Merge pull request #10915 from opensourcerouting/printfrr-pzn

doc/developer: daemon-specific printfrr formats

2 years agodocker: Adding support for ubi-8 images.
Javier Garcia [Thu, 10 Mar 2022 15:32:29 +0000 (16:32 +0100)]
docker: Adding support for ubi-8 images.

- Create frr docker container based in new Red Hat Universal Base
  Images.

- This build a docker container based in ubi-8.
- Need to get the devel packages from centos-8 stream repos.
- Centos-8 stream repos added : base, appstream, powertools and epel

Signed-off-by: Javier Garcia <javier.martin.garcia@ibm.com>
2 years agoisisd: fix typo in show debugging
Philippe Guibert [Thu, 31 Mar 2022 09:19:26 +0000 (11:19 +0200)]
isisd: fix typo in show debugging

fix typo in show debugging.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2 years agoisisd: prevent from accessing a non initialised pointer
Philippe Guibert [Thu, 31 Mar 2022 09:18:45 +0000 (11:18 +0200)]
isisd: prevent from accessing a non initialised pointer

When using bfd on a single level, one may access a null pointer
list. Prevent from using it.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>