]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
2 years agoMerge pull request #11177 from opensourcerouting/fix/memset_memcpy
Donald Sharp [Fri, 13 May 2022 11:40:58 +0000 (07:40 -0400)]
Merge pull request #11177 from opensourcerouting/fix/memset_memcpy

*: memcpy/memset zeroing

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

bgpd: Cleanup

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

ospf6d: suppress coverity warnings of insecure data handling

2 years agoMerge pull request #11190 from donaldsharp/bgp_data
Donatas Abraitis [Fri, 13 May 2022 06:00:08 +0000 (09:00 +0300)]
Merge pull request #11190 from donaldsharp/bgp_data

Fix #11178 and various other cleanup

2 years agobgpd: Align bgp_dump.h to our standards 11190/head
Donald Sharp [Thu, 12 May 2022 13:18:38 +0000 (09:18 -0400)]
bgpd: Align bgp_dump.h to our standards

bgp_dump.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_debug.h to our standards
Donald Sharp [Thu, 12 May 2022 13:17:07 +0000 (09:17 -0400)]
bgpd: Align bgp_debug.h to our standards

bgp_debug.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_damp.h to our standards
Donald Sharp [Thu, 12 May 2022 13:13:40 +0000 (09:13 -0400)]
bgpd: Align bgp_damp.h to our standards

bgp_damp.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_community.h to our standards
Donald Sharp [Thu, 12 May 2022 13:11:07 +0000 (09:11 -0400)]
bgpd: Align bgp_community.h to our standards

bgp_community.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_clist.h to our standards
Donald Sharp [Thu, 12 May 2022 13:08:12 +0000 (09:08 -0400)]
bgpd: Align bgp_clist.h to our standards

bgp_clist.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_attr.h to our standards
Donald Sharp [Thu, 12 May 2022 13:03:49 +0000 (09:03 -0400)]
bgpd: Align bgp_attr.h to our standards

bgp_attr.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_aspath.h to our standards
Donald Sharp [Thu, 12 May 2022 13:00:46 +0000 (09:00 -0400)]
bgpd: Align bgp_aspath.h to our standards

bgp_aspath.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_advertise.h to our standards
Donald Sharp [Thu, 12 May 2022 12:53:01 +0000 (08:53 -0400)]
bgpd: Align bgp_advertise.h to our standards

bgp_advertise.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_zebra.h to our standards
Donald Sharp [Thu, 12 May 2022 12:28:11 +0000 (08:28 -0400)]
bgpd: Align bgp_zebra.h to our standards

bgp_zebra.h has function declarations that are
not properly aligned with our standard on how
to do so.  Fix.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Align bgp_mpath.h to our standards
Donald Sharp [Thu, 12 May 2022 12:11:46 +0000 (08:11 -0400)]
bgpd: Align bgp_mpath.h to our standards

The bgp_mpath.h file was missing some variable names.  Let's
add them in to align with our standard for header files.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Change single value bitfield to a bool
Donald Sharp [Thu, 12 May 2022 12:06:14 +0000 (08:06 -0400)]
bgpd: Change single value bitfield to a bool

The maxpaths same_clusterlen value was a uint16_t
with a single bit being used.  No other values are
being stored.  Let's remove the bitfield and simplify
to a bool.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Prevent crash when issuing various forms of `bgp no-rib`
Donald Sharp [Thu, 12 May 2022 13:39:27 +0000 (09:39 -0400)]
bgpd: Prevent crash when issuing various forms of `bgp no-rib`

The `bgp no-rib` command cycles through all the bgp rib tables
and removes them from zebra.  Modify the code so that FRR notices
that it is attempting to cycle through the safi's that are two level
tables.  In addition these safi's cannot just blindly remove the routes
from the rib as that there are none explicitly.

This code just prevents the crash in bgpd.  It does not properly cycle
through and remove the zebra changes made that are explicit to these afi's.
This should be handled as appropriate by the developers on these safi's when
it becomes important to them.

Fixes: #11178
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11176 from anlancs/fix/bgpd-remove-for-type2-prefix
Donatas Abraitis [Thu, 12 May 2022 10:28:51 +0000 (13:28 +0300)]
Merge pull request #11176 from anlancs/fix/bgpd-remove-for-type2-prefix

bgpd: remove unncessary check for evpn

2 years agoMerge pull request #11186 from anlancs/fix/bgpd-comment-should-es
Donatas Abraitis [Thu, 12 May 2022 08:32:25 +0000 (11:32 +0300)]
Merge pull request #11186 from anlancs/fix/bgpd-comment-should-es

bgpd,zebra: correct one debug log for evpn-mh

2 years agobgpd: Check and validate return value for str2ipaddr() 11188/head
Donatas Abraitis [Thu, 12 May 2022 07:28:06 +0000 (10:28 +0300)]
bgpd: Check and validate return value for str2ipaddr()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Check argv_find() value instead of the index
Donatas Abraitis [Thu, 12 May 2022 07:23:28 +0000 (10:23 +0300)]
bgpd: Check argv_find() value instead of the index

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agotools: Catch more argv_find() when not checked properly
Donatas Abraitis [Thu, 12 May 2022 07:09:42 +0000 (10:09 +0300)]
tools: Catch more argv_find() when not checked properly

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Reuse index from argv_find only if found
Donatas Abraitis [Thu, 12 May 2022 06:57:13 +0000 (09:57 +0300)]
bgpd: Reuse index from argv_find only if found

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd,zebra: correct one debug log for evpn-mh 11186/head
anlan_cs [Thu, 12 May 2022 01:25:47 +0000 (21:25 -0400)]
bgpd,zebra: correct one debug log for evpn-mh

Correct one debug log in evpn-mh.
BTW, correct one misspelled word in comment.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years ago*: Properly use memset() when zeroing 11177/head
Donatas Abraitis [Wed, 11 May 2022 10:16:44 +0000 (13:16 +0300)]
*: Properly use memset() when zeroing

    Wrong: memset(&a, 0, sizeof(struct ...));
    Good:  memset(&a, 0, sizeof(a));

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoripd: Use correct usage of memcpy() when zeroing struct
Donatas Abraitis [Wed, 11 May 2022 10:14:01 +0000 (13:14 +0300)]
ripd: Use correct usage of memcpy() when zeroing struct

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agotools: Add coccinelle script to catch memset/memcpy wrong usage
Donatas Abraitis [Wed, 11 May 2022 10:12:22 +0000 (13:12 +0300)]
tools: Add coccinelle script to catch memset/memcpy wrong usage

Wrong: memset(&a, 0, sizeof(struct ...));
Good:  memset(&a, 0, sizeof(a));

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Use sizeof() for memset instead of numeric
Donatas Abraitis [Wed, 11 May 2022 10:10:23 +0000 (13:10 +0300)]
bgpd: Use sizeof() for memset instead of numeric

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11151 from opensourcerouting/pim-various-20220506
mobash-rasool [Wed, 11 May 2022 04:34:18 +0000 (10:04 +0530)]
Merge pull request #11151 from opensourcerouting/pim-various-20220506

pimd, pim6d: fix various smaller issues

2 years agobgpd: remove unncessary check for evpn 11176/head
anlan_cs [Wed, 11 May 2022 01:48:50 +0000 (21:48 -0400)]
bgpd: remove unncessary check for evpn

In current code, `build_evpn_type2_prefix()` doesn't distinguish ARP
according to the `ip` parameter. The `ip` parameter from caller is
always non-NULL.

Be consistent and not confused, just remove the unnecessary check.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11155 from LabNConsulting/ziemba/link-delay-min-max
Mark Stapp [Tue, 10 May 2022 15:31:52 +0000 (11:31 -0400)]
Merge pull request #11155 from LabNConsulting/ziemba/link-delay-min-max

zebra bugfix interface link-param: allow delay min <= avg <= max (was: min<avg<max)

2 years agoMerge pull request #11160 from opensourcerouting/feature/BGP_NOTIFY_CEASE_ADMIN_RESET...
Russ White [Tue, 10 May 2022 15:25:13 +0000 (11:25 -0400)]
Merge pull request #11160 from opensourcerouting/feature/BGP_NOTIFY_CEASE_ADMIN_RESET_hard_reset

bgpd: Send Hard Reset Notification for BGP_NOTIFY_CEASE_ADMIN_RESET

2 years agoospf6d: add header size check for LSA 9454/head
anlan_cs [Wed, 19 Jan 2022 01:24:01 +0000 (20:24 -0500)]
ospf6d: add header size check for LSA

Add header size check for safe. If the check fails, just jump out of current
function.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agobgpd: Reset bgp_notify.hard_reset on receive to avoid stale data 11160/head
Donatas Abraitis [Tue, 10 May 2022 06:25:59 +0000 (09:25 +0300)]
bgpd: Reset bgp_notify.hard_reset on receive to avoid stale data

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Send Hard Reset Notification for BGP_NOTIFY_CEASE_ADMIN_RESET
Donatas Abraitis [Fri, 6 May 2022 07:21:15 +0000 (10:21 +0300)]
bgpd: Send Hard Reset Notification for BGP_NOTIFY_CEASE_ADMIN_RESET

`clear bgp neighbor` should send Hard Reset and graceful restart should be
activated. Let's make this adjustable.

https://datatracker.ietf.org/doc/html/rfc8538#section-5.1

   +-------+------------------------------------+----------------------+
   | Value |                Name                |  Suggested Behavior  |
   +-------+------------------------------------+----------------------+
   |   1   | Maximum Number of Prefixes Reached |      Hard Reset      |
   |   2   |      Administrative Shutdown       |      Hard Reset      |
   |   3   |         Peer De-configured         |      Hard Reset      |
   |   4   |        Administrative Reset        | Provide user control |
   |   5   |        Connection Rejected         |    Graceful Cease    |
   |   6   |     Other Configuration Change     |    Graceful Cease    |
   |   7   |  Connection Collision Resolution   |    Graceful Cease    |
   |   8   |          Out of Resources          |    Graceful Cease    |
   |   9   |             Hard Reset             |      Hard Reset      |
   +-------+------------------------------------+----------------------+

Enabled by default.

Co-authored-by: Biswajit Sadhu <biswajit.sadhu@gmail.com>
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11138 from opensourcerouting/fix/rpki
Russ White [Mon, 9 May 2022 23:36:02 +0000 (19:36 -0400)]
Merge pull request #11138 from opensourcerouting/fix/rpki

bgpd: RPKI reverts, nits...

2 years agoMerge pull request #11147 from opensourcerouting/feature/gr_n-bit_cli_knob
Russ White [Mon, 9 May 2022 23:35:14 +0000 (19:35 -0400)]
Merge pull request #11147 from opensourcerouting/feature/gr_n-bit_cli_knob

bgpd: Add CLI knob to enable graceful restart for BGP notifications

2 years agoMerge pull request #11148 from anlancs/fix/bfdd-wrong-discriminator-mismatch
Igor Ryzhov [Mon, 9 May 2022 21:32:08 +0000 (00:32 +0300)]
Merge pull request #11148 from anlancs/fix/bfdd-wrong-discriminator-mismatch

bfdd: fix override between sessions

2 years agoMerge pull request #11163 from opensourcerouting/fix/same_type_casting
Igor Ryzhov [Mon, 9 May 2022 21:16:30 +0000 (00:16 +0300)]
Merge pull request #11163 from opensourcerouting/fix/same_type_casting

*: Avoid casting to the same type as on the left

2 years agoMerge pull request #11154 from opensourcerouting/fix/increase_bgp_flags
Russ White [Mon, 9 May 2022 18:50:29 +0000 (14:50 -0400)]
Merge pull request #11154 from opensourcerouting/fix/increase_bgp_flags

bgpd: Use uint64_t for bgp->flags

2 years agoMerge pull request #11161 from opensourcerouting/fix/no_need_to_check_for_xcalloc
Russ White [Mon, 9 May 2022 18:44:36 +0000 (14:44 -0400)]
Merge pull request #11161 from opensourcerouting/fix/no_need_to_check_for_xcalloc

zebra, ospf6d: Do not check if NULL for XCALLOC()

2 years agoMerge pull request #11162 from anlancs/fix/bgpd-cleanup-5
Russ White [Mon, 9 May 2022 18:43:03 +0000 (14:43 -0400)]
Merge pull request #11162 from anlancs/fix/bgpd-cleanup-5

bgpd: remove unnecessary check for evpn

2 years agoMerge pull request #11170 from anlancs/fix/bgpd-cleanup-8
mobash-rasool [Mon, 9 May 2022 17:12:22 +0000 (22:42 +0530)]
Merge pull request #11170 from anlancs/fix/bgpd-cleanup-8

bgpd: remove one unnecessary parameter for evpn-mh

2 years agoMerge pull request #11096 from anlancs/fix/bgpd-unlock
Russ White [Mon, 9 May 2022 14:46:50 +0000 (10:46 -0400)]
Merge pull request #11096 from anlancs/fix/bgpd-unlock

bgpd: clear misleading mismatched check

2 years agobgpd: remove one unnecessary parameter for evpn-mh 11170/head
anlan_cs [Wed, 13 Apr 2022 11:06:39 +0000 (07:06 -0400)]
bgpd: remove one unnecessary parameter for evpn-mh

The "add" parameter of `bgp_evpn_mh_route_update()` makes no sense.
Just remove it to clarify this function, and remove the relevant check
with "add" as well.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agobgpd: remove unnecessary check for evpn 11162/head
anlan_cs [Fri, 6 May 2022 09:52:12 +0000 (05:52 -0400)]
bgpd: remove unnecessary check for evpn

When `bgp_evpn_new()` is called, the `bgp` parameter MUST be non-NULL,
remove this unnecessary check and remove the NULL check for returned
`struct bgpevpn *`, which should be non-NULL.

And modify `import_rt_new()` in the same way.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years ago*: Avoid casting to the same type as on the left 11163/head
Donatas Abraitis [Sun, 8 May 2022 13:07:42 +0000 (16:07 +0300)]
*: Avoid casting to the same type as on the left

Just not necessary.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agozebra, ospf6d: Do not check if NULL for XCALLOC() 11161/head
Donatas Abraitis [Sun, 8 May 2022 12:43:21 +0000 (15:43 +0300)]
zebra, ospf6d: Do not check if NULL for XCALLOC()

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: clear misleading mismatched check 11096/head
anlan_cs [Tue, 26 Apr 2022 04:14:34 +0000 (00:14 -0400)]
bgpd: clear misleading mismatched check

Two changes for `delete_global_type2_routes()`:

1) Remove check of `bgp_dest_has_bgp_path_info_data(rddest)`.
It is unnecessary(`dest->info` should not be NULL) and misleading.
`if (rddest && bgp_dest_has_bgp_path_info_data(rddest))`
Use (locked) node with this check, but unlock with `if (rddest)`,
The mismatched condition is misleading, there seems to be a
mistake to extra unlock.
Just make it clear, immediately exit with `(!rddest)`.

2) Remove checking returned value for it, and use `void` as return type.
It is unnecessary and wrong. Even the check failed, it should continue
to delete other types of routes.
Just remove the check and go through.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11156 from donaldsharp/spelling_three
Donatas Abraitis [Sat, 7 May 2022 15:44:59 +0000 (18:44 +0300)]
Merge pull request #11156 from donaldsharp/spelling_three

valgrind issues and general cleanup

2 years agoisisd: Prevent direct copy of different size prefix'es 11156/head
Donald Sharp [Sat, 7 May 2022 01:24:56 +0000 (21:24 -0400)]
isisd: Prevent direct copy of different size prefix'es

Memory is allocated for a `struct prefix_ipv6` but
it was directly copied into a `struct prefix` via
direct pointer copy, which leads to a read past
end of memory.  Fix by using prefix_copy

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoisisd: Remove unneeded pre-declarations
Donald Sharp [Sat, 7 May 2022 01:19:07 +0000 (21:19 -0400)]
isisd: Remove unneeded pre-declarations

I don't know what was going on.  Removing the weird c structures.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoisisd: Fix read past end of string
Donald Sharp [Sat, 7 May 2022 01:05:38 +0000 (21:05 -0400)]
isisd: Fix read past end of string

using a memcpy for a strdup'ed string.  bad mojo

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years ago*: Fix doesnt spelling mistakes
Donald Sharp [Sat, 7 May 2022 00:38:40 +0000 (20:38 -0400)]
*: Fix doesnt spelling mistakes

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agozebra/interface.c: allow link-param delay min <= avg <= max 11155/head
G. Paul Ziemba [Fri, 6 May 2022 21:32:49 +0000 (14:32 -0700)]
zebra/interface.c: allow link-param delay min <= avg <= max

    RFC 7471 Section 4.2.7:
It is possible for min delay and max delay to be the same value.

    Prior to this change, the code required min < avg < max. This
    change allows min == avg and avg == max.

    test case:

    interface eth-rt1
      link-params
        delay 8000 min 8000 max 8000

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2 years agobgpd: Use uint64_t for bgp->flags 11154/head
Donatas Abraitis [Fri, 6 May 2022 19:10:56 +0000 (22:10 +0300)]
bgpd: Use uint64_t for bgp->flags

We will hit this soon because uint32_t will be not enough.

Two more flags gonna be added for rfc8538.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopimd: un-dependency-hell `pim_instance.h` 11151/head
David Lamparter [Fri, 6 May 2022 10:36:51 +0000 (12:36 +0200)]
pimd: un-dependency-hell `pim_instance.h`

This is causing build issues on BSD by including (transitively)
`linux/mroute6.h` - try to address by disentangling the headers a bunch.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agopimd: pass down length for register messages
David Lamparter [Tue, 3 May 2022 13:49:26 +0000 (15:49 +0200)]
pimd: pass down length for register messages

The IPv6 `mrt6msg` kernel pseudo-header does not have a length field;
accessing what would be the IPv6 payload length reads zeroes.

Pass down the proper length and use that instead.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agopim6d: fix Linux kernel header macro
David Lamparter [Tue, 3 May 2022 12:56:57 +0000 (14:56 +0200)]
pim6d: fix Linux kernel header macro

__KERNEL_DIV_ROUND_UP isn't in older versions of linux/const.h.  Rather
than pull in more headers, just inline the definition.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2 years agobfdd: fix override between sessions 11148/head
anlan_cs [Tue, 3 May 2022 13:26:15 +0000 (09:26 -0400)]
bfdd: fix override between sessions

After two single-hop sessions (*no local address are configured*) on two
interfaces are UP, remove one address of one interface, both of them
(actually, quite independent sessions) come to be DOWN, not just one.

Consider two boxes: A with `a1` and `a2` adddress on two interfaces,
and B with `b1` and `b2`.
Two sessions are set up and ok: `s1` with <a1,b1> and `s2` with <a2,b2>.
After `a1` of A is removed, there is an unhappy coincidence:
1) On A: `s1` changes local address, and sends <a2,b1> packets with help
of route.
2) On B: wrongly regarded <a2,b1> packets with non-zero remote descriminator
as part of `s2`, and are dropped for mismatched remote remote descriminator.
3) On A: `s1` sends <a2,b1> packets with zero remote descriminator to
initialize this session.
4) On B: wrongly regarded <a2,b1> packets with zero remote descriminator as
part of `s2`. Then `s2` will vibrate.

So the good sessions are overridden.

In this case, the <a2,b1> packets with zero remote descriminator won't take
effect until the current good sessions become bad.

Since single-hop sessions are allowed to be set without bound inteface in
current code, this commit adds one check in `bfd_recv_cb()` to avoid wrong
override.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #11145 from donaldsharp/bgp_capability
Donatas Abraitis [Thu, 5 May 2022 19:28:56 +0000 (22:28 +0300)]
Merge pull request #11145 from donaldsharp/bgp_capability

Bgp capability

2 years agobgpd: Add CLI knob to enable graceful restart for BGP notifications 11147/head
Donatas Abraitis [Wed, 4 May 2022 18:52:01 +0000 (21:52 +0300)]
bgpd: Add CLI knob to enable graceful restart for BGP notifications

N-bit flag should be exchanged in BGP OPEN messages, not only when the
bgpd is restarted/started.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11059 from anlancs/fix/bgpd-evnp-wrong-check-hashget
Donatas Abraitis [Wed, 4 May 2022 18:19:51 +0000 (21:19 +0300)]
Merge pull request #11059 from anlancs/fix/bgpd-evnp-wrong-check-hashget

bgpd: fix memory leak for evpn

2 years agoMerge pull request #11144 from ton31337/fix/bgp_notification_gr
Donald Sharp [Wed, 4 May 2022 16:05:50 +0000 (12:05 -0400)]
Merge pull request #11144 from ton31337/fix/bgp_notification_gr

bgpd: Fix memory leak for bgp_notify_receive()

2 years agobgpd: peer groups should not toggle interface based nht tracking 11145/head
Donald Sharp [Tue, 3 May 2022 19:24:28 +0000 (15:24 -0400)]
bgpd: peer groups should not toggle interface based nht tracking

Peer groups when various forms of `bgp capability extended-nexthop`
is entered on them are toggling the nexthop tracking status of peers
in their peer group.  This is ok when the peer is not interface based.
But it is not ok when the peer is interface based as that it will turn
off the ability of FRR to properly work with that peer type.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: Refuse to let interfaced peering to change capability extended-nexthop
Donald Sharp [Tue, 3 May 2022 19:23:14 +0000 (15:23 -0400)]
bgpd: Refuse to let interfaced peering to change capability extended-nexthop

Do not interface based peers change anything about when a
[no] neighbor <interface> capability extended-nexthop
is entered.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agobgpd: enhanced capability is always turned on for interface based peers
Donald Sharp [Tue, 3 May 2022 16:51:21 +0000 (12:51 -0400)]
bgpd: enhanced capability is always turned on for interface based peers

FRR is displaying that the peer enhanced capability command is not
turned on when the interface is part of a peer group.  Saving the
config and then reloading actually turns it off.

Fix the code so that FRR does not display the enhanced capability
for interface based peers.

Fixes: #11108
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years agoMerge pull request #11137 from opensourcerouting/if-name-len-fixes
Donald Sharp [Wed, 4 May 2022 11:44:26 +0000 (07:44 -0400)]
Merge pull request #11137 from opensourcerouting/if-name-len-fixes

*: standardize interface name maximum length

2 years agobgpd: Fix memory leak for bgp_notify_receive() 11144/head
Donatas Abraitis [Wed, 4 May 2022 10:27:47 +0000 (13:27 +0300)]
bgpd: Fix memory leak for bgp_notify_receive()

Initialize outer/inner bgp_notify structs to zero.

Free bgp_notify.raw_data after use.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoMerge pull request #11142 from patrasar/pim_register_show_fix
Rafael Zalamena [Tue, 3 May 2022 20:01:30 +0000 (17:01 -0300)]
Merge pull request #11142 from patrasar/pim_register_show_fix

pimd: fixing wrong diplay registerTx

2 years agobgpd: Show which RPKI server we are connected to 11138/head
Donatas Abraitis [Tue, 3 May 2022 14:47:10 +0000 (17:47 +0300)]
bgpd: Show which RPKI server we are connected to

Before we just showed always the first server which is wrong.

Now we have:

```
spine1-debian-11# show rpki cache-connection
Connected to group 1
rpki tcp cache 192.168.10.17 8283 pref 1
rpki tcp cache 192.168.10.17 8282 pref 2 (connected)
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agopimd: fixing wrong diplay registerTx 11142/head
sarita patra [Tue, 3 May 2022 15:53:47 +0000 (08:53 -0700)]
pimd: fixing wrong diplay registerTx

Signed-off-by: sarita patra <saritap@vmware.com>
2 years agobgpd: Add `rpki reset` to ENABLE node
Donatas Abraitis [Tue, 3 May 2022 12:44:11 +0000 (15:44 +0300)]
bgpd: Add `rpki reset` to ENABLE node

`rpki stop` and `rpki start` were already, let's add `rpki reset` as well.

Instead of going into configure mode.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Convert some variables from int to bool for RPKI
Donatas Abraitis [Tue, 3 May 2022 12:35:22 +0000 (15:35 +0300)]
bgpd: Convert some variables from int to bool for RPKI

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agodoc: Add missing commands for RPKI
Donatas Abraitis [Tue, 3 May 2022 12:28:53 +0000 (15:28 +0300)]
doc: Add missing commands for RPKI

rpki expire_interval
rpki retry_interval

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agobgpd: Make sure we print stats if we are sync at least with a single group
Donatas Abraitis [Tue, 3 May 2022 12:13:23 +0000 (15:13 +0300)]
bgpd: Make sure we print stats if we are sync at least with a single group

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoRevert "bgpd: Handle TCP connection errors with connection callbacks for RPKI"
Donatas Abraitis [Tue, 3 May 2022 12:09:52 +0000 (15:09 +0300)]
Revert "bgpd: Handle TCP connection errors with connection callbacks for RPKI"

This reverts commit db3aca462b7d721da85dde12bcc5808f9c32c981.

Connection handling is already fixed in librtr 0.8.0.
https://github.com/rtrlib/rtrlib/releases/tag/v0.8.0

https://github.com/rtrlib/rtrlib/commit/179e7efb59529008eed77b3cf783667435dfba9f

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2 years agoRevert "bgpd: Fix while(read()) for RPKI sync callback"
Donatas Abraitis [Tue, 3 May 2022 12:08:35 +0000 (15:08 +0300)]
Revert "bgpd: Fix while(read()) for RPKI sync callback"

This reverts commit b4fc876a327a89dc212efa48a04b76e53263722f.

2 years agoMerge pull request #11110 from anlancs/fix/bfdd-wrong-local
Sri Mohana Singamsetty [Mon, 2 May 2022 23:53:42 +0000 (16:53 -0700)]
Merge pull request #11110 from anlancs/fix/bfdd-wrong-local

bfdd: fix wrong local address of display command

2 years agoMerge pull request #11136 from donaldsharp/stupidity
Donatas Abraitis [Mon, 2 May 2022 19:48:38 +0000 (22:48 +0300)]
Merge pull request #11136 from donaldsharp/stupidity

tests: Use XCALLOC instead of XMALLOC for threads

2 years agoMerge pull request #11128 from opensourcerouting/feature/rfc8538
Donald Sharp [Mon, 2 May 2022 18:08:04 +0000 (14:08 -0400)]
Merge pull request #11128 from opensourcerouting/feature/rfc8538

bgpd: Implement GR N-Bit and CEASE/Hard Reset notification

2 years agoMerge pull request #11113 from opensourcerouting/pim6-icmp6-replace-bpf
Donald Sharp [Mon, 2 May 2022 17:19:47 +0000 (13:19 -0400)]
Merge pull request #11113 from opensourcerouting/pim6-icmp6-replace-bpf

pim6d: use ICMP6_FILTER instead of BPF on mroute

2 years agoMerge pull request #11132 from anlancs/fix/bgpd-prefix
Donald Sharp [Mon, 2 May 2022 17:17:08 +0000 (13:17 -0400)]
Merge pull request #11132 from anlancs/fix/bgpd-prefix

bgpd: delay "stream_new" in str2prefix_rd()

2 years agotests: Use XCALLOC instead of XMALLOC for threads 11136/head
Donald Sharp [Mon, 2 May 2022 17:00:47 +0000 (13:00 -0400)]
tests: Use XCALLOC instead of XMALLOC for threads

Someone decided to do malloc testing over make check.

Fixes: #11120
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2 years ago*: remove the checking returned value for hash_get() 11059/head
anlan_cs [Thu, 21 Apr 2022 06:37:12 +0000 (02:37 -0400)]
*: remove the checking returned value for hash_get()

Firstly, *keep no change* for `hash_get()` with NULL
`alloc_func`.

Only focus on cases with non-NULL `alloc_func` of
`hash_get()`.

Since `hash_get()` with non-NULL `alloc_func` parameter
shall not fail, just ignore the returned value of it.
The returned value must not be NULL.
So in this case, remove the unnecessary checking NULL
or not for the returned value and add `void` in front
of it.

Importantly, also *keep no change* for the two cases with
non-NULL `alloc_func` -
1) Use `assert(<returned_data> == <searching_data>)` to
   ensure it is a created node, not a found node.
   Refer to `isis_vertex_queue_insert()` of isisd, there
   are many examples of this case in isid.
2) Use `<returned_data> != <searching_data>` to judge it
   is a found node, then free <searching_data>.
   Refer to `aspath_intern()` of bgpd, there are many
   examples of this case in bgpd.

Here, <returned_data> is the returned value from `hash_get()`,
and <searching_data> is the data, which is to be put into
hash table.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agobgpd: fix memory leak for evpn
anlan_cs [Wed, 20 Apr 2022 10:57:53 +0000 (06:57 -0400)]
bgpd: fix memory leak for evpn

If `hash_get()` returns NULL, the list created with
`list_new()` is not be freed.

Since `hash_get()` should not fail, we don't need
`list_delete()` and other boring `XFREE()`s for its
failure case.

Just ignore returning value of `hash_get()` in these
cases.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agolib: change FRR interface name length definition 11137/head
Rafael Zalamena [Mon, 2 May 2022 16:02:31 +0000 (13:02 -0300)]
lib: change FRR interface name length definition

Use the OS provided maximum name length instead of defining an arbitrary
one.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 years ago*: use FRR interface name definition everywhere
Rafael Zalamena [Mon, 2 May 2022 16:00:12 +0000 (13:00 -0300)]
*: use FRR interface name definition everywhere

Don't rely on the OS interface name length definition and use the FRR
definition instead.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 years agobfdd: remove "local_address" of bfd session 11110/head
ewlumpkin [Thu, 10 Feb 2022 22:07:38 +0000 (17:07 -0500)]
bfdd: remove "local_address" of bfd session

The "local_address" of bfd is only used in `show bfd peers brief`
for single hop sessions which are configured without "local address".
Since it is set by destination address of received packet, not
completely correct, so remove it.

Signed-off-by: ewlumpkin <ewlumpkin@gmail.com>
Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agopbrd: fix interface compare usage
Rafael Zalamena [Fri, 29 Apr 2022 16:50:26 +0000 (13:50 -0300)]
pbrd: fix interface compare usage

Don't use `strncmp` when we expect to match the whole string.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 years agobgpd: fix interface name compare
Rafael Zalamena [Fri, 29 Apr 2022 16:49:08 +0000 (13:49 -0300)]
bgpd: fix interface name compare

We always want to compare the whole string, lets not use `strncmp` for
this case.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2 years agobgpd: delay "stream_new" in str2prefix_rd() 11132/head
anlan_cs [Sun, 1 May 2022 12:33:01 +0000 (08:33 -0400)]
bgpd: delay "stream_new" in str2prefix_rd()

`stream_new` in `str2prefix_rd()` can be called after some
checkings are passed, so the last `if (s)` in this fuction will
make sense.

Additionally some changes for `str2prefix_rd()`:
1) Use `RD_BYTES` instead of hard number for `stream_new()`
2) Remove unnecessary `lret` variable

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2 years agoMerge pull request #10742 from plsaranya/pim_register
mobash-rasool [Mon, 2 May 2022 07:46:03 +0000 (13:16 +0530)]
Merge pull request #10742 from plsaranya/pim_register

pim6d: Register message send handling

2 years agobgpd: Implement CEASE/Hard Reset notification 11128/head
Donatas Abraitis [Sat, 30 Apr 2022 20:04:58 +0000 (23:04 +0300)]
bgpd: Implement CEASE/Hard Reset notification

Also, add N-Bit (Notification) flag for Graceful Restart.

This is a preparation for RFC8538.

More information: https://datatracker.ietf.org/doc/html/rfc8538

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
3 years agoMerge pull request #11119 from kuldeepkash/pim_v6
Donatas Abraitis [Sat, 30 Apr 2022 14:04:38 +0000 (17:04 +0300)]
Merge pull request #11119 from kuldeepkash/pim_v6

tests: [PIMv6] Using generic names for PIM verification APIs

3 years agotests: [PIMv6] Using generic names for pim verification APIs 11119/head
Kuldeep Kashyap [Thu, 28 Apr 2022 13:35:38 +0000 (19:05 +0530)]
tests: [PIMv6] Using generic names for pim verification APIs

1. Modified pim APIs name to generic one, same APIs would be used for PIMv4 and PIMv6
verifications
2. Modified all affacted scripts and ran multiple times locally to avoid CI failures

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
3 years agoMerge pull request #11122 from ak503/bgp_esi_str
Igor Ryzhov [Fri, 29 Apr 2022 15:59:59 +0000 (18:59 +0300)]
Merge pull request #11122 from ak503/bgp_esi_str

bgpd: fix size of esi_buf

3 years agoMerge pull request #11118 from opensourcerouting/time-fmt-nulls
Donald Sharp [Fri, 29 Apr 2022 14:00:05 +0000 (10:00 -0400)]
Merge pull request #11118 from opensourcerouting/time-fmt-nulls

lib: format NULL timevals correctly

3 years agobgpd: fix size of esi_buf 11122/head
Dmitrii Turlupov [Fri, 29 Apr 2022 11:56:25 +0000 (14:56 +0300)]
bgpd: fix size of esi_buf

Fixes: #11111
Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
3 years agoMerge pull request #10988 from AbhishekNR/ipv6_mroute_cli
David Lamparter [Fri, 29 Apr 2022 08:23:37 +0000 (10:23 +0200)]
Merge pull request #10988 from AbhishekNR/ipv6_mroute_cli

3 years agoMerge pull request #11114 from opensourcerouting/vrf-declvar-macros
mobash-rasool [Fri, 29 Apr 2022 08:23:08 +0000 (13:53 +0530)]
Merge pull request #11114 from opensourcerouting/vrf-declvar-macros

lib, zebra, pimd: clean up/fix VRF DECLVAR macros