list_free is occassionally being used to delete the
list and accidently not deleting all the nodes.
We keep running across this usage pattern. Let's
remove the temptation and only allow list_delete
to handle list deletion.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Convert the list_delete(struct list *) function to use
struct list **. This is to allow the list pointer to be nulled.
I keep running into uses of this list_delete function where we
forget to set the returned pointer to NULL and attempt to use
it and then experience a crash, usually after the developer
has long since left the building.
Let's make the api explicit in it setting the list pointer
to null.
Cynical Prediction: This code will expose a attempt
to use the NULL'ed list pointer in some obscure bit
of code.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The multicast boundary command must be shown after
the `ip pim sm` command. So add a new config_add_line_end
and make it the last one.
Signed-off-by: Donald Sharp <sharp@cumulusnetworks.com>
This commit does two things:
1) Flush by proto number not string
This is useful because not all systems might have the proto
values installed, or a version of iproute2 that they might
be installed with.
2) Flush missing routes that might have been installed( eigrp
and nhrp )
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
iproute has been a transitional package that only depends on iproute2
since Debian Jessie or Ubuntu 14.04. To avoid installing this transitional
dummy package on newer installations we add iproute2 as a dependency
alternative to iproute. The iproute dependency can be dropped when
wheezy / 12.04 support is no longer needed.
Signed-off-by: Sebastian Lohff <seba@someserver.de>
Added python-ipaddr apt requirement to documentation.
Added clarification to install systemd service section
as commands assume are in frr directory.
Signed-off-by: Will McLendon <wimclend@gmail.com>
Certain compilers cannot recognize that rt is
actually being init'ed, but let's set it to
NULL 'till we get them updated.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Doing a "ssh user@node 'ldpd -d'" was making the SSH session hang. In
the original OpenBSD's ldpd(8) daemon, the daemon function takes care
of connecting stdin/stdout/stderr to /dev/null. In the FRR port, this
only happens in the frr_run() function, after all children have been
forked. Ideally we could try to rearrange libfrr.c and ldpd.c in a way
that start_child() is called only after the parent connects the standard
I/O streams to /dev/null. But since this issue needs an immediate
fix, let's do this workaround for now. Note: even when running on the
foreground, all log messages from the child processes are sent to the
parent process, which then prints the messages to stdout/stderr and/or
to a log file.
Reported-by: Martin Winter <mwinter@opensourcerouting.org>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
The -n option was not aligned with the other ones:
% ldpd --help
[snip]
-A, --vty_addr Set vty's bind address
-P, --vty_port Set vty's port number
--ctl_socket Override ctl socket path
-n, --instance Instance id
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
We need one struct eigrp_interface per ifp structure
not a ifp->info structure with a ei per connected.
Some minor code cleanup as well with macros and
their weird usage.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The EIGRP interface handling code created 2 levels
of interface information, the ei( created per *connected*
address?????) and the ifp->info pointer.
Start the combination of pushing these together and
cleaning up the weirdness that is these two data
structures.
This commit probably breaks eigrp's handling of
interfaces.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
maxage_lsa using prefix structure to store in route_table.
The lsa pointer is 4-8 bytes depending on arch, but prefix member field
would be 1 byte. Use ptr field of prefix structure to store lsa pointer.
Also memset to initialize to avoid crash on ARM platform as same LSA is
referenced from multiple times during shutdown of ospf.
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>