Commit Graph

7700 Commits

Author SHA1 Message Date
Donald Sharp
d1e7e033fd bgpd: Make buffer sizes automatically the correct size
In the bgp code to send routes to zebra we were spending
a non trivial amount of time managing buffer sizes.
We know a priori the multipath supported by our system
so let's just use that value to appropriately size
the buffers.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-22 13:39:47 -04:00
Olivier Dugeon
8ea37652c7 Merge pull request #745 from qlyoung/fix-lookup
*: simplify log message lookup
2017-06-21 18:22:52 +02:00
Quentin Young
56b4067930 *: simplify log message lookup
log.c provides functionality for associating a constant (typically a
protocol constant) with a string and finding the string given the
constant. However this is highly delicate code that is extremely prone
to stack overflows and off-by-one's due to requiring the developer to
always remember to update the array size constant and to do so correctly
which, as shown by example, is never a good idea.b

The original goal of this code was to try to implement lookups in O(1)
time without a linear search through the message array. Since this code
is used 99% of the time for debugs, it's worth the 5-6 additional cmp's
worst case if it means we avoid explitable bugs due to oversights...

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-21 15:22:21 +00:00
Russ White
2ca0207721 Merge pull request #741 from qlyoung/fix-vtysh-buffer-overrun
vtysh: fix stack buffer overflow
2017-06-19 22:02:49 -04:00
Russ White
4ce856eef7 Merge pull request #698 from dslicenc/cm16737-srgb-block
zebra: define default segment routing global block values
2017-06-19 22:00:57 -04:00
Russ White
ea52147f10 Merge pull request #707 from donaldsharp/debian_babel
tools: Fix startup to include babel
2017-06-19 21:58:36 -04:00
Russ White
7ee5d889e1 Merge pull request #728 from donaldsharp/owner
bgpd: Remove unset table.owner
2017-06-19 21:55:43 -04:00
Russ White
bfd93d11b8 Merge pull request #731 from qlyoung/fix-bgp-misc-cli
bgpd: fix misc cli ranges & config writes
2017-06-19 21:53:05 -04:00
Russ White
a88bbcb8a0 Merge pull request #732 from qlyoung/coverity-memes
lib: termtable coverity warnings
2017-06-19 21:52:10 -04:00
Donald Sharp
d368cd48b9 Merge pull request #730 from opensourcerouting/rbtree-improvement
RB tree improvement
2017-06-19 17:27:55 -04:00
Quentin Young
c25c61370f vtysh: fix stack buffer overflow
VARIABLE accepts arbitrary input

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-19 20:37:43 +00:00
Rafael Zalamena
b19ad86195 lib: fix __unused compilation on old platforms
Expand the macro __attribute__ to avoid problem with old platforms that
do not define this.
2017-06-19 13:24:04 -03:00
Rafael Zalamena
5508764270 lib: rename rb_tree to fix NetBSD compilation
Change rb_tree struct name to rbt_tree to avoid conflicts with NetBSD.
2017-06-19 13:17:35 -03:00
Donald Sharp
6021c8d382 lib: Fix ordering of RB Tree
So the *bsd implementations of RB Tree's for older
platforms use a macro implementation.  New platforms
have converted to a function implementation that uses
a different calling parameter list.  So when
we attempt to build FRR on older *bsd implementations
the macro's and functions do not interact too well.

As a workaround put the openbsd-tree.h #include
inside of zebra.h at a point before the particular
platforms version is included.  Since we use
the same #if guard for the header we should be ok.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-16 17:48:18 -04:00
Renato Westphal
522faa1f8b ldpd: fix fallouts from the rb-tree conversion
Signed-off-by: Renato Westphal <renato@openbsd.org>
2017-06-16 17:30:35 -03:00
David Lamparter
2dc1ef552b Merge pull request #725 from donaldsharp/vrf_completion
Vrf completion
2017-06-16 21:59:23 +02:00
Quentin Young
430000deee Merge pull request #702 from opensourcerouting/ldpd-cli-rewrite
ldpd: convert cli and get rid of the xml interface
2017-06-16 15:53:50 -04:00
Quentin Young
4668a15109 bgpd: fix misc cli ranges & config writes
* Ranges for some MED were 2^32 - 2 instead of 2^32 - 1
* Use correct printf specifiers for unsigned values
* Some drive-by CLI collapsing and simplification

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-16 19:09:05 +00:00
Quentin Young
94b989402f lib: termtable coverity warnings
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-16 19:04:57 +00:00
Renato Westphal
180fc2cd70 ldpd: update copyright information
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-06-16 14:43:55 -03:00
Renato Westphal
c740f7d367 ldpd: convert cli and get rid of the xml interface
The xml2cli.pl script was useful years ago when the vty code was very
rudimentary. This is not the case anymore, so convert all ldpd CLI
commands to use DEFUNs directly and get rid of the XML interface.

The benefits are:
* Consistency with the other daemons;
* One less build dependency (the LibXML perl module);
* Easier to add new commands.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-06-16 14:43:42 -03:00
Donald Sharp
23312e7173 bgpd: Fix as per Code Review comment
Add ending value in the array.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-16 13:12:42 -04:00
Donald Sharp
d7a75a6ca6 lib, vtysh, zebra: Fix per CR comments
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-16 13:09:37 -04:00
Donald Sharp
18c5703710 bgpd: Add view/vrf auto completion to commands
Modify the '<view|vrf> NAME' commands to allow auto-completion
of available choices.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-16 13:01:51 -04:00
Donald Sharp
d617d5febf *: Add vrf autocompletion for commands
Switch NAME to VRFNAME and add vrf autocompletion
to commands that have them

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-16 13:01:51 -04:00
David Lamparter
62e4232010 Merge pull request #718 from qlyoung/fix-vtysh-shit
lib: allow 'do' commands in ENABLE_NODE
2017-06-16 18:25:48 +02:00
David Lamparter
44d7e121fd Merge pull request #726 from chiragshah6/pim_dev
pimd: move variable declartion outside of switch
2017-06-16 18:24:38 +02:00
David Lamparter
0817c157df Merge pull request #620 from qlyoung/termtable
lib: add table generator
2017-06-16 18:23:14 +02:00
Quentin Young
b170d66a78 lib: allow 'do' commands in ENABLE_NODE
'do' is syntax sugar that allows the user to execute a command under
ENABLE_NODE when in another CLI node. If the user is already in
ENABLE_NODE, use of 'do' was previously disallowed. This patch allows it
because it makes it easier for us to hack around certain instances of
the node synchronization problem with vtysh.

Also included is a fix for one of these problems.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-16 14:46:08 +00:00
Rafael Zalamena
8f942af902 lib: fix a possible NULL deference
Silences a warning generated by clang.
2017-06-16 11:08:43 -03:00
Rafael Zalamena
45926e5874 lib: improve the RB implementation
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.
2017-06-16 10:44:31 -03:00
Quentin Young
0f2b0a3893 lib: termtable MTYPE_TMP -> MTYPE_TTABLE
And some style nits.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-06-16 02:10:34 +00:00
Quentin Young
f051edd156 lib: add table generator
Allows for easy preparation of tabular output.

Supports:
 -- Padding
 -- Alignment
 -- Styling
2017-06-16 02:02:42 +00:00
Donald Sharp
6dc556447b bgpd: Remove unset table.owner
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-15 21:34:19 -04:00
Chirag Shah
925574ba66 pimd: move variable declartion outside of switch
To Address ICC (intel CC) warning, moving variables
declaration out of switch statement.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-06-15 12:20:59 -07:00
David Lamparter
f43cd318b2 Merge pull request #711 ("Coverity munging")
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-15 16:22:42 +02:00
David Lamparter
68fc8f1f26 ospfd: fix typo in error message
... and print the invalid input value

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-15 16:21:58 +02:00
Lou Berger
ffef22509f Merge pull request #705 from dwalton76/bgpd-show-neighbor-community
bgpd: "no neighbor x.x.x.x send-community" not displayed correctly
2017-06-15 09:21:44 -04:00
David Lamparter
4f138a3e82 lib: fix protocol name array size
Oops.  Fixes #715.

Reported-by: Daniel Walton <dwalton@cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-14 15:56:14 -04:00
David Lamparter
1c2596c15f Merge pull request #716 from dwalton76/show-route-map
lib: "show route-map" is missing from the parser
2017-06-14 21:07:24 +02:00
Daniel Walton
6d2729e3d7 lib: "show route-map" is missing from the parser
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-06-14 18:21:17 +00:00
Donald Sharp
03793b7abb zebra: Remove unused testzebra and ancillary files
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>
2017-06-13 14:23:52 -04:00
Donald Sharp
8089cd1062 eigrpd: Fix integer overflow possibility
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-13 13:33:25 -04:00
Donald Sharp
71007eab71 pimd: Cleanup ifp->info setup
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-13 13:28:20 -04:00
Donald Sharp
5125997a8a ospfclient: Free up leaked resources in error path
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-13 13:15:01 -04:00
Donald Sharp
e6fda497d3 *: Clean up call into inet_aton
In the few places where we were not checking the return code
for inet_aton, do so.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-13 13:10:32 -04:00
David Lamparter
645bb0b10e Merge branch 'stable/3.0'
Dropped:
	redhat/README.rpm_build.md
	redhat/daemons
	redhat/frr.init
	redhat/frr.logrotate
	redhat/frr.spec.in

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-13 17:37:58 +02:00
David Lamparter
98f65fda88 Merge pull request #681 (ASAN warnings)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-13 17:16:24 +02:00
Donald Sharp
97f653d0e2 tools: Fix startup to include babel
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-06-13 10:43:20 -04:00
David Lamparter
fb82c3dbb2 Merge pull request #687 (nexthop refactoring)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-06-13 16:22:29 +02:00