]> git.puffer.fish Git - mirror/frr.git/log
mirror/frr.git
3 years agosnapcraft: Change base to Ubuntu 18.04 and libyang 2.0.7
Martin Winter [Tue, 17 Aug 2021 17:49:42 +0000 (19:49 +0200)]
snapcraft: Change base to Ubuntu 18.04 and libyang 2.0.7

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
3 years agoMerge pull request #9421 from idryzhov/8.0-ospf-explicit-exit
David Lamparter [Tue, 17 Aug 2021 15:06:34 +0000 (17:06 +0200)]
Merge pull request #9421 from idryzhov/8.0-ospf-explicit-exit

3 years agoospfd: explicitly exit from the router node 9421/head
Igor Ryzhov [Tue, 17 Aug 2021 12:36:55 +0000 (15:36 +0300)]
ospfd: explicitly exit from the router node

There's a new "mpls ldp-sync" command added to the OSPF router node in
FRR 8.0. This change broke the following config:
```
router ospf
!
mpls ldp
 discovery hello interval 10
!
```
The config was broken because the "mpls ldp" line is now treated as an
"mpls ldp-sync" line inside the router node. We must explicitly print
"exit" at the end of OSPF router node to fix the issue.

Fixes #9206.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #9386 from FRRouting/mergify/bp/stable/8.0/pr-8952
Donald Sharp [Tue, 17 Aug 2021 11:41:15 +0000 (07:41 -0400)]
Merge pull request #9386 from FRRouting/mergify/bp/stable/8.0/pr-8952

pimd: make show ip mroute output consistent (backport #8952)

3 years agoMerge pull request #9409 from FRRouting/mergify/bp/stable/8.0/pr-9375
Mark Stapp [Tue, 17 Aug 2021 11:24:19 +0000 (07:24 -0400)]
Merge pull request #9409 from FRRouting/mergify/bp/stable/8.0/pr-9375

vtysh, pathd: fix pcep node-entering commands (backport #9375)

3 years agoMerge pull request #9358 from ton31337/fix/dont_convert_by_default_to_alias_8.0
Igor Ryzhov [Tue, 17 Aug 2021 09:23:23 +0000 (12:23 +0300)]
Merge pull request #9358 from ton31337/fix/dont_convert_by_default_to_alias_8.0

bgpd: [8.0] Fix bgp routes filtering by [l]community-list

3 years agoMerge pull request #9406 from FRRouting/mergify/bp/stable/8.0/pr-9399
Igor Ryzhov [Mon, 16 Aug 2021 17:14:54 +0000 (20:14 +0300)]
Merge pull request #9406 from FRRouting/mergify/bp/stable/8.0/pr-9399

doc: Replace typo BANDIWDTH to BANDWIDTH (backport #9399)

3 years agoMerge pull request #9407 from FRRouting/mergify/bp/stable/8.0/pr-9265
Igor Ryzhov [Mon, 16 Aug 2021 17:14:44 +0000 (20:14 +0300)]
Merge pull request #9407 from FRRouting/mergify/bp/stable/8.0/pr-9265

bgpd: Extended community bandwidth fixes (backport #9265)

3 years agovtysh, pathd: fix pcep node-entering commands 9409/head
Igor Ryzhov [Wed, 11 Aug 2021 14:46:31 +0000 (17:46 +0300)]
vtysh, pathd: fix pcep node-entering commands

pce-config, pce and pcc node-entering commands in vtysh include no-form,
which is incorrect. Currently, when user passes a no-form command like
`no pcc`, vtysh enters the node while pathd deletes the node and this
leads to a desynchronization.

Regular and no-form commands should be defined separately to fix this.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 53fc645d339d850173b860bcd3482d3d5911ac51)

3 years agobgpd: fix memory leaks in bgp_alias2community_str 9358/head
Igor Ryzhov [Wed, 11 Aug 2021 09:09:15 +0000 (12:09 +0300)]
bgpd: fix memory leaks in bgp_alias2community_str

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agobgpd: Don't set `non-transitive` for extcommunity bandwidth by default 9407/head
Donatas Abraitis [Tue, 3 Aug 2021 11:25:01 +0000 (14:25 +0300)]
bgpd: Don't set `non-transitive` for extcommunity bandwidth by default

Before:

```
~/frr# vtysh -c 'conf' -c 'route-map testas permit 10' -c 'set extcommunity bandwidth 321'
~/frr# vtysh -c 'show route-map testas' | grep 321
    extcommunity bandwidth 321 non-transitive
~/frr# vtysh -c 'show run' | grep 321
 set extcommunity bandwidth 321 non-transitive
```

After:

```
~/frr# vtysh -c 'conf' -c 'route-map testas permit 10' -c 'set extcommunity bandwidth 321'
~/frr# vtysh -c 'show route-map testas' | grep 321
    extcommunity bandwidth 321
~/frr# vtysh -c 'show run' | grep 321
 set extcommunity bandwidth 321
~/frr# vtysh -c 'conf' -c 'route-map testas permit 20' -c 'set extcommunity bandwidth 321 non-tra'
~/frr# vtysh -c 'show run' | grep 321
 set extcommunity bandwidth 321
 set extcommunity bandwidth 321 non-transitive
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit 3b225ee79965aeb0b3832ccd6c6b991d1c754023)

3 years agobgpd: Keep extcommunity bandwidth commands persistent in route-maps
Donatas Abraitis [Tue, 3 Aug 2021 08:02:49 +0000 (11:02 +0300)]
bgpd: Keep extcommunity bandwidth commands persistent in route-maps

~/frr# vtysh -c 'conf' -c 'route-map testas permit 10' -c 'set extcommunity bandwidth 321'
~/frr# vtysh -c 'show route-map testas' | grep 321
    extcommunity bandwidth 321 non-transitive
~/frr# vtysh -c 'sh run' | grep 321
~/frr#

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit 71bdae66b2c105302f7af9fc0c1deb657e2418d9)

3 years agodoc: Replace typo BANDIWDTH to BANDWIDTH 9406/head
Donatas Abraitis [Sun, 15 Aug 2021 08:10:22 +0000 (11:10 +0300)]
doc: Replace typo BANDIWDTH to BANDWIDTH

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit c5e0101cb8ad96d4e43c24cfd5b56d6b311cecfa)

3 years agoMerge pull request #9377 from idryzhov/8.0-ospf6-doc-fix
Donatas Abraitis [Sun, 15 Aug 2021 07:48:50 +0000 (10:48 +0300)]
Merge pull request #9377 from idryzhov/8.0-ospf6-doc-fix

[8.0] doc: move ospf6 area commands to the appropriate section

3 years agoMerge pull request #9398 from FRRouting/mergify/bp/stable/8.0/pr-9394
Donatas Abraitis [Sat, 14 Aug 2021 19:21:23 +0000 (22:21 +0300)]
Merge pull request #9398 from FRRouting/mergify/bp/stable/8.0/pr-9394

bgpd: Stop prepending peer-as if self-originated and lastas configured (backport #9394)

3 years agobgpd: Stop prepending peer-as if self-originated and lastas configured 9398/head
Don Slice [Wed, 11 Aug 2021 12:45:23 +0000 (08:45 -0400)]
bgpd: Stop prepending peer-as if self-originated and lastas configured

Problem seen where if "set aspath-prepend last-as" configured and
applied outbound, we prepend the peer's asn which causes our self-
originated routes to be denied.

Signed-off-by: Don Slice <dslice@nvidia.com>
(cherry picked from commit 6ba0adacd25349a0b5088d7e64106a859031f150)

3 years agoMerge pull request #9356 from FRRouting/mergify/bp/stable/8.0/pr-9328
Igor Ryzhov [Fri, 13 Aug 2021 17:10:24 +0000 (20:10 +0300)]
Merge pull request #9356 from FRRouting/mergify/bp/stable/8.0/pr-9328

bgpd: bgp_packet_process_error can access peer after deletion (backport #9328)

3 years agoMerge pull request #9392 from FRRouting/mergify/bp/stable/8.0/pr-9363
Igor Ryzhov [Fri, 13 Aug 2021 16:51:47 +0000 (19:51 +0300)]
Merge pull request #9392 from FRRouting/mergify/bp/stable/8.0/pr-9363

ospfd: ospf redistribute originating LSA internal connected routes (backport #9363)

3 years agoospfd: ospf redistribute originating LSA internal connected routes 9392/head
Mobashshera Rasool [Tue, 10 Aug 2021 16:24:47 +0000 (09:24 -0700)]
ospfd: ospf redistribute originating LSA internal connected routes

When OSPF is disabled on interface and enabled again, the IP which is
not matching the prefix-list is getting originated as External LSA.

Fixes: #9362
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
(cherry picked from commit e474c143738d07ffe3336ec6d2fafff905b2be66)

3 years agoMerge pull request #9351 from FRRouting/mergify/bp/stable/8.0/pr-9321
Igor Ryzhov [Fri, 13 Aug 2021 11:08:52 +0000 (14:08 +0300)]
Merge pull request #9351 from FRRouting/mergify/bp/stable/8.0/pr-9321

zebra: Prevent memory leak if route is rejected early (backport #9321)

3 years agoMerge pull request #9359 from FRRouting/mergify/bp/stable/8.0/pr-9290
Igor Ryzhov [Fri, 13 Aug 2021 11:07:42 +0000 (14:07 +0300)]
Merge pull request #9359 from FRRouting/mergify/bp/stable/8.0/pr-9290

ospf6d: Check the cost only when asbr_present for ECMP routes (backport #9290)

3 years agoMerge pull request #9387 from FRRouting/mergify/bp/stable/8.0/pr-9374
Igor Ryzhov [Fri, 13 Aug 2021 11:05:41 +0000 (14:05 +0300)]
Merge pull request #9387 from FRRouting/mergify/bp/stable/8.0/pr-9374

zebra: clean up nhg allocations in error path (backport #9374)

3 years agozebra: clean up nhg allocations in error path 9387/head
Mark Stapp [Wed, 11 Aug 2021 14:41:53 +0000 (10:41 -0400)]
zebra: clean up nhg allocations in error path

Clean up allocated nhgs in error path in zread_nhg_add().

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
(cherry picked from commit fd99142ab79e265840ebb1990d4348dfcf47de14)

3 years agopimd: make show ip mroute output consistent 9386/head
Jafar Al-Gharaibeh [Tue, 29 Jun 2021 19:02:45 +0000 (14:02 -0500)]
pimd: make show ip mroute output consistent

We had 3 different string output formats in various places.
Make them all the same.

Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
(cherry picked from commit 530b12cf6e88170d4f6d4f10a8bd95de0284866e)

3 years agodoc: move ospf6 area commands to the appropriate section 9377/head
Igor Ryzhov [Wed, 11 Aug 2021 14:55:12 +0000 (17:55 +0300)]
doc: move ospf6 area commands to the appropriate section

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agobgpd: BGP extended [l]community-list regexp match must work with aliases
Donatas Abraitis [Mon, 9 Aug 2021 10:34:57 +0000 (13:34 +0300)]
bgpd: BGP extended [l]community-list regexp match must work with aliases

We have to convert BGP alias to numerical format to compare in regexp.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
3 years agoospf6d: Check the cost only when asbr_present for ECMP routes 9359/head
Yash Ranjan [Wed, 4 Aug 2021 11:53:10 +0000 (04:53 -0700)]
ospf6d: Check the cost only when asbr_present for ECMP routes

For ECMP routes, the metric cost and metric type are compared
even when the asbr entry is not present. This stops the routes
from getting removed when max age LSAs are received for the
ECMP routes.

Signed-off-by: Yash Ranjan <ranjany@vmware.com>
(cherry picked from commit a867da2b6b1ab39a95ca30763aa27d0f66dad15e)

3 years agoMerge pull request #9349 from opensourcerouting/rpm-keep-config
Donald Sharp [Tue, 10 Aug 2021 14:12:29 +0000 (10:12 -0400)]
Merge pull request #9349 from opensourcerouting/rpm-keep-config

redhat: Install frr.conf only if no per daemon config exists

3 years agobgpd: bgp_packet_process_error can access peer after deletion 9356/head
Donald Sharp [Sun, 8 Aug 2021 12:23:24 +0000 (08:23 -0400)]
bgpd: bgp_packet_process_error can access peer after deletion

in bgp_io.c upon packet read of some error we are storing
the peer pointer on a thread to call bgp_packet_process_error.
In this case an event is generated that is not guaranteed to be
run immediately.  It could come in *after* the peer data structure
is deleted and as such we now are writing into memory that we
no longer possibly own as a peer data structure.

Modify the code so that the peer can track the thread associated
with the read error and then it can wisely kill that thread
when deleting the peer data structure.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 1fae5c8e289f3a0dd6615663fe53d5fae19f53ff)

3 years agozebra: Properly note add/update for rib_add_multipath_nhe 9351/head
Donald Sharp [Mon, 9 Aug 2021 12:01:06 +0000 (08:01 -0400)]
zebra: Properly note add/update for rib_add_multipath_nhe

When calling rib_add_multipath_nhe ensure that we have
well aligned return codes that mean something so that
interersted parties can properly handle the situation.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 38c764dde42b605e12a35d3bcb5b93cf72272d30)

3 years agozebra: Prevent memory leak if route is rejected early
Donald Sharp [Fri, 6 Aug 2021 20:00:32 +0000 (16:00 -0400)]
zebra: Prevent memory leak if route is rejected early

When receiving a route via zapi, if the route is rejected
there exists a code path where we would not free the corresponding
re created.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit f94a7703c0725766f7dd91931718d3869ed28116)

3 years agoredhat: Install frr.conf only if no per daemon config exists 9349/head
Martin Winter [Mon, 9 Aug 2021 23:52:05 +0000 (01:52 +0200)]
redhat: Install frr.conf only if no per daemon config exists

Install frr.conf template as a template file, but only install it
as a config file if no per daemon file exists. This will use the
integrated config with new setups, but keeps the per-daemon config
for existing users

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
3 years agoMerge pull request #9277 from FRRouting/mergify/bp/stable/8.0/pr-9238
Donatas Abraitis [Mon, 9 Aug 2021 07:38:16 +0000 (10:38 +0300)]
Merge pull request #9277 from FRRouting/mergify/bp/stable/8.0/pr-9238

lib, zebra: Preserve user-configured VRF on netns deletion (backport #9238)

3 years agoMerge pull request #9329 from FRRouting/mergify/bp/stable/8.0/pr-9315
Donatas Abraitis [Mon, 9 Aug 2021 07:30:59 +0000 (10:30 +0300)]
Merge pull request #9329 from FRRouting/mergify/bp/stable/8.0/pr-9315

pathd: a couple of cli/doc fixes (backport #9315)

3 years agodoc: fix pathd example config 9329/head
Igor Ryzhov [Thu, 5 Aug 2021 20:57:24 +0000 (23:57 +0300)]
doc: fix pathd example config

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit b7484ec650a87a59a610bd26f153041d52f0e2c1)

3 years agopathd: fix indentation and redundant space in index config
Igor Ryzhov [Thu, 5 Aug 2021 20:47:27 +0000 (23:47 +0300)]
pathd: fix indentation and redundant space in index config

Before:
```
segment-routing
 traffic-eng
  segment-list SL1
 index  10 mpls label 16010
```

After:
```
segment-routing
 traffic-eng
  segment-list SL1
   index 10 mpls label 16010
```

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 882bae36a0fd8287fd09300e4cff1a372a61dbe6)

3 years agopathd: fix indentation for mpls-te config
Igor Ryzhov [Thu, 5 Aug 2021 20:45:44 +0000 (23:45 +0300)]
pathd: fix indentation for mpls-te config

Before:
```
segment-routing
 traffic-eng
 mpls-te on
 mpls-te import ospfv2
```

After:
```
segment-routing
 traffic-eng
  mpls-te on
  mpls-te import ospfv2
```

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit dfbabd45f8faaf4b697778ecf89951099797ce9b)

3 years agoMerge pull request #9266 from FRRouting/mergify/bp/stable/8.0/pr-9249
Donald Sharp [Sat, 7 Aug 2021 20:08:28 +0000 (16:08 -0400)]
Merge pull request #9266 from FRRouting/mergify/bp/stable/8.0/pr-9249

bgpd: Use strict AS4 capability when processing parsing/generating pkts (backport #9249)

3 years agoMerge pull request #9268 from FRRouting/mergify/bp/stable/8.0/pr-9239
Donald Sharp [Sat, 7 Aug 2021 20:08:08 +0000 (16:08 -0400)]
Merge pull request #9268 from FRRouting/mergify/bp/stable/8.0/pr-9239

ospfd: fix "no ip ospf passive" command (backport #9239)

3 years agoMerge pull request #9311 from idryzhov/bgp-opaque-fix
Donald Sharp [Sat, 7 Aug 2021 19:10:42 +0000 (15:10 -0400)]
Merge pull request #9311 from idryzhov/bgp-opaque-fix

[8.0] bgpd: limit the length of opaque data sent to zebra

3 years agoMerge pull request #9320 from idryzhov/8.0-bgp-dampening-revert
Donald Sharp [Sat, 7 Aug 2021 19:08:43 +0000 (15:08 -0400)]
Merge pull request #9320 from idryzhov/8.0-bgp-dampening-revert

[8.0] bgp per-peer dampening revert

3 years agoRevert "bgpd: peer / peer group dampening profiles" 9320/head
Igor Ryzhov [Mon, 2 Aug 2021 10:26:58 +0000 (13:26 +0300)]
Revert "bgpd: peer / peer group dampening profiles"

This reverts commit 40ec3340be9cdda62eea349fe9ee21e65156f422.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoRevert "bgpd: vtysh commands for peer/group dampening profiles"
Igor Ryzhov [Mon, 2 Aug 2021 10:19:10 +0000 (13:19 +0300)]
Revert "bgpd: vtysh commands for peer/group dampening profiles"

This reverts commit 0221327c75d370648d20c2bc4d281c23f5738f74.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoRevert "bgpd: Do not output peer doppleganger dampened output"
Igor Ryzhov [Mon, 2 Aug 2021 10:43:28 +0000 (13:43 +0300)]
Revert "bgpd: Do not output peer doppleganger dampened output"

This reverts commit 783492c7cdeaca5c73fb2debaeaa0b378ee734de.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoRevert "bgpd: Consolidate dampening show run output with the rest of that code"
Igor Ryzhov [Mon, 2 Aug 2021 10:42:56 +0000 (13:42 +0300)]
Revert "bgpd: Consolidate dampening show run output with the rest of that code"

This reverts commit 39d8dd2d176e26cff9c62f48048b18cf4df9168a.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoRevert "doc: user doc for route-flap dampening commands"
Igor Ryzhov [Mon, 2 Aug 2021 10:17:42 +0000 (13:17 +0300)]
Revert "doc: user doc for route-flap dampening commands"

This reverts commit 54b34709f8603be3f7d13ae224aa8cade49b1741.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoRevert "tests: topotests for route-flap dampening"
Igor Ryzhov [Mon, 2 Aug 2021 10:15:45 +0000 (13:15 +0300)]
Revert "tests: topotests for route-flap dampening"

This reverts commit cd32a1a4eecf2a29dbfd2493573f7473e20096d9.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoRevert "bgpd: clear ip bgp dampening was not triggering the route calculation for...
Igor Ryzhov [Mon, 2 Aug 2021 10:05:22 +0000 (13:05 +0300)]
Revert "bgpd: clear ip bgp dampening was not triggering the route calculation for the prefix"

This reverts commit c8ddbd48040be6bf33c4f0ab3e470f290f9b165a.

3 years agoRevert "bgpd: Remove useless reuselist_node assignment before while loop"
Igor Ryzhov [Mon, 2 Aug 2021 10:01:48 +0000 (13:01 +0300)]
Revert "bgpd: Remove useless reuselist_node assignment before while loop"

This reverts commit 53048d33d124e60ce01ae6bf149ae03561930694.

3 years agoRevert "bgpd: fix double free in dampening code"
Igor Ryzhov [Mon, 2 Aug 2021 10:01:38 +0000 (13:01 +0300)]
Revert "bgpd: fix double free in dampening code"

This reverts commit 96d6b8cc29bf5124ae93433ecfc16b3fd69be5ea.

3 years agoRevert "bgpd: Drop double-pointer for bgp_damp_info_free()"
Igor Ryzhov [Mon, 2 Aug 2021 10:01:32 +0000 (13:01 +0300)]
Revert "bgpd: Drop double-pointer for bgp_damp_info_free()"

This reverts commit 19971c9a9218b31e6e1c3f7ebb23654f833bb4ef.

3 years agoRevert "bgpd: fix missing list add in dampening"
Igor Ryzhov [Mon, 2 Aug 2021 10:01:26 +0000 (13:01 +0300)]
Revert "bgpd: fix missing list add in dampening"

This reverts commit cd58568b1889df753aa258ee61b6d949b1ce6fb9.

3 years agoRevert "bgpd: fix incorrect usage of slist in dampening"
Igor Ryzhov [Mon, 2 Aug 2021 10:01:18 +0000 (13:01 +0300)]
Revert "bgpd: fix incorrect usage of slist in dampening"

This reverts commit 5054cfcbbc8c776a91e9390d36cff891d0890b4f.

3 years agoRevert "bgpd: cleanup bgp_damp_info_free"
Igor Ryzhov [Mon, 2 Aug 2021 10:01:06 +0000 (13:01 +0300)]
Revert "bgpd: cleanup bgp_damp_info_free"

This reverts commit 97766ac8aa40ff8868a854ba8515c9e6441e4b7c.

3 years agoRevert "bgpd: fix missing damp info free when cleaning bgp path"
Igor Ryzhov [Mon, 2 Aug 2021 10:33:09 +0000 (13:33 +0300)]
Revert "bgpd: fix missing damp info free when cleaning bgp path"

This reverts commit 4538f89552a01e6ab3504f8a59ef156b9a14ce1c.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agobgpd: limit the length of opaque data sent to zebra 9311/head
Igor Ryzhov [Fri, 6 Aug 2021 13:15:41 +0000 (16:15 +0300)]
bgpd: limit the length of opaque data sent to zebra

Previously, when aspath->str was longer than sizeof(api.opaque.data), we
were overwriting the wrong memory.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #9296 from FRRouting/mergify/bp/stable/8.0/pr-9108
Donald Sharp [Thu, 5 Aug 2021 21:02:15 +0000 (17:02 -0400)]
Merge pull request #9296 from FRRouting/mergify/bp/stable/8.0/pr-9108

ospf6d: fix argument processing in the "area ... range" command (backport #9108)

3 years agoMerge pull request #9278 from FRRouting/mergify/bp/stable/8.0/pr-9231
Donald Sharp [Wed, 4 Aug 2021 17:08:41 +0000 (13:08 -0400)]
Merge pull request #9278 from FRRouting/mergify/bp/stable/8.0/pr-9231

zebra: remove checks for src address existence when using "set src" (backport #9231)

3 years agoMerge pull request #9297 from FRRouting/mergify/bp/stable/8.0/pr-9085
Donald Sharp [Wed, 4 Aug 2021 17:04:36 +0000 (13:04 -0400)]
Merge pull request #9297 from FRRouting/mergify/bp/stable/8.0/pr-9085

pimd: memory leak fix and issue fix (backport #9085)

3 years agodoc: document ospf6d's "area ... range" command 9296/head
Renato Westphal [Thu, 22 Jul 2021 02:23:10 +0000 (23:23 -0300)]
doc: document ospf6d's "area ... range" command

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
(cherry picked from commit b9ff9be45226395b4c9b05d52824dd6d485b151f)

3 years agopimd : memory leak in rp_table cleanup. 9297/head
github login name [Mon, 19 Jul 2021 11:30:58 +0000 (04:30 -0700)]
pimd : memory leak in rp_table cleanup.

Problem Statement:
==================
valgrind shows memleaks in rp_table, when pimd shuts down gracefully.
2020-05-05 22:09:29,451 ERROR: Memory leaks in router [r4] for daemon [pimd]
2020-05-05 22:09:29,451 ERROR: Memory leaks in router [r4] for daemon [zebra]
2020-05-05 22:09:29,637 ERROR: Found memory leak in module pimd
2020-05-05 22:09:29,638 ERROR: ==6178== 184 (56 direct, 128 indirect) bytes in 1 blocks are definitely lost in loss record 21 of 21
2020-05-05 22:09:29,638 ERROR: ==6178== at 0x4C2FFAC: calloc (vg_replace_malloc.c:762)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x4E855EE: qcalloc (memory.c:111)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x4EAA43C: route_table_init_with_delegate (table.c:52)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x1281A1: pim_rp_init (pim_rp.c:114)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x11D0F8: pim_instance_init (pim_instance.c:117)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x11D0F8: pim_vrf_new (pim_instance.c:150)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x4EB1BEC: vrf_get (vrf.c:209)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x4EB2B2F: vrf_init (vrf.c:493)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x11D227: pim_vrf_init (pim_instance.c:217)
2020-05-05 22:09:29,638 ERROR: ==6178== by 0x11BBAB: main (pim_main.c:121)

Fix:
====
rp_info is allocated in pim_rp_init API. rp_info pointer is present
in rp_list and rp_table. In rp_list cleanup, the memory for rp_info
gets freed. rp_table clean up should be done first and then rp_list.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
(cherry picked from commit 906640dbafee986a5ac49d1089e49ac97770096f)

3 years agopimd: pim_ifchannel_local_membership_add should not inherit if (S,G) rpf unresolved
github login name [Mon, 19 Jul 2021 10:57:25 +0000 (03:57 -0700)]
pimd: pim_ifchannel_local_membership_add should not inherit if (S,G) rpf unresolved

Problem:
S,G entry has iif = oif in FHR is LHR case.

Setup:-

R11-----R2----R4

R11 :- FHR and LHR
R2 :- RP
R4 :- LHR

Issue :-

1) shut mapped interface in R11
2) wait for 5 min
3) do FRR restart
5) No shut of mapped interface

OIL is added for local interface also where OIL is same as IIF
and duplicate traffic observed on R4 receives in Ixia

RCA:
pim_ifchannel_local_membership_add adds inherited oif from starg when iif for
SG is unavailable.
When  rpf for that SG resolves to this inherited oif from starg, iif is also in oif.
This results in dup traffic.

Fix:
If iif is not available, do not inherit from starg.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
(cherry picked from commit 660b04429437416d71ec22dcc8bb798fdf45bec6)

3 years agoospf6d: fix argument processing in the "area ... range" command
Renato Westphal [Wed, 21 Jul 2021 16:34:56 +0000 (13:34 -0300)]
ospf6d: fix argument processing in the "area ... range" command

* When the "cost" argument isn't present, the default cost should be
  used instead of preserving the previously configured one (if any);
* When the "not-advertise" argument isn't present, the "not-advertise"
  flag should be unset regardless if it was previously configured or
  not.

Configuration commands should be deterministic and work in the same
way regardless of the current state.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
(cherry picked from commit 848db95c5aff7c387fe09efd4c91088bc7918ecb)

3 years agoMerge pull request #9274 from FRRouting/mergify/bp/stable/8.0/pr-9237
Donald Sharp [Wed, 4 Aug 2021 00:52:06 +0000 (20:52 -0400)]
Merge pull request #9274 from FRRouting/mergify/bp/stable/8.0/pr-9237

doc: Fix code-block display for example shell commands (backport #9237)

3 years agoMerge pull request #9275 from FRRouting/mergify/bp/stable/8.0/pr-9214
Donald Sharp [Wed, 4 Aug 2021 00:51:38 +0000 (20:51 -0400)]
Merge pull request #9275 from FRRouting/mergify/bp/stable/8.0/pr-9214

zebra: bugfix of error quit of zebra, due to no nexthop ACTIVE (backport #9214)

3 years agoMerge pull request #9276 from FRRouting/mergify/bp/stable/8.0/pr-9246
Donald Sharp [Wed, 4 Aug 2021 00:51:00 +0000 (20:51 -0400)]
Merge pull request #9276 from FRRouting/mergify/bp/stable/8.0/pr-9246

doc: fix bgp user doc colons (backport #9246)

3 years agoMerge pull request #9279 from FRRouting/mergify/bp/stable/8.0/pr-9264
Donald Sharp [Wed, 4 Aug 2021 00:50:32 +0000 (20:50 -0400)]
Merge pull request #9279 from FRRouting/mergify/bp/stable/8.0/pr-9264

nhrp: fix display of nhs command. (backport #9264)

3 years agoMerge pull request #9267 from FRRouting/mergify/bp/stable/8.0/pr-9191
Donald Sharp [Wed, 4 Aug 2021 00:39:40 +0000 (20:39 -0400)]
Merge pull request #9267 from FRRouting/mergify/bp/stable/8.0/pr-9191

ripd: fix authentication key length (backport #9191)

3 years agonhrp: fix display of nhs command. 9279/head
Dmitrii Turlupov [Tue, 3 Aug 2021 11:00:24 +0000 (14:00 +0300)]
nhrp: fix display of nhs command.

Before:
ip nhrp nhs dynamicnbma 192.168.1.1

After:
ip nhrp nhs dynamic nbma 192.168.1.1

Signed-off-by: Dmitrii Turlupov <dturlupov@factor-ts.ru>
(cherry picked from commit 7a807a20d90e0833979c9cfb82ab4e319c5ea175)

3 years agozebra: remove checks for src address existence when using "set src" 9278/head
Igor Ryzhov [Thu, 29 Jul 2021 17:21:00 +0000 (20:21 +0300)]
zebra: remove checks for src address existence when using "set src"

1. This check is absolutely useless. Nothing keeps user from deleting
   the address right after this check.
2. This check prevents zebra from correctly reading the user config with
   "set src" because of a race with interface startup (see #4249).
3. NO OPERATIONAL DATA USAGE ON VALIDATION STAGE.

Fixes #7319.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 1f74d96c418fb36d794ef020144ab286fb363048)

3 years agolib, zebra: Preserve user-configured VRF on netns deletion 9277/head
Xiao Liang [Fri, 30 Jul 2021 05:00:06 +0000 (13:00 +0800)]
lib, zebra: Preserve user-configured VRF on netns deletion

Don't clear VRF's user-configured flag when netns is deleted.

Signed-off-by: Xiao Liang <shaw.leon@gmail.com>
(cherry picked from commit 6910315f6f3ddd66d8929cb82deaf96d13a2bfbf)

3 years agodoc: fix bgp user doc 9276/head
Mark Stapp [Fri, 30 Jul 2021 17:54:01 +0000 (13:54 -0400)]
doc: fix bgp user doc

Too many colons in the bgp doc source file.

Signed-off-by: Mark Stapp <mjs.ietf@gmail.com>
(cherry picked from commit 05653f497bce70537c15adc2f58ef8de97e3160f)

3 years agozebra: bugfix of error quit of zebra, due to no nexthop ACTIVE 9275/head
batmancn [Mon, 30 Nov 2020 12:04:44 +0000 (20:04 +0800)]
zebra: bugfix of error quit of zebra, due to no nexthop ACTIVE

There exists some rare situations where fpm will attempt
to send a route update with no valid nexthops.  In that
case an assert would be hit.  This is not good for
trying to keep your routing daemons up and running
when we can safely just recover the situation.

Fixes #7588
Signed-off-by: batmancn <batmanustc@gmail.com>
<fixed commit message, and used zlog_err>
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 5306e6cf00c58a4c4558609d623ecbbd79faabf1)

3 years agodoc: Fix code-block display for example shell commands 9274/head
Donald Sharp [Fri, 30 Jul 2021 01:42:06 +0000 (21:42 -0400)]
doc: Fix code-block display for example shell commands

the code-block was jumbled and not displaying properly.

Reported by: Drew Bloechl
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 01af2696ebee84cb90427aa56066ea88b05083ed)

3 years agoMerge pull request #9263 from FRRouting/mergify/bp/stable/8.0/pr-9056
Russ White [Tue, 3 Aug 2021 17:43:34 +0000 (13:43 -0400)]
Merge pull request #9263 from FRRouting/mergify/bp/stable/8.0/pr-9056

bgpd: Clear capabilities field when resetting a bgp neighbor (backport #9056)

3 years agoMerge pull request #9270 from FRRouting/mergify/bp/stable/8.0/pr-8789
Igor Ryzhov [Tue, 3 Aug 2021 17:06:20 +0000 (20:06 +0300)]
Merge pull request #9270 from FRRouting/mergify/bp/stable/8.0/pr-8789

doc: bump sphinx version to 4.0.2, remove deprecated API (backport #8789)

3 years agodoc: use add_css_file(); not deprecated 9270/head
Quentin Young [Thu, 3 Jun 2021 17:41:13 +0000 (13:41 -0400)]
doc: use add_css_file(); not deprecated

add_stylesheet() is deprecated and removed in Sphinx 4.x

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
(cherry picked from commit d6ba203d2fb190e38956082429a34c747cf9de9d)

3 years agodoc: add requirements.txt
Quentin Young [Thu, 3 Jun 2021 17:35:34 +0000 (13:35 -0400)]
doc: add requirements.txt

Add a minimum sphinx version requirement for the docs; RTD needs this to
know what version of sphinx to install.

Signed-off-by: Quentin Young <qlyoung@nvidia.com>
(cherry picked from commit 826186eab217a590d86a7bdfaab6174da51c79b2)

3 years agoospfd: fix "no ip ospf passive" command 9268/head
Igor Ryzhov [Fri, 30 Jul 2021 11:11:33 +0000 (14:11 +0300)]
ospfd: fix "no ip ospf passive" command

This command is currently always treated as an "unset" command, assuming
that active is the default type of the interface. In reality, the default
type of the interface can be changed using "passive-interface default"
command. Both "no" and regular commands can be "set" commands, depending
on the default value. They are treated as an "unset" when there's already
a config of the opposite type.

All this logic is in ospf_passive_interface_update.

Fixes #9240.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 82f0277b357410da849bcdceab048317f92077ed)

3 years agoripd: fix authentication key length 9267/head
Igor Ryzhov [Mon, 26 Jul 2021 19:31:41 +0000 (22:31 +0300)]
ripd: fix authentication key length

We were overwriting the last byte of the key when it's exactly 16 bytes.

Fixes #8151.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit b5b4f44eb30f0271e4df35784fe6c4b125fe349c)

3 years agoMerge pull request #9257 from FRRouting/mergify/bp/stable/8.0/pr-9255
Russ White [Tue, 3 Aug 2021 13:23:25 +0000 (09:23 -0400)]
Merge pull request #9257 from FRRouting/mergify/bp/stable/8.0/pr-9255

bgpd: Set extended msg size only if we advertised and received capability (backport #9255)

3 years agoMerge pull request #9245 from ton31337/fix/backport_9217
Russ White [Tue, 3 Aug 2021 13:18:56 +0000 (09:18 -0400)]
Merge pull request #9245 from ton31337/fix/backport_9217

bgpd: [8.0] BGP dampening backports

3 years agotests: Check if BGP connection established if using no capabilities adv 9266/head
Donatas Abraitis [Sun, 1 Aug 2021 06:44:27 +0000 (09:44 +0300)]
tests: Check if BGP connection established if using no capabilities adv

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit ecec984b2febf20b5ce221822ff89390eecace89)

3 years agobgpd: Use strict AS4 capability when processing parsing/generating pkts
Donatas Abraitis [Sun, 1 Aug 2021 06:29:31 +0000 (09:29 +0300)]
bgpd: Use strict AS4 capability when processing parsing/generating pkts

PeerA sets `dont-capability-negotiate` for PeerB. It does not send any
capabilities to PeerB. This leads to situation when PeerA received AS4 cap,
while it doesn't send AS4 to PeerB and tries parsing AS_PATH using 32bits.

[GTTPK-RX2GP][EC 33554436] Malformed AS path from 192.168.0.2, length is 4
[SM0KX-WXMGK] bgp_attr_malformed: attributes: , origin ?
[P7TRR-4J6XT][EC 33554487] 192.168.0.2: Attribute AS_PATH, parse error - treating as withdrawal
[WX70K-6XXVF][EC 33554454] 192.168.0.2 rcvd UPDATE with errors in attr(s)!! Withdrawing route.
[Z2KFR-ZGJC8] 192.168.0.2 rcvd UPDATE w/ attr: , origin ?
[P9VY3-5B6NX] 192.168.0.2 rcvd UPDATE wlen 0 attrlen 80 alen 73
[QMZ79-K2DH7][EC 33554454] 192.168.0.2 [Error] Update packet error (wrong prefix length 64 for afi 1)
[P9SYB-54XRZ][EC 33554454] 192.168.0.2 [Error] Error parsing NLRI
[V1CHF-JSGRR] %NOTIFICATION: sent to neighbor 192.168.0.2 3/10 (UPDATE Message Error/Invalid Network Field) 0 bytes
[HTHRX-GQYGJ][EC 33554454] bgp_process_packet: BGP UPDATE receipt failed for peer: 192.168.0.2

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit 8cff42add5fe8f2b7f5d606c455859568a37e9d9)

3 years agobgpd: Clear capabilities field when resetting a bgp neighbor 9263/head
Alexander Skorichenko [Wed, 14 Jul 2021 20:43:37 +0000 (16:43 -0400)]
bgpd: Clear capabilities field when resetting a bgp neighbor

Currently, the following sequence of events between peers could
result in erroneous capability reports on the peer
with enabled dont-capability-negotiate option:
- having some of the capabilities advertised to a bgp neighbor,
- then disabling capability negotiation to that neighbor,
- then resetting connection to it,
- and no capabilities are actually sent to the neighbor,
- but "show bgp neighbors" on the host still displays them
as advertised to the neighbor.

There are two possibilities for establishing a new connection
- the established connection was initiated by us with bgp_start(),
- the connection was initiated on the neighbor side and processed by
us via bgp_accept() in bgp_network.c.
The former case results in "show bgp neighbors" displaying only
"received" in capabilities, as the peer's cap is initiated to zero
in bgp_start().
In the latter case, if bgp_accept() happens before bgp_start()
is called, then new peer capabilities are being transferred
from its previous record before being zeroed in bgp_start().
This results in "show bgp neighbors" still displaying
"advertised and received" in capabilities.

Following the logic of a similar af_cap field clearing,
treated correctly in both cases, we
- reset peer's capability during bgp_stop()
- don't pass it over to a new peer structure in bgp_accept().
This fix prevents transferring of the previous capabilities record
to a new peer instance in arbitrary reconnect scenario.

Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com>
(cherry picked from commit 24f569e9ccea56695ff57be71a6e108f9a7867b2)

3 years agobgpd: Set extended msg size only if we advertised and received capability 9257/head
Donatas Abraitis [Mon, 2 Aug 2021 05:59:24 +0000 (08:59 +0300)]
bgpd: Set extended msg size only if we advertised and received capability

If we don't advertise any capabilities (dont-capability-negotiate), we
shouldn't set msg size to 65k only if received this capability from another
peer.

Before:

```
~/frr# vtysh -c 'show ip bgp update-group' | grep 'Max packet size'
    Max packet size: 65535
```

After:

```
~/frr# vtysh -c 'show ip bgp update-group' | grep 'Max packet size'
    Max packet size: 4096
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit 8d976b0e2b78c3755d8d7868c535db8c8a163008)

3 years agoMerge pull request #9155 from FRRouting/mergify/bp/stable/8.0/pr-8956
Donatas Abraitis [Fri, 30 Jul 2021 15:08:03 +0000 (18:08 +0300)]
Merge pull request #9155 from FRRouting/mergify/bp/stable/8.0/pr-8956

bgpd: prevent routes loop through itself (backport #8956)

3 years agobgpd: cleanup bgp_damp_info_free 9245/head
Igor Ryzhov [Wed, 28 Jul 2021 22:39:38 +0000 (01:39 +0300)]
bgpd: cleanup bgp_damp_info_free

bgp_damp_config, afi and safi are never used.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agobgpd: fix incorrect usage of slist in dampening
Igor Ryzhov [Wed, 28 Jul 2021 22:17:50 +0000 (01:17 +0300)]
bgpd: fix incorrect usage of slist in dampening

Current code is a complete misuse of SLIST structure. Instead of just
adding a SLIST_ENTRY to struct bgp_damp_info, it allocates a separate
structure to be a node in the list.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #9221 from FRRouting/mergify/bp/stable/8.0/pr-9209
Donatas Abraitis [Fri, 30 Jul 2021 14:34:18 +0000 (17:34 +0300)]
Merge pull request #9221 from FRRouting/mergify/bp/stable/8.0/pr-9209

bgpd: Mark the node as the correct type for bgp ipv6 unicast (backport #9209)

3 years agobgpd: fix missing damp info free when cleaning bgp path
Igor Ryzhov [Wed, 28 Jul 2021 22:54:03 +0000 (01:54 +0300)]
bgpd: fix missing damp info free when cleaning bgp path

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #9233 from ton31337/fix/backport_cd58568b1889df753aa258ee61b6d949b...
Russ White [Fri, 30 Jul 2021 14:16:32 +0000 (10:16 -0400)]
Merge pull request #9233 from ton31337/fix/backport_cd58568b1889df753aa258ee61b6d949b1ce6fb9

bgpd: [8.0] fix missing list add in dampening

3 years agoMerge pull request #9230 from FRRouting/mergify/bp/stable/8.0/pr-9222
Russ White [Fri, 30 Jul 2021 14:16:09 +0000 (10:16 -0400)]
Merge pull request #9230 from FRRouting/mergify/bp/stable/8.0/pr-9222

bgpd: Drop double-pointer for bgp_damp_info_free() (backport #9222)

3 years agobgpd: fix missing list add in dampening 9233/head
Igor Ryzhov [Thu, 29 Jul 2021 11:42:16 +0000 (14:42 +0300)]
bgpd: fix missing list add in dampening

One more crash in dampening code...

When bgp_damp_withdraw is called, if there's already a BDI structure,
bgp_damp_info_claim is called to re-assign the bdi->config in case it
was changed. The problem is that bgp_damp_info_claim actually removes
the BDI from the reuse list of the old config and never adds it to the
reuse list of the new config. We must do this to prevent the crash
because all the code assumes that BDI is always in some list.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
3 years agoMerge pull request #9226 from idryzhov/8.0-backport-8860-8920
Russ White [Thu, 29 Jul 2021 19:03:58 +0000 (15:03 -0400)]
Merge pull request #9226 from idryzhov/8.0-backport-8860-8920

[8.0] backport 8860 + 8920

3 years agobgpd: Drop double-pointer for bgp_damp_info_free() 9230/head
Donatas Abraitis [Thu, 29 Jul 2021 08:11:15 +0000 (11:11 +0300)]
bgpd: Drop double-pointer for bgp_damp_info_free()

This causes a crash using `clear ip bgp dampening <prefix>`.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
(cherry picked from commit 19971c9a9218b31e6e1c3f7ebb23654f833bb4ef)

3 years agoMerge pull request #9223 from FRRouting/mergify/bp/stable/8.0/pr-9215
Donatas Abraitis [Thu, 29 Jul 2021 14:24:45 +0000 (17:24 +0300)]
Merge pull request #9223 from FRRouting/mergify/bp/stable/8.0/pr-9215

bgpd: fix double free in dampening code (backport #9215)

3 years agobgpd: Fix SA warning about freeing an aspath 9226/head
Mark Stapp [Thu, 24 Jun 2021 11:50:23 +0000 (07:50 -0400)]
bgpd: Fix SA warning about freeing an aspath

Fix coverity warning CID 1505589

Signed-off-by: Mark Stapp <mjs@voltanet.io>
3 years agotests: Check if as-path prepends work with route-maps and default-originate
Donatas Abraitis [Tue, 15 Jun 2021 12:49:24 +0000 (15:49 +0300)]
tests: Check if as-path prepends work with route-maps and default-originate

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
3 years agobgpd: Allow aspath prepending for default-originate with route-maps
Donatas Abraitis [Tue, 15 Jun 2021 11:55:17 +0000 (14:55 +0300)]
bgpd: Allow aspath prepending for default-originate with route-maps

The initial idea was to deny prepending and just use _self_.

This patch at least allows prepending aspath with route-maps, but drops
all non-self ASNs in the path.

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>