Emanuele Di Pascale <emanuele@voltanet.io>: Author Summary

Builds triggered by Emanuele Di Pascale <emanuele@voltanet.io>

Builds triggered by an author are those builds which contains changes committed by the author.
59
29 (49%)
30 (51%)

Breakages and fixes

Broken means the build has failed but the previous build was successful.
Fixed means that the build was successful but the previous build has failed.
22 (37% of all builds triggered)
4 (7% of all builds triggered)
-18
Build Completed Code commits Tests
FRR › FRRV601 › #2 1 week ago
/: add -f to autoreconf in bootstrap
Depending on tool versions used, "autoreconf -i" may not update all
Autoconf-generated files, which in turn may result in build errors.
Make autogen.sh call autoreconf with the "-f" command line argument to
ensure all Autoconf-generated files are updated when autogen.sh is run.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
437 passed
FRR › RPKI › #761 1 week ago
isisd: fix point-to-point network type config
`isis network point-to-point` was being rejected from the configuration
file as it was being processed before the reception of the UP zebra
notification for the interface. This meant that the `circ_type` was set
at CIRCUIT_T_UNKNOWN, which led the northbound callback to fail. This
check was removed as it was not really necessary; when the zebra
notification is received, the correct circuit type will be enforced,
but now the point-to-point config will be saved and correctly applied
when zebra recognizes the interface as a broadcast one.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
Testless build
FRR › FRR › #1822 1 week ago
isisd: fix point-to-point network type config
`isis network point-to-point` was being rejected from the configuration
file as it was being processed before the reception of the UP zebra
notification for the interface. This meant that the `circ_type` was set
at CIRCUIT_T_UNKNOWN, which led the northbound callback to fail. This
check was removed as it was not really necessary; when the zebra
notification is received, the correct circuit type will be enforced,
but now the point-to-point config will be saved and correctly applied
when zebra recognizes the interface as a broadcast one.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
6996 passed
FRR › FRR60SNAP › #5 1 week ago
/: add -f to autoreconf in bootstrap
Depending on tool versions used, "autoreconf -i" may not update all
Autoconf-generated files, which in turn may result in build errors.
Make autogen.sh call autoreconf with the "-f" command line argument to
ensure all Autoconf-generated files are updated when autogen.sh is run.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
3 of 1013 failed
FRR › FRR › #1795 4 weeks ago
isisd: implement the 'lsp-received' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'redistribute' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: implement the 'rejected-adjacency' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: fix 'no router isis' on candidate config
if we are using the transactional CLI, we might be trying to
delete an area that has not been actually created in isisd.
So rather than relying on isis_area_lookup, check the candidate
config for the presence of the corresponding area instance.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis circuit-type' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'max-lsp-lifetime' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'lsp-too-large' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the mpls-te commands
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis passive' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-gen-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'database-overload' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis password' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrieve default values from the yang model
also fix a minor issue with isis_config_write where we were
not incrementing the write variable, which is used to append
a new line at the end of the vty string

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'if-state-change' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'is-type' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'id-len-mismatch' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-refresh-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'area-mismatch' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit 'set-overload-bit' and 'set-attached-bit' cmds
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: modify config_write funcs to use the northbound
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-padding' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement sighup handler
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'adjacency-state-change' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'isis three-way-handshake' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'topology' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implemented the 'sequence-number-skipped' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'purge-originator' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'isis hello-multiplier' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'attempt-to-exceed-max-sequence' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'lsp-generation' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
lib: add frr-isisd to the native models
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'spf-delay-ietf' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implemented the 'own-lsp-purge' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'default-originate' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd, yang: set default network-type to broadcast
isisd has both a circ_type and a circ_type_config variable to track
the network tpye of an interface. The former has no default, but the
latter defaults to broadcast. Adding that default makes sure that the
yang leaf won't be deleted, which is something that would not make
sense from an isisd perspective. We will need to add an operational
state leaf to match the potential difference between the configured
network type and the actual network type, since the latter might be
different based on the interface flags received from zebra.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: embed the isisd yang model
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'isis topology' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: formatting fixes in isis_cli.c
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'spf-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'dynamic-hostname' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis metric' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis [c|p]snp-interval' commands
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'area-password' and 'domain-password' cmds
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd, yang: add configuration model and callback stubs
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'log-adjacency-changes' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'version-skew' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-mtu' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: suppress maybe uninitialized warnings
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
6996 passed
FRR › RPKI › #726 4 weeks ago
isisd: implement the 'area-mismatch' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'lsp-mtu' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: modify config_write funcs to use the northbound
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the mpls-te commands
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'lsp-too-large' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-multiplier' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis password' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrieve default values from the yang model
also fix a minor issue with isis_config_write where we were
not incrementing the write variable, which is used to append
a new line at the end of the vty string

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: fix 'no router isis' on candidate config
if we are using the transactional CLI, we might be trying to
delete an area that has not been actually created in isisd.
So rather than relying on isis_area_lookup, check the candidate
config for the presence of the corresponding area instance.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'is-type' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'max-lsp-lifetime' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-gen-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit 'set-overload-bit' and 'set-attached-bit' cmds
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'id-len-mismatch' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: retrofit the 'redistribute' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'rejected-adjacency' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-refresh-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'if-state-change' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis circuit-type' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis three-way-handshake' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implemented the 'sequence-number-skipped' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: retrofit the 'spf-delay-ietf' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'lsp-generation' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'topology' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-padding' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd, yang: set default network-type to broadcast
isisd has both a circ_type and a circ_type_config variable to track
the network tpye of an interface. The former has no default, but the
latter defaults to broadcast. Adding that default makes sure that the
yang leaf won't be deleted, which is something that would not make
sense from an isisd perspective. We will need to add an operational
state leaf to match the potential difference between the configured
network type and the actual network type, since the latter might be
different based on the interface flags received from zebra.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implemented the 'own-lsp-purge' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'default-originate' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'purge-originator' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement sighup handler
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: embed the isisd yang model
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'attempt-to-exceed-max-sequence' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
lib: add frr-isisd to the native models
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd, yang: add configuration model and callback stubs
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis metric' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis topology' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'dynamic-hostname' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: formatting fixes in isis_cli.c
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'spf-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'adjacency-state-change' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'log-adjacency-changes' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis [c|p]snp-interval' commands
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'database-overload' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis passive' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'version-skew' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: suppress maybe uninitialized warnings
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'lsp-received' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'area-password' and 'domain-password' cmds
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
Testless build
You have insufficient permissions to see all of the builds.
Build Completed Code commits Tests
FRR › FRR60SNAP › #5 1 week ago
/: add -f to autoreconf in bootstrap
Depending on tool versions used, "autoreconf -i" may not update all
Autoconf-generated files, which in turn may result in build errors.
Make autogen.sh call autoreconf with the "-f" command line argument to
ensure all Autoconf-generated files are updated when autogen.sh is run.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
3 of 1013 failed
FRR › RPKI › #726 4 weeks ago
isisd: implement the 'area-mismatch' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'lsp-mtu' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: modify config_write funcs to use the northbound
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the mpls-te commands
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'lsp-too-large' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-multiplier' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis password' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrieve default values from the yang model
also fix a minor issue with isis_config_write where we were
not incrementing the write variable, which is used to append
a new line at the end of the vty string

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: fix 'no router isis' on candidate config
if we are using the transactional CLI, we might be trying to
delete an area that has not been actually created in isisd.
So rather than relying on isis_area_lookup, check the candidate
config for the presence of the corresponding area instance.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'is-type' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'max-lsp-lifetime' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-gen-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit 'set-overload-bit' and 'set-attached-bit' cmds
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'id-len-mismatch' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: retrofit the 'redistribute' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'rejected-adjacency' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'lsp-refresh-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'if-state-change' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis circuit-type' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis three-way-handshake' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implemented the 'sequence-number-skipped' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: retrofit the 'spf-delay-ietf' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'lsp-generation' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'topology' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-padding' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd, yang: set default network-type to broadcast
isisd has both a circ_type and a circ_type_config variable to track
the network tpye of an interface. The former has no default, but the
latter defaults to broadcast. Adding that default makes sure that the
yang leaf won't be deleted, which is something that would not make
sense from an isisd perspective. We will need to add an operational
state leaf to match the potential difference between the configured
network type and the actual network type, since the latter might be
different based on the interface flags received from zebra.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implemented the 'own-lsp-purge' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'default-originate' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'purge-originator' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement sighup handler
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: embed the isisd yang model
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: implement the 'attempt-to-exceed-max-sequence' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
lib: add frr-isisd to the native models
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd, yang: add configuration model and callback stubs
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis metric' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis topology' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'dynamic-hostname' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
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>
isisd: formatting fixes in isis_cli.c
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis hello-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'spf-interval' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'adjacency-state-change' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'log-adjacency-changes' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis [c|p]snp-interval' commands
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'database-overload' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: retrofit the 'isis passive' command
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'version-skew' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: suppress maybe uninitialized warnings
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
isisd: implement the 'lsp-received' notification
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
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>
isisd: retrofit the 'area-password' and 'domain-password' cmds
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
Testless build
FRR › TOPOPR › #383 2 months ago
lib: fix fetching enum values for derived types
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 of 1240 failed
FRR › TOPOPR › #382 2 months ago
lib: fix fetching enum values for derived types
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
6 of 1240 failed
FRR › TOPOPR › #381 2 months ago
lib: fix fetching enum values for derived types
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
4 of 1270 failed
FRR › TOPOPR › #378 2 months ago
lib: fix fetching enum values for derived types
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
7 of 1116 failed
FRR › TOPOPR › #377 2 months ago
lib: fix fetching enum values for derived types
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
696 passed
FRR › TOPOPR › #376 2 months ago
lib: fix fetching enum values for derived types
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 of 868 failed
FRR › TOPOPR › #331 5 months ago
staticd: Fix null pointer access (coverity 1472311)
Aded a check to ensure that if_is_vrf() is not called on a NULL if pointer.
Incidentally this was causing PR #2805 to fail.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
5 of 873 failed
You have insufficient permissions to see all of the builds.
Build Completed Code commits Tests
FRR › RPKI › #761 1 week ago
isisd: fix point-to-point network type config
`isis network point-to-point` was being rejected from the configuration
file as it was being processed before the reception of the UP zebra
notification for the interface. This meant that the `circ_type` was set
at CIRCUIT_T_UNKNOWN, which led the northbound callback to fail. This
check was removed as it was not really necessary; when the zebra
notification is received, the correct circuit type will be enforced,
but now the point-to-point config will be saved and correctly applied
when zebra recognizes the interface as a broadcast one.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
Testless build
FRR › FRR › #1822 1 week ago
isisd: fix point-to-point network type config
`isis network point-to-point` was being rejected from the configuration
file as it was being processed before the reception of the UP zebra
notification for the interface. This meant that the `circ_type` was set
at CIRCUIT_T_UNKNOWN, which led the northbound callback to fail. This
check was removed as it was not really necessary; when the zebra
notification is received, the correct circuit type will be enforced,
but now the point-to-point config will be saved and correctly applied
when zebra recognizes the interface as a broadcast one.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
6996 passed
FRR › FRR › #1419 5 months ago
staticd: Fix null pointer access (coverity 1472311)
Aded a check to ensure that if_is_vrf() is not called on a NULL if pointer.
Incidentally this was causing PR #2805 to fail.

Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
7224 passed
You have insufficient permissions to see all of the builds.