]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
5 years agoisisd: implement sighup handler
Emanuele Di Pascale [Mon, 10 Dec 2018 11:02:32 +0000 (12:02 +0100)]
isisd: implement sighup handler

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd, yang: change type empty leafs to booleans
Emanuele Di Pascale [Mon, 10 Dec 2018 10:44:30 +0000 (11:44 +0100)]
isisd, yang: change type empty leafs to booleans

As requested by the reviewers. Additionally, added a check when
setting a circuit on an interface to see if it is a loopback,
and in that case, set it to passive.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: embed the isisd yang model
Emanuele Di Pascale [Mon, 3 Dec 2018 09:38:12 +0000 (10:38 +0100)]
isisd: embed the isisd yang model

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implemented the 'own-lsp-purge' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 15:27:51 +0000 (16:27 +0100)]
isisd: implemented the 'own-lsp-purge' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implemented the 'sequence-number-skipped' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 15:09:43 +0000 (16:09 +0100)]
isisd: implemented the 'sequence-number-skipped' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: add the 'lsp-error-detected' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 15:05:57 +0000 (16:05 +0100)]
isisd: add the 'lsp-error-detected' notification

Note that we do not return the actual tlv_type and offset
of the erroneous TLV. This is because unpacking tlvs currently
uses a chain of function calls, where the notification can only
be sent at the start of the chain, but the tlv_type and offset
information are only available at the end. Unless we change the
code to propagate those values, we have no way to feed them to
the notification. So these leafs are not generated.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'version-skew' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:30:46 +0000 (15:30 +0100)]
isisd: implement the 'version-skew' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'id-len-mismatch' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:29:55 +0000 (15:29 +0100)]
isisd: implement the 'id-len-mismatch' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'lsp-generation' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:28:55 +0000 (15:28 +0100)]
isisd: implement the 'lsp-generation' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'lsp-received' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:28:12 +0000 (15:28 +0100)]
isisd: implement the 'lsp-received' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'area-mismatch' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:27:10 +0000 (15:27 +0100)]
isisd: implement the 'area-mismatch' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'rejected-adjacency' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:25:54 +0000 (15:25 +0100)]
isisd: implement the 'rejected-adjacency' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'adjacency-state-change' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:24:00 +0000 (15:24 +0100)]
isisd: implement the 'adjacency-state-change' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the authentication failure notifications
Emanuele Di Pascale [Wed, 14 Nov 2018 14:20:38 +0000 (15:20 +0100)]
isisd: implement the authentication failure notifications

the original isisd code did not distinguish between
authentication_failure and authentication_type_failure, so
additional code had to be added to differentiate between the two
and to return the raw_pdu as requested by the IETF YANG model.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement 'max-area-addresses-mismatch' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:12:15 +0000 (15:12 +0100)]
isisd: implement 'max-area-addresses-mismatch' notification

Note that the original IETF YANG model also included
a requirement to throttle such notifications so that they would
not be sent more often than once every 5 seconds. I did not
implement any throttling mechanism yet, mostly because I am
not sure whether this limit should apply to the entire isis daemon,
to each area, to each neighbor etc.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'attempt-to-exceed-max-sequence' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:08:26 +0000 (15:08 +0100)]
isisd: implement the 'attempt-to-exceed-max-sequence' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'corrupted-lsp-detected' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:06:43 +0000 (15:06 +0100)]
isisd: implement the 'corrupted-lsp-detected' notification

However it is not currently called anywhere, as I could not find a
place in the code where it felt appropriate.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'if-state-change' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:04:51 +0000 (15:04 +0100)]
isisd: implement the 'if-state-change' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'lsp-too-large' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 14:03:24 +0000 (15:03 +0100)]
isisd: implement the 'lsp-too-large' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: implement the 'database-overload' notification
Emanuele Di Pascale [Wed, 14 Nov 2018 13:55:48 +0000 (14:55 +0100)]
isisd: implement the 'database-overload' notification

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: modify config_write funcs to use the northbound
Emanuele Di Pascale [Wed, 14 Nov 2018 13:50:53 +0000 (14:50 +0100)]
isisd: modify config_write funcs to use the northbound

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'log-adjacency-changes' command
Emanuele Di Pascale [Wed, 14 Nov 2018 13:44:07 +0000 (14:44 +0100)]
isisd: retrofit the 'log-adjacency-changes' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis priority' command
Emanuele Di Pascale [Wed, 14 Nov 2018 13:39:18 +0000 (14:39 +0100)]
isisd: retrofit the 'isis priority' command

remove isis_vty_isisd.c as it is no longer needed

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis network' command
Emanuele Di Pascale [Wed, 14 Nov 2018 13:35:43 +0000 (14:35 +0100)]
isisd: retrofit the 'isis network' command

remove the return value and redundant validations from
isis_circuit_circ_type_set(), since they are no longer needed.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis circuit-type' command
Emanuele Di Pascale [Thu, 15 Nov 2018 11:11:19 +0000 (12:11 +0100)]
isisd: retrofit the 'isis circuit-type' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis topology' command
Emanuele Di Pascale [Wed, 14 Nov 2018 13:27:33 +0000 (14:27 +0100)]
isisd: retrofit the 'isis topology' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis [c|p]snp-interval' commands
Emanuele Di Pascale [Wed, 14 Nov 2018 13:21:46 +0000 (14:21 +0100)]
isisd: retrofit the 'isis [c|p]snp-interval' commands

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis hello-padding' command
Emanuele Di Pascale [Wed, 14 Nov 2018 13:16:41 +0000 (14:16 +0100)]
isisd: retrofit the 'isis hello-padding' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis three-way-handshake' command
Emanuele Di Pascale [Wed, 14 Nov 2018 12:09:03 +0000 (13:09 +0100)]
isisd: retrofit the 'isis three-way-handshake' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis hello-multiplier' command
Emanuele Di Pascale [Wed, 14 Nov 2018 12:05:47 +0000 (13:05 +0100)]
isisd: retrofit the 'isis hello-multiplier' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis hello-interval' command
Emanuele Di Pascale [Wed, 14 Nov 2018 12:03:03 +0000 (13:03 +0100)]
isisd: retrofit the 'isis hello-interval' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis metric' command
Emanuele Di Pascale [Wed, 14 Nov 2018 11:56:49 +0000 (12:56 +0100)]
isisd: retrofit the 'isis metric' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis password' command
Emanuele Di Pascale [Wed, 14 Nov 2018 11:51:45 +0000 (12:51 +0100)]
isisd: retrofit the 'isis password' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'isis passive' command
Emanuele Di Pascale [Wed, 14 Nov 2018 11:46:48 +0000 (12:46 +0100)]
isisd: retrofit the 'isis passive' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'topology' command
Emanuele Di Pascale [Wed, 14 Nov 2018 11:34:02 +0000 (12:34 +0100)]
isisd: retrofit the 'topology' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'redistribute' command
Emanuele Di Pascale [Wed, 14 Nov 2018 11:19:33 +0000 (12:19 +0100)]
isisd: retrofit the 'redistribute' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'default-originate' command
Emanuele Di Pascale [Wed, 14 Nov 2018 11:12:32 +0000 (12:12 +0100)]
isisd: retrofit the 'default-originate' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the mpls-te commands
Emanuele Di Pascale [Wed, 14 Nov 2018 10:50:29 +0000 (11:50 +0100)]
isisd: retrofit the mpls-te commands

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'purge-originator' command
Emanuele Di Pascale [Wed, 14 Nov 2018 09:55:54 +0000 (10:55 +0100)]
isisd: retrofit the 'purge-originator' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'spf-delay-ietf' command
Emanuele Di Pascale [Wed, 14 Nov 2018 09:40:20 +0000 (10:40 +0100)]
isisd: retrofit the 'spf-delay-ietf' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'spf-interval' command
Emanuele Di Pascale [Wed, 14 Nov 2018 09:34:41 +0000 (10:34 +0100)]
isisd: retrofit the 'spf-interval' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'lsp-mtu' command
Emanuele Di Pascale [Tue, 13 Nov 2018 17:59:23 +0000 (18:59 +0100)]
isisd: retrofit the 'lsp-mtu' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'max-lsp-lifetime' command
Emanuele Di Pascale [Tue, 13 Nov 2018 17:47:00 +0000 (18:47 +0100)]
isisd: retrofit the 'max-lsp-lifetime' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'lsp-refresh-interval' command
Emanuele Di Pascale [Tue, 13 Nov 2018 17:41:56 +0000 (18:41 +0100)]
isisd: retrofit the 'lsp-refresh-interval' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'lsp-gen-interval' command
Emanuele Di Pascale [Tue, 13 Nov 2018 17:37:24 +0000 (18:37 +0100)]
isisd: retrofit the 'lsp-gen-interval' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'area-password' and 'domain-password' cmds
Emanuele Di Pascale [Tue, 13 Nov 2018 17:22:20 +0000 (18:22 +0100)]
isisd: retrofit the 'area-password' and 'domain-password' cmds

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'metric-style' command
Emanuele Di Pascale [Tue, 13 Nov 2018 17:05:00 +0000 (18:05 +0100)]
isisd: retrofit the 'metric-style' command

Note that some of the validation checks that were previously
executed in the code have been moved to the YANG model.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit 'set-overload-bit' and 'set-attached-bit' cmds
Emanuele Di Pascale [Tue, 13 Nov 2018 16:59:13 +0000 (17:59 +0100)]
isisd: retrofit 'set-overload-bit' and 'set-attached-bit' cmds

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'dynamic-hostname' command
Emanuele Di Pascale [Tue, 13 Nov 2018 16:51:47 +0000 (17:51 +0100)]
isisd: retrofit the 'dynamic-hostname' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'is-type' command
Emanuele Di Pascale [Tue, 13 Nov 2018 16:46:30 +0000 (17:46 +0100)]
isisd: retrofit the 'is-type' command

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit the 'net' command
Emanuele Di Pascale [Tue, 13 Nov 2018 16:33:49 +0000 (17:33 +0100)]
isisd: retrofit the 'net' command

This is a simple command but with a complex callback, the only
one in isisd which uses the resource allocation API implemented
in the northbound (i.e. the PREPARE phase).

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd: retrofit 'router isis' and 'ip router isis' cmds
Emanuele Di Pascale [Tue, 13 Nov 2018 16:19:10 +0000 (17:19 +0100)]
isisd: retrofit 'router isis' and 'ip router isis' cmds

These are complex commands to retrofit, partly due to the number of
different callbacks they touch. Additionally, in FRR adding
an interface to an IS-IS area that does not exist also creates that
area. To make sure that this behavior is kept, while at the same
time keeping the northbound api consistent, we need to take extra
care to call the appropriate callbacks to update the YANG tree.

Note that many callbacks rely on the existence of the corresponding
IS-IS area; when these callbacks are joined together in a single
transaction, we need to ensure that the area creation is performed
first, or the config will fail. For this reason, the isis instance
create callback has been given a slightly lower priority than the
others.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoisisd, yang: add configuration model and callback stubs
Emanuele Di Pascale [Tue, 13 Nov 2018 15:35:07 +0000 (16:35 +0100)]
isisd, yang: add configuration model and callback stubs

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agolib: fix issue with yang_str2enum
Emanuele Di Pascale [Mon, 10 Dec 2018 13:27:37 +0000 (14:27 +0100)]
lib: fix issue with yang_str2enum

The same issue with derived enum types that was already fixed
for yang_data_new_enum was still present here, so I simply
applied the same fix.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agolib: copy xpaths when enqueing changes
Emanuele Di Pascale [Tue, 4 Dec 2018 14:34:09 +0000 (15:34 +0100)]
lib: copy xpaths when enqueing changes

Just copying th const char* of the xpath means that if we
are enqueing multiple changes from a buffer, the last xpath
addedd will overwrite all of the previous references.
Copying the xpath to a buffer simplifies the API when
retrofitting the commands.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agolib: add NB phase-specific error codes
Emanuele Di Pascale [Fri, 9 Nov 2018 15:13:12 +0000 (16:13 +0100)]
lib: add NB phase-specific error codes

As suggested by Renato, add error codes that are specific
to the various phases of a northbound callback. These can
be used by the daemons when logging an error. The reasoning
is that validation errors typically mean that there is an
inconsistency in the configuration, a prepare error means
that we are running out of resources, and abort/apply errors
are bugs that need to be reported to the devs.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 years agoMerge pull request #3500 from pguibert6WIND/missing_default_vrf_name
Renato Westphal [Tue, 18 Dec 2018 12:44:12 +0000 (10:44 -0200)]
Merge pull request #3500 from pguibert6WIND/missing_default_vrf_name

bgpd: nexthop vrf name set to default vrf

5 years agoMerge pull request #3279 from adharkar/frr-default_local
Martin Winter [Tue, 18 Dec 2018 09:46:58 +0000 (10:46 +0100)]
Merge pull request #3279 from adharkar/frr-default_local

bgpd: Display default local preference and local AS for BGP show commands

5 years agozebra: the default vrf name in vxlan is correctly set
Philippe Guibert [Mon, 17 Dec 2018 17:56:36 +0000 (18:56 +0100)]
zebra: the default vrf name in vxlan is correctly set

the default vrf name was hardset to "Default", whereas the default vrf
name could have been configured in an other manner. Fix this
inconsistency.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agobgpd: bgp default vrf in show route naming change
Philippe Guibert [Mon, 17 Dec 2018 17:56:22 +0000 (18:56 +0100)]
bgpd: bgp default vrf in show route naming change

Default vrf name has been changed in show route. Because the default vrf
name can be configured in zebra, the default vrf name in bgp is changed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agobgpd: nexthop vrf name set to default vrf
Philippe Guibert [Mon, 17 Dec 2018 16:44:02 +0000 (17:44 +0100)]
bgpd: nexthop vrf name set to default vrf

if default vrf is not Default, then nexthop vrf name returned may be
"Default", which is not the correct name of default vrf. change it
accordingly.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3428 from pguibert6WIND/avoid_vni_overwrite
Donald Sharp [Mon, 17 Dec 2018 12:22:45 +0000 (07:22 -0500)]
Merge pull request #3428 from pguibert6WIND/avoid_vni_overwrite

zebra: avoid initialising more than one the l3vni hash structure

5 years agoMerge pull request #3496 from opensourcerouting/rip-memleaks
Donald Sharp [Mon, 17 Dec 2018 12:08:42 +0000 (07:08 -0500)]
Merge pull request #3496 from opensourcerouting/rip-memleaks

ripd, ripngd: fix memleaks when deleting routing instance

5 years agozebra: avoid initialising more than one the l3vni hash structure
Philippe Guibert [Thu, 6 Dec 2018 08:03:12 +0000 (09:03 +0100)]
zebra: avoid initialising more than one the l3vni hash structure

the l3vni structure is allocated only once, since that structure is only
used for default netns. For that, move the initialisation part is moved
to a proper place, where there is no risk of attempting to initialise it
more than once, even when vrf backend is netns.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
5 years agoMerge pull request #3335 from pguibert6WIND/ospf_remove_if_lookup_all_vrf
Renato Westphal [Mon, 17 Dec 2018 10:33:34 +0000 (08:33 -0200)]
Merge pull request #3335 from pguibert6WIND/ospf_remove_if_lookup_all_vrf

ospfd: remove call to if_lookup_all_vrf

5 years agoripd, ripngd: fix memleaks when deleting routing instance
Renato Westphal [Mon, 17 Dec 2018 10:19:48 +0000 (08:19 -0200)]
ripd, ripngd: fix memleaks when deleting routing instance

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
5 years agoMerge pull request #3494 from donaldsharp/topotests_fixup
Christian Franke [Mon, 17 Dec 2018 09:35:29 +0000 (10:35 +0100)]
Merge pull request #3494 from donaldsharp/topotests_fixup

Topotests fixup

5 years agoMerge pull request #3489 from donaldsharp/confed_unsigned
Renato Westphal [Mon, 17 Dec 2018 09:24:23 +0000 (07:24 -0200)]
Merge pull request #3489 from donaldsharp/confed_unsigned

bgpd: Fix confederation identifier unsigned display

5 years agotopotests: Allow sharpd to be used in topotests
Donald Sharp [Mon, 17 Dec 2018 01:46:10 +0000 (20:46 -0500)]
topotests: Allow sharpd to be used in topotests

The sharp daemon did not have any ability to be used in
topotests.  Add some code to allow this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agotopotests: module_present should return a True/False
Donald Sharp [Mon, 17 Dec 2018 01:41:58 +0000 (20:41 -0500)]
topotests: module_present should return a True/False

The recent change to module_present accidently didn't return anything.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agobgpd: Fix confederation identifier unsigned display
Donald Sharp [Sun, 16 Dec 2018 14:43:40 +0000 (09:43 -0500)]
bgpd: Fix confederation identifier unsigned display

The confederation identifier is a `as_t` type which is a
uint32_t underneath the covers.  Display it using a %u

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #3488 from donaldsharp/bsd_topo_abstract1
Martin Winter [Sat, 15 Dec 2018 22:29:43 +0000 (23:29 +0100)]
Merge pull request #3488 from donaldsharp/bsd_topo_abstract1

Bsd topo abstract1

5 years agotopotests: Start abstraction of module_present for other platforms
Donald Sharp [Sat, 15 Dec 2018 15:54:11 +0000 (10:54 -0500)]
topotests: Start abstraction of module_present for other platforms

Start abstraction of the module_present into module_present_linux and freebsd
To allow for multiple platforms that the topotests can be run on.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agotopotests: Cleanup diagnose_env to allow thought about multi-platforms
Donald Sharp [Sat, 15 Dec 2018 15:49:59 +0000 (10:49 -0500)]
topotests: Cleanup diagnose_env to allow thought about multi-platforms

Start the cleanup of diagnose_env to allow the running of topotests
on platforms besides linux.

So we split up diagnose_env into linux and freebsd variants.
At this point in time freebsd doesn't have any special code.
To be determined in the future.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #3487 from opensourcerouting/master-license-foo
Donald Sharp [Fri, 14 Dec 2018 15:25:16 +0000 (10:25 -0500)]
Merge pull request #3487 from opensourcerouting/master-license-foo

[master] license foo

5 years agodoc: re-add copyright & license note
David Lamparter [Fri, 14 Dec 2018 15:05:18 +0000 (16:05 +0100)]
doc: re-add copyright & license note

This was mistakenly removed in the texi -> sphinx conversion.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years ago*: remove all MIBs for DFSG compliance
David Lamparter [Fri, 14 Dec 2018 15:01:44 +0000 (16:01 +0100)]
*: remove all MIBs for DFSG compliance

cf. https://wiki.debian.org/NonFreeIETFDocuments

These MIBs were in our git purely for documentation purposes, they are
not installed and not needed for building SNMP support.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agolib: flip to ISC on hook & module code
David Lamparter [Fri, 14 Dec 2018 13:44:51 +0000 (14:44 +0100)]
lib: flip to ISC on hook & module code

I accidentally put MIT headers on these; the intent was ISC.  It doesn't
really make a difference, but let's get it consistent.

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agoMerge pull request #3463 from mjstapp/zserv_event
Donald Sharp [Fri, 14 Dec 2018 15:02:33 +0000 (10:02 -0500)]
Merge pull request #3463 from mjstapp/zserv_event

zebra: make incoming zserv message-processing a singleton event

5 years agoMerge pull request #3464 from mjstapp/wq_event
Donald Sharp [Fri, 14 Dec 2018 15:00:49 +0000 (10:00 -0500)]
Merge pull request #3464 from mjstapp/wq_event

libs,zebra: support timeout for workqueue retries, use for rib

5 years agoMerge pull request #3480 from opensourcerouting/master-kill-empty-lib
Donald Sharp [Fri, 14 Dec 2018 14:59:54 +0000 (09:59 -0500)]
Merge pull request #3480 from opensourcerouting/master-kill-empty-lib

[master] kill empty libfrrfpm_pb

5 years agoMerge pull request #3399 from opensourcerouting/ripngd-nb-retrofitting
Donald Sharp [Fri, 14 Dec 2018 12:45:42 +0000 (07:45 -0500)]
Merge pull request #3399 from opensourcerouting/ripngd-nb-retrofitting

ripngd northbound conversion

5 years agoMerge pull request #3484 from donaldsharp/route_remoal_fix
Jafar Al-Gharaibeh [Fri, 14 Dec 2018 05:30:59 +0000 (23:30 -0600)]
Merge pull request #3484 from donaldsharp/route_remoal_fix

zebra: On route removal failure return proper message

5 years agoMerge pull request #3478 from qlyoung/issue-template-yelling
Jafar Al-Gharaibeh [Fri, 14 Dec 2018 05:30:14 +0000 (23:30 -0600)]
Merge pull request #3478 from qlyoung/issue-template-yelling

.github: add core guidelines to issue template

5 years agozebra: On route removal failure return proper message
Donald Sharp [Thu, 13 Dec 2018 15:42:42 +0000 (10:42 -0500)]
zebra: On route removal failure return proper message

When a route removal failure happens return to the installing
protocol that the route deletion failed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agobuild: disable empty libfrrfpm_pb
David Lamparter [Wed, 12 Dec 2018 18:40:39 +0000 (19:40 +0100)]
build: disable empty libfrrfpm_pb

We were building and installing an _empty_ library (i.e. it literally
didn't contain anything.)

Signed-off-by: David Lamparter <equinox@diac24.net>
5 years agozebra: use a small retry timeout for the rib workqueue
Mark Stapp [Thu, 13 Dec 2018 19:15:27 +0000 (14:15 -0500)]
zebra: use a small retry timeout for the rib workqueue

In the zebra rib processing workqueue, set a small timeout
so that we will wait a short time if the queue into the
async dataplane is full. This helps avoid a situation where
the zebra main pthread constantly retries rib work without
giving the dataplane pthread a chance to make progress.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agolibs: support timeout for workqueue retries
Mark Stapp [Tue, 11 Dec 2018 19:56:08 +0000 (14:56 -0500)]
libs: support timeout for workqueue retries

Support an optional timeout/delay for use when a workqueue
determines that it is blocked, instead of retrying immediately.
Also, schedule as an 'event' instead of a 'timer' when using
a zero timeout value.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years ago.github: add core guidelines to issue template
Quentin Young [Thu, 13 Dec 2018 17:12:23 +0000 (17:12 +0000)]
.github: add core guidelines to issue template

Hopefully people will see these first and do them

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
5 years agoMerge pull request #3477 from donaldsharp/multipath_respect
Russ White [Thu, 13 Dec 2018 15:41:26 +0000 (10:41 -0500)]
Merge pull request #3477 from donaldsharp/multipath_respect

zebra: Allow zebra to only mark up to multipath_num nexthops as ACTIVE

5 years agoMerge pull request #3466 from donaldsharp/fib_only
Russ White [Thu, 13 Dec 2018 15:35:58 +0000 (10:35 -0500)]
Merge pull request #3466 from donaldsharp/fib_only

zebra: For rnh handling use actual resolved nexthop

5 years agoMerge pull request #3467 from donaldsharp/kernel_socket_cleanup
Russ White [Thu, 13 Dec 2018 15:32:09 +0000 (10:32 -0500)]
Merge pull request #3467 from donaldsharp/kernel_socket_cleanup

Kernel socket cleanup

5 years agozebra: Allow zebra to only mark up to multipath_num nexthops as ACTIVE
Donald Sharp [Thu, 13 Dec 2018 14:21:26 +0000 (09:21 -0500)]
zebra: Allow zebra to only mark up to multipath_num nexthops as ACTIVE

NEXTHOP_FLAG_ACTIVE currently means that the nexthop is considered
good enough to be installed. With current ecmp restrictions this
translation from multipath_num is enforced in the data plane.
The problem with this is of course that every data plane now
becomes concerned about the multipath num and must enforce it
independently.  Currently *bsd does not honor multipath_num at
all and linux marks all nexthops as being installed even when
it honors a multipath_num that is less than the total.

This code change moves the multipath_num enforcement from a dataplane
decision to a zebra nexthop decision.  Thus dataplanes now can
just install those nexthops marked as NEXTHOP_FLAG_ACTIVE
without having to worry about multipath_num.

*BSD will now respect multipath_num and Linux now properly notes
which routes are actually installed or not:

sharpd@donna ~/f/t/topotests> ps -ef | grep frr
frr       6261  1556  0 09:12 ?        00:00:00 /usr/lib/frr/zebra -e 2 --daemon -A 127.0.0.1
frr       6279  1556  0 09:12 ?        00:00:00 /usr/lib/frr/staticd --daemon -A 127.0.0.1

donna.cumulusnetworks.com(config)# do show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 [0/106] via 10.0.2.2, enp0s3, 00:00:45
S>* 4.4.4.4/32 [1/0] via 10.0.2.1, enp0s3, 00:00:02
  *                  via 192.168.209.1, enp0s8, 00:00:02
                     via 192.168.210.1, enp0s9 inactive, 00:00:02
C>* 10.0.2.0/24 is directly connected, enp0s3, 00:00:45
C>* 192.168.209.0/24 is directly connected, enp0s8, 00:00:45
C>* 192.168.210.0/24 is directly connected, enp0s9, 00:00:45
donna.cumulusnetworks.com(config)#

sharpd@donna ~/f/t/topotests> ip route show
default via 10.0.2.2 dev enp0s3 proto dhcp metric 106
4.4.4.4 proto 196 metric 20
nexthop via 10.0.2.1 dev enp0s3 weight 1
nexthop via 192.168.209.1 dev enp0s8 weight 1
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 106
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
192.168.209.0/24 dev enp0s8 proto kernel scope link src 192.168.209.2 metric 105
192.168.210.0/24 dev enp0s9 proto kernel scope link src 192.168.210.2 metric 103
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agoMerge pull request #3472 from donaldsharp/flags
Mark Stapp [Thu, 13 Dec 2018 14:16:20 +0000 (09:16 -0500)]
Merge pull request #3472 from donaldsharp/flags

zebra.h ZEBRA_FLAG_XXX cleanup

5 years agoMerge pull request #3469 from donaldsharp/northbound
Mark Stapp [Thu, 13 Dec 2018 14:10:33 +0000 (09:10 -0500)]
Merge pull request #3469 from donaldsharp/northbound

lib: Fix string size issue with clang

5 years agoMerge pull request #3465 from donaldsharp/nexthop_active_update
Mark Stapp [Thu, 13 Dec 2018 14:09:44 +0000 (09:09 -0500)]
Merge pull request #3465 from donaldsharp/nexthop_active_update

zebra: Convert nexthop_active functions to use bool

5 years agozebra: make incoming zserv message-processing a singleton event
Mark Stapp [Tue, 11 Dec 2018 19:17:42 +0000 (14:17 -0500)]
zebra: make incoming zserv message-processing a singleton event

Stop creating individual, one-time events as each batch of
incoming zserv/zapi messages is processed - use a singleton
event so that the incoming message activity is more fair if
the zebra main pthread has other events to run.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
5 years agoMerge pull request #3473 from donaldsharp/bgp_hangover
David Lamparter [Wed, 12 Dec 2018 23:36:46 +0000 (00:36 +0100)]
Merge pull request #3473 from donaldsharp/bgp_hangover

bgpd: Cleanup non-normal compiled code path

5 years agobgpd: Cleanup non-normal compiled code path
Donald Sharp [Wed, 12 Dec 2018 21:18:15 +0000 (16:18 -0500)]
bgpd: Cleanup non-normal compiled code path

Looks like we missed some code in a non-normal compiled
code path for the bgp_path_info conversion.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
5 years agolib: Reorder Zebra message flags and document
Donald Sharp [Wed, 12 Dec 2018 20:33:40 +0000 (15:33 -0500)]
lib: Reorder Zebra message flags and document

Reorder the numbering of the Zebra message flags and document
what each flag is supposed to do.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>