Commit Graph

27964 Commits

Author SHA1 Message Date
Donatas Abraitis
764402feba bgpd: Fix styling for aggregate_addressv4_cmd
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 17:53:42 +03:00
Donatas Abraitis
cacba915d0 bgpd: Add autocomplete for aggregate-address ... route-map X
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 17:47:52 +03:00
Donatas Abraitis
59136db5a7 bgpd: Send MED attribute when aggregate prefix is created
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-11 17:46:04 +03:00
Donatas Abraitis
5e1a1129f5
Merge pull request #11007 from mobash-rasool/fixes
pimd: correct the show ip igmp sources output
2022-04-11 14:28:15 +03:00
Mobashshera Rasool
e1f87dce0f pimd: correct the show ip igmp sources output
frr(config-if)# ip igmp join 232.1.1.1 10.10.10.10
frr(config-if)# do sh ip igmp sources
Interface        Address         Group           Source          Timer Fwd Uptime
ens192           232.1.1.1       10.10.10.10     04:10   N 00:00:10
frr(config-if)#

The above output is misaligned and is having Address field which is not
required here.

Fixing it.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-04-11 00:17:11 -07:00
Russ White
d6d890a656
Merge pull request #10919 from donaldsharp/lost_kernel_routes
zebra: Allow multiple connected routes to be choosen for kernel routes
2022-04-09 11:09:40 -04:00
mobash-rasool
ef362a5156
Merge pull request #10981 from opensourcerouting/vty-wrmem-newline
vtysh: remove extraneous newline
2022-04-08 22:09:16 +05:30
Donald Sharp
91a5a6e75c 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>
2022-04-08 08:15:20 -04:00
Donald Sharp
48dc861028 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>
2022-04-08 08:15:20 -04:00
Donatas Abraitis
b4bdcf45d5
Merge pull request #10982 from donaldsharp/enum_watchfrr
Enum watchfrr
2022-04-08 14:58:36 +03:00
Donald Sharp
e09284ca09
Merge pull request #10979 from opensourcerouting/pim-ssm-clean
lib, pimd: small cleanup in multicast addr helpers (SSM & co.)
2022-04-07 13:08:01 -04:00
David Lamparter
edae23ff58 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>
2022-04-07 17:55:35 +02:00
Donald Sharp
c3db4ca8ed 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>
2022-04-07 08:57:42 -04:00
Donald Sharp
f1692c510b watchfrr: Rename restart_phase_t to enum restart_phase
This will align with our coding standards.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-04-07 08:57:42 -04:00
David Lamparter
95793341ab pimd: use SSM check helper
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-04-07 14:00:40 +02:00
David Lamparter
eeec411244 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>
2022-04-07 14:00:36 +02:00
Igor Ryzhov
5451fbc192
Merge pull request #10927 from bobuhiro11/refactor_srv6_locator_chunks
bgpd: refactor type of srv6_locator_chunks list
2022-04-06 21:36:39 +03:00
Donald Sharp
b277f22c93
Merge pull request #10971 from opensourcerouting/fix/rpki_nits
bgpd: RPKI memory leak
2022-04-06 07:41:53 -04:00
Donatas Abraitis
1b2095d120 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>
2022-04-06 10:35:37 +03:00
Donatas Abraitis
e1a05dd410 bgpd: Return enum RPKI_NOT_BEING_USED instead of 0
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-06 10:35:37 +03:00
Donatas Abraitis
9ca44fc8ef bgpd: Reuse is_stopping() in RPKI code same as with is_running()
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-06 10:35:37 +03:00
Donatas Abraitis
01fcc18982 bgpd: Reuse is_running() function in RPKI code for rtr_is_running
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-06 10:35:37 +03:00
Donatas Abraitis
cb48ec5fa1
Merge pull request #10973 from mobash-rasool/fixes
pimd: Remove pim_channel_oil_change_iif from header file
2022-04-06 10:32:02 +03:00
Mobashshera Rasool
969e751921 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>
2022-04-05 21:54:01 -07:00
Nobuhiro MIKI
1c21a23453 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>
2022-04-06 13:40:14 +09:00
mobash-rasool
25ddb686ca
Merge pull request #10965 from opensourcerouting/fix/pim_igmp_group_delete
pimd: Replace ALL_LIST_ELEMENTS_RO to ALL_LIST_ELEMENTS group_list it…
2022-04-06 04:07:30 +05:30
Donald Sharp
c416dd8298
Merge pull request #10966 from opensourcerouting/fix/memory_leak_rpki
bgpd: RPKI changes
2022-04-05 18:27:52 -04:00
David Lamparter
8996a815b5
Merge pull request #10365 from SaiGomathiN/ipv6-config-cmd 2022-04-05 21:07:15 +02:00
Russ White
9fc31ddbd5
Merge pull request #10849 from anlancs/bgpd-cleanup-2
bgpd: remove unnecessary checkings for bgp_evpn_es_new()
2022-04-05 11:40:12 -04:00
Russ White
3e66928ba7
Merge pull request #10968 from opensourcerouting/fix/gr_ordering
bgpd: Use proper debug msg for graceful restart commands
2022-04-05 10:20:15 -04:00
Donald Sharp
2c38c8ad35
Merge pull request #10928 from anlancs/zebra-cleanup-1
zebra: use "assert" instead of unnecessary check
2022-04-05 09:49:00 -04:00
Donald Sharp
0e3aad23de
Merge pull request #10940 from opensourcerouting/pim-5549-clarify
pimd: clarify RFC5549 nexthop handling (& fix for pim6d)
2022-04-05 09:43:39 -04:00
Donald Sharp
95e6a352d8
Merge pull request #10959 from patrasar/pim_coverity
pimd: Fixing pim coverity issues
2022-04-05 09:38:42 -04:00
Russ White
977405eeac
Merge pull request #10938 from anlancs/fix-zebra-vxlan-change-vrfid
zebra: fix missing vrf change of l2vni on vxlan interface
2022-04-05 08:55:42 -04:00
Russ White
563b609cbc
Merge pull request #10948 from anlancs/bgpd-cleanup-4
bgpd : use "assert" for one check on evpn-mh
2022-04-05 08:54:00 -04:00
Donatas Abraitis
b6e410f7ed bgpd: Use proper debug msg for graceful restart commands
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-05 13:57:35 +03:00
mobash-rasool
37cfc612fc
Merge pull request #10960 from opensourcerouting/pim-unmacro-1
pimd: remove useless PIM_IF_* macros
2022-04-05 15:17:25 +05:30
Donatas Abraitis
c41a3cc528 bgpd: No need to check for NULL before calling XFREE() in RPKI code
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-04-05 11:14:34 +03:00
Donatas Abraitis
94ff78a7e3 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>
2022-04-05 11:14:34 +03:00
Donatas Abraitis
5c13cb9dc5 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>
2022-04-05 10:48:56 +03:00
Sai Gomathi N
1881b5c0ca 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>
2022-04-05 00:00:10 -07:00
Sai Gomathi N
25e1db4246 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>
2022-04-05 00:00:10 -07:00
Sai Gomathi N
e7ec758dff 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>
2022-04-05 00:00:10 -07:00
Sai Gomathi N
c889adcb26 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>
2022-04-05 00:00:10 -07:00
Sai Gomathi N
c8b3d45de2 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>
2022-04-05 00:00:01 -07:00
Donatas Abraitis
4e35ece397
Merge pull request #10953 from leonshaw/fix/bgp-rm-leak
bgpd: Fix memory leak in subgroup_announce_check
2022-04-05 09:09:35 +03:00
Jafar Al-Gharaibeh
eeeed628a3
Merge pull request #10946 from donaldsharp/pim_fhr_lhr_same_pimreg
pimd: Send immediate join( with possible SG RPT prune bit set
2022-04-04 14:00:49 -05:00
David Lamparter
f11bc92554 pim6d: fix mis-printed nexthop
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2022-04-04 14:48:54 +02:00
David Lamparter
c13a82352b 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>
2022-04-04 14:48:54 +02:00
David Lamparter
92d930ede5
Merge pull request #10710 from SaiGomathiN/pimv6-showcli 2022-04-04 14:42:27 +02:00