When a register stop is received, create the register stop
timer and associated state machine.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
When sending a pim register message to an RP, we need
the ability to set the null bit in the message. This
adds the ability to do so.
Additionally we need to switch the ip_hdr to a const uint8_t *buf
because pim_register_send really shouldn't know or care about
the fact it's a 'struct ip'.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
For a given interface remove the interface from the list
of outgoing interfaces for a mroute and reinstall it
into the kernel.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
When we receive a register stop we will have created a
timer for this. As such if the t_rs_timer pointer will
be non-NULL at this point.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
We were using a variety of techniques to handle
incoming pim packets. Refactor to use a switch
statement to handle the incoming packets.
Also add the ability to notice that we are getting
a register stop.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
The RP now has the ability to send a register stop message
to the originator of the packet in order to tell it to
stop encapsulating packets to the RP.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Now we can have two different adjacencies coming from the same source
address. Check for the adjacency's interface on adj_find() to disambiguate
them.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
All of the autogenerated macros in lib/route_types.pl are now called
FRR_* instead of QUAGGA_*.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Several places have paths and names that can change hardcoded, e.g. the
package name and the /var/run path. This fixes a few of them, there's
still some to do.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
It's horribly outdated & wrong info is worse than none.
doc/install.texi should probably be updated instead.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This replaces Quagga -> FRR in most configure.ac settings as well as
a handful of preprocessor macros in the source code.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This makes the actual change to the manpages to get ./configure effects
applied into them.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
The manpages contain references to installation paths and thus should be
preprocessed by ./configure to get the actual paths.
This commit is an exact-rename so the changes for the preprocessing are
easier to review (diffs in renames are hard to read...)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
The first time through calling 'show ip bgp summary'
we were always calculating the variable hostname field
size incorrectly.
Ticket: CM-13900
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This removes an artificial restriction for the first token in a
command's graph to be a WORD_TKN. The intention seems to be to prohibit
empty paths through a command, and to restrict "explosion" of choices in
the root node.
The better approach to the former is to check for an empty path after
the definition is parsed. The latter will happen anyway, by duplication
of the command, which just makes it worse...
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
There seems to be no reason why numbers don't work as plain word tokens;
this is useful to have "number choices" or constants, e.g. <128|192|256>
for bit encryption lengths.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
bison conditionally writes its output to different files based on the
filenames specified in the source code. This could be disabled,
however... flex changes its output filenames when "prefix" is
specified. And ylwrap from <1.11 doesn't understand how to handle the
header file...
...so this requires automake 1.12 which can deal with this properly.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
bgp_master_init is called first thing in main(), so we need to wedge a
qobj_init() call in there... this needs some improvement...
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This shuffles the code blocks in command_parser.y to match file output
order, then adjusts things to make the include handling less messy.
(also dropped unused DECIMAL_STRLEN_MAX define.)
This should hopefully fix the build on NetBSD 6.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
exit 0 exits the entire testrunner... Oops.
Also, "unresolved" breaks too many things, so make this a pass.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This was SEGV'ing the test in bgp_master_init() since QOBJ_REG was used
without qobj_init() being called first.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Now that we have keyword argument support in the matcher again, this
needs to be updated because argv[] will be 1:1 user input without
mangling or reordering.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
If <Tab> processing finds that there is only 1 candidate, but that
candidate is not a WORD_TKN that we can tab-complete on, the status
would remain at CMD_COMPLETE_FULL_MATCH, but the resulting list of
possible completions is empty.
This then SEGVs in lib/vty.c where it tries to access the first element
of the list, assuming FULL_MATCH always has 1 element there...
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Cc: Quentin Young <qlyoung@cumulusnetworks.com>
The first time through calling 'show ip bgp summary'
we were always calculating the variable hostname field
size incorrectly.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
There exists a possibility that when we cleanup
for shutdown that we may attempt to access
them again.
Found via valgrind, stopped showing up in there.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>