Commit Graph

13278 Commits

Author SHA1 Message Date
Jafar Al-Gharaibeh
f2c5e94a67
Merge pull request #3263 from donaldsharp/pim_bsd
Pim bsd
2018-10-31 11:27:56 -05:00
Donald Sharp
2320a6c32b
Merge pull request #3262 from mjstapp/clang_atomic_workaround
zebra: temporary workaround for a clang issue with atomics
2018-10-31 10:34:35 -04:00
Donald Sharp
e5a2ebe691 pimd: Send 1 on all systems for MRT_INIT
When sending a sockoption for MRT_INIT, *bsd requires that
the data passed in must be 1.  While linux does not, the
code was sending in a positive value that was causing issues
on *bsd of protocol not supported.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-31 07:26:35 -04:00
Donald Sharp
f0b009a4db pimd: *bsd needs priviledge escalation to init PIM
When trying to run PIM on *bsd, the kernel expects to only
allow the pim kernel socket to work if we elevate priviledges.
So do so.

This commit gets us further in the startup of PIM on *bsd
but is not sufficient to get it fully started yet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-31 07:26:35 -04:00
Mark Stapp
e07e954966 zebra: temporary workaround for a clang issue with atomics
Current clang has an issue with the pointer/target argument
to at least one atomic/intrinsic. A variable with '_Atomic'
generates a compile-time error. Use a cast as a workaround
here to allow use of clang for now.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-30 15:31:47 -04:00
Donald Sharp
cac967ca3b
Merge pull request #3261 from mjstapp/fix_rib_close
zebra: only uninstall once, when closing rib table
2018-10-30 12:12:10 -04:00
David Lamparter
8603f6a686
Merge pull request #3257 from kooky/patch-1
Link-detect documentation
2018-10-30 15:54:32 +01:00
Mark Stapp
258c07e4e2 zebra: only uninstall once, when closing rib table
When the rib code is informed that a table is closing/
going away, only try once to uninstall associated routes from
the fib/dataplane. The close path can be called multiple times
in some cases - zebra shutdown, e.g.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-30 09:41:55 -04:00
Tim Bray
30980e0adc
Link-detect documentation
As a quagga user, I didn't realise link-detect is on by default.
2018-10-29 21:12:14 +00:00
Donald Sharp
69c19e1def
Merge pull request #2946 from mjstapp/dplane_2
Zebra: async dataplane, phase 1
2018-10-28 16:10:45 -04:00
Donald Sharp
221aa3d115
Merge pull request #3252 from opensourcerouting/buildfoo-20181028
build: SNMP license, rfptest & ospfclient as noinst, redhat spec w/o CONFDATE
2018-10-28 16:07:50 -04:00
David Lamparter
7ba0150738 redhat: remove @CONFDATE@ from spec
CONFDATE should not be used like this.  Also, the extraversion is now
burned into tarballs anyway so this is no longer neccessary.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-10-28 19:49:32 +01:00
David Lamparter
58596d3444 build: make rfptest and ospfclient "noinst"
Both of these are testing/demo-style tools that don't make sense as part
of a normal installation.  So don't install them.

NB: this is only the executables, libospfclient and the RFP code are not
affected.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-10-28 19:48:55 +01:00
David Lamparter
e5563f8778 build: crop excessive net-snmp library list
This fixes the longstanding GPL vs. OpenSSL licensing issue in our SNMP
code (and cuts down on its other dependencies a wee bit.)

In a way, net-snmp is really buggy here in what it says that we should
link against, but I don't know their application scenarios well enough
to say it should be changed at their end.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-10-28 16:05:00 +01:00
Lou Berger
75082dafb5
Merge pull request #3235 from opensourcerouting/buildfoo-20181024
build: potpourri
2018-10-27 14:14:35 -04:00
David Lamparter
a755ec5e50
Merge pull request #3206 from qlyoung/mac-token-change
lib: change M:A:C to X:X:X:X:X:X
2018-10-27 13:57:35 +02:00
David Lamparter
16d7a6b895
Merge pull request #3199 from donaldsharp/eigrp_key
Eigrp cli stuff
2018-10-26 22:25:36 +02:00
David Lamparter
00b7a9ddfe
Merge pull request #2926 from donaldsharp/router
zebra_ns split up
2018-10-26 22:24:15 +02:00
David Lamparter
93f1d85c2d
Merge pull request #3237 from donaldsharp/actual_error
lib: If command was successful don't store the command as an error
2018-10-26 22:21:44 +02:00
David Lamparter
7d353b8a9e
Merge pull request #3227 from qlyoung/fix-exit-vrf-placement-upstream
vtysh: fix exit-vrf printing
2018-10-26 22:21:27 +02:00
David Lamparter
059668e077
Merge pull request #3236 from qlyoung/finish-onlink
Finish onlink stuff
2018-10-26 22:19:33 +02:00
Quentin Young
dd5c280ab3
Merge pull request #3247 from opensourcerouting/spelchek
*: spelchek
2018-10-25 15:46:51 -04:00
David Lamparter
0437e10517 *: spelchek
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-10-25 20:10:57 +02:00
Mark Stapp
ff2460d597 zebra: only perform shutdown signal processing once
Avoid running the shutdown/sigint handler code more than once. With
the async dataplane, once shutdown has been initiated, the completion
of all async updates triggers final shutdown of the zebra main
pthread. During that time, avoid taking and processing a second
signal, such as SIGINT or SIGTERM.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
8b962e7759 zebra: rebase dataplane, align with master
Rebase and pick up dataplane changes on master, including
renamed structs and enums.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
71077c4860 zebra: improve safety of netns_notify_close()
Additional check to ensure the notify event is still valid
before calling the thread lib api.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
91f1681258 zebra: limit queued route updates
Impose a configurable limit on the number of route updates
that can be queued towards the dataplane subsystem.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
2577906481 zebra: revise struct names to resolve review comments
Use standard type naming and remove use of typedef to resolve
some review comments.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
14c8b173d2 zebra: remove old apis after new dplane work
Replaced or out-grew a few zebra internal apis during async
dataplane work; removing them.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
4dfd7a021d zebra: support zebra shutdown and cleanup
Dplane support for zebra's route cleanup during shutdown (clean
shutdown via SIGINT, anyway.) The dplane has the opportunity to
process incoming updates, and then triggers final cleanup
in zebra's main thread.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
f183e380fa zebra: add handy res2str utility
Add a 2str utility for dplane result codes; use it in
a debug or two.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
1d11b21f33 zebra: add dplane show commands
Add first pass at show commands for the zebra dplane. Add some stats
counters to show. Start prep for correct shutdown processing, and for
multiple providers.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:57:04 -04:00
Mark Stapp
01ce7cbac1 zebra: update routing socket path
Update route-socket path for route updates using the async
dplane module.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:56:52 -04:00
Mark Stapp
18c3797425 zebra: add shutdown callback for dplane providers
Support fini or shutdown callback for dplane modules, to give
them an opportunity to cleanup.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
1bcea841b1 zebra: netlink fuzzing path correction
Correct use of netlink_parse_info() in the netlink fuzzing path.
Also clarify a couple of comments about pthreads.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
fe2c53d4ea zebra: Fix style issues
Clean up a couple of checkstyle reports in the dataplane
commit.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
5af4b34689 zebra: ensure redist of system routes
We need a bit of special handling for system routes, which need
to be offered for redistribution even though they won't be
passing through the dplane system.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
5709131cec zebra: resolve style issues in dplane commit
Resolve (most) style issues in the initial zebra dataplane
commit branch.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
b8e0423d91 zebra: start sketching dataplane provider api
Initial WIP api to add providers into the zebra dataplane system,
with some simple ordering/prioritization.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
8cb41cd624 zebra: set SELECTED flag in rib_process
Set SELECTED re immediately in rib_process, without expecting
that fib install has completed. Remove premature redistribute
call also.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
ae2992851b zebra: capture old data for route delete
Need to capture 'old' values in conversion from re to dplane
context.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
97f5b44182 zebra: use async dplane route updates
Enqueue updates to the dplane system; add a couple of stats.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
655d681a44 zebra: update dplane route api return type
Use the dp_req_result enum type for the route update apis.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
e5ac2adf17 zebra: wip: early version of dplane result handler
Early try at a result handler for async dplane route updates

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Mark Stapp
7cdb1a8445 zebra: start dataplane layer work
Reduce or eliminate use of global zebra_ns structs in
a couple of netlink/kernel code paths, so that those paths
can potentially be made asynch eventually.

Slide netlink_talk_info into place to remove dependency on core
zebra structs; add accessors for dplane context block

Start init of route context from zebra core re and rn structs;
start queueing and event handling for incoming route updates.

Expose netlink apis that don't rely on zebra core structs;
add parallel route-update code path using the dplane ctx;
simplest possible event loop to process queued route'
updates.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-10-25 08:34:30 -04:00
Donald Sharp
b45d8ccc32 lib: If command was successful don't store the command as an error
The CMD_SUCCESS_DAEMON case should be excluded from storing the command line
that we think failed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-24 21:03:18 -04:00
Donald Sharp
984e5e52c7 eigrpd: Fix bandwidth command to actually read input properly
The bandwidth command was not properly reading cli input
and would do weird stuff with the input.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-24 19:58:14 -04:00
Donald Sharp
085fc3446d eigrpd: Convert keychain authentication to DEFPY
The keychain authentication code under eigrp was
using the wrong argv numbers for keychain lookup.  Convert
to DEFPY.

I do not actually know if this allows eigrp authentication to
work.  But this connects up a bit more of the pieces if it does.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-24 19:54:04 -04:00
Donald Sharp
3a3a24c869 vtysh: Allow eigrp and rip access to keychain.c config
The key-chain code was specific to rip and as such was not
being delivered to eigrp.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-10-24 19:54:04 -04:00
Donald Sharp
6cd85474f8
Merge pull request #3121 from pguibert6WIND/flowspec_json_issue
bgpd: fill in prefix for flowspec entry when json format is requested
2018-10-24 19:41:15 -04:00