Switch the RB tree implementation completely to the new dlg@'s version
that uses pre-declared functions instead of macros for tree functions.
Original e-mail/diff:
https://marc.info/?l=openbsd-tech&m=147087487111068&w=2
Pros:
* Reduces the amount of code that the usage of those macros generate
* Allows the compiler to do a better compile-time check job
* Might have better i-cache utilization since the tree code is shared
Con:
* dlg@ benchmarks shows it has 'very slightly slower' insertions
* imported RB_* code must adapt the following calls:
RB_INIT(), RB_GENERATE(), RB_ROOT(), RB_EMPTY(), make compare
functions use 'const' (if not already) and maybe others.
(This was intended as further demonstration of the DEFPY code, but it
might as well go into the tree.)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Adds "DEFPY()" which invokes an additional layer of preprocessing, so
that we get pre-parsed and named function arguments for the CLI.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Wraps the command parsing code for Python, so we can use it to do fancy
preprocessing and replace extract.pl.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
The testzebra command was unused as well as unmaintained.
The NS and VRF changes never made into testzebra so when
you actually ran testzebra it would just crash due to
uninitialized assumptions.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Handling configuration changes from single-stack mode to dual-stack mode
(and vice-versa) is tricky. This patch attempts to solve all issues that
might happen on such circumstances.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
babeld was 2609 previously, and this was still marked in SERVICES.
Let's flip it back before we have a release out with it.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
babeld would install "1.2.3.4 on eth0" as "1.2.3.4 via 1.2.3.4 on eth0".
Remove the superfluous nexthop and send to zebra as directly-connected
route.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
We would only diplay one "no neighbor 2.2.2.2 send-community XYZ" but
there might be multiple that need to be displayed.
if bandwidth is not set from Zebra use speed as bandwidth
for ospf route.
Testing Done:
Verfied over bond which has aggregated speed of all member interfaces,
cost is reflected in ospf route and ip route.
Manually changed interface bandwidth which replaces speed as bw, instead
uses cli entered value as bw, verifid output of ospf route and ip route.
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>