| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
zebra: fix json for show evpn arp-cache vni vtep
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The function zebra_vxlan_print_neigh_vni_vtep does not create
a json object when json has been requested from the CLI and as a
result it prints out the information in normal CLI format.
Fix is to allocate the json object when required.
Signed-off-by: Pat Ruddy <pat@voltanet.io>
|
|\ \
| | |
| | | |
zebra: fix handling of failed route install via notification
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
An async route notification can indicate that installation
has failed, but the handling code wasn't dealing with that
possibility correctly.
Signed-off-by: Mark Stapp <mjs@voltanet.io>
|
|\ \ \
| | | |
| | | | |
zebra: add ability to set retransmit timer for IPv6 RAs
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Reported by testing agency that rfc 4861 section 6.2.1 states
that all implementations must have a configuration knob to change
the setting of the advertised retransmit timer sent in RA packets.
This fix adds that capability.
Ticket: CM-29199
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
|
|\ \ \
| | | |
| | | | |
bgpd: turn off RAs when numbered peers are deleted
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem reported that in many circumstances, RAs created in the
process of bringing up numbered IPv6 peers with extended-nexthop
capability enabled (for ipv4 over ipv6) were not stopped on the
interface when those peers were deleted. Found several circumstances
where this occurred and fix them in this patch.
Ticket: CM-26875
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
|
|\ \ \ \
| | | | |
| | | | | |
zebra: fix zebra pseudowire manager NHT
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Intermittently, there is a 30 second delay for a LDP pseudowire to become
operational.
One way to reproduce the issue is: Once PW is up, shutdown link to trigger
a change to the pseudowire's next hop, and then restore link to cause
pseudowire to return to original NH.
Problem Descripton:
The Zebra PW manager installs pseudowires in the data plane when the
following two conditions are met:
1. Pseudowire is labeled via LDP mapping messages
2. A labeled NH route exists to reach the remote pseudowire endpoint
The Zebra PW manager registers a NHT callback when a pseudowire is enabled.
This allows the Zebra PW manager to install or reinstall the pseudowire.
The Zebra PW manager deregisters for the NHT callback when the pseudowire is
disabled. When LDP learns the remote-pseudowire status is 'not forwarding',
LDP notifies Zebra that the pseudowire is disabled.
This creates a race condition where a new labeled NH can be resolved after the
Zebra PW manager deregistered for the NHT callback.
For static pseudowires, it makes sense for Zebra PW manager to deregister for
NHT callbacks for disabled pseudowires. Static pseudowires become disabled
via CLI configuration commands.
For LDP pseudowires, the Zebra PW manager should not deregister for NHT
callbacks for disabled pseudowires.
Overview of changes:
1. Zebra PW manager should not deregister for NHT callbacks when an LDP
pseudowire is disabled.
Zebra PW manager will register for NHT callbacks when the LDP pseudowire
is first enabled.
Zebra PW manager will deregister for NHT callbacks when the LDP
pseudowire is deleted.
2. Remove the 30 second timer that was added in PR4122.
PR4122 tried to fix this race condition with a timer.
Once we eliminate the race condition (by keeping the Zebra PW manager
registered for NHT callbacks), this timer can be removed.
3. Zebra PW manager handling of static pseudowires will remain as-is.
Zebra PW manager will register for NHT callbacks when the static
pseudowire is enabled.
Zebra PW manager will deregister for NHT callbacks when the static
pseudowire is disabled.
Signed-off-by: Lynne Morrison <lynne@voltanet.io>
Signed-off-by: Karen Schoener <karen@voltanet.io>
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
lib: Delete the entire access-list only if there are no more entries
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When you enter the access-list with the same sequence number but with a
different prefix AND access-list has only a single entry, then the entry
is deleted and the whole access-list is deleted.
That means that "replace entry" never be re-inserted.
With fix:
```
~# vtysh -c 'c' -c 'access-list 1 seq 10 permit 127.0.0.10/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 10 permit 127.0.0.10/32
~# vtysh -c 'c' -c 'access-list 1 seq 10 permit 127.0.0.20/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 10 permit 127.0.0.20/32
~# vtysh -c 'c' -c 'access-list 1 seq 11 permit 127.0.0.11/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 10 permit 127.0.0.20/32
access-list 1 seq 11 permit 127.0.0.11/32
~# vtysh -c 'c' -c 'no access-list 1 seq 10 permit 127.0.0.20/32'
~# vtysh -c 'sh run' | grep access-list
access-list 1 seq 11 permit 127.0.0.11/32
~#
```
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Modify the import-check command to require the underlying prefix
to exist in the rib. General consensus is that this is the correct
behavior.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Revert "vtysh: fix searching commands in parent nodes"
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit d741915ecdcf8930ccb3bd23eec1da2f0d000483.
This is because it breaks this behavior:
router ospf6
<commands>
!
int enp39s0
<more commands>
!
This is a very legal set of commands and completely destroys the
ability to do this.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
tools: fix frr-reload AF issue with ldpd
|
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
when removing a whole address-family block from ldpd config
we were erroneously trying to also remove each of the interface
sub-sub-contexts that belonged to it; this would effectively
re-enable the AF we just removed. Work around this by ignoring
these sub-sub-contexts if we detect that we are already
removing the parent block.
Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
bgpd: Show PfxSnt for `show bgp <afi> <safi>` command
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
JSON output was already in, just printing in CLI as well.
```
root@exit1-debian-9:~# vtysh -c 'show bgp ipv4 summary'
IPv4 Unicast Summary:
BGP router identifier 10.10.10.1, local AS number 65001 vrf-id 0
BGP table version 100003
RIB entries 200005, using 37 MiB of memory
Peers 1, using 21 KiB of memory
... MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt
... 64 157 0 0 0 00:01:18 0 100003
Total number of neighbors 1
```
JSON:
```
root@exit1-debian-9:~# vtysh -c 'show bgp ipv4 summary json' \ |
> jq '.ipv4Unicast.peers."192.168.0.2".pfxSnt'
100003
```
Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
|
|\ \ \ \ \ \ \
| |_|_|/ / / /
|/| | | | | | |
|
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Display a space in the output.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
*: triple pack of one-liner WTF fixes
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The question here isn't "why does it break on PowerPC?", but rather "why
doesn't it break on x86_64 or ARM?"
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
o.O
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
bfdd: display debugging status of bfd
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
display debugging status of bfd.
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
build: spring cleaning
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Also try explicit 3.9 & 3.10.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Dealing with PRIu64 is unfortunately a bit hacky in the frr-format
plugin, as in, it works correctly with snprintfrr, but breaks on plain
snprintf. There's no good solution unfortunately :/.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The first #include statement in all FRR .c files should be either
zebra.h or config.h.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
These are easy to get subtly wrong, and doing so can cause
nondeterministic failures when racing in parallel builds.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | | |
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
... so I can reuse it.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
No need to put $(top_srcdir) everywhere.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|\ \ \ \
| |_|/ /
|/| | | |
lib: yang wrapper for date-and-time
|
| | | |
| | | |
| | | |
| | | | |
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
|
|\ \ \ \
| | | | |
| | | | | |
*: change the signature of the northbound callbacks to be more flexible
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Having a fixed set of parameters for each northbound callback isn't a
good idea since it makes it difficult to add new parameters whenever
that becomes necessary, as several hundreds or thousands of existing
callbacks need to be updated accordingly.
To remediate this issue, this commit changes the signature of all
northbound callbacks to have a single parameter: a pointer to a
'nb_cb_x_args' structure (where x is different for each type
of callback). These structures encapsulate all real parameters
(both input and output) the callbacks need to have access to. And
adding a new parameter to a given callback is as simple as adding
a new field to the corresponding 'nb_cb_x_args' structure, without
needing to update any instance of that callback in any daemon.
This commit includes a .cocci semantic patch that can be used to
update old code to the new format automatically.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The intention here is to keep the code more organized. These wrappers
should be used by the northbound clients only, and never directly
by any YANG backend code.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
|
|\ \ \ \ \
| | | | | |
| | | | | | |
isisd: fix display of "isis bfd" in the running configuration
|
| | |_|_|/
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since this command is modeled using YANG, it's already displayed
as part of the call to nb_cli_show_dnode_cmds(). Calling the
'isis_circuit_config_write' hook was only making that command
to be displayed twice.
The aforementioned hook is still necessary for fabricd, which wasn't
converted to the new northbound model yet.
Fixes #6281.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
|