]> git.puffer.fish Git - matthieu/frr.git/log
matthieu/frr.git
10 months agoyang: fix wrong check for isis metric style
anlan_cs [Sat, 8 Jun 2024 15:38:05 +0000 (23:38 +0800)]
yang: fix wrong check for isis metric style

Before:
```
anlan(config)# route isis ix
anlan(config-router)# metric-style transition
...
anlan(config-if)# isis metric 200
% Configuration failed.

Error type: validation
Error description: YANG error(s):
 Path: Data location "/frr-interface:lib/interface[name='x']/frr-isisd:isis/metric/level-1".
 Error: Must condition ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide' or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style)" not satisfied.
 Path: Data location "/frr-interface:lib/interface[name='x']/frr-isisd:isis/metric/level-2".
 Error: Must condition ". < 64 or /frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style = 'wide' or not(/frr-isisd:isis/instance[area-tag = current()/../../area-tag]/metric-style)" not satisfied
```

After:
```
anlan(config)# route isis ix
anlan(config-router)# metric-style transition
...
anlan(config-if)# isis metric 200
anlan(config-if)#
```

Signed-off-by: anlan_cs <anlan_cs@tom.com>
10 months agoMerge pull request #16183 from LabNConsulting/chopps/notif-doc-update
Donatas Abraitis [Mon, 10 Jun 2024 19:25:10 +0000 (22:25 +0300)]
Merge pull request #16183 from LabNConsulting/chopps/notif-doc-update

mgmtd: add empty notif xpath map for completeness

10 months agoMerge pull request #16093 from louis-6wind/fix-show-route-memory
Donatas Abraitis [Mon, 10 Jun 2024 08:26:23 +0000 (11:26 +0300)]
Merge pull request #16093 from louis-6wind/fix-show-route-memory

zebra: fix Out Of Memory issue when displaying large route tables in JSON

10 months agoMerge pull request #16189 from LabNConsulting/chopps/triage-github-action
Donald Sharp [Sun, 9 Jun 2024 01:34:42 +0000 (21:34 -0400)]
Merge pull request #16189 from LabNConsulting/chopps/triage-github-action

10 months agoci: do apt-get update before installing required modules
Christian Hopps [Sat, 8 Jun 2024 19:37:47 +0000 (15:37 -0400)]
ci: do apt-get update before installing required modules

- Use `uname -r` to also install specific module versions since
  with github runners the running kernel can become out-dated with
  the deployed packages.

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agoMerge pull request #15900 from mikemallin/v6-vtep-lib-upstream
Donald Sharp [Fri, 7 Jun 2024 18:34:11 +0000 (14:34 -0400)]
Merge pull request #15900 from mikemallin/v6-vtep-lib-upstream

lib, bgpd, tests, zebra: prefix_sg changes for V6 VTEP

10 months agodoc: add some text on native message API and notif xpath array
Christian Hopps [Thu, 6 Jun 2024 23:49:40 +0000 (19:49 -0400)]
doc: add some text on native message API and notif xpath array

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agomgmtd: add empty notif xpath map for completeness
Christian Hopps [Thu, 6 Jun 2024 18:08:00 +0000 (14:08 -0400)]
mgmtd: add empty notif xpath map for completeness

New back-end clients may need to add notification static allocations so
we should have it available for those users, rather than requiring the
new user delve into the mgmtd infra and modify it themselves.

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agotests: check show route vrf all json output
Louis Scalbert [Mon, 27 May 2024 08:35:26 +0000 (10:35 +0200)]
tests: check show route vrf all json output

Check that "show ip route vrf XXX json" and the JSON at key "XXX" of
"show ip route vrf all json" gives the same output.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agozebra: fix show route memory consumption
Louis Scalbert [Fri, 24 May 2024 14:34:23 +0000 (16:34 +0200)]
zebra: fix show route memory consumption

When displaying a route table in JSON, a table JSON object is storing
all the prefix JSON objects containing the prefix information. This
results in excessive memory allocation for JSON objects, potentially
leading to an out-of-memory error on the machine with large routing
tables.

To Fix the memory consumption issue for the "show ip[v6] route [vrf XX]
json" command, display the prefixes one by one and free the memory of
each JSON object after it has been displayed.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agozebra: fix show route vrf all memory consumption
Louis Scalbert [Fri, 24 May 2024 15:06:59 +0000 (17:06 +0200)]
zebra: fix show route vrf all memory consumption

0e2fc3d67f ("vtysh, zebra: Fix malformed json output for multiple vrfs
in command 'show ip route vrf all json'") has been reverted in the
previous commit. Although the fix was correct, it was consuming too muca
memory when displaying large route tables.

A root JSON object was storing all the JSON objects containing the route
tables, each containing their respective prefixes in JSON objects. This
resulted in excessive memory allocation for JSON objects, potentially
leading to an out-of-memory error on the machine.

To Fix the memory consumption issue for the "show ip[v6] route vrf all
json" command, display the tables one by one and free the memory of each
JSON object after it has been displayed.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agolib: add helpers to print json keys
Louis Scalbert [Mon, 27 May 2024 08:04:14 +0000 (10:04 +0200)]
lib: add helpers to print json keys

Add helpers to print json keys in order to prepare the next commits.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agoRevert "vtysh, zebra: Fix malformed json output for multiple vrfs in command 'show...
Louis Scalbert [Fri, 24 May 2024 14:46:17 +0000 (16:46 +0200)]
Revert "vtysh, zebra: Fix malformed json output for multiple vrfs in command 'show ip route vrf all json'"

This reverts commit 0e2fc3d67f1d358896a764373f41cb59c095eda9.

This fix was correct but not optimal for memory consumption at scale.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agoMerge pull request #16143 from eremcan/patch-1
Donatas Abraitis [Fri, 7 Jun 2024 07:49:55 +0000 (10:49 +0300)]
Merge pull request #16143 from eremcan/patch-1

docker: fix chmod issues when running container for debian

10 months agoMerge pull request #11906 from louis-6wind/show_isis_db_json
Russ White [Thu, 6 Jun 2024 20:27:57 +0000 (16:27 -0400)]
Merge pull request #11906 from louis-6wind/show_isis_db_json

isisd: fix show isis database [detail] json

10 months agoMerge pull request #15434 from louis-6wind/labels-hash
Russ White [Thu, 6 Jun 2024 20:27:38 +0000 (16:27 -0400)]
Merge pull request #15434 from louis-6wind/labels-hash

bgpd: move labels from extra to extra->labels and add them to adj-rib-in and adj-rib-out

10 months agoMerge pull request #16151 from pguibert6WIND/srv6_fix_source_address
Donald Sharp [Thu, 6 Jun 2024 16:22:15 +0000 (12:22 -0400)]
Merge pull request #16151 from pguibert6WIND/srv6_fix_source_address

zebra: display srv6 encapsulation source-address when configured

10 months agoMerge pull request #16171 from mjstapp/fix_fpm_nl_len_check
Donald Sharp [Thu, 6 Jun 2024 12:20:53 +0000 (08:20 -0400)]
Merge pull request #16171 from mjstapp/fix_fpm_nl_len_check

zebra: fix incoming FPM message length validation

10 months agoMerge pull request #16176 from LabNConsulting/chopps/munet-version-update
Donald Sharp [Thu, 6 Jun 2024 12:20:37 +0000 (08:20 -0400)]
Merge pull request #16176 from LabNConsulting/chopps/munet-version-update

tests: munet: update to version 0.14.9

10 months agotests: munet: update to version 0.14.9
Christian Hopps [Thu, 6 Jun 2024 08:50:05 +0000 (08:50 +0000)]
tests: munet: update to version 0.14.9

Topotest relevant changes:

    - add support for `timeout` arg to `cmd_*()`
    - handle invalid regexp in CLI commands
    - fix long interface name support

Full munet changelog:

    munet: 0.14.9: add support for `timeout` arg to `cmd_*()`
    munet: 0.14.8: cleanup the cleanup (kill) on launch options
    munet: 0.14.7: allow multiple extra commands for shell console init
    munet: 0.14.6:
      - qemu: gather gcda files where munet can find them
      - handle invalid regexp in CLI commands
    munet: 0.14.5:
      - (podman) pull missing images for containers
      - fix long interface name support
      - add another router example
    munet: 0.14.4: mutest: add color to PASS/FAIL indicators on tty consoles
    munet: 0.14.3: Add hostnet node that runs it's commands in the host network namespace.
    munet: 0.14.2:
      - always fail mutest tests on bad json inputs
      - improve ssh-remote for common use-case of connecting to host connected devices
      - fix ready-cmd for python v3.11+
    munet: 0.14.1: Improved host interface support.

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agoMerge pull request #16170 from LabNConsulting/dleroy/nhrpd-shortcut-cleanup
Donald Sharp [Wed, 5 Jun 2024 18:39:14 +0000 (14:39 -0400)]
Merge pull request #16170 from LabNConsulting/dleroy/nhrpd-shortcut-cleanup

nhrpd: cleans up shortcut cache entries on termination

10 months agozebra: fix incoming FPM message length validation
Mark Stapp [Wed, 5 Jun 2024 18:37:41 +0000 (14:37 -0400)]
zebra: fix incoming FPM message length validation

Validate incoming message length against correct
(struct rtmsg) len, not top-level netlink message header size.

Signed-off-by: Mark Stapp <mjs@cisco.com>
10 months agonhrpd: cleans up shortcut cache entries on termination
Dave LeRoy [Wed, 5 Jun 2024 17:22:57 +0000 (10:22 -0700)]
nhrpd: cleans up shortcut cache entries on termination

nhrp_shortcut_terminate() previously was just freeing the associated AFI shortcut
RIBs and not addressing existing shortcut cache entries. This cause a use after
free issue in vrf_terminate() later in the terminate sequence

NHRP: Received signal 7 at 1717516286 (si_addr 0x1955d, PC 0x7098786912c0); aborting...
NHRP: zlog_signal+0xf5                   709878ad1255     7fff3d992eb0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: core_handler+0xb5                  709878b0db85     7fff3d992ff0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: __sigaction+0x50                   709878642520     7fff3d993140 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000)
NHRP:     ---- signal ----
NHRP: __lll_lock_wait_private+0x90       7098786912c0     7fff3d9936d8 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000)
NHRP: pthread_mutex_lock+0x112           709878698002     7fff3d9936e0 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000)
NHRP: _event_add_read_write+0x63         709878b1f423     7fff3d993700 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: zclient_send_message+0xd4          709878b37614     7fff3d993770 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: nhrp_route_announce+0x1ad          5ab34d63d39d     7fff3d993790 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: nhrp_shortcut_cache_notify+0xd8     5ab34d63e758     7fff3d99d4e0 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: nhrp_cache_free+0x165              5ab34d632f25     7fff3d99d510 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: hash_iterate+0x4d                  709878ab949d     7fff3d99d540 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: nhrp_cache_interface_del+0x37      5ab34d633eb7     7fff3d99d580 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: nhrp_if_delete_hook+0x26           5ab34d6350d6     7fff3d99d5a0 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: if_delete_retain+0x3d              709878abcd1d     7fff3d99d5c0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: if_delete+0x4c                     709878abd87c     7fff3d99d600 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: if_terminate+0x53                  709878abda83     7fff3d99d630 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: vrf_terminate_single+0x24          709878b23c74     7fff3d99d670 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: nhrp_request_stop+0x34             5ab34d636844     7fff3d99d690 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: frr_sigevent_process+0x53          709878b0df53     7fff3d99d6a0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: event_fetch+0x6c5                  709878b20405     7fff3d99d6c0 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: frr_run+0xd3                       709878ac8163     7fff3d99d840 /usr/lib/frr/libfrr.so.0 (mapped at 0x709878a00000)
NHRP: main+0x195                         5ab34d631915     7fff3d99d960 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)
NHRP: __libc_init_first+0x90             709878629d90     7fff3d99d980 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000)
NHRP: __libc_start_main+0x80             709878629e40     7fff3d99da20 /lib/x86_64-linux-gnu/libc.so.6 (mapped at 0x709878600000)
NHRP: _start+0x25                        5ab34d631b65     7fff3d99da70 /usr/lib/frr/nhrpd (mapped at 0x5ab34d621000)

Signed-off-by: Dave LeRoy <dleroy@labn.net>
10 months agoMerge pull request #16164 from opensourcerouting/fix/doc_clear_bgp_by_asn
Donald Sharp [Wed, 5 Jun 2024 17:07:04 +0000 (13:07 -0400)]
Merge pull request #16164 from opensourcerouting/fix/doc_clear_bgp_by_asn

doc: Add missing `clear bgp ASNUM` command

10 months agoMerge pull request #16159 from opensourcerouting/fix/ignore_auto_created_vrf_bgp_inst...
Donald Sharp [Wed, 5 Jun 2024 13:51:09 +0000 (09:51 -0400)]
Merge pull request #16159 from opensourcerouting/fix/ignore_auto_created_vrf_bgp_instances

bgpd: Ignore auto created VRF BGP instances

10 months agoMerge pull request #16163 from LabNConsulting/aceelindem/ospfv3-auth-sa-id-checking
Donald Sharp [Wed, 5 Jun 2024 13:48:45 +0000 (09:48 -0400)]
Merge pull request #16163 from LabNConsulting/aceelindem/ospfv3-auth-sa-id-checking

 ospf6d: OSPFv3 manual key authentication neglects checking the SA ID.

10 months agoMerge pull request #16155 from httpstorm/gcc-14-compatibility
Donald Sharp [Wed, 5 Jun 2024 13:47:44 +0000 (09:47 -0400)]
Merge pull request #16155 from httpstorm/gcc-14-compatibility

zebra: fix compilation with GCC14

10 months agobgpd: fix label in adj-rib-out
Philippe Guibert [Thu, 23 Feb 2023 14:38:11 +0000 (15:38 +0100)]
bgpd: fix label in adj-rib-out

After modifying the "label vpn export value", the vpn label information
of the VRF is not updated to the peers.

For example, the 192.168.0.0/24 prefix is announced to the peer with a
label value of 222.

> router bgp 65500
> [..]
>  neighbor 192.0.2.2 remote-as 65501
>  address-family ipv4-vpn
>   neighbor 192.0.2.2 activate
>  exit-address-family
> exit
> router bgp 65500 vrf vrf2
>  address-family ipv4 unicast
>   network 192.168.0.0/24
>   label vpn export 222
>   rd vpn export 444:444
>   rt vpn both 53:100
>   export vpn
>   import vpn
>  exit-address-family

Changing the label with "label vpn export" does not update the label
value to the peer unless the BGP sessions is re-established.

No labels are stored are stored struct bgp_adj_out so that it is
impossible to compare the current value with the previous value
in adj-RIB-out.

Reference the bgp_labels pointer in struct bgp_adj_out and compare the
values when updating adj-RIB-out.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: fix labels in adj-rib-in
Philippe Guibert [Fri, 13 Jan 2023 14:59:52 +0000 (15:59 +0100)]
bgpd: fix labels in adj-rib-in

In a BGP L3VPN context using ADJ-RIB-IN (ie. enabled with
'soft-reconfiguration inbound'), after applying a deny route-map and
removing it, the remote MPLS label information is lost. As a result, BGP
is unable to re-install the related routes in the RIB.

For example,

> router bgp 65500
> [..]
>  neighbor 192.0.2.2 remote-as 65501
>  address-family ipv4 vpn
>   neighbor 192.0.2.2 activate
>   neighbor 192.0.2.2 soft-reconfiguration inbound

The 192.168.0.0/24 prefix has a remote label value of 102 in the BGP
RIB.

> # show bgp ipv4 vpn 192.168.0.0/24
>  BGP routing table entry for 444:1:192.168.0.0/24, version 2
>  [..]
>      192.168.0.0 from 192.0.2.2
>        Origin incomplete, metric 0, valid, external, best (First path received)
>        Extended Community: RT:52:100
>        Remote label: 102

A route-map now filter all incoming BGP updates:

> route-map rmap deny 1
> router bgp 65500
>  address-family ipv4 vpn
>   neighbor 192.0.2.2 route-map rmap in

The prefix is now filtered:

> # show bgp ipv4 vpn 192.168.0.0/24
> #

The route-map is detached:

> router bgp 65500
>  address-family ipv4 vpn
>   no neighbor 192.168.0.1 route-map rmap in

The BGP RIB entry is present but the remote label is lost:

> # show bgp ipv4 vpn 192.168.0.0/24
>  BGP routing table entry for 444:1:192.168.0.0/24, version 2
>  [..]
>      192.168.0.0 from 192.0.2.2
>        Origin incomplete, metric 0, valid, external, best (First path received)
>        Extended Community: RT:52:100

The reason for the loose is that labels are stored within struct attr ->
struct extra -> struct bgp_labels but not in the struct bgp_adj_in.

Reference the bgp_labels pointer in struct bgp_adj_in and use its values
when doing a soft reconfiguration of the BGP table.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: get rid of has_valid_label in bgp_update()
Louis Scalbert [Mon, 26 Feb 2024 15:55:11 +0000 (16:55 +0100)]
bgpd: get rid of has_valid_label in bgp_update()

Get rid of has_valid_label in bgp_update() to prepare the next commits.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: move labels from extra to extra->labels
Louis Scalbert [Mon, 26 Feb 2024 17:23:11 +0000 (18:23 +0100)]
bgpd: move labels from extra to extra->labels

Move labels from extra to extra->labels. Labels are now stored in a hash
list.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: add bgp_labels hash
Louis Scalbert [Fri, 23 Feb 2024 14:18:03 +0000 (15:18 +0100)]
bgpd: add bgp_labels hash

Add bgp_labels type and hash list.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agotopotests: add bgp test to check the ADJ-RIB-IN label value
Philippe Guibert [Fri, 24 Feb 2023 10:53:46 +0000 (11:53 +0100)]
topotests: add bgp test to check the ADJ-RIB-IN label value

The test is done on r2. A BGP update is received on r2, and is
filtered on r2. The RIB of r2 does not have the BGP update stored,
but the ADJ-RIB-IN is yet present. To demonstrate this, if the
inbound route-map is removed, then the BGP update should be copied
from the the ADJ-RIB-IN and added to the RIB with the label
value.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agotopotests: add bgp test to check the ADJ-RIB-OUT label value
Philippe Guibert [Fri, 24 Feb 2023 10:22:14 +0000 (11:22 +0100)]
topotests: add bgp test to check the ADJ-RIB-OUT label value

This test ensures that when r1 changes the label value, then
the new value is automatically propagated to remote peer.
This demonstrates that the ADJ-RIB-OUT to r2 has been correctly
updated.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agotopotests: clarify bgp_vpnv4_ebgp
Louis Scalbert [Tue, 23 Jan 2024 13:24:08 +0000 (14:24 +0100)]
topotests: clarify bgp_vpnv4_ebgp

Clarify bgp_vpnv4_ebgp

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: store number of labels with 8 bits
Louis Scalbert [Mon, 26 Feb 2024 17:11:09 +0000 (18:11 +0100)]
bgpd: store number of labels with 8 bits

8 bits are sufficient to store the number of labels because the current
maximum is 2.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: fix too leading tabs in vnc_import_bgp
Louis Scalbert [Wed, 5 Jun 2024 09:27:15 +0000 (11:27 +0200)]
bgpd: fix too leading tabs in vnc_import_bgp

Small rework to fix the following checkpatch warning:

> < WARNING: Too many leading tabs - consider code refactoring
> < #2142: FILE: /tmp/f1-1616988/vnc_import_bgp.c:2142:

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: add bgp_path_info_num_labels()
Louis Scalbert [Mon, 26 Feb 2024 09:42:42 +0000 (10:42 +0100)]
bgpd: add bgp_path_info_num_labels()

Add bgp_path_info_num_labels() to get the number of labels stored in
a path_info structure.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: rework vni printing in route_vty_out_detail()
Louis Scalbert [Mon, 26 Feb 2024 10:04:18 +0000 (11:04 +0100)]
bgpd: rework vni printing in route_vty_out_detail()

In route_vty_out_detail(), tag_buf stores a string representation of
the VNI label.

Rename tag_buf to vni_buf for clarity and rework the code a little bit
to prepare the following commits.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: num_labels cannot be greater than BGP_MAX_LABELS
Louis Scalbert [Mon, 26 Feb 2024 13:13:25 +0000 (14:13 +0100)]
bgpd: num_labels cannot be greater than BGP_MAX_LABELS

num_labels cannot be greater than BGP_MAX_LABELS by design.

Remove the check and the override.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: add bgp_path_info_labels_same()
Louis Scalbert [Mon, 26 Feb 2024 11:10:16 +0000 (12:10 +0100)]
bgpd: add bgp_path_info_labels_same()

Add bgp_path_info_labels_same() to compare labels with labels from
path_info. Remove labels_same() that was used for mplsvpn only.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: optimize label copy for new path_info
Louis Scalbert [Mon, 26 Feb 2024 11:16:16 +0000 (12:16 +0100)]
bgpd: optimize label copy for new path_info

In bgp_update(), path_info *new has just been created and has void
labels. bgp_labels_same() is always false.

Do not compare previous labels before setting them.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: do not init labels in extra
Louis Scalbert [Mon, 5 Feb 2024 16:11:47 +0000 (17:11 +0100)]
bgpd: do not init labels in extra

No need to init labels at extra allocation. num_labels is the number
of set labels in label[] and is initialized to 0 by default.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: add bgp_path_info_has_valid_label()
Louis Scalbert [Wed, 14 Feb 2024 16:32:06 +0000 (17:32 +0100)]
bgpd: add bgp_path_info_has_valid_label()

Add bgp_path_has_valid_label to check that a path_info has a valid
label.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agobgpd: check and set extra num_labels
Louis Scalbert [Mon, 5 Feb 2024 16:05:20 +0000 (17:05 +0100)]
bgpd: check and set extra num_labels

The handling of MPLS labels in BGP faces an issue due to the way labels
are stored in memory. They are stored in bgp_path_info but not in
bgp_adj_in and bgp_adj_out structures. As a consequence, some
configuration changes result in losing labels or even a bgpd crash. For
example, when retrieving routes from the Adj-RIB-in table
("soft-reconfiguration inbound" enabled), labels are missing.

bgp_path_info stores the MPLS labels, as shown below:

> struct bgp_path_info {
>   struct bgp_path_info_extra *extra;
>   [...]
> struct bgp_path_info_extra {
> mpls_label_t label[BGP_MAX_LABELS];
> uint32_t num_labels;
>   [...]

To solve those issues, a solution would be to set label data to the
bgp_adj_in and bgp_adj_out structures in addition to the
bgp_path_info_extra structure. The idea is to reference a common label
pointer in all these three structures. And to store the data in a hash
list in order to save memory.

However, an issue in the code prevents us from setting clean data
without a rework. The extra->num_labels field, which is intended to
indicate the number of labels in extra->label[], is not reliably checked
or set. The code often incorrectly assumes that if the extra pointer is
present, then a label must also be present, leading to direct access to
extra->label[] without verifying extra->num_labels. This assumption
usually works because extra->label[0] is set to MPLS_INVALID_LABEL when
a new bgp_path_info_extra is created, but it is technically incorrect.

Cleanup the label code by setting num_labels each time values are set in
extra->label[] and checking extra->num_labels before accessing the
labels.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
10 months agodoc: Add missing `clear bgp ASNUM` command
Donatas Abraitis [Wed, 5 Jun 2024 05:35:34 +0000 (08:35 +0300)]
doc: Add missing `clear bgp ASNUM` command

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
10 months ago ospf6d: OSPFv3 manual key authentication neglects checking the SA ID.
Acee Lindem [Tue, 4 Jun 2024 21:24:46 +0000 (21:24 +0000)]
 ospf6d: OSPFv3 manual key authentication neglects checking the SA ID.

    Also, add topotest variation to verify checking.

    This corrects https://github.com/FRRouting/frr/issues/16100.

Signed-off-by: Acee Lindem <acee@lindem.com>
10 months agobgpd: Ignore auto created VRF BGP instances
Donatas Abraitis [Tue, 4 Jun 2024 12:30:27 +0000 (15:30 +0300)]
bgpd: Ignore auto created VRF BGP instances

Configuration:

```
vtysh <<EOF
configure

vrf vrf100
 vni 10100
exit-vrf

router bgp 50
 address-family l2vpn evpn
  advertise-all-vni
 exit-address-family
exit

router bgp 100 vrf vrf100
exit
EOF
```

TL;DR; When we configure `advertise-all-vni` (in this case), a new BGP instance
is created with the name vrf100, and ASN 50. Next, when we create
`router bgp 100 vrf vrf100`, we look for the BGP instance with the same name
and we found it, but ASNs are different 50 vs. 100.

Every such a new auto created instance is flagged with BGP_VRF_AUTO.

After the fix:

```
router bgp 50
 !
 address-family l2vpn evpn
  advertise-all-vni
 exit-address-family
exit
!
router bgp 100 vrf vrf100
exit
!
end
donatas.net(config)# router bgp 51
BGP is already running; AS is 50
donatas.net(config)# router bgp 50
donatas.net(config-router)# router bgp 101 vrf vrf100
BGP is already running; AS is 100
donatas.net(config)# router bgp 100 vrf vrf100
donatas.net(config-router)#
```

Fixes: https://github.com/FRRouting/frr/issues/16152
Fixes: https://github.com/FRRouting/frr/issues/9537
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
10 months agoMerge pull request #16160 from opensourcerouting/fix/revert_39e27b840e5ddc2087c0b20cf...
Russ White [Tue, 4 Jun 2024 14:56:33 +0000 (10:56 -0400)]
Merge pull request #16160 from opensourcerouting/fix/revert_39e27b840e5ddc2087c0b20cfcf379745b3baa79

Revert "isisd: When the metric-type is configured as "wide", the IS-I…

10 months agoRevert "isisd: When the metric-type is configured as "wide", the IS-IS generates...
Donatas Abraitis [Tue, 4 Jun 2024 14:31:40 +0000 (17:31 +0300)]
Revert "isisd: When the metric-type is configured as "wide", the IS-IS generates incorrect metric values for IPv4 directly connected routes."

This broke these topotests:

test_isis_lsp_bits_topo1
test_isis_sr_topo1
test_isis_srv6_topo1
test_isis_tilfa_topo1
test_isis_topo1
test_isis_topo1_vrf
test_ldp_snmp_topo1
test_ldp_sync_isis_topo1

This reverts commit 39e27b840e5ddc2087c0b20cfcf379745b3baa79.

10 months agoMerge pull request #16056 from zhou-run/202405211622
Russ White [Tue, 4 Jun 2024 11:53:30 +0000 (07:53 -0400)]
Merge pull request #16056 from zhou-run/202405211622

isisd: When the metric-type is configured as "wide", the IS-IS generates incorrect metric values for IPv4 directly connected routes.

10 months agozebra: fix compilation with GCC14
Georgi Valkov [Tue, 4 Jun 2024 10:35:54 +0000 (13:35 +0300)]
zebra: fix compilation with GCC14

Fixes:
zebra/zebra_netns_notify.c: In function 'zebra_ns_ready_read':
zebra/zebra_netns_notify.c:266:40: error: implicit declaration of function 'basename' [-Wimplicit-function-declaration]
  266 |         if (strmatch(VRF_DEFAULT_NAME, basename(netnspath))) {
      |                                        ^~~~~~~~

Fixed by including libgen.h, then since basename may modify its
parameter, allocate a copy on the stack, using strdupa, and pass the
temporary string to basename.

According to the man page for basename:
With glibc, one gets the POSIX version of basename() when
<libgen.h> is included, and the GNU version otherwise.

The POSIX version of basename may modify the contents of path,
so we should to pass a copy when calling this function.

[1] https://man7.org/linux/man-pages/man3/basename.3.html

Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
10 months agoMerge pull request #16150 from LabNConsulting/chopps/native-message-comments
Donatas Abraitis [Tue, 4 Jun 2024 08:49:42 +0000 (11:49 +0300)]
Merge pull request #16150 from LabNConsulting/chopps/native-message-comments

lib: comments about public vs private message apis

10 months agodocker: fix chmod issues when running debian container
Çağatay Erem [Fri, 31 May 2024 21:17:14 +0000 (00:17 +0300)]
docker: fix chmod issues when running debian container

I had problem by running container after build.
It gave the error below in container,

[FATAL tini (7)] exec /usr/lib/frr/docker-start failed: Permission denied

So I have fixed the permission issues after building images.

Signed-off-by: Çağatay Erem <cagatayerem@gmail.com>
10 months agozebra: display srv6 encapsulation source-address when configured
Philippe Guibert [Mon, 3 Jun 2024 07:53:34 +0000 (09:53 +0200)]
zebra: display srv6 encapsulation source-address when configured

The 'show running-config' does not display the ipv6 source address
when a locator is not configured. Fix this by systematically displaying
the ipv6 source address.

Fixes: 6a0956169b31 ("zebra: Add encap source address to SRv6 config write function")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
10 months agolib: comments about public vs private message apis
Christian Hopps [Tue, 4 Jun 2024 04:51:33 +0000 (00:51 -0400)]
lib: comments about public vs private message apis

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agoMerge pull request #16142 from LabNConsulting/chopps/fix-conflict-workflow
Donatas Abraitis [Sun, 2 Jun 2024 18:13:29 +0000 (21:13 +0300)]
Merge pull request #16142 from LabNConsulting/chopps/fix-conflict-workflow

ci: only run conflict check on pull-requests

10 months agoMerge pull request #16146 from dpward/bgp-dscp
Donatas Abraitis [Sun, 2 Jun 2024 18:12:13 +0000 (21:12 +0300)]
Merge pull request #16146 from dpward/bgp-dscp

bgpd: Adjust terminology related to DSCP

10 months agoci: only run conflict check on pull-requests
Christian Hopps [Fri, 31 May 2024 17:08:16 +0000 (13:08 -0400)]
ci: only run conflict check on pull-requests

This change will stop this action from running on forked repos.
Previously whenever one pushed a change to one's development branch the
action would "run but skip" which still generated an email notifications
and thus was very annoying. :)

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agobgpd: Adjust terminology related to DSCP
David Ward [Sun, 2 Jun 2024 10:42:23 +0000 (06:42 -0400)]
bgpd: Adjust terminology related to DSCP

The default DSCP used for BGP connections is CS6. The DSCP value is
not part of the TCP header.

When setting the IP_TOS or IPV6_TCLASS socket options, the argument
is not the 6-bit DSCP value, but an 8-bit value for the former IPv4
Type of Service field or IPv6 Traffic Class field, respectively.

Fixes: 425bd64be847 ("bgpd: Allow bgp to control the DSCP session TOS value")
Signed-off-by: David Ward <david.ward@ll.mit.edu>
10 months agoMerge pull request #16139 from donaldsharp/mroute_error
Christian Hopps [Sat, 1 Jun 2024 14:41:49 +0000 (10:41 -0400)]
Merge pull request #16139 from donaldsharp/mroute_error

pimd: Give a clearer warning when the kernel is not compiled right

10 months agoMerge pull request #16127 from opensourcerouting/fix/eor_not_only_for_gr
Donald Sharp [Sat, 1 Jun 2024 14:08:25 +0000 (10:08 -0400)]
Merge pull request #16127 from opensourcerouting/fix/eor_not_only_for_gr

bgpd: Send End-of-RIB not only if Graceful Restart capability is received

10 months agoMerge pull request #16121 from LabNConsulting/chopps/docker-update
Donald Sharp [Sat, 1 Jun 2024 14:02:05 +0000 (10:02 -0400)]
Merge pull request #16121 from LabNConsulting/chopps/docker-update

Update ubuntu docker images adding github build and test action

10 months agogithub: add docker build and test github action
Christian Hopps [Fri, 31 May 2024 00:48:06 +0000 (20:48 -0400)]
github: add docker build and test github action

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agopimd: Give a clearer warning when the kernel is not compiled right
Donald Sharp [Thu, 30 May 2024 19:48:33 +0000 (15:48 -0400)]
pimd: Give a clearer warning when the kernel is not compiled right

When the kernel is not compiled with mroute vrf's enabled it will
fail the call to initialize the vrf.  As such let's recognize this
specific error code and output a specific warning to the operator
to help them figure this problem out.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
10 months agodocker: update docker reference to follow latest docs
Christian Hopps [Mon, 19 Feb 2024 15:30:13 +0000 (10:30 -0500)]
docker: update docker reference to follow latest docs

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agoMerge pull request #16111 from donaldsharp/ospfv3_read_after
Jafar Al-Gharaibeh [Fri, 31 May 2024 15:09:24 +0000 (10:09 -0500)]
Merge pull request #16111 from donaldsharp/ospfv3_read_after

ospf6d: Prevent heap-buffer-overflow with unknown type

10 months agoMerge pull request #16115 from Jafaral/pim-ssm-any
Donald Sharp [Fri, 31 May 2024 14:57:29 +0000 (10:57 -0400)]
Merge pull request #16115 from Jafaral/pim-ssm-any

pimd: fix crash when mixing ssm/any-source joins

10 months agoMerge pull request #16125 from opensourcerouting/ts-expand-fix-guard
Donald Sharp [Fri, 31 May 2024 14:48:15 +0000 (10:48 -0400)]
Merge pull request #16125 from opensourcerouting/ts-expand-fix-guard

lib: make `python/ts_expand.py` actually work

10 months agoMerge pull request #16124 from LabNConsulting/chopps/test-cleanup
Donald Sharp [Fri, 31 May 2024 14:47:52 +0000 (10:47 -0400)]
Merge pull request #16124 from LabNConsulting/chopps/test-cleanup

Fix grpc-client parallel run and other small test fixes

10 months agobgpd, lib, zebra: Extend ES_VTEP_LIST_STR_SZ to support IPv6 addresses
Mike RE Mallin [Tue, 21 May 2024 14:27:17 +0000 (10:27 -0400)]
bgpd, lib, zebra: Extend ES_VTEP_LIST_STR_SZ to support IPv6 addresses

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agotests: Extend prefix_sg print UT for IPv6
Mike RE Mallin [Tue, 21 May 2024 14:16:09 +0000 (10:16 -0400)]
tests: Extend prefix_sg print UT for IPv6

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agolib, zebra: Update prefix_sg structure for IPv6 group support
Mike RE Mallin [Fri, 31 May 2024 14:08:59 +0000 (10:08 -0400)]
lib, zebra: Update prefix_sg structure for IPv6 group support

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agolib: Make the ip arg const in stream_put_ipaddr
Mike RE Mallin [Tue, 21 May 2024 14:09:02 +0000 (10:09 -0400)]
lib: Make the ip arg const in stream_put_ipaddr

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agolib: Add clang-format wrapper around printfrr_ext
Mike RE Mallin [Tue, 21 May 2024 14:07:43 +0000 (10:07 -0400)]
lib: Add clang-format wrapper around printfrr_ext

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agolib: Add ipaddr_is_same to compare IPv6 addresses
Mike RE Mallin [Fri, 31 May 2024 13:42:12 +0000 (09:42 -0400)]
lib: Add ipaddr_is_same to compare IPv6 addresses

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agolib: Add SET_IPADDR_NONE macro
Mike RE Mallin [Fri, 31 May 2024 13:41:07 +0000 (09:41 -0400)]
lib: Add SET_IPADDR_NONE macro

Signed-off-by: Mike RE Mallin <mremallin@gmail.com>
10 months agobgpd: Send End-of-RIB not only if Graceful Restart capability is received
Donatas Abraitis [Fri, 31 May 2024 12:03:55 +0000 (15:03 +0300)]
bgpd: Send End-of-RIB not only if Graceful Restart capability is received

Before we checked for received Graceful Restart capability, but that was also
incorrect, because we SHOULD HAVE checked it per AFI/SAFI instead.

https://datatracker.ietf.org/doc/html/rfc4724 says:

Although the End-of-RIB marker is specified for the purpose of BGP
   graceful restart, it is noted that the generation of such a marker
   upon completion of the initial update would be useful for routing
   convergence in general, and thus the practice is recommended.

Thus, it might be reasonable to send EoR regardless of whether the Graceful Restart
capability is received or not from the peer.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
10 months agolib: make python/ts_expand.py actually work
David Lamparter [Fri, 31 May 2024 09:30:52 +0000 (11:30 +0200)]
lib: make python/ts_expand.py actually work

lib/typesafe.h was supposed to be outside the _TYPESAFE_EXPAND_MACROS
guard, so that including lib/atomlist.h grabs all the typesafe container
macros.

(No effect on normal build, as _TYPESAFE_EXPAND_MACROS is never defined
there.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
10 months agotests: use raw string for doc to avoid deprecated python warning
Christian Hopps [Wed, 29 May 2024 13:54:35 +0000 (09:54 -0400)]
tests: use raw string for doc to avoid deprecated python warning

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agotests: all errors go to log (and thus stderr)
Christian Hopps [Wed, 29 May 2024 12:07:47 +0000 (08:07 -0400)]
tests: all errors go to log (and thus stderr)

Only output requested information to stdout so it can be
filtered and captured in shell variables etc...

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agotests: fix pim test to wait for actual OSPF route convergence
Christian Hopps [Wed, 29 May 2024 07:32:46 +0000 (03:32 -0400)]
tests: fix pim test to wait for actual OSPF route convergence

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agotests: fix multiple grpc-client.py running in parallel
Christian Hopps [Wed, 29 May 2024 06:38:01 +0000 (02:38 -0400)]
tests: fix multiple grpc-client.py running in parallel

Signed-off-by: Christian Hopps <chopps@labn.net>
10 months agopimd: fix crash when mixing ssm/any-source joins
Jafar Al-Gharaibeh [Thu, 30 May 2024 17:46:47 +0000 (12:46 -0500)]
pimd: fix crash when mixing ssm/any-source joins

There is no reason to call `igmp_anysource_forward_stop()` inside a call to
`igmp_get_source_by_addr()`; not only it is not expected for a "get" function
to perform such an action, but also the decision to start/stop forwarding is
already handled correctly by pim outside `igmp_get_source_by_addr()`.
That call was left there from the days pim was initially imported into the sources.

The problem/crash was happening because `igmp_find_source_by_addr()` would fail to
find the group/source combo when mixing `(*, G)` and `(S, G)`. When having an existing
flow `(*, G)`, and a new `(S, G)` igmp is received, a new entry is correctly created.
`igmp_anysource_forward_stop(group)` always stops and eventually frees `(*, G)`, even
when the new igmp is `(S, G)`, leaving a bad state. I.e, the new entry for `(S, G)`
causes `(*, G)` to be deleted.

Tested the fix with multiple receivers on the same interface with several ssm and
any source senders and receivers with various combination of start/stop orders and
they all worked correctly.

Fixes: #15630
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
10 months agoMerge pull request #15879 from LabNConsulting/dleroy/nhrpd-shutdown-fix
Jafar Al-Gharaibeh [Thu, 30 May 2024 23:27:37 +0000 (18:27 -0500)]
Merge pull request #15879 from LabNConsulting/dleroy/nhrpd-shutdown-fix

nhrpd: fixes core dump on shutdown

10 months agotests: add a topotest to verify nhrp shortcuts in a redundant nhs topology
dleroy [Mon, 29 Apr 2024 21:59:25 +0000 (14:59 -0700)]
tests: add a topotest to verify nhrp shortcuts in a redundant nhs topology

Contains 2 testcases. The first does a basic configuration/connectivity.
The second testcase initiates a shortcut through the primary NHS,
verifies shortcut routes are installed. Primary NHS interface brought
down and verify that the shortcut is not impacted. Finally verify that
after the shortcut expires, it is able to be re-established via a backup
NHS.

Signed-off-by: dleroy <dleroy@labn.net>
10 months agonhrpd: fixes core dump on shutdown
dleroy [Mon, 29 Apr 2024 16:40:21 +0000 (09:40 -0700)]
nhrpd: fixes core dump on shutdown

When nhrpd is shutdown via nhrp_request_stop() the shutdown
sequence was not handling the case where there are active
shortcut routes installed. The zebra client and shortcut rib
were being cleaned up before vrf_terminate() had an opportunity
to delete the active routes.

Signed-off-by: dleroy <dleroy@labn.net>
11 months agoospf6d: Prevent heap-buffer-overflow with unknown type
Iggy Frankovic [Thu, 30 May 2024 11:59:54 +0000 (07:59 -0400)]
ospf6d: Prevent heap-buffer-overflow with unknown type

When parsing a osf6 grace lsa field and we receive an
unknown tlv type, ospf6d was not incrementing the pointer
to get beyond the tlv.  Leaving a situation where ospf6d
would parse the packet incorrectly.

Signed-off-by: Iggy Frankovic <iggy07@gmail.com>
11 months agoMerge pull request #16109 from donaldsharp/seg6_topotest_fix
Donatas Abraitis [Thu, 30 May 2024 10:59:06 +0000 (13:59 +0300)]
Merge pull request #16109 from donaldsharp/seg6_topotest_fix

tests: Fix zebra_seg6_route

11 months agoMerge pull request #16102 from lsang6WIND/relative_path
Donald Sharp [Wed, 29 May 2024 19:19:17 +0000 (15:19 -0400)]
Merge pull request #16102 from lsang6WIND/relative_path

yang: use relative path instead of absolute one for route-map

11 months agotests: Fix zebra_seg6_route
Donald Sharp [Wed, 29 May 2024 18:52:44 +0000 (14:52 -0400)]
tests: Fix zebra_seg6_route

Locally this test would occassionally fail for me
because the connected route the sharp route being
installed has not fully come up yet due to heavy
load and start up slowness.  Add a bit of code
to look for the problem and make sure it doesn't
happen.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
11 months agoMerge pull request #16098 from LabNConsulting/aceelindem/ospfv3-route-asbr-change
Donald Sharp [Wed, 29 May 2024 12:58:42 +0000 (08:58 -0400)]
Merge pull request #16098 from LabNConsulting/aceelindem/ospfv3-route-asbr-change

ospf6d: OSPFv3 route change comparision fixed for ASBR-only change

11 months agoMerge pull request #16097 from opensourcerouting/fix/safety_check_for_extcommunities
Donald Sharp [Wed, 29 May 2024 12:55:08 +0000 (08:55 -0400)]
Merge pull request #16097 from opensourcerouting/fix/safety_check_for_extcommunities

bgpd: Make sure we have enough data to handle extended link bandwidth

11 months agoyang: use relative path instead of absolute one for route-map
Loïc Sang [Tue, 28 May 2024 16:27:40 +0000 (18:27 +0200)]
yang: use relative path instead of absolute one for route-map

Using absolute xpath is not optimal for finding the target node. As the
route map configuration grows, the yang validation will take more time
to complete. Relative paths are much faster.

Tested with a config file that contains ~3k route map config lines.
- before:
time cat conf | vtysh
configure
log syslog errors
router bgp 65000
!
route-map RM:BGP:VPNV4:PEER:VRR9:IN10001 permit 101
 match community CL:HCC:PATH_PRIO1_EAST1
  set local-preference 15200
!
...
route-map RM:BGP:VPNV4:PEER:VRR9:IN10001 permit 1182
 match community CL:HCC:PATH_PRIO1_EAST1082
 set local-preference 16281
!

real    13m51.500s
user    0m0.522s
sys     0m4.854s

- after:
time cat conf | vtysh
...
real    0m48.390s
user    0m0.384s
sys     0m1.245s

Signed-off-by: Loïc Sang <loic.sang@6wind.com>
11 months agoMerge pull request #15082 from louis-6wind/fix-iff-lower-up
Igor Ryzhov [Tue, 28 May 2024 21:01:20 +0000 (00:01 +0300)]
Merge pull request #15082 from louis-6wind/fix-iff-lower-up

lib: take into account the Linux IFF_LOWER_UP flag

11 months agoospf6d: OSPFv3 route change comparision fixed for ASBR-only change
Acee [Tue, 28 May 2024 14:02:27 +0000 (10:02 -0400)]
ospf6d: OSPFv3 route change comparision fixed for ASBR-only change

When a router route already exists in the area border routers table
as an ABR and it solely changes its ABR or ASBR status, the change
was missed and border route is not updated. This fixes the comparison
for the router_bits in the ospf6_path structure.

This fixes issue https://github.com/FRRouting/frr/issues/16053 although
the actual problem is not the computing router (r2) and not the OSPFv3
redistribution (r3).

Signed-off-by: Acee <aceelindem@gmail.com>
11 months agoMerge pull request #16055 from acooks-at-bda/cleanup-some-ospf6-lsa-macros
Donald Sharp [Tue, 28 May 2024 17:15:54 +0000 (13:15 -0400)]
Merge pull request #16055 from acooks-at-bda/cleanup-some-ospf6-lsa-macros

Cleanup some OSPF6_LSA_ macros

11 months agoMerge pull request #16075 from anlancs/ospfd/fix-cmd-instance
Donald Sharp [Tue, 28 May 2024 17:06:43 +0000 (13:06 -0400)]
Merge pull request #16075 from anlancs/ospfd/fix-cmd-instance

ospfd: add instance id for one command

11 months agoMerge pull request #15993 from zhou-run/202405091114
Russ White [Tue, 28 May 2024 15:23:32 +0000 (11:23 -0400)]
Merge pull request #15993 from zhou-run/202405091114

isisd: fix crash when deactivating ISIS adjacency on the interface.

11 months agoMerge pull request #16083 from opensourcerouting/fix/overflow_bgp_dynamic_capability
Russ White [Tue, 28 May 2024 14:31:42 +0000 (10:31 -0400)]
Merge pull request #16083 from opensourcerouting/fix/overflow_bgp_dynamic_capability

BGP dynamic capability some fixes