Commit Graph

20062 Commits

Author SHA1 Message Date
Renato Westphal
0e10aeeb18 lib: fix issue were a few gRPC RPCs were being logged twice
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:54 -03:00
Renato Westphal
0b3eed388c lib: raise VTY_MAXCFGCHANGES to accommodate more complex commands
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:54 -03:00
Renato Westphal
789193362b lib: silence -Wformat-truncation warnings in the confd plugin
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:54 -03:00
Renato Westphal
10bdc68f0c *: convert northbound callbacks to new error handling model
The northbound configuration callbacks should now print error
messages to the provided buffer (args->errmsg) instead of logging
them directly.  This will allow the northbound layer to forward the
error messages to the northbound clients in addition to logging them.

NOTE: many callbacks are returning errors without providing any
error message. This needs to be fixed long term.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:54 -03:00
Renato Westphal
df5eda3d87 lib: return human-readable error messages to the northbound clients
Instead of returning only error codes (e.g. NB_ERR_VALIDATION)
to the northbound clients, do better than that and also return
a human-readable error message. This should make FRR more
automation-friendly since operators won't need to dig into system
logs to find out what went wrong in the case of an error.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:54 -03:00
Renato Westphal
13d6b9c134 lib: introduce the northbound context structure
The new northbound context structure contains information about
the client performing a configuration transaction. This information
will be made available to all configuration callbacks through the
args->context parameter.

The usefulness of this structure comes from the fact that it can be
used as a communication channel (both input and output) between the
northbound callbacks and the northbound clients. This can be done
through its "client_data" field which contains client-specific data.

This should cover some very specific scenarios where a northbound
callback should perform an action only if the configuration change
is coming from a given client. An example would be sending a PCEP
response to a PCE when an SR-TE policy is created or modified
through the PCEP northbound client (for that to happen, the
northbound callbacks need to have access to the PCEP request ID,
which needs to be available).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:54 -03:00
Renato Westphal
1be4decb04 lib: northbound style fixes
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2020-05-28 19:22:53 -03:00
Donald Sharp
e2d409a88b bgpd: Use THREAD_CANCEL instead of thread_cancel
We are crashing in thread_cancel on shutdown because
the thread pointer is NULL.  Use the more appropriate
THREAD_CANCEL macro

Ticket: CM-29873
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-05-28 16:51:11 -04:00
Stephen Worley
c6a9c60f97
Merge pull request #6478 from mjstapp/dev_doc_more_const
doc: encourage const in the developer doc
2020-05-28 15:02:00 -04:00
Mark Stapp
6b2210021c
Merge pull request #6476 from wesleycoakley/zebra-debuglogfix
zebra, lib: bugfix for zebra packet debugging messages
2020-05-28 13:40:39 -04:00
Mark Stapp
7d68dd44ff doc: encourage const in the developer doc
Add a little text about using 'const' in the dev doc.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-05-28 12:37:51 -04:00
Wesley Coakley
f1bc75dac6 lib: stream_hexdump takes const struct
Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-28 11:18:11 -04:00
Mark Stapp
5e5e7a6cde
Merge pull request #6466 from opensourcerouting/frr-reload-cleanup
tools/frr-reload: cleanup + `--vty_socket`
2020-05-28 11:06:20 -04:00
Mark Stapp
ef5c9dd6be
Merge pull request #6475 from donaldsharp/pim_thread_cancel
pimd: Fix crash on restart from thread_cancel
2020-05-28 11:02:57 -04:00
Wesley Coakley
9d72660d67 zebra, lib: bugfix on zebra packet debugging
`debug zebra packet detail` dumps the full message whereas
it had been dropping exactly 10 bytes, the size of the zebra header

Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-28 10:48:56 -04:00
Donald Sharp
5308f26738
Merge pull request #6474 from ton31337/fix/doc_bgp_community
doc: Update BGP show bgp (ext|large-)community-list commands
2020-05-28 08:55:16 -04:00
Donald Sharp
c58a47ea2e pimd: Fix crash on restart from thread_cancel
We were using thread_cancel() directly instead of
THREAD_OFF which correctly ensures the pointer is not NULL.

Ticket:CM-29866
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2020-05-28 08:53:13 -04:00
Donatas Abraitis
36dc43aae3 doc: Update BGP show bgp (ext|large-)community-list commands
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
2020-05-28 12:34:24 +03:00
Donald Sharp
c0b664a187
Merge pull request #6469 from mjstapp/add_ubu_20_doc
doc: add dev doc for ubuntu 20.04
2020-05-27 10:43:05 -04:00
Donald Sharp
2011994ee6
Merge pull request #6447 from opensourcerouting/rename-bgp-vrf-leak
topotest: refactory BGP VRF leak basic test
2020-05-27 10:34:13 -04:00
Wesley Coakley
3e81618d0c pbrd, lib, doc: fix new show json key semantics
Revise new `show pbr` keys to be consistent with existing
json in other daemons

target->nexthop
id->tableId (where relevant)
isValid->valid
isInstalled->installed

Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
f9368f896b pbrd, doc: pbr map json sequences -> policies
Semantics

Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
144fd50f64 doc: document json for remaining show pbr cmds
Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
9667c597e9 doc: document show pbr interface directive
Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
dadba1a23f pbrd: show directives give arrays where appropos
The new json output for the `show pbr` directives return arrays instead
of associative arrays, which are more meaningful in this context

Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
81c0078ef4 pbrd, lib: verbosity++ for json show directives
Increased the verbosity of the json keys and flattened the returned
structure by removing superfluous keys.

Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
010dd8edcb pbrd, lib: opt. json for show pbr nexthop-group
Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
1a8cafe19c pbrd: optional json for show pbr map
Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Wesley Coakley
7a7b0c13f9 pbrd: json added to show pbr interface [json]
Signed-off-by: Wesley Coakley <wcoakley@cumulusnetworks.com>
2020-05-27 10:28:02 -04:00
Mark Stapp
252ca75b61 doc: add dev doc for ubuntu 20.04
Add a doc for ubuntu 20 LTS; it's mainly the same as the 18 LTS
doc, with a couple of extra notes.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2020-05-27 08:49:36 -04:00
Emanuele Di Pascale
c01f5f2145 doc: add docs for frr-reload.py options
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
2020-05-26 19:14:12 +02:00
David Lamparter
fa18c6bbda tools/frr-reload: --vty_socket arg
After the cleanup, adding this doesn't require updating a zillion
locations in the code anymore, just one :)

Partially derived from 6a00e91d99f7f98d857c2056d0dcfeba48966581

Originally-by: Emanuele Di Pascale <emanuele@voltanet.io>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-05-26 19:14:00 +02:00
David Lamparter
663ece2f6d tools/frr-reload: cleanup pass
- throw vtysh into a wrapper class
- ignore "username" commands
- use mark output on stdout
- some other random cleanups

Signed-off-by: David Lamparter <equinox@diac24.net>
2020-05-26 19:09:32 +02:00
David Lamparter
309414434b vtysh: add "no-header" to show running-config
... to skip the "Building configuration..." header that gets in the way
of automated processing.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2020-05-26 19:09:32 +02:00
David Lamparter
812f088032 vtysh: throw mark output on stdout, not stderr
Why is this on stderr...

Signed-off-by: David Lamparter <equinox@diac24.net>
2020-05-26 19:09:32 +02:00
Russ White
eeec40ba69
Merge pull request #6375 from adharkar/frr-master-l3vni_label
bgpd: EVPN RT-2 advertised with 2 labels for prefix-routes-only config
2020-05-26 12:14:16 -04:00
Sri Mohana Singamsetty
06fba5cb4c
Merge pull request #6463 from vivek-cumulus/evpn_extend_nht
bgpd: Extend EVPN next hop tracking for additional EVPN routes
2020-05-26 08:18:29 -07:00
Donald Sharp
310885bdd8
Merge pull request #5881 from patrasar/2386420
pimd: add show ip multicast count [json] command
2020-05-26 09:21:10 -04:00
Russ White
88890f1ba9
Merge pull request #6441 from opensourcerouting/ospf-doc
ospfd: small doc and cli changes
2020-05-26 07:45:30 -04:00
Russ White
827ac53ed2
Merge pull request #6445 from donaldsharp/really_start_all_daemons
tests: Turn on nhrpd and babeld as part of all-protocol-startup
2020-05-26 07:44:48 -04:00
Russ White
e3d230af81
Merge pull request #6458 from vivek-cumulus/bgp_nht_command_enhance
bgpd: Enhance BGP NHT show commands
2020-05-26 07:32:12 -04:00
Russ White
a5e845f314
Merge pull request #6459 from vivek-cumulus/bgp_nht_fix
Fix BGP NHT to skip inappropriate paths & only act upon change
2020-05-26 07:29:25 -04:00
Russ White
de176cecdb
Merge pull request #6462 from vivek-cumulus/lib_evpn_prefix_fix
lib: Minor update to EVPN type-5 prefix display
2020-05-26 07:28:26 -04:00
Olivier Dugeon
731271b0bd ospfd: Solve crash after removing and adding conf.
Issue number #6291 describes how OSPFd crashes after being deleted and then
added again with configuration when segment routing is used.

The problem occurs in ospf_ri.c because the OspfRI structures retains
the reference to the old area pointer which is mofified when ospfd is
reactivated by configuration. When segment routing is activated, the LSA Router
Information is sent with reference to the old area pointer, instead the new one,
which causes the crash. The same problem is also present in ospf_ext.c with
OspfEXT structure and Extended Link/Prefix structure.

This commit introduces Extended Link/Prefix and Router Information LSAs flusing
when OSPFd is stopped when configuration is removed and adds the correct
initialization to the area pointer in OspfRI and Extended Link/Prefix structure
when OSPFd is re-enabled with the configuration. Area pointer has been removed
from the OspfEXT structure as it is never used with this commit.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2020-05-26 11:57:04 +02:00
vivek
e11329ca4c bgpd: Extend EVPN next hop tracking for additional EVPN routes
Extend the next hop tracking for type-2 and type-3 EVPN routes also.

Updates: "bgpd: Add nexthop of received EVPN RT-5 for nexthop tracking"
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-05-25 23:00:49 -07:00
vivek
9be782ff9f lib: Minor update to EVPN type-5 prefix display
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-05-25 22:40:44 -07:00
vivek
0139efe084 bgpd: During NHT change evaluation, skip inappropriate paths
When there is a NHT change and the paths dependent on that NHT are being
evaluated, skip those that are marked for removal or as history.

When a route gets withdrawn, its valid flag is cleared and it is flagged
for removal; in the case of an EVPN route, it is also unimported from
VRFs (L2 and/or L3). bgp_process is then scheduled. Under rare timing
conditions, an NHT update for the route's next hop may arrive right after,
and if routes flagged for removal are not skipped, they may not only be
incorrectly marked as valid but also re-imported in the case of EVPN,
which will be a serious error.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-05-25 14:17:12 -07:00
vivek
34ea39b65a bgpd: Check NHT change for triggering EVPN import or unimport
Ensure that only if there is a change to the path's validity based
on the NHT update, EVPN import or unimport is invoked.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-05-25 14:15:37 -07:00
vivek
9e15d76adf bgpd: Enhance NHT path evaluation debugs
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-05-25 14:10:12 -07:00
vivek
5f0c5ec85d bgpd: Minor tweaks to EVPN route-import debugs
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2020-05-25 14:06:10 -07:00