Commit Graph

30255 Commits

Author SHA1 Message Date
Donatas Abraitis
6d48dfcb71
Merge pull request #12357 from donaldsharp/watchfrr_receive_start_end
lib, vtysh: Allow watchfrr to receive start/end lines
2022-11-21 22:11:08 +02:00
Martin Winter
43364c5a99
doc: Update doc to reflect default pim6d in packaging
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-21 20:09:41 +01:00
Martin Winter
57cb276d36
debian: Enable pim6d build by default
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-21 20:07:33 +01:00
Donatas Abraitis
3160e84254 github: Use action-regex-match action for adding backport label
Seems that labeler does not work properly with comments, tested on my own
local repository.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-21 21:06:40 +02:00
Martin Winter
b0db3467f4
redhat: Enable pim6d build by default
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-21 20:04:24 +01:00
Donald Sharp
e6648f01be lib, vtysh: Allow watchfrr to receive start/end lines
Watchfrr really should receive notification about start/end
read of configuration.  Let's fix that.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2022-11-21 12:04:12 -05:00
Donald Sharp
9d44fb97a1
Merge pull request #12313 from louis-6wind/fix-lfa-topo
tests: fix bfd in isis_lfa_topo1 step24
2022-11-21 12:03:14 -05:00
Louis Scalbert
f2393c7553 tests: do not use a custom expect function in isis_lfa_topo1
Replace the custom run and expect function by one from the library.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-11-21 13:48:51 +01:00
Louis Scalbert
17e8fa831a tests: fix bfd in isis_lfa_topo1 step24
isis_lfa_topo1 topotests regularly fails at step 24. The test expects
that the BFD session between rt1 and rt2 comes down after shutting the
link between rt1 and rt2.

Since the BFD is multihop, the BFD can get back through rt3.

Set the BFD type to single-hop.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-11-21 13:48:51 +01:00
Donald Sharp
99813705d7
Merge pull request #12352 from opensourcerouting/fix/github_workflows_labeler
github: Add enable-versioned-regex expicitly in labeler.yml
2022-11-21 06:51:18 -05:00
Mobashshera Rasool
ca5997cd01 ospfd: Fix RFC conformance test cases 25.19 and 27.6
Steps to reproduce:
--------------------------
1. ANVL: Establish full adjacency with DUT for neighbor Rtr-0-A on DIface-0 with DUT as DR.
2. ANVL: Listen (for up to 2 * <RxmtInterval> seconds) on DIface-0.
3. DUT: Send <OSPF-LSU> packet.
4. ANVL: Verify that the received <OSPF-LSU> packet contains a Network- LSA for network N1
   originated by DUT, and the LS Sequence Number is set to <InitialSequenceNumber>.
5. ANVL: Establish full adjacency with DUT for neighbor Rtr-0-B on DIface-0 with DUT as DR.
6. ANVL: Listen (for up to 2 * <RxmtInterval> seconds) on DIface-0.
7. DUT: Send <OSPF-LSU> packet.
8. ANVL: Verify that the received <OSPF-LSU> packet contains a new instance of the
   Network-LSA for network N1 originated by DUT, and the LS Sequence Number
   is set to (<InitialSequenceNumber> + 1).

Both the test cases were failing while verifying the initial sequence number for network LSA.

This is because currently OSPF does not reset its LSA sequence number when it is going down.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2022-11-21 03:19:33 -08:00
Donatas Abraitis
d188e34fb5 github: Add enable-versioned-regex expicitly in labeler.yml
Error: Error: Input required and not supplied: enable-versioned-regex
Error: Input required and not supplied: enable-versioned-regex

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-21 12:04:57 +02:00
Donatas Abraitis
9961cffbe0
Merge pull request #12336 from cscarpitta/fix/increase-sid-index-limit
bgpd: Fix SRv6 SID index limit in the `sid vpn per-vrf export` VTY command
2022-11-21 10:05:44 +02:00
Donatas Abraitis
575d82a213
Merge pull request #12345 from donaldsharp/bgp_debugs_upstream
Bgp debugs upstream
2022-11-21 10:01:10 +02:00
Donald Sharp
e9c01b5d4f
Merge pull request #12335 from opensourcerouting/feature/add_github_labeler_on_regex
github: Add `backport` label if pull request has `Mergifyio backport` comment
2022-11-20 23:34:20 -05:00
Donald Sharp
bb64a1d381
Merge pull request #12337 from opensourcerouting/fix/misleading_error
bgpd: Warn user only if the LL is not seriously available
2022-11-20 23:33:35 -05:00
vivek
71d276c88a bgpd: Display FD in peer FSM state change log
Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
2022-11-20 22:45:37 -05:00
vivek
9e8a096b73 bgpd: Remove unnecessary debug log
Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
2022-11-20 22:45:12 -05:00
vivek
031c24f2a9 bgpd: Add more debug info for incoming connection
Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
2022-11-20 22:45:12 -05:00
vivek
3ffec403e8 bgpd: Modify keepalive debug category
Log keepalive timer expiry against 'debug bgp keepalive' instead
of 'debug bgp neighbor-events'.

Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
2022-11-20 22:42:47 -05:00
Donatas Abraitis
fa4e6e4e81
Merge pull request #12338 from cscarpitta/fix/srte-cleanup-use-after-free
zebra: Fix use-after-free crash on srte cleanup
2022-11-20 22:37:46 +02:00
Donald Sharp
2fc4ba8112
Merge pull request #12347 from opensourcerouting/snap-pim6
snapcraft: Add pim6 daemon for PIM IPv6 to snap package
2022-11-20 09:49:23 -05:00
Martin Winter
feeaf30fde
snapcraft: Add pim6 daemon for PIM IPv6 to snap package
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2022-11-19 12:52:36 +01:00
Donatas Abraitis
6dad190d56 bgpd: Convert bgp_rmap_nhop_changed to bool from int
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 16:17:15 +02:00
Donatas Abraitis
0224b3296c bgpd: Print empty JSON {} if no entries under show bgp ipv4 vpn json
Before this, the application fails that is parsing JSON (expecting).

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 16:17:15 +02:00
Donatas Abraitis
6cf8a4bf42 bgpd: Print prefix in logs messages with BGP_PATH_ANNC_NH_SELF
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 16:17:15 +02:00
Donatas Abraitis
6eeb925545 bgpd: Allow overriding MPLS VPN next-hops via route-maps
Just do not reset next-hop for MPLS VPN routes.

Example of 172.16.255.1/32 (using extended next-hop capability):

```
pe2# sh bgp ipv4 vpn
BGP table version is 4, local router ID is 10.10.10.20, vrf id 0
Default local pref 100, local AS 65001
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
Origin codes:  i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

    Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 192.168.1.2:2
 *>i10.0.0.0/24      2001:db8:1::1            0    100      0 65000 ?
    UN=2001:db8:1::1 EC{192.168.1.2:2} label=1111 type=bgp, subtype=0
 *>i172.16.255.1/32  2001:db8::1              0    100      0 65000 ?
    UN=2001:db8::1 EC{192.168.1.2:2} label=1111 type=bgp, subtype=0
 *>i192.168.1.0/24   2001:db8:1::1            0    100      0 65000 ?
    UN=2001:db8:1::1 EC{192.168.1.2:2} label=1111 type=bgp, subtype=0
 *>i192.168.2.0/24   2001:db8:1::1                 100      0 65000 ?
    UN=2001:db8:1::1 EC{192.168.1.2:2} label=1111 type=bgp, subtype=0
Route Distinguisher: 192.168.2.2:2
 *> 10.0.0.0/24      192.168.2.1@4<           0     50      0 65000 ?
    UN=192.168.2.1 EC{192.168.2.2:2} label=2222 type=bgp, subtype=5
 *> 172.16.255.1/32  192.168.2.1@4<                 50      0 65000 ?
    UN=192.168.2.1 EC{192.168.2.2:2} label=2222 type=bgp, subtype=5
 *> 192.168.1.0/24   192.168.2.1@4<                 50      0 65000 ?
    UN=192.168.2.1 EC{192.168.2.2:2} label=2222 type=bgp, subtype=5
 *> 192.168.2.0/24   192.168.2.1@4<           0     50      0 65000 ?
    UN=192.168.2.1 EC{192.168.2.2:2} label=2222 type=bgp, subtype=5

Displayed  8 routes and 8 total paths
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 16:17:15 +02:00
Donatas Abraitis
9a84cb612e tests: Check if we can override IPv6 next-hop for VPN networks in route-map
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 16:17:15 +02:00
anlan_cs
f3a88e7272 bgpd: fix null pointer dereference
It is possible there is no ip address in type2 prefix, that leads to crash in
`build_evpn_type2_prefix()`.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
2022-11-18 22:06:37 +08:00
Donald Sharp
298748af21
Merge pull request #12298 from kanavin/fix-python-config
m4/ax_python.m4: check for python-x.y-emded.pc, not python-x.y.pc
2022-11-18 07:43:28 -05:00
Carmine Scarpitta
22efe557f1 zebra: Fix use-after-free issue in srte cleanup
Currently, in `zebra_srte_client_close_cleanup` we use the `RB_FOREACH`
macro to traverse the SR policies tree. We remove the SR policies within
the loop. Removing elements from the tree and freeing them is not safe
and causes a use-after-free crash whenever the
`zebra_srte_client_close_cleanup` is called to perform cleanup.

This commit replaces the `RB_FOREACH` macro with its variant
`RB_FOREACH_SAFE`. Unlike `RB_FOREACH`, `RB_FOREACH_SAFE` permits both
the removal of tree elements as well as freeing them from within the
loop safely.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-18 13:19:14 +01:00
Donatas Abraitis
382c3b08b6 bgpd: Warn user only if the LL is not seriously available
LL address is assigned, but we get a warning, that it's not:

Interface: enp3s0 does not have a v6 LL address associated with it, waiting until one is created for it

```
donatas-pc# sh int enp3s0
Interface enp3s0 is up, line protocol is up
  Link ups:       0    last: (never)
  Link downs:     0    last: (never)
  vrf: default
  index 2 metric 0 mtu 1500 speed 100
  flags: <UP,BROADCAST,RUNNING,MULTICAST>
  v4 Multicast forwarding is on
  v6 Multicast forwarding is on
  Type: Ethernet
  HWaddr: 18:c0:4d:96:fa:3f
  inet 192.168.10.17/24
  inet6 2a02:4780:abc:0:e776:6220:1e21:44b1/64
  inet6 fe80::ca5d:fd0d:cd8:1bb7/64
```

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 10:36:24 +02:00
ylopez
319cfdc765 ospfd: increase API maximum message size
OSPF_MAX_LSA_SIZE does not represent the actual maximum size of LSA packets which may be larger than 1500 bytes. If relaying a large OSPF packet to the OSPF API, we do not allocate a big enough buffer to send over the API. This patch increases the maximum size of OSPF packets transmitted over the API.

Signed-off-by: ylopez <yoann.lopez@gmail.com>
2022-11-18 09:30:09 +01:00
Carmine Scarpitta
8265cbc769 doc: Update the SRv6 SID index limit in BGP doc
The `sid vpn per-vrf export` VTY command in bgpd has been extended to
support up to 1048575 SIDs.

This commit updates the documentation of the `sid vpn per-vrf export`
command.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-18 09:09:48 +01:00
Carmine Scarpitta
346bbb394e bgpd: Fix SRv6 SID index limit
Previously BGP supported up to 255 SIDs.

The PR https://github.com/FRRouting/frr/pull/11981 extended the
transposition computation algorithm in BGP to support more SIDs (up to
1048575 SIDs).

However the BGP VTY command for allocating an SRv6 per-VRF SID
(`sid vpn per-vrf export`) is still limited to 255 SIDs.

This commit extends the SID index in `sid vpn per-vrf export` VTY
command to support up to 1048575 SIDs.

Signed-off-by: Carmine Scarpitta <carmine.scarpitta@uniroma2.it>
2022-11-18 08:47:58 +01:00
Donatas Abraitis
bd22ae9ed4 github: Add backport label if pull request has Mergifyio backport comment
Useful to filter out which PRs should be backported yet.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-18 09:10:45 +02:00
Russ White
b7de3fe8a9
Merge pull request #12309 from proelbtn/bgpd-fix-mpls-vpn-advertisement
bgpd: fix invalid ipv4-vpn nexthop for IPv6 peer
2022-11-17 10:05:04 -05:00
Donatas Abraitis
f8d69be43f
Merge pull request #12081 from sworleys/EMM-upstream
Rework of Various Handling in EVPN for Extended Mac Mobility
2022-11-17 16:46:58 +02:00
Donatas Abraitis
1e5e7934ea
Merge pull request #12147 from pguibert6WIND/srte_flush
zebra: upon srte leave, flush sr policies
2022-11-17 15:26:55 +02:00
Olivier Dugeon
884f617f54
Merge pull request #12302 from louis-6wind/fix-isis_route_null-area
isisd: fix area NULL pointer in isis_route_update
2022-11-17 12:25:43 +01:00
Ryoga Saito
63e7ddb509 bgpd: fix invalid ipv4-vpn nexthop for IPv6 peer
Given that two routers are connected each other and they have IPv6
addresses and they establish BGP peer with extended-nexthop capability
and one router tries to advertise locally-generated IPv4-VPN routes to
other router.

In this situation, bgpd on the router that tries to advertise IPv4-VPN
routes will be crashed with "invalid MP nexthop length (AFI IP6)".

This issue is happened because MP_REACH_NLRI path attribute is not
generated correctly when ipv4-vpn routes are advertised to IPv6 peer.
When IPv4 routes are leaked from VRF RIB, the nexthop of these routes
are also IPv4 address (0.0.0.0/0 or specific addresses). However,
bgp_packet_mpattr_start only covers the case of IPv6 nexthop (for IPv6
peer).

ipv4-unicast routes were not affected by this issue because the case of
IPv4 nexthop is covered in `else` block.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2022-11-17 19:08:43 +09:00
Ryoga Saito
3db8aa8750 tests: Add topotest for l3vpn over ipv6 peer
To check the effect of the next patch, I added topotest.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
2022-11-17 19:08:37 +09:00
Louis Scalbert
41c2bf853f isisd: fix area NULL pointer in isis_route_update
Fix the case area is NULL.

Fixes: acc0029779 ("isisd: fix potential access to NULL pointer in isis_route_update")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2022-11-17 10:09:54 +01:00
Russ White
0fcf26b172
Merge pull request #12312 from pguibert6WIND/bgp_lu_rr_case
bgpd: authorise to select bgp self peer prefix on rr case
2022-11-16 21:58:09 -05:00
Russ White
54b3d90a4b
Merge pull request #11992 from pguibert6WIND/pathd_debug
Pathd debug
2022-11-16 21:41:33 -05:00
Donatas Abraitis
e0f7fc58a2
Merge pull request #12324 from sworleys/Guard-InQ-Log
bgpd: debug guard inQ limit
2022-11-16 21:48:04 +02:00
Donatas Abraitis
4f770cf1d2 bgpd: Implement graceful-shutdown command per neighbor
We already have a global knob for graceful-shutdown, but it's handy having
per neighbor knob as well.

Especially when a single neighbor needs to be restarted/shutdown gracefuly.

We can do this route-maps, but this is a faster/cleaner way doing the same
for an operator.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-16 21:42:21 +02:00
Donald Sharp
b36156760b
Merge pull request #12259 from opensourcerouting/fix/show_rtt_always
bgpd: Shutdown RTT improvements
2022-11-16 10:28:23 -05:00
Jafar Al-Gharaibeh
a221745a40
Merge pull request #11058 from opensourcerouting/fix/redhat_debian_logrotate
packaging: Reuse frr.logrotate for Debian and Redhat builds
2022-11-15 22:15:45 -06:00
Stephen Worley
3448b62542 bgpd: debug guard inQ limit
Add a debug guard for the inQ limit.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
2022-11-15 15:28:09 -05:00