]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
21 months agopimd, pim6d: Using ttable for displaying "show ip/ipv6 pim neighbor" command output.
Abhishek N R [Fri, 16 Sep 2022 17:11:09 +0000 (10:11 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim neighbor" command output.

Before:

frr# show ipv6 pim neighbor
Interface                Neighbor    Uptime  Holdtime  DR Pri
ens192            fe80::250:56ff:feb7:38de  00:10:47  00:01:28       1
ens224            fe80::250:56ff:feb7:4bad  00:10:47  00:01:28       1

After:

frr# sh ipv6 pim neighbor
 Interface  Neighbor                  Uptime    Holdtime  DR Pri
 ens192     fe80::250:56ff:feb7:38de  00:00:12  00:01:32  1
 ens224     fe80::250:56ff:feb7:4bad  00:00:12  00:01:32  1

Signed-off-by: Abhishek N R <abnr@vmware.com>
21 months agopimd, pim6d: Using ttable for displaying "show ip/ipv6 pim join" command output
Abhishek N R [Fri, 16 Sep 2022 16:49:22 +0000 (09:49 -0700)]
pimd, pim6d: Using ttable for displaying "show ip/ipv6 pim join" command output

Before:
frr# sh ipv6 pim join
Interface        Address         Source          Group           State      Uptime   Expire Prune
ens224           fe80::250:56ff:feb7:9091 *               ff08::1         JOIN       00:16:31 03:28  --:--

After:
frr# show ipv6 pim join
 Interface  Address                   Source  Group    State  Uptime    Expire  Prune
 ens224     fe80::250:56ff:feb7:9091  *       ff08::1  JOIN   00:00:51  03:27   --:--

Signed-off-by: Abhishek N R <abnr@vmware.com>
21 months agoMerge pull request #11955 from mobash-rasool/fixes3
Donatas Abraitis [Sat, 17 Sep 2022 20:30:07 +0000 (23:30 +0300)]
Merge pull request #11955 from mobash-rasool/fixes3

pim6d: Fixing coverity issues for pim6_mld.c

21 months agoMerge pull request #11900 from patrasar/pimv6_lmqt
Donatas Abraitis [Fri, 16 Sep 2022 10:51:38 +0000 (03:51 -0700)]
Merge pull request #11900 from patrasar/pimv6_lmqt

pim6d: Update last_member_query_interval and last_member_query_count

21 months agopim6d: Fixing coverity issues for pim6_mld.c
Mobashshera Rasool [Fri, 16 Sep 2022 10:11:35 +0000 (03:11 -0700)]
pim6d: Fixing coverity issues for pim6_mld.c

CID 1519843 (#2 of 2): Uninitialized scalar variable (UNINIT)
43. uninit_use_in_call: Using uninitialized value pkt_src->sin6_addr when calling gm_rx_process

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
21 months agoMerge pull request #11949 from donaldsharp/plist_deletion_failure
Donatas Abraitis [Thu, 15 Sep 2022 18:32:37 +0000 (11:32 -0700)]
Merge pull request #11949 from donaldsharp/plist_deletion_failure

lib: Fix skip of every other plist deletion

21 months agoMerge pull request #11948 from mobash-rasool/fixes3
Donald Sharp [Thu, 15 Sep 2022 12:04:57 +0000 (08:04 -0400)]
Merge pull request #11948 from mobash-rasool/fixes3

pimd: Fix memleak in bfd profile

21 months agolib: Fix skip of every other plist deletion
Donald Sharp [Wed, 14 Sep 2022 17:48:31 +0000 (13:48 -0400)]
lib: Fix skip of every other plist deletion

When bulk deleting prefix lists on shutdown the code
was calling plist_delete, which removed the item
from the master->str list, and then popping the next
item on the list and just dropping it on the floor.
The pop is not needed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
21 months agopimd: Fix memleak in bfd profile
Mobashshera Rasool [Wed, 14 Sep 2022 17:34:10 +0000 (10:34 -0700)]
pimd: Fix memleak in bfd profile

In function pim_if_delete, pim_ifp->bfd_config.profile needs to be
freed.
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
21 months agoMerge pull request #11946 from AbhishekNR/debug_igmp_gm
Donald Sharp [Wed, 14 Sep 2022 13:40:25 +0000 (09:40 -0400)]
Merge pull request #11946 from AbhishekNR/debug_igmp_gm

pimd, pim6d: Changing IGMP to GM in debug macros.

21 months agopimd, pim6d: Changing IGMP to GM in debug macros.
Abhishek N R [Wed, 14 Sep 2022 06:29:33 +0000 (23:29 -0700)]
pimd, pim6d: Changing IGMP to GM in debug macros.

Changed PIM_DEBUG_IGMP_TRACE to PIM_DEBUG_GM_TRACE and
PIM_DEBUG_IGMP_TRACE_DETAIL to PIM_DEBUG_GM_TRACE_DETAIL.
Hence, these macros can be used for both v6 and v4.

Issue: #11895

Co-authored-by: Sai Gomathi N <nsaigomathi@vmware.com>
Signed-off-by: Abhishek N R <abnr@vmware.com>
21 months agoMerge pull request #11899 from opensourcerouting/feature/route_validation_extended_co...
Russ White [Tue, 13 Sep 2022 15:30:54 +0000 (11:30 -0400)]
Merge pull request #11899 from opensourcerouting/feature/route_validation_extended_community

bgpd: Implement Origin Validation State via extended communities

21 months agoMerge pull request #11926 from mjstapp/fix_bgp_io_race
Donatas Abraitis [Mon, 12 Sep 2022 16:24:18 +0000 (18:24 +0200)]
Merge pull request #11926 from mjstapp/fix_bgp_io_race

bgpd: avoid notify race between io and main pthreads

21 months agoMerge pull request #11868 from LabNConsulting/ziemba/bgp-labelpool-performance
Donald Sharp [Mon, 12 Sep 2022 14:45:43 +0000 (10:45 -0400)]
Merge pull request #11868 from LabNConsulting/ziemba/bgp-labelpool-performance

bgpd: improve labelpool performance at scale

21 months agoMerge pull request #11923 from opensourcerouting/fix/aggregate-address-matching-MED
Donald Sharp [Mon, 12 Sep 2022 14:31:01 +0000 (10:31 -0400)]
Merge pull request #11923 from opensourcerouting/fix/aggregate-address-matching-MED

bgpd: Fix aggregate-address summary-only matching-MED-only

21 months agoMerge pull request #11930 from opensourcerouting/fix/bgp_remove_private_as_test
Donald Sharp [Mon, 12 Sep 2022 13:56:59 +0000 (09:56 -0400)]
Merge pull request #11930 from opensourcerouting/fix/bgp_remove_private_as_test

tests: Validate the routes using polling for bgp_remove_private_as

21 months agoMerge pull request #11929 from opensourcerouting/fix/memory_leaks
Donald Sharp [Mon, 12 Sep 2022 13:56:01 +0000 (09:56 -0400)]
Merge pull request #11929 from opensourcerouting/fix/memory_leaks

bgpd: Fix memory leak for `set as-path replace` route-map command

21 months agoMerge pull request #11932 from opensourcerouting/fix/memory_leak_bgp_soo_ecommunity_dup
Donald Sharp [Mon, 12 Sep 2022 13:55:14 +0000 (09:55 -0400)]
Merge pull request #11932 from opensourcerouting/fix/memory_leak_bgp_soo_ecommunity_dup

bgpd: Fix memory leak for `conf_copy()` - SoO ecommunity

21 months agoMerge pull request #11928 from opensourcerouting/fix/memory_leak_bgp_soo
Donald Sharp [Mon, 12 Sep 2022 13:54:53 +0000 (09:54 -0400)]
Merge pull request #11928 from opensourcerouting/fix/memory_leak_bgp_soo

bgpd: Fix memory leak for `as-override`

21 months agoMerge pull request #11933 from opensourcerouting/fix/nits
Donald Sharp [Mon, 12 Sep 2022 13:54:07 +0000 (09:54 -0400)]
Merge pull request #11933 from opensourcerouting/fix/nits

bgpd, lib: Random cleanup

21 months agoMerge pull request #11934 from sri-mohan1/sri-eigrp-dbg1
Donald Sharp [Mon, 12 Sep 2022 13:53:31 +0000 (09:53 -0400)]
Merge pull request #11934 from sri-mohan1/sri-eigrp-dbg1

eigrpd: changes for code maintainability

21 months agoeigrpd: changes for code maintainability
sri-mohan1 [Mon, 12 Sep 2022 07:17:01 +0000 (12:47 +0530)]
eigrpd: changes for code maintainability

these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
21 months agobgpd: Thread is already done, drop useless assignment t_rmap_update to NULL
Donatas Abraitis [Tue, 6 Sep 2022 14:25:11 +0000 (17:25 +0300)]
bgpd: Thread is already done, drop useless assignment t_rmap_update to NULL

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agolib: Replace route_map_clear_updated to void
Donatas Abraitis [Tue, 6 Sep 2022 14:21:43 +0000 (17:21 +0300)]
lib: Replace route_map_clear_updated to void

Return status not used at all.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agoMerge pull request #11903 from sri-mohan1/sri-bfd-dbg1
Donatas Abraitis [Sun, 11 Sep 2022 03:23:55 +0000 (05:23 +0200)]
Merge pull request #11903 from sri-mohan1/sri-bfd-dbg1

bfd: changes for code maintainability

21 months agobgpd: Fix memory leak for `conf_copy()` - SoO ecommunity
Donatas Abraitis [Fri, 9 Sep 2022 23:28:07 +0000 (02:28 +0300)]
bgpd: Fix memory leak for `conf_copy()` - SoO ecommunity

==1179738== 48 (40 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 13 of 29
==1179738==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==1179738==    by 0x493C8D5: qcalloc (memory.c:116)
==1179738==    by 0x208F0C: ecommunity_dup (bgp_ecommunity.c:267)
==1179738==    by 0x2B300C: conf_copy (bgp_updgrp.c:170)
==1179738==    by 0x2B35BF: peer2_updgrp_copy (bgp_updgrp.c:277)
==1179738==    by 0x2B5189: update_group_find (bgp_updgrp.c:826)
==1179738==    by 0x2B70D0: update_group_adjust_peer (bgp_updgrp.c:1769)
==1179738==    by 0x23DB7D: update_group_adjust_peer_afs (bgp_updgrp.h:519)
==1179738==    by 0x243B21: bgp_establish (bgp_fsm.c:2129)
==1179738==    by 0x244B94: bgp_event_update (bgp_fsm.c:2597)
==1179738==    by 0x26B0E6: bgp_process_packet (bgp_packet.c:2895)
==1179738==    by 0x498F5FD: thread_call (thread.c:2008)
==1179738==    by 0x49253DA: frr_run (libfrr.c:1198)
==1179738==    by 0x1EEC38: main (bgp_main.c:520)

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Fix memory leak for `as-override`
Donatas Abraitis [Fri, 9 Sep 2022 21:52:17 +0000 (00:52 +0300)]
bgpd: Fix memory leak for `as-override`

==536197== 400 (160 direct, 240 indirect) bytes in 4 blocks are definitely lost in loss record 19 of 21
==536197==    at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==536197==    by 0x491C753: qcalloc (memory.c:116)
==536197==    by 0x303FA9: aspath_dup (bgp_aspath.c:698)
==536197==    by 0x304B2A: aspath_replace_specific_asn (bgp_aspath.c:1219)
==536197==    by 0x256840: bgp_peer_as_override (bgp_route.c:1781)
==536197==    by 0x256840: subgroup_announce_check (bgp_route.c:2216)
==536197==    by 0x258345: subgroup_process_announce_selected (bgp_route.c:2804)
==536197==    by 0x27F2CA: group_announce_route_walkcb (bgp_updgrp_adv.c:199)
==536197==    by 0x4905A51: hash_walk (hash.c:285)
==536197==    by 0x27E8D1: update_group_af_walk (bgp_updgrp.c:1866)
==536197==    by 0x2809D3: group_announce_route (bgp_updgrp_adv.c:1022)
==536197==    by 0x257DC4: bgp_process_main_one (bgp_route.c:3189)
==536197==    by 0x257DC4: bgp_process_main_one (bgp_route.c:2975)
==536197==    by 0x2581F7: bgp_process_wq (bgp_route.c:3330)
==536197==    by 0x4961787: work_queue_run (workqueue.c:285)
==536197==    by 0x4957745: thread_call (thread.c:2008)
==536197==    by 0x4910B77: frr_run (libfrr.c:1198)
==536197==    by 0x1ED6AC: main (bgp_main.c:520)

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agotests: Validate the routes using polling for bgp_remove_private_as
Donatas Abraitis [Sat, 10 Sep 2022 03:51:25 +0000 (06:51 +0300)]
tests: Validate the routes using polling for bgp_remove_private_as

Do not fail at the first shot.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Fix memory leak for `set as-path replace` route-map command
Donatas Abraitis [Fri, 9 Sep 2022 20:26:50 +0000 (23:26 +0300)]
bgpd: Fix memory leak for `set as-path replace` route-map command

==1174993== 252 (120 direct, 132 indirect) bytes in 3 blocks are definitely lost in loss record 77 of 100
==1174993==    at 0x483AB65: calloc (vg_replace_malloc.c:760)
==1174993==    by 0x493C8D5: qcalloc (memory.c:116)
==1174993==    by 0x378E38: aspath_dup (bgp_aspath.c:698)
==1174993==    by 0x2A39E2: route_set_aspath_replace (bgp_routemap.c:2259)
==1174993==    by 0x4965C71: route_map_apply_ext (routemap.c:2664)
==1174993==    by 0x27BCC8: bgp_input_modifier (bgp_route.c:1657)
==1174993==    by 0x281AB9: bgp_update (bgp_route.c:3992)
==1174993==    by 0x286368: bgp_nlri_parse_ip (bgp_route.c:5890)
==1174993==    by 0x264D20: bgp_nlri_parse (bgp_packet.c:347)
==1174993==    by 0x2682FE: bgp_update_receive (bgp_packet.c:1921)
==1174993==    by 0x26AA67: bgp_process_packet (bgp_packet.c:2822)
==1174993==    by 0x498F5FD: thread_call (thread.c:2008)
==1174993==    by 0x49253DA: frr_run (libfrr.c:1198)
==1174993==    by 0x1EEC38: main (bgp_main.c:520)

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agoMerge pull request #11922 from anlancs/fix/zebra-broken-evpn
Donald Sharp [Fri, 9 Sep 2022 11:58:29 +0000 (07:58 -0400)]
Merge pull request #11922 from anlancs/fix/zebra-broken-evpn

zebra: fix broken evpn

21 months agoMerge pull request #11909 from opensourcerouting/fix/a_couple_nits
Donald Sharp [Fri, 9 Sep 2022 11:55:13 +0000 (07:55 -0400)]
Merge pull request #11909 from opensourcerouting/fix/a_couple_nits

bgpd: bgp_dest_unlock_node fixes

21 months agobgpd: avoid notify race between io and main pthreads
Mark Stapp [Thu, 8 Sep 2022 20:14:36 +0000 (16:14 -0400)]
bgpd: avoid notify race between io and main pthreads

The "bgp_notify_" apis in bgp_packet.c generate a notification
to a peer, usually during error handling. The io pthread wants
to send notifications in a couple of cases during early
received-packet validation - but the existing api interacts
with the peer struct itself, and that's not safe.

Add a new api for use by the io pthread, and adjust the main
notify api so that it can avoid touching the peer struct.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
21 months agoMerge pull request #11896 from AbhishekNR/issue_11891
Donatas Abraitis [Thu, 8 Sep 2022 14:35:44 +0000 (16:35 +0200)]
Merge pull request #11896 from AbhishekNR/issue_11891

pim6d: Adding additional details for "show ipv6 mld interface [ifname] json" command.

21 months agoMerge pull request #11887 from SaiGomathiN/igmptogm
Donatas Abraitis [Thu, 8 Sep 2022 14:34:26 +0000 (16:34 +0200)]
Merge pull request #11887 from SaiGomathiN/igmptogm

pimd, pim6d: Changing IGMP to GM in debug macros

21 months agozebra: fix broken evpn
anlan_cs [Tue, 6 Sep 2022 05:34:11 +0000 (01:34 -0400)]
zebra: fix broken evpn

To resolve link dependencies of unordered interfaces, the commit
`520ebf72b27c2462ce8b0dc5a1d4cb83956df69c` has separated assignment of
`zif->link_ifindex` and `zif->link` from `netlink_interface()` during startup.
The fixup stage of `zebra_if_update_all_links()` goes into the last of
`interface_lookup_netlink()`, it can't be executed in the case of error in
above `netlink_parse_info()`s.

`RTM_GETTUNNEL` is not supported in linux kernel until 5.18, so
`netlink_parse_info()` will throw error with the previous versions.

If two conditions are met, (it is a common case)
1. Interfaces are created before frr restart/start
2. Linux kernel version < 5.18

the link dependencies will not be done, then evpn feature will be broken.
IMO we should just ignore this error.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
21 months agoMerge pull request #11913 from mjstapp/fix_rcu_bgp_keepalive
Jafar Al-Gharaibeh [Thu, 8 Sep 2022 05:22:28 +0000 (00:22 -0500)]
Merge pull request #11913 from mjstapp/fix_rcu_bgp_keepalive

bgpd: release rcu lock in bgp keepalive pthread

21 months agoMerge pull request #11915 from opensourcerouting/topotests-collect
Donald Sharp [Wed, 7 Sep 2022 16:59:26 +0000 (12:59 -0400)]
Merge pull request #11915 from opensourcerouting/topotests-collect

topotests: ignore env for pytest --collect-only

21 months agoMerge pull request #11916 from leonshaw/fix/conf-vrf-netns
Donald Sharp [Wed, 7 Sep 2022 16:58:39 +0000 (12:58 -0400)]
Merge pull request #11916 from leonshaw/fix/conf-vrf-netns

zebra: Reconfiguring netns for vrf is not a failure

21 months agoMerge pull request #11914 from anlancs/fix/cleanup-lib-name
Donald Sharp [Wed, 7 Sep 2022 16:54:38 +0000 (12:54 -0400)]
Merge pull request #11914 from anlancs/fix/cleanup-lib-name

lib: replace one path with macro

21 months agobgpd: Fix aggregate-address summary-only matching-MED-only
Donatas Abraitis [Wed, 7 Sep 2022 08:32:21 +0000 (11:32 +0300)]
bgpd: Fix aggregate-address summary-only matching-MED-only

Before it worked only when configured initially via CLI. Later, when we
receive a new route, that should match a decent MED, we just skip it, because
MED mismatch is not recalculated.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agozebra: Reconfiguring netns for vrf is not a failure
Xiao Liang [Wed, 7 Sep 2022 09:14:02 +0000 (17:14 +0800)]
zebra: Reconfiguring netns for vrf is not a failure

When using namespace VRF backend, and frr.conf contains:

    vrf test
      netns /run/netns/test
    exit-vrf

FRR fails to start:

    line 11: Failure to communicate[13] to zebra, line:  netns /run/netns/test

Fix this by returning CMD_WARNING rather than CMD_WARNING_CONFIG_FAILED
when the same netns path is configured.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
21 months agolib: replace one path with macro
anlan_cs [Wed, 7 Sep 2022 03:08:56 +0000 (23:08 -0400)]
lib: replace one path with macro

Replace all of the path name with macro, only the two places.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
21 months agoMerge pull request #11911 from mruprich/ospf-api
Jafar Al-Gharaibeh [Wed, 7 Sep 2022 03:55:58 +0000 (22:55 -0500)]
Merge pull request #11911 from mruprich/ospf-api

ospfd: Adding SUPPORT_OSPF_API define in ospf_spf.c

21 months agoMerge pull request #11823 from pguibert6WIND/bgp_vpnv4_gre_ebgp
Rafael Zalamena [Tue, 6 Sep 2022 16:37:19 +0000 (13:37 -0300)]
Merge pull request #11823 from pguibert6WIND/bgp_vpnv4_gre_ebgp

Bgp vpnv4 convey without transport label

21 months agotopotests: ignore env for pytest --collect-only
David Lamparter [Tue, 6 Sep 2022 15:43:26 +0000 (17:43 +0200)]
topotests: ignore env for pytest --collect-only

`--collect-only` does not run any tests, so bypass env checks for it.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
21 months agoMerge pull request #11864 from manojvn/clis
Donatas Abraitis [Tue, 6 Sep 2022 15:32:56 +0000 (18:32 +0300)]
Merge pull request #11864 from manojvn/clis

ospfd: Added clis to change default timers for LSA refresh and maxage remove delay.

21 months agoMerge pull request #11882 from opensourcerouting/fix/increase_peer_af_flags_to_u64
Russ White [Tue, 6 Sep 2022 15:24:39 +0000 (11:24 -0400)]
Merge pull request #11882 from opensourcerouting/fix/increase_peer_af_flags_to_u64

bgpd: Increase peer af_flags to uint64_t

21 months agoMerge pull request #11754 from Orange-OpenSource/isisd
Russ White [Tue, 6 Sep 2022 13:51:18 +0000 (09:51 -0400)]
Merge pull request #11754 from Orange-OpenSource/isisd

isisd: Correct Valgrind errors

21 months agobgpd: release rcu lock in bgp keepalive pthread
Mark Stapp [Tue, 6 Sep 2022 12:34:10 +0000 (05:34 -0700)]
bgpd: release rcu lock in bgp keepalive pthread

Don't hold the rcu lock in the bgp keepalive pthread: it
blocks the rcu pthread and prevents log-file deletion.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
21 months agoospfd: Adding SUPPORT_OSPF_API define in ospf_spf.c
Michal Ruprich [Tue, 6 Sep 2022 10:25:01 +0000 (12:25 +0200)]
ospfd: Adding SUPPORT_OSPF_API define in ospf_spf.c

It is not possible to build ospf_spf.c file with --disable-ospfapi because
ospf_apiserver.c has SUPPORT_OSPF_API around all function definitions and
that results in an undefined reference to the ospf_apiserver_notify_reachable
function error while building.

Signed-off-by: Michal Ruprich <mruprich@redhat.com>
21 months agobgpd: Unlock bgp_dest after bgp_table_subtree_lookup()
Donatas Abraitis [Tue, 6 Sep 2022 09:38:30 +0000 (12:38 +0300)]
bgpd: Unlock bgp_dest after bgp_table_subtree_lookup()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Drop unused functions
Donatas Abraitis [Tue, 6 Sep 2022 09:09:40 +0000 (12:09 +0300)]
bgpd: Drop unused functions

bgp_node_match_ipv4
bgp_node_match_ipv6
bgp_table_iter_init
bgp_table_iter_next
bgp_table_iter_cleanup
bgp_table_iter_pause
bgp_table_iter_is_done
bgp_table_iter_started

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Unlock bgp_dest for some more cases
Donatas Abraitis [Tue, 6 Sep 2022 09:00:41 +0000 (12:00 +0300)]
bgpd: Unlock bgp_dest for some more cases

bgp_static_set()
bgp_aggregate_install()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Reuse prep_for_rmap_apply() when applying route-map for show cmd
Donatas Abraitis [Tue, 6 Sep 2022 08:49:48 +0000 (11:49 +0300)]
bgpd: Reuse prep_for_rmap_apply() when applying route-map for show cmd

Include extra path attributes.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Do not forget to unlock bgp_dest from update_advertise_vni_routes
Donatas Abraitis [Tue, 6 Sep 2022 08:49:08 +0000 (11:49 +0300)]
bgpd: Do not forget to unlock bgp_dest from update_advertise_vni_routes

If "unexpected" happens.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agopimd: Fixing alignment
Sai Gomathi N [Thu, 1 Sep 2022 12:11:25 +0000 (05:11 -0700)]
pimd: Fixing alignment

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
21 months agopimd, pim6d: Changing IGMP to GM in debug macros
Sai Gomathi N [Thu, 1 Sep 2022 05:20:00 +0000 (22:20 -0700)]
pimd, pim6d: Changing IGMP to GM in debug macros

Changing
PIM_DO_DEBUG_IGMP_EVENTS to PIM_DO_DEBUG_GM_EVENTS
PIM_DO_DEBUG_IGMP_PACKETS to PIM_DO_DEBUG_GM_PACKETS
PIM_DO_DEBUG_IGMP_TRACE to PIM_DO_DEBUG_GM_TRACE
PIM_DO_DEBUG_IGMP_TRACE_DETAIL to PIM_DO_DEBUG_GM_TRACE_DETAIL
PIM_DONT_DEBUG_IGMP_EVENTS to PIM_DONT_DEBUG_GM_EVENTS
PIM_DONT_DEBUG_IGMP_PACKETS to PIM_DONT_DEBUG_GM_PACKETS
PIM_DONT_DEBUG_IGMP_TRACE to PIM_DONT_DEBUG_GM_TRACE
PIM_DONT_DEBUG_IGMP_TRACE_DETAIL to PIM_DONT_DEBUG_GM_TRACE_DETAIL
PIM_MASK_IGMP_EVENTS to PIM_MASK_GM_EVENTS
PIM_MASK_IGMP_PACKETS to PIM_MASK_GM_PACKETS
PIM_MASK_IGMP_TRACE to PIM_MASK_GM_TRACE
PIM_MASK_IGMP_TRACE_DETAIL to PIM_MASK_GM_TRACE_DETAIL
to be used for both IGMP and MLD debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
21 months agopim6d: Adding additional details for "show ipv6 mld interface [ifname] json" command.
Abhishek N R [Fri, 2 Sep 2022 13:59:03 +0000 (06:59 -0700)]
pim6d: Adding additional details for "show ipv6 mld interface [ifname] json" command.

Added Robustness value, Query interval, Query response timer
and Last member query interval field in json output.

Issue: #11891

Signed-off-by: Abhishek N R <abnr@vmware.com>
21 months agoMerge pull request #11902 from SaiGomathiN/igmp-to-gm
Donatas Abraitis [Tue, 6 Sep 2022 05:40:43 +0000 (08:40 +0300)]
Merge pull request #11902 from SaiGomathiN/igmp-to-gm

pimd, pim6d: Changing IGMP to GM in debug macros

21 months agobgpd: associate appropriate family for redistributed connected addresses
Philippe Guibert [Thu, 18 Aug 2022 15:22:33 +0000 (17:22 +0200)]
bgpd: associate appropriate family for redistributed connected addresses

When redistributing connected addresses, the address family has
to be figured out. The calculation was not done, the next-hop
address length was not set, and as consequence, the nexthop
is displayed like if it was an ipv6 address, which is wrong for
ipv4 addresses.

Calculate the family for connected addresses.
Change the topotests accordingly.

Fixes: ("7226bc40d606") bgpd: ignore NEXT_HOP for MP_REACH_NLRI
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
21 months agotopotests: add bgp_vpnv4_ebgp test with 'mpls bgp forwarding'
Philippe Guibert [Wed, 17 Aug 2022 11:24:16 +0000 (13:24 +0200)]
topotests: add bgp_vpnv4_ebgp test with 'mpls bgp forwarding'

add bgp_vpnv4_ebgp using the 'mpls bgp forwarding' interface
command.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
21 months agobgpd: add 'mpls bgp forwarding' to ease mpls vpn ebgp peering
Philippe Guibert [Wed, 17 Aug 2022 09:52:51 +0000 (11:52 +0200)]
bgpd: add 'mpls bgp forwarding' to ease mpls vpn ebgp peering

RFC4364 describes peerings between multiple AS domains, to ease
the continuity of VPN services across multiple SPs. This commit
implements a sub-set of IETF option b) described in chapter 10 b.

The ASBR to ASBR approach is taken, with an EBGP peering between
the two routers. The EBGP peering must be directly connected to
the outgoing interface used. In those conditions, the next hop
is directly connected, and there is no need to have a transport
label to convey the VPN label. A new vty command is added on a
per interface basis:

This command if enabled, will permit to convey BGP VPN labels
without any transport labels (i.e. with implicit-null label).

restriction:
this command is used only for EBGP directly connected peerings.
Other use cases are not covered.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
21 months agotopotests: add bgp vpnv4 over gre test
Philippe Guibert [Mon, 20 Sep 2021 14:05:40 +0000 (16:05 +0200)]
topotests: add bgp vpnv4 over gre test

This test ensures that MPLS VPN routes can be installed into a
gre interface with route-map l3vpn next-hop encapsulation command
set. On the other hand, if this command is not set, incoming bgp
routes are not considered as valid.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
21 months agobgpd: add resolution for l3vpn traffic over gre interfaces
Philippe Guibert [Mon, 20 Sep 2021 09:50:52 +0000 (11:50 +0200)]
bgpd: add resolution for l3vpn traffic over gre interfaces

When a route imported from l3vpn is analysed, the nexthop from default
VRF is looked up against a valid MPLS path. Generally, this is done on
backbones with a MPLS signalisation transport layer like LDP. Generally,
the BGP connection is multiple hops away. That scenario is already
working.

There is case where it is possible to run L3VPN over GRE interfaces, and
where there is no LSP path over that GRE interface: GRE is just here to
tunnel MPLS traffic. On that case, the nexthop given in the path does not
have MPLS path, but should be authorized to convey MPLS traffic provided
that the user permits it via a configuration command.

That commit introduces a new command that can be activated in route-map:
 > set l3vpn next-hop encapsulation gre

That command authorizes the nexthop tracking engine to accept paths that
o have a GRE interface as output, independently of the presence of an LSP
path or not.

A configuration example is given below. When bgp incoming vpnv4 updates
are received, the nexthop of NLRI is 192.168.0.2. Based on nexthop
tracking service from zebra, BGP knows that the output interface to reach
192.168.0.2 is r1-gre0. Because that interface is not MPLS based, but is
a GRE tunnel, then the update will be using that nexthop to be installed.

    interface r1-gre0
     ip address 192.168.0.1/24
    exit
    router bgp 65500
     bgp router-id 1.1.1.1
     neighbor 192.168.0.2 remote-as 65500
     !
     address-family ipv4 unicast
      no neighbor 192.168.0.2 activate
     exit-address-family
     !
     address-family ipv4 vpn
      neighbor 192.168.0.2 activate
      neighbor 192.168.0.2 route-map rmap in
     exit-address-family
    exit
    !
    router bgp 65500 vrf vrf1
     bgp router-id 1.1.1.1
     no bgp network import-check
     !
     address-family ipv4 unicast
      network 10.201.0.0/24
      redistribute connected
      label vpn export 101
      rd vpn export 444:1
      rt vpn both 52:100
      export vpn
      import vpn
     exit-address-family
    exit
    !
    route-map rmap permit 1
     set l3vpn next-hop encapsulation gre
    exit

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
21 months agobfdd: changes for code maintainability
sri-mohan1 [Mon, 5 Sep 2022 08:39:35 +0000 (14:09 +0530)]
bfdd: changes for code maintainability

these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
21 months agopimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_PACKETS to PIM_DEBUG_GM_PACKETS
Sai Gomathi N [Mon, 5 Sep 2022 05:45:33 +0000 (22:45 -0700)]
pimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_PACKETS to PIM_DEBUG_GM_PACKETS

Changing the macros to common so that it can be used for pimv6 debugs as well
to be used for both IGMP and MLD debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
21 months agopimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_EVENTS to PIM_DEBUG_GM_EVENTS
Sai Gomathi N [Fri, 2 Sep 2022 11:00:10 +0000 (04:00 -0700)]
pimd,pim6d: Modifying IGMP to GM in PIM_DEBUG_IGMP_EVENTS to PIM_DEBUG_GM_EVENTS

Changing the macros to common so that it can be used for pimv6 debugs as well
to be used for both IGMP and MLD debugs.

Signed-off-by: Sai Gomathi N <nsaigomathi@vmware.com>
21 months agopim6d: Update last_member_query_interval and last_member_query_count
Sarita Patra [Sun, 4 Sep 2022 22:06:42 +0000 (15:06 -0700)]
pim6d: Update last_member_query_interval and last_member_query_count

When there is update in the configuration of last_member_query_interval
and last_member_query_count, call gm_ifp_update().
This will update cur_query_intv_trig and cur_lmqc of gm_ifp structure.

Issue: #11901

Signed-off-by: Sarita Patra <saritap@vmware.com>
21 months agobgpd: Handle Origin Validation State extended community via route-map match
Donatas Abraitis [Wed, 31 Aug 2022 20:00:26 +0000 (23:00 +0300)]
bgpd: Handle Origin Validation State extended community via route-map match

Add an ability to match via route-maps. An additional route-map command

`match rpki-extcommunity <invalid|notfound|valid>` added.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Add Origin Validation State extended community
Donatas Abraitis [Tue, 30 Aug 2022 18:25:50 +0000 (21:25 +0300)]
bgpd: Add Origin Validation State extended community

```
spine1-debian-11# sh ip bgp 100.100.100.101/32
BGP routing table entry for 100.100.100.101/32, version 21
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Local
    fe80::ca5d:fd0d:cd8:1bb7 from eth3 (172.17.0.3)
    (fe80::ca5d:fd0d:cd8:1bb7) (used)
      Origin incomplete, metric 0, localpref 100, valid, internal, best (First path received)
      Extended Community: OVS:invalid
      Last update: Wed Aug 31 19:31:46 2022

spine1-debian-11# sh ip bgp 100.100.100.100/32
BGP routing table entry for 100.100.100.100/32, version 17
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Local
    fe80::ca5d:fd0d:cd8:1bb7 from eth3 (172.17.0.3)
    (fe80::ca5d:fd0d:cd8:1bb7) (used)
      Origin incomplete, metric 0, localpref 100, valid, internal, best (First path received)
      Extended Community: OVS:not-found
      Last update: Wed Aug 31 19:31:46 2022
spine1-debian-11#
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agodoc: Add rfc5668 to the list
Donatas Abraitis [Tue, 30 Aug 2022 18:15:21 +0000 (21:15 +0300)]
doc: Add rfc5668 to the list

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agoMerge pull request #11898 from sri-mohan1/sri-rip-dbg1
Donatas Abraitis [Sun, 4 Sep 2022 18:18:12 +0000 (21:18 +0300)]
Merge pull request #11898 from sri-mohan1/sri-rip-dbg1

ripd: changes for code maintainability

21 months agoMerge pull request #11897 from mobash-rasool/fixes2
Donatas Abraitis [Sun, 4 Sep 2022 18:16:59 +0000 (21:16 +0300)]
Merge pull request #11897 from mobash-rasool/fixes2

pimd: Removal of unused function pim_neighbor_find_prefix

21 months agoripd: changes for code maintainability
sri-mohan1 [Fri, 2 Sep 2022 18:29:56 +0000 (23:59 +0530)]
ripd: changes for code maintainability

these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
21 months agopimd: Removal of unused function pim_neighbor_find_prefix
Mobashshera Rasool [Fri, 2 Sep 2022 16:50:28 +0000 (09:50 -0700)]
pimd: Removal of unused function pim_neighbor_find_prefix

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
21 months agoisisd: Correct Valgrind errors
Olivier Dugeon [Fri, 5 Aug 2022 14:00:48 +0000 (16:00 +0200)]
isisd: Correct Valgrind errors

Runing most of isisd tests with --valgrind-memleaks give many memory errors.
This is due to the way isisd is stopped: performing a "no router isis XXX"
through CLI solves most of them. Indeed, isis_finish() doesn't call
isis_area_destroy() leaving many allocated memory unfreed.

This patch adds call to appropriate delete function or XFREE() when necessary to
properly free all alocated memory before terminating isisd.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
21 months agoMerge pull request #11884 from mjstapp/fix_cancel_ptrs
Donatas Abraitis [Fri, 2 Sep 2022 10:49:10 +0000 (13:49 +0300)]
Merge pull request #11884 from mjstapp/fix_cancel_ptrs

lib: ensure locals are inited to NULL

21 months agoMerge pull request #11888 from anlancs/fix/l2vni-vid-change
Donatas Abraitis [Fri, 2 Sep 2022 10:21:44 +0000 (13:21 +0300)]
Merge pull request #11888 from anlancs/fix/l2vni-vid-change

zebra: fix missing tenant vrf change notification

21 months agoMerge pull request #11894 from sri-mohan1/sri-bgp-dbg1
Donatas Abraitis [Fri, 2 Sep 2022 10:21:34 +0000 (13:21 +0300)]
Merge pull request #11894 from sri-mohan1/sri-bgp-dbg1

bgpd: changes for code maintainability

21 months agoMerge pull request #11893 from kraj/master
Jafar Al-Gharaibeh [Thu, 1 Sep 2022 22:09:01 +0000 (17:09 -0500)]
Merge pull request #11893 from kraj/master

configure: Check for readline() function instead of main

21 months agobgpd: changes for code maintainability
sri-mohan1 [Thu, 1 Sep 2022 18:55:16 +0000 (00:25 +0530)]
bgpd: changes for code maintainability

these changes are for improving the code maintainability

Signed-off-by: sri-mohan1 <sri.mohan@samsung.com>
21 months agoconfigure: Check for readline() function instead of main
Khem Raj [Thu, 1 Sep 2022 17:39:23 +0000 (10:39 -0700)]
configure: Check for readline() function instead of main

main is not a function found in libreadline, its better to check for a
function thats provided by it.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
21 months agozebra: fix missing tenant vrf change notification
anlan_cs [Wed, 31 Aug 2022 14:24:19 +0000 (10:24 -0400)]
zebra: fix missing tenant vrf change notification

zebra can change l2vni's tenant vrf with new `vid`, and then notify bgpd
to change also. But this notification is wrongly missed, so bgpd knows
nothing about it. It affects evpn routes, which are related to tenant vrf.
Need to notify bgpd of the `vid` change.

Changes l2vni 100 of vxlan's `vid` so as to change its svi interface from
default to vrf1, then check bgp's vni status.

Before: (Ignored irrelevent columns)
```
host#show bgp l2vpn evpn vni
  VNI      Type RD                    Tenant VRF
* 100      L2   66.66.66.66:2         default <- No change
```

After:(Ignored irrelevent columns)
```
host#show bgp l2vpn evpn vni
  VNI      Type RD                   Tenant VRF
* 100      L2   66.66.66.66:2        vrf1 <- Updated
```

Signed-off-by: anlan_cs <vic.lan@pica8.com>
21 months agoospfd: Added clis to change default timers for LSA refresh and maxage remove delay.
Manoj Naragund [Fri, 26 Aug 2022 07:58:37 +0000 (00:58 -0700)]
ospfd: Added clis to change default timers for LSA refresh and maxage remove delay.

Description:
Added hidden clis that will allow you to reset the default timers
for LSA refresh and LSA maxage remove delay, these will help in testing
LSA refresh scenarios in upcoming OSPFv2 Flood reduction feature(rfc4136).

IETF Link : https://datatracker.ietf.org/doc/html/rfc4136

Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
21 months agolib: ensure locals are inited to NULL
Mark Stapp [Wed, 31 Aug 2022 15:47:39 +0000 (11:47 -0400)]
lib: ensure locals are inited to NULL

A couple of pointers in do_thread_cancel() we only inited at
the start of the function; make sure they're inited during
each iteration of the loop.

Signed-off-by: Mark Stapp <mstapp@nvidia.com>
21 months agobgpd: improve labelpool performance at scale
G. Paul Ziemba [Fri, 26 Aug 2022 21:47:07 +0000 (14:47 -0700)]
bgpd: improve labelpool performance at scale

    - double the size of each new chunk request from zebra
    - use bitfields to track label allocations in a chunk
    - When allocating:
        - skip chunks with no free labels
        - search biggest chunks first
        - start search in chunk where last search ended
    - Improve API documentation in comments (bgp_lp_get() and callback)
    - Tweak formatting of "show bgp labelpool chunks"
    - Add test features (compiled conditionally on BGP_LABELPOOL_ENABLE_TESTS)

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
21 months agobgpd: Drop useless comments for peer af flags
Donatas Abraitis [Wed, 31 Aug 2022 11:39:38 +0000 (14:39 +0300)]
bgpd: Drop useless comments for peer af flags

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Increase peer af_flags to uint64_t
Donatas Abraitis [Wed, 31 Aug 2022 11:23:23 +0000 (14:23 +0300)]
bgpd: Increase peer af_flags to uint64_t

Increasing in advance, as we already hitting the current limit.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agoMerge pull request #11879 from mobash-rasool/fixes2
Donald Sharp [Tue, 30 Aug 2022 19:09:36 +0000 (15:09 -0400)]
Merge pull request #11879 from mobash-rasool/fixes2

pim6d: Fix the Code for MLD in the show pim state command

21 months agoMerge pull request #11878 from opensourcerouting/fix/some_nits
Donald Sharp [Tue, 30 Aug 2022 19:06:29 +0000 (15:06 -0400)]
Merge pull request #11878 from opensourcerouting/fix/some_nits

bgpd: A couple of minor findings

21 months agoMerge pull request #11833 from opensourcerouting/feature/bgp_neighbor_soo
Russ White [Tue, 30 Aug 2022 15:17:53 +0000 (11:17 -0400)]
Merge pull request #11833 from opensourcerouting/feature/bgp_neighbor_soo

bgpd: Add `neighbor soo` command

21 months agoMerge pull request #11852 from gpnaveen/bgp_admin_dist
Russ White [Tue, 30 Aug 2022 15:13:30 +0000 (11:13 -0400)]
Merge pull request #11852 from gpnaveen/bgp_admin_dist

tests: adding bgp admin distance topotests.

21 months agoMerge pull request #11866 from anlancs/fix/evpn-l2vni
Donatas Abraitis [Tue, 30 Aug 2022 15:13:02 +0000 (18:13 +0300)]
Merge pull request #11866 from anlancs/fix/evpn-l2vni

zebra: fix missing vni transition

21 months agoMerge pull request #11870 from rgirada/ospf_gr_crash
Rafael Zalamena [Tue, 30 Aug 2022 13:10:15 +0000 (10:10 -0300)]
Merge pull request #11870 from rgirada/ospf_gr_crash

ospfd: crash when router acts as GR helper upon a topo change

21 months agobgpd: Cleanup memory for missing hashes
Donatas Abraitis [Tue, 30 Aug 2022 10:46:26 +0000 (13:46 +0300)]
bgpd: Cleanup memory for missing hashes

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Drop unused memory types
Donatas Abraitis [Tue, 30 Aug 2022 10:39:10 +0000 (13:39 +0300)]
bgpd: Drop unused memory types

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agopim6d: Fix the Code for MLD in the show pim state command
Mobashshera Rasool [Tue, 30 Aug 2022 10:02:25 +0000 (03:02 -0700)]
pim6d: Fix the Code for MLD in the show pim state command

show ip pim state should show IGMP Report while
show ipv6 pim state should show MLD Report.

Output After Fix:
frr# do sh ip pim state
Codes: J -> Pim Join, I -> IGMP Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN, M -> Muted
Active Source           Group            RPT  IIF               OIL

frr# do sh ipv6 pim state
Codes: J -> Pim Join, I -> MLD Report, S -> Source, * -> Inherited from (*,G), V -> VxLAN, M -> Muted
Active Source           Group            RPT  IIF               OIL

frr#

Issue: #11249

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
21 months agoMerge pull request #11877 from sri-mohan1/sri-ldp-dbg1
Donatas Abraitis [Tue, 30 Aug 2022 09:55:27 +0000 (12:55 +0300)]
Merge pull request #11877 from sri-mohan1/sri-ldp-dbg1

ldpd: changes for code maintainability

21 months agobgpd: Fix test for matching UN prefix and the peer
Donatas Abraitis [Tue, 30 Aug 2022 09:06:19 +0000 (12:06 +0300)]
bgpd: Fix test for matching UN prefix and the peer

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
21 months agobgpd: Break immediatelly and print vty_out instead of double checking for JSON
Donatas Abraitis [Tue, 30 Aug 2022 08:46:00 +0000 (11:46 +0300)]
bgpd: Break immediatelly and print vty_out instead of double checking for JSON

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