Commit Graph

35203 Commits

Author SHA1 Message Date
Andrew Cooks
e443644fdd tools/indent.py: fix encoded byte stream handling
Python subprocess communication now operates on bytes, not strings.

Signed-off-by: Andrew Cooks <acooks.at.bda@gmail.com>
2024-04-10 16:05:03 +10:00
Donatas Abraitis
73a6aa6a14
Merge pull request #15708 from donaldsharp/zebra_fix_io_display
Zebra fix io display and shorten evpn zapi packet sizes
2024-04-10 08:26:02 +03:00
Donatas Abraitis
0a0ec0e165
Merge pull request #15624 from raja-rajasekar/rajasekarr/backpressure_bgp_zebra_client_EVPN
bgpd : backpressure - Handle BGP-Zebra(EPVN) Install evt Creation
2024-04-10 08:22:25 +03:00
Donald Sharp
86aac4e36d
Merge pull request #15711 from louis-6wind/fix_test_table_version
topotests: do not check table version
2024-04-09 18:34:13 -04:00
Donald Sharp
5d7b50d1c0
Merge pull request #15693 from anlancs/fix/zebra-label-bind
zebra: fix wrong check for mpls label
2024-04-09 18:33:29 -04:00
Russ White
7f6cda36b1
Merge pull request #15660 from LabNConsulting/acee/ospf-p2mp-non-broadcast
ospfd: Implement non-broadcast support for point-to-multipoint networks
2024-04-09 11:56:34 -04:00
Donald Sharp
94516d25aa zebra: Use more appropriately sized stream packets for evpn
When sending EVPN data, let's use more appropriately sized
packets for the sending of data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-09 10:08:03 -04:00
Donald Sharp
8d8f12ba8e zebra: Actually display I/O buffer sizes
An operator found a situation where zebra was
backing up in a significant way towards BGP
with EVPN changes taking up some serious amounts
of memory.  The key lines that would have clued
us in on it were behind a dev build.  Let's change
this.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-09 10:08:03 -04:00
Mark Stapp
f8cab99727 doc: add doc about the zebra dataplane api version
Add a block to the dev doc about the dataplane api version.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-09 08:59:13 -04:00
Mark Stapp
9f285dd0bc zebra: add dataplane API version value
Add a version value and accessor API for the zebra dataplane;
plugins can test this to detect API changes.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-09 08:59:13 -04:00
Mark Stapp
f090079390 lib: add simple generic version helpers
Add some simple helpers for generic major+minor+sub version
values.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-09 08:59:13 -04:00
Louis Scalbert
29f47f3deb topotests: do not check table version
BGP table version is variable. Don't check it.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-09 14:51:35 +02:00
Mark Stapp
48805d617b
Merge pull request #15703 from louis-6wind/add-linkbw-diagram
tests: add ascii diagram to test_bgp_linkbw_ip
2024-04-09 08:34:11 -04:00
Rajasekar Raja
a07df6f754 bgpd : backpressure - Handle BGP-Zebra(EPVN) Install evt Creation
Current changes deals with EVPN routes installation to zebra.

In evpn_route_select_install() we invoke evpn_zebra_install/uninstall
which sends zclient_send_message().

This is a continuation of code changes (similar to
ccfe452763) but to handle evpn part
of the code.

Ticket: #3390099

Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
2024-04-08 10:51:43 -07:00
Donald Sharp
8cfa3b57e9
Merge pull request #15645 from opensourcerouting/fix/show_ip_route_vrf_all_summary_json
zebra: Fix JSON output for `show route summary json`
2024-04-08 11:12:40 -04:00
Louis Scalbert
a6ea590c6b tests: add ascii diagram to test_bgp_linkbw_ip
Add ASCII diagram to test_bgp_linkbw_ip

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2024-04-08 16:19:55 +02:00
Dmytro Shytyi
8e82e2d5ed zebra: fix static srv6 segment-list sid order
When configuring a SID list by vtysh, the segment list
obtained in iproute2 is the exact opposite:
>
>vtysh:
>ipv6 route 2005::/64 eth0 segments 2001:db8:aaaa::7/2002::2/2003::3/2004::4
>
>root@r1:/# ip -6 route
>2005::/64 nhid 6  encap seg6 mode encap segs 4 [ 2004::4 2003::3 2002::2 2001:db8:aaaa::7 ] dev dummy0 proto 196 metric 20 pref medium
>

Fix this by keeping the same vtysh config and swap the
segment's order of the list in the rt_netlink.c
>
>root@r1:/# ip -6 route
>2005::/64 nhid 6  encap seg6 mode encap segs 4 [ 2001:db8:aaaa::7 2002::2 2003::3 2004::4 ] dev dummy0 proto 196 metric 20 pref medium
>

Fixes: f20cf14 ("bgpd,lib,sharpd,zebra: srv6 introduce multiple segs/SIDs in nexthop")

Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
2024-04-08 15:45:26 +02:00
Donatas Abraitis
a2df7e2a16
Merge pull request #15700 from anlancs/fix/doc-bgp-gr
doc: fix one bgp command
2024-04-08 16:35:23 +03:00
anlan_cs
b8ac0fb23c doc: fix one bgp command
Fixed one bgp comamnd based on code.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-08 17:25:14 +08:00
anlan_cs
cbd1f3239a zebra: fix wrong check for mpls label
Add a parameter for `zebra_mpls_fec_for_label()`, as before if it is `NULL`,
otherwise exclude what this parameter represents.

Before:
```
anlan(config)# mpls label bind 1.1.1.2/32 88
anlan(config)# mpls label bind 1.1.1.2/32 88
% Label already bound to a FEC
anlan(config)# mpls label bind 1.1.1.3/32 88
% Label already bound to a FEC
```

After:
```
anlan(config)# mpls label bind 1.1.1.2/32 88
anlan(config)# mpls label bind 1.1.1.2/32 88
anlan(config)# mpls label bind 1.1.1.3/32 88
% Label already bound to a FEC
```

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-06 09:01:39 +08:00
Donald Sharp
30dcd79011
Merge pull request #15687 from anlancs/fix/doc-isisd-append-vrf
doc: correct a few commands for isis
2024-04-05 19:29:04 -04:00
Rajesh Varatharaj
81f10b3f17 pimd: pim mlag summary should display the down connection status.
command 'show ip pim mlag summary json' should display 'mlagConnUp',
'mlagPeerConnUp', and 'mlagPeerZebraUp' when the connection is down.

Fix:
Added 'json_object_boolean_false_add()' for these objects.

Ticket: #

Signed-off-by: Rajesh Varatharaj <rvaratharaj@nvidia.com>
2024-04-05 10:52:05 -07:00
Donatas Abraitis
e19fa07c2c
Merge pull request #15675 from pguibert6WIND/srv6_bsid_to_seg6local_2str
lib: add srv6 bsid to seg6local_context2str
2024-04-05 20:49:27 +03:00
Donald Sharp
959439f459
Merge pull request #15640 from opensourcerouting/fix/handling_dynamic_capability_mp_gr
bgpd: Fix errors handling for MP/GR capabilities as dynamic capability
2024-04-05 13:42:03 -04:00
anlan_cs
fc88f874d1 doc: correct a few commands for isis
Correct a few commands for isis based on code, just complete the missing
`[vrf <NAME|all>]`.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-05 21:39:19 +08:00
Donatas Abraitis
925d78053b
Merge pull request #15682 from mjstapp/fix_topo_bfd_convergence
tests: increase topotest wait time for bfd convergence
2024-04-05 13:37:10 +03:00
Donatas Abraitis
029940cd77
Merge pull request #15685 from anlancs/fix/ldpd-cmd-dup-label-check
zebra: cosmetic change for one flag
2024-04-05 13:36:56 +03:00
Donatas Abraitis
33d985705a
Merge pull request #15672 from pguibert6WIND/isis_sr_mispelling
isisd: fix mispelling with ISIS_SR_LAN_BACKUP
2024-04-05 13:36:18 +03:00
anlan_cs
9fb31c5e24 zebra: cosmetic change for one flag
Use `CHECK_FLAG()` for readability.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-05 14:30:26 +08:00
Philippe Guibert
37488b573f bgpd: fix install BGP route with appropriate colored ext. community
When receiving a BGP update that includes a colored extended community,
the nexthop is tracked in the bgp nexthop tracking context, but the
color is never recorded. Adding to this, the BGP route is not prevented
from being installed without hte color.

Actually, the srte color is set only when the SRTE_COLOR attribute is set.
And that attribute value is only set when an ext. community is locally
created, or an srte value is set, but not when a BGP update with a color
ext. community is received.

Fix this by setting the SRTE_COLOR attribute on this last case.

Fixes: 442e2edcfa ("bgpd: add functions related to srte_color management")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-04 22:10:33 +02:00
Russ White
51afc9e31f
Merge pull request #15633 from pguibert6WIND/ipv4_ignore_routes_with_linkdown
topotests: fix ignore routes with linkdown
2024-04-04 14:01:31 -04:00
Mark Stapp
c4188c74be tests: increase topotest wait time for bfd convergence
Increase the wait time in a bfd topotest; failing frequently
in the CI runs.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-04 12:57:07 -04:00
Philippe Guibert
2e1be61b08 isisd: fix mispelling with ISIS_SR_LAN_BACKUP
The ISIS_SR_LAN_BACKUP should be renamed to ISIS_SR_ADJ_BACKUP.

Fixes: 26f6acafc3 ("isisd: add support for segment routing")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-04 15:10:47 +02:00
Philippe Guibert
6f45349197 lib: add srv6 bsid to seg6local_context2str
Add SRv6 Binding SID END.B6.Encaps nh6 str to lib.
It is used to display nh6 when one uses 'show ipv6 route'.

Signed-off-by: Dmytro Shytyi <dmytro.shytyi@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-03 21:03:26 +02:00
Donald Sharp
3d66dd3e86
Merge pull request #15618 from opensourcerouting/fix/bgp_optimize_suppress_path
bgpd: Optimize the path for suppressed announcements
2024-04-03 08:36:31 -04:00
Philippe Guibert
c2e0060495 topotests: fix ignore routes with linkdown
In topotest, a given interface has only the ignore routes bit turned
on for IPv6 only, whereas topotest is expected to turn it on for all
address families.

> # show interface
> Interface r2-r3-eth2 is up, line protocol is up
> [..]
>  flags: <UP,BROADCAST,RUNNING,MULTICAST>
>  Ignore all v6 routes with linkdown
>  Type: Ethernet
>  [..]

This is because the only the 'default' ipv6 ignore sysctl is set to
1. Set also the /proc/sys/net/conf/<family>/default/ignore_routes_with_linkdown
flag, to have same behaviour for ipv4 and ipv6.

Fixes: 4958158787 ("tests: micronet: update infra")

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-04-03 14:35:51 +02:00
Donatas Abraitis
27cc9ae508
Merge pull request #15634 from donaldsharp/suppress_fib_funny_business
Suppress fib funny business
2024-04-03 09:51:29 +03:00
Acee Lindem
58e623714b ospfd: Implement non-broadcast support for point-to-multipoint networks
This extends non-broadcast support to point-to-multipoint networks.
Neighbors will be explicitly configured and polled in lieu of multicast
dicovery. Toptotests and documentation updates are included.

Additionally, the ospf neighbor commands have been greatly simplified taking
advantage of DEFPY() capabilities.

The AllOSPFRouters (224.0.0.5) is still joined for non-broadcast networks
since it is joined for NBMA networks. It seems this could be removed but
it should done be in a separate commit.

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-04-02 21:34:29 +00:00
Russ White
6bea75f18c
Merge pull request #15628 from opensourcerouting/fix/bgp_prefix_sid_crash
bgpd: Fix error handling when receiving BGP Prefix SID attribute
2024-04-02 11:17:52 -04:00
Igor Ryzhov
a6191348f8
Merge pull request #15652 from anlancs/fix/isis-doc-timer
doc: fix one command for isis
2024-04-02 14:25:23 +03:00
anlan_cs
b5ed504096 doc: fix one command for isis
Correct one command based on code.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
2024-04-02 15:00:20 +08:00
Donatas Abraitis
c7fde7a32e
Merge pull request #15636 from pguibert6WIND/resolved_prefix_bgp
bgpd: add resolved_prefix visibility on nht
2024-04-02 00:01:34 +03:00
Donatas Abraitis
6d237c2fa5
Merge pull request #15639 from chiragshah6/fdev2
tests: add topotest for PG remote-as add del
2024-04-02 00:00:55 +03:00
Igor Ryzhov
4dc4c2eacc
Merge pull request #15647 from mjstapp/fix_intf_vni_map
zebra: don't deref vxlan-vni array
2024-04-01 23:30:56 +03:00
Donatas Abraitis
c461586d5c
Merge pull request #15629 from pguibert6WIND/complete_l3vpn_to_bgp
topotests: l3vpn_to_bgp_direct, complete ambiguous command 'show bgp next'
2024-04-01 22:42:44 +03:00
Donald Sharp
f3575f61c7 bgpd: Sort the bgp_path_info's
Currently bgp_path_info's are stored in reverse order
received.  Sort them by the best path ordering.

This will allow for optimizations in the future on
how multipath is done.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-01 14:54:02 -04:00
Chirag Shah
ede6e911b0 tests: add topotest for PG remote-as add del
This topotest covers the PR-15574's coverage
where a change is not to delete neighbors when
the associated peer-group's remote-as is removed.

Ticket: #3828243
Testing:

test_bgp_peer-group.py::test_bgp_peer_group

---------------------------------------------------------------------------- live log call -----------------------------------------------------------------------------
2024-03-29 18:12:22,608 INFO: r1: checking if daemons are running
2024-03-29 18:12:22,802 INFO: r2: checking if daemons are running
2024-03-29 18:12:22,911 INFO: r3: checking if daemons are running
2024-03-29 18:12:23,015 INFO: topo: Remove bgp peer-group PG1 remote-as neighbor should be retained
2024-03-29 18:12:25,605 INFO: topo: Re-add bgp peer-group PG1 remote-as neighbor should be established

----------------------------------------------------------- generated xml file: /tmp/topotests/topotests.xml -----------------------------------------------------------
========================================================================== 2 passed in 17.63s ==========================================================================

Signed-off-by: Chirag Shah <chirag@nvidia.com>
2024-04-01 10:29:46 -07:00
Mark Stapp
75ef259b1d zebra: don't deref vxlan-vni array
Null-check the vxlan-vni array info coming into zebra from
the dataplane.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-01 13:00:04 -04:00
Donald Sharp
6ebb7add1f bgpd: Do not reap, schedule for deletion
Do not reap instead let's schedule for deletion
and let best_path_selection take care of the deletion
as it should.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-01 10:24:14 -04:00
Donald Sharp
fca805972d bgpd: bgp_best_selection is inherently pi based
Currently evpn code calls bgp_best_selection for local
decisions for local tables to figure out what to do.
This is also pi based so let's note that the pi has
been changed before calling bgp_best_selection.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-04-01 10:24:14 -04:00