| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add error handling for top level failures (not able to
execute command, unable to find vrf for command, etc.)
With this error handling we add a new zapi message type
of ZEBRA_ERROR used when we are unable to properly handle
a zapi command and pass it down into the lower level code.
In the event of this, we reply with a message of type
enum zebra_error_types containing the error type.
The sent packet will look like so:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Marker | Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VRF ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Command |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ERROR TYPE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Also add appropriate hooks for clients to subscribe to for
handling these types of errors.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
|
|\
| |
| | |
VRRP northbound conversion
|
| |
| |
| |
| |
| |
| | |
Compare ip address against 0
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
| |
| |
| |
| |
| |
| | |
Convert VRRPD to use the northbound API.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
|\ \
| | |
| | | |
lib: dont decode more nexthops than we can handle
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If someone provides us more nexthops than our configured multipath
setting, drop the rest of them
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
|/ /
| |
| |
| |
| |
| | |
Very small (negative!) ifindexes, when subtracted, can overflow.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
|\ \
| | |
| | | |
VRRP VRF support
|
| |/
| |
| |
| |
| |
| | |
These two don't really do what you might expect, document them
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 1b3e9a21dd4 removed the global visibility of the yang_modules
variable, breaking the build of all northbound plugins. Revert a
small part of that commit to fix this issue.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Default all nexthop weights to one. The linux kernel does
some weird stuff where it adds one to all nexthop weight values
it gets. So, we added df7fb5800b3798057747873c8be245eb13f3ec36 with
some special subtracing/adding to account for this. Though, that patch
did not account for the default case of the weight being zero for
elements in the group.
Hence, this patch defaults the nexthop weight to one during creation.
This should be a valid value on all platforms anyway so shouldn't
affect anything.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
|
|\ \
| | |
| | | |
*: cleanup elves were here
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The whole lib/linklist.c code shouldn't really be used for new code (the
lib/typesafe.h bits are better.) So, a new need for these unused
functions shouldn't be coming up.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Sometimes the easiest solution is hardest to find... the whole point of
all this "static const", aliasing, & co. was to make "MTYPE_FOO" usable
without adding the extra & as in "&MTYPE_FOO". Making it a size-1 array
does that perfectly through the magic of ISO C array decay...
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | | |
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|\ \ \
| |/ /
|/| | |
zebra: align dplane notify processing with nhg work
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add an api that creates a copy of a list of nexthops and
enforces the canonical sort ordering; consolidate some nhg
code to avoid copy-and-paste. The zebra dplane uses
that api when a plugin sets up a list of nexthops, ensuring
that the plugin's list is ordered when it's processed in
zebra.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|\ \
| | |
| | | |
BMP: improve active outbound connection details
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To keep the calling code agnostic of the DNS resolver libary used, pass
a strerror-style string instead of a status code that would need extra
handling.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
libc-ares doesn't do IP literals, so we have to do that before running
off to do DNS. Since this isn't BMP specific, move to lib/ so NHRP can
benefit too.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|\ \ \
| | | |
| | | | |
Unequality ecmp
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add the ability to read in the weight of a nexthop and store/handle
it appropriately
nexthop-group BLUE
nexthop 192.168.201.44 weight 33
nexthop 192.168.201.45 weight 66
nexthop 192.168.201.46 weight 99
Is appropriately read in and handled as appropriate.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add code to encode/decode the nexthop weight when we pass it down
into zebra.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Linux has the idea of allowing a weight to be sent
down as part of a nexthop group to allow the kernel
to weight particular nexthop paths a bit more or less
than others.
See:
http://tldp.org/HOWTO/Adv-Routing-HOWTO/lartc.rpdb.multiple-links.html
Allow for installation into the kernel using the weight attribute
associated with the nexthop.
This code is foundational in that it just sets up the ability
to do this, we do not use it yet. Further commits will
allow for the pass through of this data from upper level protocols.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Under some circumstances (apparently depends on several optimization
flags), gcc-9 throws an used-uninitialized warning for this variable in
the skiplist code. Just initialize to NULL.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|/ /
| |
| |
| |
| |
| | |
we just unset the entry from old node and add it to the new one
Signed-off-by: Mahdi Varasteh <mahdy.varasteh@gmail.com>
|
|\ \
| | |
| | | |
lib,sharpd: support labelled nexthop-groups in sharpd
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Update sharpd's zapi client code to support labelled nexthops if
they're present in a nexthop-group.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|\ \ \
| |/ /
|/| | |
lib/*: new config defaults system, v2
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some preprocessor constants converted to enums to make the names usable
in the preprocessor.
v2: better isolation between core and vty code to make future northbound
conversion easier.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This moves all the DFLT_BGP_* stuff over to the new defaults mechanism.
bgp_timers_nondefault() added to get better file-scoping.
v2: moved everything into bgp_vty.c so that the core BGP code is
independent of the CLI-specific defaults. This should make the future
northbound conversion easier.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
(I hadn't initially added this because I thought it superfluous, but it
kinda makes things nicer.)
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since we've been writing out "frr version" and "frr defaults" for about
a year and a half now, we can now actually use them to manage defaults.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | | |
This just compares 2 version strings.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
| | |
| | |
| | |
| | |
| | |
| | | |
And memory_init() to lib_cmd_init().
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|\ \ \
| | | |
| | | | |
*: revise zapi nexthop encoding
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use a per-nexthop flag to indicate the presence of labels; add
some utility zapi encode/decode apis for nexthops; use the zapi
apis more consistently.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
Add some const to some stream apis.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|\ \ \
| | | |
| | | | |
pbrd: Assorted Fixes
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add a function for converting the zapi_rule_notify_owner enum
type to a string for ease of use.
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
|
|\ \ \ \
| |_|_|/
|/| | | |
lib: support labelled nexthops in nexthop_groups
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add support for labelled nexthops in nexthop-group
vtysh configuration. Also update the PBR doc where
the cli is described.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|\ \ \ \
| |_|_|/
|/| | | |
lib: fix heap buf overflow when adding prefix orf
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
Don't lose your way
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
|
|\ \ \
| |/ /
|/| | |
lib,zebra: use shared nexthop-group in route_entry
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Replace the existing list of nexthops (via a nexthop_group
struct) in the route_entry with a direct pointer to zebra's
new shared group (from zebra_nhg.h). This allows more
direct access to that shared group and the info it carries.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
| |/
| |
| |
| |
| |
| |
| |
| | |
Add some apis that allocate and init nexthop objects
from various kinds of arguments: ip addrs, interfaces,
blackhole types.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|