]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
16 months ago*: Add -Wswitch-enum to build
Donald Sharp [Mon, 30 Jan 2023 15:12:06 +0000 (10:12 -0500)]
*: Add -Wswitch-enum to build

The -Wswitch-enum will allow the compiler to warn us
when a developer creates a switch over a enum and is
using `default:` when they should be iterating over
every enum

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agotools: Add missing enums to switch statement
Donald Sharp [Mon, 30 Jan 2023 16:05:23 +0000 (11:05 -0500)]
tools: Add missing enums to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoqpb: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:11:50 +0000 (10:11 -0500)]
qpb: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agopceplib: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:11:32 +0000 (10:11 -0500)]
pceplib: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoripngd: Add missing enums to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:11:15 +0000 (10:11 -0500)]
ripngd: Add missing enums to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoripd: Add missin enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:10:59 +0000 (10:10 -0500)]
ripd: Add missin enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agopbrd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:10:45 +0000 (10:10 -0500)]
pbrd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoospfd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:09:53 +0000 (10:09 -0500)]
ospfd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoldpd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:09:37 +0000 (10:09 -0500)]
ldpd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agostaticd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:09:22 +0000 (10:09 -0500)]
staticd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agonhrpd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:09:04 +0000 (10:09 -0500)]
nhrpd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoisisd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:08:47 +0000 (10:08 -0500)]
isisd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agopathd: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:08:25 +0000 (10:08 -0500)]
pathd: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agopimd: Add missing enums to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:08:06 +0000 (10:08 -0500)]
pimd: Add missing enums to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agolib: Add missing enum's to switch statement
Donald Sharp [Mon, 30 Jan 2023 15:06:29 +0000 (10:06 -0500)]
lib: Add missing enum's to switch statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: Add missing enums to switch statements
Donald Sharp [Mon, 30 Jan 2023 15:05:58 +0000 (10:05 -0500)]
zebra: Add missing enums to switch statements

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobgpd: Add missing enum's to case statement
Donald Sharp [Mon, 30 Jan 2023 15:05:41 +0000 (10:05 -0500)]
bgpd: Add missing enum's to case statement

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agolib: Add missing enum's to northbound.c
Donald Sharp [Fri, 27 Jan 2023 13:48:47 +0000 (08:48 -0500)]
lib: Add missing enum's to northbound.c

Some enums were missing for string conversions in northbound.c

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agolib: Adding missing string to switch statement in mlag.c
Donald Sharp [Fri, 27 Jan 2023 13:42:58 +0000 (08:42 -0500)]
lib: Adding missing string to switch statement in mlag.c

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobgpd: ecommunity_token_rt6 is not handled
Donald Sharp [Fri, 27 Jan 2023 13:10:08 +0000 (08:10 -0500)]
bgpd: ecommunity_token_rt6 is not handled

The function ecommunity_str2com_internal appears to want to handle
the ecommunity_token_rt6 enum but skips over it.  Commit
9a659715dfcb6c0b1e3ef8004b6c9d14c55f2081 tried to add this but I really
don't see how this is going to behave correctly.  Add the
ecommunity_token_rt6 case to the switch statement so it is handled
appropriately?

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoMerge pull request #12687 from opensourcerouting/build-mkdir-p
Mark Stapp [Tue, 31 Jan 2023 16:28:32 +0000 (11:28 -0500)]
Merge pull request #12687 from opensourcerouting/build-mkdir-p

build: consistently mkdir -p output for redirect

16 months agoMerge pull request #12708 from donaldsharp/no_notification
Mark Stapp [Tue, 31 Jan 2023 15:55:01 +0000 (10:55 -0500)]
Merge pull request #12708 from donaldsharp/no_notification

zebra: Send nht resolved entry up to concerned protocols in all cases

16 months agoMerge pull request #12695 from opensourcerouting/format-warnings
Donald Sharp [Tue, 31 Jan 2023 14:01:32 +0000 (09:01 -0500)]
Merge pull request #12695 from opensourcerouting/format-warnings

build: `-Wformat-nonliteral -Wformat-security`

16 months agoMerge pull request #12710 from opensourcerouting/fix/reset_fqdn_capability_on_before_...
Donald Sharp [Tue, 31 Jan 2023 13:46:03 +0000 (08:46 -0500)]
Merge pull request #12710 from opensourcerouting/fix/reset_fqdn_capability_on_before_handling_open

bgpd: Vanish FQDN capability hostname/domainname before handling new BGP OPEN

16 months agoMerge pull request #12711 from opensourcerouting/topotest-pid-fix
Donald Sharp [Tue, 31 Jan 2023 13:45:04 +0000 (08:45 -0500)]
Merge pull request #12711 from opensourcerouting/topotest-pid-fix

tests: Topotests fix for deleting wrong pidfile

16 months agozebra: Send nht resolved entry up to concerned protocols in all cases
Donald Sharp [Mon, 30 Jan 2023 18:53:44 +0000 (13:53 -0500)]
zebra: Send nht resolved entry up to concerned protocols in all cases

There existed the idea, from Volta, that a nexthop group would not have
the same nexthops installed -vs- what FRR actually sent down.  The
dplane would notify you.

With the addition of 06525c4f99d4dcafdf448565f7e11bd70993697d
the code was put behind a bit of a wall controlled the usage
of it.

The flag ROUTE_ENTRY_USE_FIB_NHG flag was being used
to control which set was being sent up to concerned parties
in nexthop tracking.  Put this flag behind the wall and
do not necessarily set it when we receive a data plane
notification about a route being installed or not.

Fixes: #12706
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoMerge pull request #12709 from donaldsharp/update_withdraw_always_work
Donatas Abraitis [Tue, 31 Jan 2023 06:50:06 +0000 (08:50 +0200)]
Merge pull request #12709 from donaldsharp/update_withdraw_always_work

bgpd: bgp_update and bgp_withdraw never return failures

16 months agotests: Topotests fix for deleting wrong pidfile
Martin Winter [Mon, 30 Jan 2023 22:26:48 +0000 (23:26 +0100)]
tests: Topotests fix for deleting wrong pidfile

Fixes killRouterDaemons() function which occasionally deleted the wrong
pidfile.

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
16 months agobgpd: Vanish FQDN capability hostname/domainname before handling new BGP OPEN
Donatas Abraitis [Mon, 30 Jan 2023 21:23:38 +0000 (23:23 +0200)]
bgpd: Vanish FQDN capability hostname/domainname before handling new BGP OPEN

Before this, if the peer disables sending FQDN capability, the old hostname
still (STALE) exists and is misleading in the outputs of `show bgp ...`.

Especially when using with `bgp default show-hostname`, etc.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agobgpd: Free peer's hostname (aka FQDN capability stuff)
Donatas Abraitis [Mon, 30 Jan 2023 21:22:58 +0000 (23:22 +0200)]
bgpd: Free peer's hostname (aka FQDN capability stuff)

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agotests: Check if we vanish hostname/domainname if disabled from another side
Donatas Abraitis [Mon, 30 Jan 2023 21:22:23 +0000 (23:22 +0200)]
tests: Check if we vanish hostname/domainname if disabled from another side

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agobgpd: bgp_update and bgp_withdraw never return failures
Donald Sharp [Mon, 30 Jan 2023 21:02:23 +0000 (16:02 -0500)]
bgpd: bgp_update and bgp_withdraw never return failures

These two functions always return 0.  As such any and all
tests against this make no sense.  Remove the return 0
to a void and follow the chain, logically, to remove all
the dead code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoMerge pull request #12700 from taspelund/martian_tip_improvement
Donatas Abraitis [Mon, 30 Jan 2023 08:52:44 +0000 (10:52 +0200)]
Merge pull request #12700 from taspelund/martian_tip_improvement

BGP Martian Tunnel-IP Improvements

16 months agoMerge pull request #12703 from donaldsharp/basic_babel
Donatas Abraitis [Mon, 30 Jan 2023 08:45:49 +0000 (10:45 +0200)]
Merge pull request #12703 from donaldsharp/basic_babel

Basic babel

16 months agotests: Super simple babel test
Donald Sharp [Sat, 28 Jan 2023 16:17:08 +0000 (11:17 -0500)]
tests: Super simple babel test

Just get babel started and ensure that the v4 routes
are actually installed.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobabeld: During intf startup, ignore address already in use
Donald Sharp [Sat, 28 Jan 2023 14:32:34 +0000 (09:32 -0500)]
babeld: During intf startup, ignore address already in use

When listening on a multicast group.  No need to actually
fail the operation when it's already being used.

Let's not treat the Address already in use error message
as one that is stopping everything from working.  Especially
since multiple interface events cause this to happen.

Without this, if config is read in before full connection
to zebra, babel will never establish neighbors.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobabeld: The function is already a pointer
Donald Sharp [Sat, 28 Jan 2023 14:31:52 +0000 (09:31 -0500)]
babeld: The function is already a pointer

Don't send the address of in.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agobgpd: move tunnel-ip comparison into handler
Trey Aspelund [Wed, 25 Jan 2023 18:25:20 +0000 (13:25 -0500)]
bgpd: move tunnel-ip comparison into handler

Moves the old/new IP comparison into handle_tunnel_ip_change instead of
expecting the caller to do the check on their own.
Also changes handle_tunnel_ip_change to return void since it only ever
returned 0 in all cases.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
16 months agobgpd: only unimport routes if tunnel-ip changes
Trey Aspelund [Wed, 25 Jan 2023 18:07:43 +0000 (13:07 -0500)]
bgpd: only unimport routes if tunnel-ip changes

When processing a new local VNI, we were always walking the global EVPN
table to look for routes that needed to be removed due to a martian
nexthop change (specifically a tunnel-ip change).
Since the martian TIP table is global (all VNIs) + the walk is also in
the global table (all VNIs), we can trust that any new TIP from any VNI
would result in routes getting removed from the global table and
unimported from all live (L2)VNIs.
i.e.
The only time this update is actionable is if we are adding/removing an
IP from the martian TIP table, and we do not need to walk the table for
normal refcount adjustments.

Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
16 months agoMerge pull request #12690 from opensourcerouting/feature/deny_merging_prs_with_freeze...
Donald Sharp [Fri, 27 Jan 2023 12:43:02 +0000 (07:43 -0500)]
Merge pull request #12690 from opensourcerouting/feature/deny_merging_prs_with_freeze_label

github: Prevent merging (fail CI) if 'freeze' label exists for PR

16 months agoMerge pull request #12691 from mjstapp/fix_dplane_prov_lock
Donald Sharp [Fri, 27 Jan 2023 12:35:50 +0000 (07:35 -0500)]
Merge pull request #12691 from mjstapp/fix_dplane_prov_lock

zebra: fix SA warning, don't lock plugin list

16 months agobuild: enable format string warnings
David Lamparter [Thu, 26 Jan 2023 13:18:51 +0000 (14:18 +0100)]
build: enable format string warnings

I thought these were included in `-Wall -Wextra`, but apparently not.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agobfdd: fix size_t format string
David Lamparter [Fri, 27 Jan 2023 10:14:35 +0000 (11:14 +0100)]
bfdd: fix size_t format string

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agobgpd: fix silly format string SNAFU
David Lamparter [Thu, 26 Jan 2023 13:55:16 +0000 (14:55 +0100)]
bgpd: fix silly format string SNAFU

Someone thought vty_out accepts a list of strings.  It does not.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agobgpd: fix format string mess in AS-path printing
David Lamparter [Thu, 26 Jan 2023 13:45:11 +0000 (14:45 +0100)]
bgpd: fix format string mess in AS-path printing

This was done *very* weirdly.  Make it slightly less so.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agolib: literal constant format string for termtable
David Lamparter [Thu, 26 Jan 2023 13:23:50 +0000 (14:23 +0100)]
lib: literal constant format string for termtable

While this wasn't a problematic use of a format string, make it a
literal constant so the compiler is happy.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months ago*: fix non-const northbound XPath format strings
David Lamparter [Thu, 26 Jan 2023 13:56:04 +0000 (14:56 +0100)]
*: fix non-const northbound XPath format strings

Passing a pre-formatted buffer in these places needs a `"%s"` in front
so it doesn't get formatted twice.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months ago*: no-warn pragmas for non-const format strings
David Lamparter [Thu, 26 Jan 2023 13:53:47 +0000 (14:53 +0100)]
*: no-warn pragmas for non-const format strings

We do use non-constant/literal format strings in a few places for more
or less valid reasons;  put `ignored "-Wformat-nonliteral"` around those
so we can have the warning enabled for everywhere else.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months ago*: apply proper format string attributes
David Lamparter [Thu, 26 Jan 2023 13:21:02 +0000 (14:21 +0100)]
*: apply proper format string attributes

So that we get warnings about broken format strings.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agoMerge pull request #12696 from donaldsharp/shadowed
Donatas Abraitis [Fri, 27 Jan 2023 09:50:27 +0000 (11:50 +0200)]
Merge pull request #12696 from donaldsharp/shadowed

Shadowed

16 months agolib: Remove global variable exposure `struct host host`
Donald Sharp [Thu, 26 Jan 2023 15:53:47 +0000 (10:53 -0500)]
lib: Remove global variable exposure `struct host host`

This was only used in one place and we have accessor functions
now.  So let's use them.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agowatchfrr: dmn variable shadows previous declaration
Donald Sharp [Thu, 26 Jan 2023 15:44:52 +0000 (10:44 -0500)]
watchfrr: dmn variable shadows previous declaration

There is no need to declar the same temp variable 2 times.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: i declaration shadows other i declared
Donald Sharp [Thu, 26 Jan 2023 15:41:55 +0000 (10:41 -0500)]
zebra: i declaration shadows other i declared

Clear up some confustion

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agolib: Forward declaration of a struct does not need to have data type
Donald Sharp [Thu, 26 Jan 2023 15:37:39 +0000 (10:37 -0500)]
lib: Forward declaration of a struct does not need to have data type

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agoMerge pull request #12694 from donaldsharp/zebra_rib_dead_code
Rafael Zalamena [Thu, 26 Jan 2023 16:30:55 +0000 (13:30 -0300)]
Merge pull request #12694 from donaldsharp/zebra_rib_dead_code

remove dead code

16 months agolib: Remove dead code
Donald Sharp [Wed, 25 Jan 2023 20:45:39 +0000 (15:45 -0500)]
lib: Remove dead code

wheel_stop and wheel_start have never been used.  Let's just remove
them.  After close to 7 years, if needed someone else can add back in.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: Remove impossible to use function
Donald Sharp [Wed, 25 Jan 2023 20:27:41 +0000 (15:27 -0500)]
zebra: Remove impossible to use function

The rib_update_handle_vrf function is no longer being used.
Cleanup it's usage from zebra.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
16 months agozebra: fix SA warning, don't lock plugin list
Mark Stapp [Wed, 25 Jan 2023 13:38:47 +0000 (08:38 -0500)]
zebra: fix SA warning, don't lock plugin list

Locking around the list of providers/plugins is not
helpful - these only change at init time. Clear some SA
warnings by removing the locking.

Signed-off-by: Mark Stapp <mjs@labn.net>
16 months agoMerge pull request #12685 from louis-6wind/fix-vpnv4-noretain
Donatas Abraitis [Wed, 25 Jan 2023 09:23:08 +0000 (11:23 +0200)]
Merge pull request #12685 from louis-6wind/fix-vpnv4-noretain

topotests: fix bgp_vpnv4_noretain

16 months agogithub: Prevent merging (fail CI) if 'freeze' label exists for PR
Donatas Abraitis [Wed, 25 Jan 2023 08:43:55 +0000 (10:43 +0200)]
github: Prevent merging (fail CI) if 'freeze' label exists for PR

Mostly useful duging the freeze period to warn the maintainers from merging
unwanted PRs.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #12660 from Pdoijode/ip-nht-json-changes
Donatas Abraitis [Wed, 25 Jan 2023 08:32:18 +0000 (10:32 +0200)]
Merge pull request #12660 from Pdoijode/ip-nht-json-changes

zebra: fix JSON fields for "show ip/ipv6 nht"

16 months agoMerge pull request #12684 from chiragshah6/fdev2
Donatas Abraitis [Wed, 25 Jan 2023 08:30:10 +0000 (10:30 +0200)]
Merge pull request #12684 from chiragshah6/fdev2

bgpd: evpn route detail json display non prett

16 months agozebra: fix JSON fields for "show ip/ipv6 nht"
Pooja Jagadeesh Doijode [Wed, 25 Jan 2023 02:15:36 +0000 (18:15 -0800)]
zebra: fix JSON fields for "show ip/ipv6 nht"

1. Renamed "gates" to "nexthops"
2. Displaying afi of the nexthops being dispalyed in place of
   "nexthops" JSON object in the old JSON output
3. Calling show_route_nexthop_helper() and show_nexthop_json_helper()
   instead of print_nh() inorder to keeps the fields in "nexthops"
   JSON object in sync with "nexthops" JSON object of
   "show nexthop-group rib json".

Updated vtysh:
    r1# show ip nht
    192.168.0.2
     resolved via connected
     is directly connected, r1-eth0 (vrf default)
     Client list: static(fd 28)
    192.168.0.4
     resolved via connected
     is directly connected, r1-eth0 (vrf default)
     Client list: static(fd 28)

Updated JSON:
    r1# show ip nht json
    {
      "default":{
        "ipv4":{
          "192.168.0.2":{
            "nhtConnected":false,
            "clientList":[
              {
                "protocol":"static",
                "socket":28,
                "protocolFiltered":"none"
              }
            ],
            "nexthops":[
              {
                "flags":3,
                "fib":true,
                "directlyConnected":true,
                "interfaceIndex":2,
                "interfaceName":"r1-eth0",
                "vrf":"default",
                "active":true
              }
            ],
            "resolvedProtocol":"connected"
          }
        }
      }
    }

Signed-off-by: Pooja Jagadeesh Doijode <pdoijode@nvidia.com>
16 months agoMerge pull request #12680 from mjstapp/fix_dplane_lists
Rafael Zalamena [Tue, 24 Jan 2023 21:46:52 +0000 (18:46 -0300)]
Merge pull request #12680 from mjstapp/fix_dplane_lists

zebra: use typesafe lib lists in zebra dplane

16 months agoMerge pull request #12670 from louis-6wind/fix-bfd-zclient
Rafael Zalamena [Tue, 24 Jan 2023 19:52:54 +0000 (16:52 -0300)]
Merge pull request #12670 from louis-6wind/fix-bfd-zclient

lib: do not reopen a zclient socket for bfd

16 months agoyang: fix race condition in embedmodel.py mkdir
David Lamparter [Tue, 24 Jan 2023 17:17:05 +0000 (18:17 +0100)]
yang: fix race condition in embedmodel.py mkdir

Parallel build may be executing another copy of embedmodel.py at the
same time, with both getting "False" on the isdir check, and then both
trying to mkdir - one of which will error out.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agobuild: consistently mkdir -p output for redirect
David Lamparter [Tue, 24 Jan 2023 16:45:13 +0000 (17:45 +0100)]
build: consistently mkdir -p output for redirect

When running the build in a separate build directory, redirecting output
into a file can error out if the directory does not exist yet.  Some
places already had `mkdir -p` calls, but not all.

Make all occurences of this consistently use `@$(MKDIR_P)`.

(Extension of PR #12575 to catch more places.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
16 months agoMerge pull request #12575 from anlancs/fix/build-vtysh-missing-dir
David Lamparter [Tue, 24 Jan 2023 16:40:55 +0000 (17:40 +0100)]
Merge pull request #12575 from anlancs/fix/build-vtysh-missing-dir

16 months agoMerge pull request #12682 from opensourcerouting/time-cs
Russ White [Tue, 24 Jan 2023 15:51:44 +0000 (10:51 -0500)]
Merge pull request #12682 from opensourcerouting/time-cs

*: fix time truncation in many places

16 months agoMerge pull request #12678 from opensourcerouting/fix/missing_no_form_for_path_attribu...
Russ White [Tue, 24 Jan 2023 15:45:03 +0000 (10:45 -0500)]
Merge pull request #12678 from opensourcerouting/fix/missing_no_form_for_path_attribute_discard

bgpd: Add missing `no` form for `neighbor path-attribute discard` cmd

16 months agoMerge pull request #12634 from anlancs/fix/lib-seq-adjust-return-value
Russ White [Tue, 24 Jan 2023 15:36:17 +0000 (10:36 -0500)]
Merge pull request #12634 from anlancs/fix/lib-seq-adjust-return-value

lib: fix wrong returned value for filter

16 months agoMerge pull request #12640 from vfreex/babel-no-commands
Russ White [Tue, 24 Jan 2023 15:33:24 +0000 (10:33 -0500)]
Merge pull request #12640 from vfreex/babel-no-commands

babeld: Add missing `no` commands

16 months agoMerge pull request #10405 from kanaya516/feature/adj-sid-yang
Russ White [Tue, 24 Jan 2023 15:26:07 +0000 (10:26 -0500)]
Merge pull request #10405 from kanaya516/feature/adj-sid-yang

isisd: yang for adjacency-sid and lan-adjacency-sid

16 months agoMerge pull request #12647 from anlancs/fix/bgpd-type-2
Russ White [Tue, 24 Jan 2023 15:13:22 +0000 (10:13 -0500)]
Merge pull request #12647 from anlancs/fix/bgpd-type-2

bgpd: cosmetic changes for debug

16 months agolib: remove concurrent nexthop zapi (un)registration
Louis Scalbert [Mon, 23 Jan 2023 12:33:22 +0000 (13:33 +0100)]
lib: remove concurrent nexthop zapi (un)registration

Daemons like staticd already implement nexthop zapi (un)registration.
b7ca809d1c ("lib: BFD automatic source selection") has implemented a
concurrent nexthop (un)registration. Some nexthop could be unregistred
by the bfd whereas they were still needed by the daemon.

Let the deamons deal with nexthop zapi (un)registration.

Fixes: b7ca809d1c ("lib: BFD automatic source selection")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
16 months agolib: do not reopen a zclient socket for bfd
Louis Scalbert [Mon, 23 Jan 2023 10:57:57 +0000 (11:57 +0100)]
lib: do not reopen a zclient socket for bfd

b7ca809d1c ("lib: BFD automatic source selection") has added a dedicated
zclient socket for nht tracking. Since the bfd lib is used by daemons
that already has a zclient socket, those daemons has now a second
zclient socket. However, zebra does not distinguish the two zclient
sessions. For example, the interfaces are asked a second via
zebra_message_send(zclient, ZEBRA_INTERFACE_ADD, VRF_DEFAULT) in
zclient_start(). As a result, callbacks functions like bgp_ifp_create()
are called a second time, which causes some processing overhead and
might cause bugs.

Re-use the existing zclient socket for nht tracking.

Note that BFD automatic source selection is only currently implemented
in staticd. Other daemons will require to add the following in their
ZEBRA_NEXTHOP_UPDATE callback function:

>  if (zclient->bfd_integration)
> bfd_nht_update(&matched, &nhr);

Fixes: b7ca809d1c ("lib: BFD automatic source selection")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
16 months agoMerge pull request #12681 from pguibert6WIND/vpnv6_encode_plus
Donatas Abraitis [Tue, 24 Jan 2023 12:47:58 +0000 (14:47 +0200)]
Merge pull request #12681 from pguibert6WIND/vpnv6_encode_plus

Vpnv6 encode plus

16 months agotopotests: fix bgp_vpnv4_noretain
Louis Scalbert [Mon, 23 Jan 2023 17:03:58 +0000 (18:03 +0100)]
topotests: fix bgp_vpnv4_noretain

Fix the following issues:
- two tests are done in one function. Dispatch the tests in two
functions to help the test debug.
- the first test passes even if a third prefix is not filtered. Match
the exact to avoid false positive.
- the expected values contains variable like version. Do no check
variable values.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
16 months agoMerge pull request #12679 from spk-hebbar/master
Donatas Abraitis [Tue, 24 Jan 2023 08:01:55 +0000 (10:01 +0200)]
Merge pull request #12679 from spk-hebbar/master

zebra_fpm: Add support for other protocols in fpm:netlink

16 months agobgpd: fix when route-map changes the link local nexthop for vpnv6
Philippe Guibert [Mon, 23 Jan 2023 15:31:12 +0000 (16:31 +0100)]
bgpd: fix when route-map changes the link local nexthop for vpnv6

This fix updates the nexthop length of a bgp update to be
transmitted to a remote peer. Before the previous commit,
the ipv6 nexthop length was internally set to 32 bytes which
was not correct, as it should be 48 bytes which is conform
to the vpnv6 encoding format.

However, without the previous match, even if internally, the
nexthop length was set to 32, the real nexthop length was set
to 48 bytes, and everything was operating ok.

Now, if we use the following route-map, and attach it to
outgoing for vpnv6 address family, then we have a malformed
packet detected, and the peering breaks.

 > route-map rmap permit 1
 > set ipv6 next-hop global 5:5::3:6
 > set ipv6 next-hop local fe80:55::333:222

Maintain the mp_nexthop_len to 48 bytes if it was already set
to 48 previously.

Fixes: 35ac9b53f2e2 ("bgpd: fix vpnv6 nexthop encoding")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agobgpd: evpn route detail json display non prett
Chirag Shah [Tue, 24 Jan 2023 06:18:24 +0000 (22:18 -0800)]
bgpd: evpn route detail json display non prett

For BGP evpn route table detail json to use
non pretty form of display.

Problem:
In scaled evpn route table detail json dump
occupies high resources (CPU + memory) of the system.
In high scale evpn route dump using pretty form
hogs CPU for a while which can trigger watchfrr
to kill bgpd.

Solution:
Avoid pretty JSON print for detail version dump

Signed-off-by: Chirag Shah <chirag@nvidia.com>
16 months agoMerge pull request #12677 from opensourcerouting/fix/ospf_potential_memory_leak
mobash-rasool [Tue, 24 Jan 2023 04:24:44 +0000 (09:54 +0530)]
Merge pull request #12677 from opensourcerouting/fix/ospf_potential_memory_leak

ospfd: Free memory for JSON allocated object before return

16 months agozebra_fpm: Add support for other protocols in fpm:netlink
Spoorthi K [Mon, 23 Jan 2023 03:34:04 +0000 (09:04 +0530)]
zebra_fpm: Add support for other protocols in fpm:netlink

    fpm:netlink format doesn't indicate the protocol information
    in routes of BGP, OSPF and other protocols. Routes of those
    protocols just indicate protocol as zebra.

    The below route is actually BGP route but 'proto': 11
    indicates that it is zebra.

    {'attrs': [('RTA_DST', 'dummy'),
               ('RTA_PRIORITY', 0),
               ('RTA_GATEWAY', 'dummy'),
               ('RTA_OIF', 2)],
     'dst_len': 32,
     'family': 2,
     'flags': 0,
     'header': {'flags': 1025,
                'length': 60,
                'pid': 3160253895,
                'sequence_number': 0,
                'type': 24},
     'proto': 11,
     'scope': 0,
     'src_len': 0,
     'table': 254,
     'tos': 0,
     'type': 1}

    with this change it is now seen with 'proto': 186
    indicates that it is BGP.

    {'attrs': [('RTA_DST', 'dummy'),
               ('RTA_PRIORITY', 0),
               ('RTA_GATEWAY', 'dummy'),
               ('RTA_OIF', 2)],
     'dst_len': 32,
     'family': 2,
     'flags': 0,
     'header': {'flags': 1025,
                'length': 60,
                'pid': 3160253895,
                'sequence_number': 0,
                'type': 24},
     'proto': 186,
     'scope': 0,
     'src_len': 0,
     'table': 254,
     'tos': 0,
     'type': 1}

Signed-off-by: Spoorthi K <spk@redhat.com>
16 months agobgpd: encode properly vpnv6 nexthop
Philippe Guibert [Mon, 23 Jan 2023 15:27:45 +0000 (16:27 +0100)]
bgpd: encode properly vpnv6 nexthop

This change updates the nexthop attribute length
accordingly to the safi used. Actually, with the
previous commit, the length calculated was not
aligned with the real nexthop length. Such packet
received by remote peer was malformed, and this
was resulting in breaking vpnv6 peering.

Fix this by updating appropriately the real
nexthop length.

Fixes: 35ac9b53f2e2 ("bgpd: fix vpnv6 nexthop encoding")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
16 months agozebra: use typesafe lib lists in zebra dplane
Mark Stapp [Fri, 20 Jan 2023 22:24:17 +0000 (17:24 -0500)]
zebra: use typesafe lib lists in zebra dplane

Replace some of the old queue/DLIST macros with typesafe
dlists.

Signed-off-by: Mark Stapp <mjs@labn.net>
16 months agoospfd: Free memory for JSON allocated object before return
Donatas Abraitis [Mon, 23 Jan 2023 11:46:42 +0000 (13:46 +0200)]
ospfd: Free memory for JSON allocated object before return

For show_ip_ospf_database_type_adv_router_common().

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoisisd: fix time truncation on display
Rafael Zalamena [Mon, 23 Jan 2023 11:16:39 +0000 (08:16 -0300)]
isisd: fix time truncation on display

Use a larger storage to keep the `time_t` that is platform agnostic and
use the appropriated printing primitive.

Found by Coverity Scan (CID 1519793)

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
16 months agobgpd: Add missing `no` form for `neighbor path-attribute discard` cmd
Donatas Abraitis [Sun, 22 Jan 2023 19:56:31 +0000 (21:56 +0200)]
bgpd: Add missing `no` form for `neighbor path-attribute discard` cmd

Just forgot this _somehow_ :)

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #12673 from chiragshah6/fdev1
Donatas Abraitis [Sun, 22 Jan 2023 19:19:04 +0000 (21:19 +0200)]
Merge pull request #12673 from chiragshah6/fdev1

ospfd: fix crash show ip ospf border-routers json

16 months agoospfd: Free memory for JSON allocated object before return
Donatas Abraitis [Sun, 22 Jan 2023 19:01:51 +0000 (21:01 +0200)]
ospfd: Free memory for JSON allocated object before return

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
16 months agoMerge pull request #12671 from vfreex/babel-fix-terminal
Donatas Abraitis [Sat, 21 Jan 2023 22:02:05 +0000 (00:02 +0200)]
Merge pull request #12671 from vfreex/babel-fix-terminal

babeld: Fix --terminal option

16 months agoospfd: fix crash show ip ospf border-routers json
Chirag Shah [Sat, 21 Jan 2023 07:21:01 +0000 (23:21 -0800)]
ospfd: fix crash show ip ospf border-routers json

When show ip ospf border-routers json (without vrf)
specificed, it leads to crash if there no border-routers
information.

Fix:
Do not free json object if use_vrf flag (means vrf option
is not passed) is not set.

Ticket:#3229017
Issue:3229017
Testing Done:

with fix:
l1# show ip ospf border-routers json
{
}
l1# show ip ospf vrf default border-routers json
{
}

Signed-off-by: Chirag Shah <chirag@nvidia.com>
16 months agobabeld: Add missing `no` commands
Yuxiang Zhu [Sat, 14 Jan 2023 12:02:41 +0000 (20:02 +0800)]
babeld: Add missing `no` commands

Some babeld commands doesn't have the corresponding negative commands
defined, so those commands doesn't work with frr-reload.py.

This PR adds those missing commands.

Signed-off-by: Yuxiang Zhu <vfreex@gmail.com>
16 months agobgpd: fix time truncation due to parameter type
Rafael Zalamena [Fri, 20 Jan 2023 19:20:56 +0000 (16:20 -0300)]
bgpd: fix time truncation due to parameter type

Use the correct function parameters type to avoid truncation and other
signal issues.

Found by Coverity Scan (CID 1519802)

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
16 months ago*: introduce function for sequence numbers
Rafael Zalamena [Thu, 19 Jan 2023 15:16:11 +0000 (12:16 -0300)]
*: introduce function for sequence numbers

Don't directly use `time()` for generating sequence numbers for two
reasons:
1. `time()` can go backwards (due to NTP or time adjustments)
2. Coverity Scan warns every time we truncate a `time_t` variable for
   good reason (verify that we are Y2K38 ready).

Found by Coverity Scan (CID 151981215197861519783 and 1519772)

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
16 months agoldpd: fix time truncation
Rafael Zalamena [Thu, 19 Jan 2023 15:21:27 +0000 (12:21 -0300)]
ldpd: fix time truncation

Use bigger storage for handling time variables so we don't truncate.

Found by Coverity Scan (CID 1519735)

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
16 months agobabeld: Fix --terminal option
Yuxiang Zhu [Wed, 18 Jan 2023 19:16:22 +0000 (19:16 +0000)]
babeld: Fix --terminal option

babeld's `--terminal` option doesn't work because it replaces `stdin`
with `/dev/null`. It seems to me this function can be removed as `frr_run`
handles that in daemon mode.

Signed-off-by: Yuxiang Zhu <vfreex@gmail.com>
16 months agoMerge pull request #12666 from donaldsharp/bgp_outq_limit
Donatas Abraitis [Fri, 20 Jan 2023 09:59:34 +0000 (11:59 +0200)]
Merge pull request #12666 from donaldsharp/bgp_outq_limit

Bgp outq limit

16 months agoMerge pull request #12664 from pguibert6WIND/vpnv6_encoding_nexthop
Donatas Abraitis [Fri, 20 Jan 2023 09:45:51 +0000 (11:45 +0200)]
Merge pull request #12664 from pguibert6WIND/vpnv6_encoding_nexthop

bgpd: fix vpnv6 nexthop encoding

16 months agoMerge pull request #12669 from proelbtn/fix-accept-own-rd-check
Donatas Abraitis [Fri, 20 Jan 2023 09:12:47 +0000 (11:12 +0200)]
Merge pull request #12669 from proelbtn/fix-accept-own-rd-check

bgpd: Skip RD match if ACCEPT_OWN excended community is not attached