Commit Graph

22622 Commits

Author SHA1 Message Date
Igor Ryzhov
b4acf005b5 isisd: fix check for area-tag modification
Interface area-tag is not supposed to be modified once defined, but the
necessary check is currently broken, because the circuit is never in
init_circ_list if the area-tag is already configured for the interface.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-15 11:19:01 +03:00
Donald Sharp
f000b7c144
Merge pull request #6016 from sarav511/ppend
pimd: Handling prune received during join state and join received during prune pending
2020-10-14 20:27:17 -04:00
Donald Sharp
a5ca0ef54f
Merge pull request #5895 from patrasar/2404618
pimd: Clear (s,g,rpt) ifchannel on (*, G) prune received
2020-10-14 20:13:31 -04:00
Donald Sharp
2c6592c140
Merge pull request #7309 from mjstapp/fix_ospf_gr_reasons
ospfd: make GR reason string production safer
2020-10-14 19:19:39 -04:00
Donald Sharp
46ef2fb21f
Merge pull request #7308 from mjstapp/fix_ospf_gr_sa
ospfd: fix SA warnings in ospfd, ospfclient
2020-10-14 19:18:24 -04:00
Donald Sharp
974c396af3
Merge pull request #7310 from idryzhov/fix-no-bgp-as-path
bgpd: print error when as-path filter doesn't exist
2020-10-14 19:15:49 -04:00
Igor Ryzhov
17b4e8c439 bgpd: print error when as-path filter doesn't exist
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 23:10:48 +03:00
Renato Westphal
d240e5c8cc isisd: change debug messages to use uppercase SPF
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Renato Westphal
cae7520bf1 doc: document new IS-IS TI-LFA commands and options
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Renato Westphal
9687c500c6 tests: add IS-IS TI-LFA topotest
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Renato Westphal
ca74d663b5 tests: add IS-IS TI-LFA unit tests
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Renato Westphal
054fda12f0 isisd: implement TI-LFA protection for Adj-SIDs
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Renato Westphal
c951ee6eee isisd: add support for Topology Independent LFA (TI-LFA)
TI-LFA is a modern fast-reroute (FRR) solution that leverages Segment
Routing to pre-compute backup nexthops for all destinations in the
network, helping to reduce traffic restoration times whenever a
failure occurs. The backup nexthops are expected to be installed
in the FIB so that they can be activated as soon as a failure
is detected, making sub-50ms recovery possible (assuming an
hierarchical FIB).

TI-LFA is a huge step forward compared to prior IP-FRR solutions,
like classic LFA and Remote LFA, as it guarantees 100% coverage
for all destinations. This is possible thanks to the source routing
capabilities of SR, which allows the backup nexthops to steer traffic
around the failures (using as many SIDs as necessary). In addition
to that, the repair paths always follow the post-convergence SPF
tree, which prevents transient congestions and suboptimal routing
from happening.

Deploying TI-LFA is very simple as it only requires a single
configuration command for each interface that needs to be protected
(both link protection and node protection are available). In addition
to IPv4 and IPv6 routes, SR Prefix-SIDs and Adj-SIDs are also
protected by the backup nexthops computed by the TI-LFA algorithms.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Renato Westphal
ed5d703279 yang, isisd: add TI-LFA YANG nodes and corresponding skeleton callbacks
Add CLI wrapper commands as well...

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-10-14 16:27:37 -03:00
Mark Stapp
d81937481d ospfd: fix SA warnings in ospfd, ospfclient
Fix some SA warnings in ospf GR and ospfclient code.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-14 13:41:00 -04:00
Mark Stapp
d05d5280e6 ospfd: make reason string production safer
Use to-string functions for GR message codes instead of raw
string array indexing; the values used can come in packets
and are not validated.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-14 12:51:52 -04:00
Donald Sharp
6431621e4e
Merge pull request #7180 from kuldeepkash/bgp-communities
tests: Add bgp_communities_topo1 test suite
2020-10-14 09:14:10 -04:00
Mark Stapp
027b3ca2e0
Merge pull request #7244 from donaldsharp/mlag_backout_and_fix
Mlag backout and fix
2020-10-14 08:30:54 -04:00
Olivier Dugeon
edb368e930 ospfd: Store neighbor Adjacency SID in SR database
For TI-LFA, it is necessay to known the Adjacency SID advetise by the nieghbor
routers. However, the current Segment Routing code skip neighbor Adjacency SID
and thus, don't store them into the Segment Routing database.

This PR takes care of neighbor Adjacency SID by allowing to store them in the
Segment Routing database. Corresponding MPLS table entry is only configured if
the advertised Adjacency SID is global i.e. with L-Flag unset.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-10-14 14:17:58 +02:00
Donatas Abraitis
9ed5b22e13
Merge pull request #7283 from donaldsharp/thread_off_semantics
*: Use proper semantics for turning off thread
2020-10-14 14:50:08 +03:00
Donald Sharp
4fe30ff1eb
Merge pull request #7298 from mjstapp/quiet_opaque_debugs
zebra: quiet the zebra opaque message debugs
2020-10-14 07:27:27 -04:00
Donatas Abraitis
36601e2046
Merge pull request #7278 from donaldsharp/fix_blame_code
*: Consolidate on first git blame ignore revs
2020-10-14 09:21:50 +03:00
Igor Ryzhov
15bf52d3e2 ospfd: remove all "ip ospf area" params when clearing instance
Currently, only default area parameter is cleared, but we should do the
same for all area parameters with interface addresses.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 02:40:30 +03:00
Igor Ryzhov
68e1c44972 ospfd: use all "ip ospf area" params for ospf initialization
Currently, only default area parameter is used for initialization, but
we should use area parameters with interfaces address as well.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 02:40:30 +03:00
Igor Ryzhov
0549eeda3d ospfd: don't initialize ospf every time "router ospf" is used
Move ospf initialization to the actual place where it is created.
We don't need to do that every time "router ospf" is entered.
Also remove a couple of useless checks that can never be true.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 02:22:16 +03:00
Igor Ryzhov
cbf1568110 ospfd: correctly process interface creation/destruction
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 02:22:16 +03:00
Igor Ryzhov
eb364867d4 ospfd: fix check for network configuration
We should check for existing networks configuration before creating
if_params structure, or it leads to the memory leak.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 02:20:27 +03:00
Igor Ryzhov
5e28025a5b ospfd: remove dead code
ospf_router_id_update checks for ospf->oi_running, but it'll never be 1
right after creation by ospf_new.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-14 00:02:48 +03:00
Stephen Worley
38677473b2 bgpd: numerical evpn type support to route-map cmds
Add numberical evpn route-type support to route-map evpn
commands.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 16:13:16 -04:00
Stephen Worley
15dc08a600 bgpd: numerical evpn type support to debug commands
Add number evpn route type support for debug commands.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 16:13:16 -04:00
Stephen Worley
31782fea7d bgpd: make debug evpn help use string constants
Make the debug evpn help commands use evpn string constants
for evpn route type info.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 16:13:16 -04:00
Stephen Worley
2b1364e1b7 bgpd: numerical evpn type support to more show cmds
Add numberical evpn route type support to some more
show commands.

Also, simplify some of the code there to call common type parsing
function. Some of the bounds checking there is also unncessary given
how our cli node matching works.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 16:13:16 -04:00
Stephen Worley
247fb57d63 lib: consolidate evpn type help strings into macro
Consolidate evpn type help strings into one single
macro for use on commands that need to support all
the types.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 16:13:16 -04:00
Igor Ryzhov
9466ef38cc ospfd: don't remove interface config when removing router
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-13 23:11:10 +03:00
Donald Sharp
210993e832 *: Consolidate on first git blame ignore revs
The file .git-blame-ignore-revs was put first into
the system and is what was advertised in multiple
places.  Since .ignore-revs was just created and
no announcement was made about the creation, let's
consolidate onto the first one created.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-10-13 16:07:18 -04:00
Donald Sharp
ca3491262b zebra: Isolate mlag_rd_buf_offset to the actual using function
Isolate the mlag_rd_buf_offset variable to the actual used function,
instead of having it a global.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2020-10-13 16:02:05 -04:00
Donald Sharp
ded3e3e39c Revert "zebra: the mlag_rd_buf_offset variable was write only"
This reverts commit 00e0d113e5.
2020-10-13 15:57:54 -04:00
Igor Ryzhov
bf617538be ospfd: fix missing initialization and check for if_area param
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-13 22:53:02 +03:00
Igor Ryzhov
2917d36bf9 ospfd: fix freeing of if_params struct
Freeing of configuration structure should not depend on operational
variable.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-13 22:52:12 +03:00
Donald Sharp
82b4a8bf2c
Merge pull request #7258 from mjstapp/zebra_remove_slsp
zebra: remove 'static' lsp objects
2020-10-13 15:51:18 -04:00
Igor Ryzhov
e7378cb1e9 ospfd: fix missing newline
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2020-10-13 22:48:56 +03:00
Jafar Al-Gharaibeh
5875867dba
Merge pull request #7295 from donaldsharp/ospf_crash
ospfd: Prevent crash if transferring config amongst instances
2020-10-13 13:27:55 -05:00
Jafar Al-Gharaibeh
db5e14186d
Merge pull request #7245 from donaldsharp/ospf_coverity
ospfclient: Provide some protection against blindly trusting input
2020-10-13 13:26:47 -05:00
Mark Stapp
674afc2b0a zebra: quiet the zebra opaque message debugs
Put most of the debugs about opaque ZAPI messages under 'detail'
to reduce the noise.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-10-13 14:07:17 -04:00
Jafar Al-Gharaibeh
30a276f3c1
Merge pull request #7282 from zpericic/nhrp-vici
nhrp: Configure vici socket path using configure --with-vici-socket=/…
2020-10-13 13:04:15 -05:00
Donald Sharp
c8c5009ec5
Merge pull request #7288 from rsmarples/BSD-link_state
BSD: ifi_link_state is the link state
2020-10-13 13:43:07 -04:00
Donald Sharp
aadbfa4918
Merge pull request #7294 from idryzhov/fix-no-ip-ospf-area
ospfd: fix "no ip ospf area"
2020-10-13 13:37:03 -04:00
Donald Sharp
4cf61725aa
Merge pull request #7179 from kuldeepkash/bgp_basic_functionality
tests: Enable evpn_type5_test_topo1 suite to run in CI
2020-10-13 13:33:58 -04:00
Stephen Worley
475852b263 zebra: only track NHEs from the dataplane for ID usage
Let's just track the NHEs we get from the kernel(dplane) for
ID usage with internal routes. I tried to be smart originally
and allow them to be re-used internal to zebra but its proving
to cause more bugs than it's worth.

This doesn't break any functionality. It just means we won't
use NHEs we get from the kernel with our routes, we will create
new ones.

Decided this based on various bugs seen ith the lastest one
being on startup with this kernel state:

```
[root@alfred frr-2]# ip next ls
id 15 via 192.168.161.1 dev doof scope link proto zebra
id 17 group 15 proto zebra
[root@alfred frr-2]# ip ro show 3.3.3.1
3.3.3.1 nhid 17 via 192.168.161.1 dev doof
```

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2020-10-13 11:23:57 -04:00
Kuldeep Kashyap
c66ca86168 tests: Enable evpn_type5_test_topo1 suite to run in CI
1. Suite: evpn_type5_test_topo1 was added to pytest.ini during triaging phase as
there was bug: https://github.com/FRRouting/frr/issues/6867, which is fixed. Enabling
suite to be run in CI.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
2020-10-13 14:55:14 +00:00