Commit Graph

9771 Commits

Author SHA1 Message Date
Quentin Young
74e4a329a3
lib: fix a few bugs in ring buffers
* Fix rare failure caused when end pointer is at end of buffer memory
  and a call to ringbuf_get() is made that reads all of the data in the
  buffer; start pointer was advanced past end pointer, causing some
  special handling to be skipped
* Fix ringbuf_peek() moving start pointer
* Fix use after free
* Remove extraneous assignment
* Update relevant tests

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-03 14:04:43 -05:00
Quentin Young
cb94eaebff
lib: add ringbuf_copy()
Quick 'n easy way to copy the contents of one ringbuf to another.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-01-03 14:04:43 -05:00
Donald Sharp
9bc82f11fb
Merge pull request #1589 from lihongguang/master
ospfd: return non-zero for configuration failures
2018-01-03 11:12:34 -05:00
lihongguang
e3e0481542 ospfd: return non-zero for configuration failures
Signed-off-by: lihongguang <lhg803@163.com>
2018-01-03 22:47:28 +08:00
Russ White
baa68bca40
Merge pull request #1584 from donaldsharp/1575_fix
zebra: Fix dest dereference
2018-01-02 11:32:09 -05:00
Russ White
82b9bf3145
Merge pull request #1569 from qlyoung/ringbuf
lib: add ring buffer
2018-01-02 09:21:37 -05:00
Donald Sharp
607425e554 zebra: Fix dest dereference
The rn can not have an rn->info pointer and as
such the dest may be NULL.  Don't assign
the old_fib pointer if so.  This is ok
because we know RNODE_FOREACH... will not
iterate if dest is NULL.

Fixes: #1575
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-01-02 09:12:07 -05:00
Russ White
d87c5805df
Merge pull request #1572 from dslicenc/bgpd-network-defpy-cm16860
bgpd: convert network statements from DEFUN to DEFPY
2018-01-02 09:02:44 -05:00
Russ White
e980cd4729
Merge pull request #1580 from chiragshah6/mdev
ospfd: Set filter to unbound debug logs
2018-01-02 08:55:28 -05:00
Russ White
eae387223a
Merge pull request #1582 from chiragshah6/mdev1
ospf6d: Fix ospf6 redist with route-map
2018-01-02 08:26:33 -05:00
Russ White
c9306977e3
Merge pull request #1583 from donaldsharp/1558-more
debianpkg: fix indentation and variable name
2018-01-02 08:22:06 -05:00
Raymond P. Burkholder
18e1d1129f debianpkg: fix indentation and variable name
Signed-off-by: Raymond P. Burkholder <github@oneunified.net>
2018-01-02 08:15:00 -05:00
Chirag Shah
c600ce450f ospf6d: Fix ospf6 redist with route-map
When ospf6 configure with redistribute connected/protocol
with route-map. Upon restart of frr.service, ospf6 receives
redistribute update then route-map update.
During redistribute route update, since route-map info is not
filled, route is suppressed from injected as external route.

Fix: reset redistribute when route-map update received
matches with redistribution (type) and route-map name.

Ticket:CM-13800
Testing Done:
Configure ospf6 redistribute with route-map to inject
Type-2 external routes into database. Trigger frr restart
redistribute with route-map happens.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-12-30 10:56:53 -08:00
Chirag Shah
05ba78e4d9 ospfd: Set filter to unbound debug logs
Ticket:CM-19213

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-12-27 10:13:38 -08:00
Quentin Young
a5080622b2
lib: add ringbuf_peek()
Peek functionality for ring buffers and associated tests.

Also:
* Slight optimization to avoid 0-byte memcpy() by changing > to >=
* Add rv checks for some ringbuf_[put|get] calls that were missing them
  in the test

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-12-26 18:50:56 -05:00
Don Slice
e2a86ad9b4 bgpd: convert network statements from DEFUN to DEFPY
Problems reported with inconsistent use of parameters for bgp network
statements.  Converted 12 DEFUNs to 2 DEFPY statements, making the
parameter use consistent with the exception of keeping the "backdoor"
keywork ipv4 only.  Also verified that if a route-map or label-index
is specified in the "no" case it matches what had been previously
defined. Manual testing looks good and bgp-smoke will be performed
before pushing.

Ticket: CM-16860
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: CCR-7056
2017-12-21 19:07:56 +00:00
Quentin Young
5318d89638
lib: add ring buffer
Simple ring buffer implementation useful for fixed size FIFO queues.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-12-19 17:12:43 -05:00
Donald Sharp
ff99c5b2bb
Merge pull request #1551 from LabNConsulting/working/master/minor-perf
bgpd: minor performance enhancement
2017-12-19 13:21:09 -05:00
Donald Sharp
2cef5184eb
Merge pull request #1563 from opensourcerouting/isis-bpf-hlen
Unbreak ISIS Hellos (FreeBSD)
2017-12-19 12:57:42 -05:00
Rafael Zalamena
e492e668b6
Merge pull request #1553 from donaldsharp/bgp_json_routes
bgpd: Speedup vtysh handling of 'show bgp afi safi json' display
2017-12-19 14:49:59 -02:00
Renato Westphal
1de057636f
Merge pull request #1567 from donaldsharp/json_fixes
Json fixes
2017-12-19 14:14:26 -02:00
Renato Westphal
fb6f7c2c25
Merge pull request #1515 from donaldsharp/selected_to_front1
Store selected_fib as a pointer off of rib_dest_t
2017-12-19 14:09:03 -02:00
Jafar Al-Gharaibeh
75d1899398
Merge pull request #1533 from donaldsharp/REALMS
Add Linux Realms and some Pim Documentation
2017-12-19 09:32:11 -06:00
Jafar Al-Gharaibeh
97c772b30b
Merge pull request #1543 from donaldsharp/pim_sg_rpt
pimd: Really, Actually send S,G rpt prune upstream
2017-12-19 09:29:44 -06:00
Donald Sharp
449feb8ef9 bgpd: Fix double free
The json code was freeing json_paths and then
turning around and free'ing it again.  Newer
versions of json-c have started to assert
this bad behavior.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-19 08:20:30 -05:00
Raymond P. Burkholder
fb8f41e455 bgpd: fixed '-Werror=maybe-uninitialized' warnings
- used @sharpd's slack patch as a starting point
- fixes compile time issue, but code path not tested

Signed-off-by: Raymond P. Burkholder <github@oneunified.net>
2017-12-19 08:15:44 -05:00
Rafael Zalamena
12386e86db Revert "isisd: bpf: ETHER_HDR_LEN -> ETH_ALEN"
This reverts commit d9e5b00955.

ETH_ALEN is not equivalent to ETHER_HDR_LEN. ETHER_HDR_LEN is the
definition for the length of the full ethernet header, meanwhile
ETH_ALEN is just the length of the ethernet address.

Here is the OpenBSD/FreeBSD definition for ETHER_HDR_LEN:
 #define ETHER_ADDR_LEN  6       /* Ethernet address length */
 #define ETHER_TYPE_LEN  2       /* Ethernet type field length */
 #define ETHER_HDR_LEN   ((ETHER_ADDR_LEN * 2) + ETHER_TYPE_LEN)

(OpenBSD's definition is at net/if_ether.h, FreeBSD's is at
 net/ethernet.h)

Linux definitions can be found at: net/ethernet.h
 #define ETHER_ADDR_LEN  ETH_ALEN  /* size of ethernet addr */
 #define ETHER_TYPE_LEN  2         /* bytes in type field */
 #define ETHER_HDR_LEN   ETH_HLEN  /* total octets in header */

net/if_ether.h:
 #define ETH_HLEN       14 /* Total octets in header.       */
 #define ETH_ALEN       6  /* Octets in one ethernet addr   */

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2017-12-18 13:19:08 -02:00
Rafael Zalamena
acf43bea0d
Merge pull request #1547 from donaldsharp/sa_from_clang
Sa from clang
2017-12-15 15:42:38 -02:00
Donald Sharp
8253e0a12f
Merge pull request #1549 from lucize/cross
configure: exclude some checks not needed on clippy host build
2017-12-15 11:51:45 -05:00
Rafael Zalamena
62b05982c6 Merge pull request #1535 from qlyoung/fix-coalesce-time-display
bgpd: fix config display of coalesce-time
2017-12-15 11:46:28 -02:00
Quentin Young
37a333fef1
bgpd: fix configuration of 0 for coalesce-time
Was using 0 as a sentinel value, so user couldn't configure 0 as the
value of the coalesce timer.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-12-14 16:43:31 -05:00
Donald Sharp
fe15e7a61d
Merge pull request #1554 from opensourcerouting/cover-fix1
bgpd: fix some coverity scan issues
2017-12-14 12:24:52 -05:00
Donald Sharp
b9bd264624
Merge pull request #1550 from opensourcerouting/missing-lintian-file
debianpkg: Add missing frr-dbg.lintian-overrides to Makefile
2017-12-14 11:05:29 -05:00
Rafael Zalamena
1ad057aed6 bgpd: handle argv_find_and_parse_afi return value
Handle the return value of argv_find_and_parse_afi() to avoid passing
along bad values.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2017-12-14 14:04:01 -02:00
Rafael Zalamena
a90b8cb58a bgpd: use buffer size instead of hardcoded value
This is a possible buffer overflow.

We should always use the buffer size (whenever possible) to tell
functions what the size of the buffer is, instead of a hardcoded value.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2017-12-14 14:03:14 -02:00
Donald Sharp
a35bb96dee ospf6d: Don't assign to values that are never read
offset and offsetlen are never used without reassigning
in the code.  So comment out the assignments and
in case we want to start using the code for snmp
changes in the future.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 10:43:53 -05:00
Donald Sharp
b8ca17c230 pimd: Fix memory allocation error
When creating the pim_ifp, and we run out of memory there
existed a chance that we would dereference the failed memory
pointer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 10:43:53 -05:00
Donald Sharp
070b4959fa zebra: Remove possible NULL dereference in if_delete_connected
It is technically possible to attempt to use a NULL pointer.
Remove this from happening.

Additionally cleanup code indentation a small bit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 10:43:53 -05:00
Donald Sharp
9b7e34ec42
Merge pull request #1546 from pguibert6WIND/issue__1537
Issue  1537
2017-12-14 10:23:54 -05:00
Donald Sharp
2ce9299493 doc: Cleanup the doc Makefile some
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 09:49:43 -05:00
Donald Sharp
42642babdd doc: Add some PIM documentation
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 09:49:43 -05:00
Donald Sharp
0efb5e9b4b zebra: Display if a taged route is being used as a realm
When displaying a specific route and if it has a tag
and if we have turned on realm support notify the user
that a tag value of (1-255) is installed into the kernel
with the realm set.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 09:49:43 -05:00
Donald Sharp
6347ca161f doc: Add documentation for the tag/realm commands
Add some documentation for the tag and realm commands.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 09:44:44 -05:00
Kaloyan Kovachev
4e40b6d615 zebra: Add ability to support tags -> realms in linux
Linux has the ability to support a concept of 'realms'.
This concept allows you to mark routes with a realm id
value of 1-255.  If you have marked the realm
of a route then you can use the tc program to
apply policy to the routes.

This commit adds the ability of FRR to interpret
a tag from (1-255) as a realm when installing into
the kernel.  Please note that at this point in time
there is no way to set policy from within FRR.  This
must be done outside of it.

The normal methodology for setting tags is valid here
via a route-map.

Finally this is only applied if the --enable-realms configure
option is applied.

Signed-off-by: Kaloyan Kovachev <kkovachev@varna.net>
2017-12-14 09:44:44 -05:00
Donald Sharp
23b2a7ef52 bgpd: Speedup vtysh handling of 'show bgp afi safi json' display
When bgp has a metric butt-load of routes w/ ecmp, this command
can take an inordinate amount of time to run and complete via
vtysh.

Converting the bgp route output in this case back to not
using the json pretty-print drops ~2 minutes of runtime
off.

It is assumed that if users would like pretty output they
can run it through an appropriate tool via a pipe command.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-12-14 09:31:26 -05:00
Renato Westphal
cb9cef73bd
Merge pull request #1527 from donaldsharp/zserv_thread
Zserv.h modifications
2017-12-14 12:23:37 -02:00
Lou Berger
0d0268a6ba bgpd: minor performance enhancement
Signed-off-by: Lou Berger <lberger@labn.net>
2017-12-14 08:32:50 -05:00
Rafael Zalamena
beab6ff7f2
Merge pull request #1521 from donaldsharp/bufsiz
Cleanup Some Code Issues
2017-12-14 11:21:40 -02:00
Donald Sharp
478becd9ae
Merge pull request #1536 from opensourcerouting/isis-l2conv
Fix ISIS L2 formations
2017-12-14 07:40:23 -05:00
Martin Winter
1ec43e95fc debianpkg: Add missing frr-dbg.lintian-overrides to Makefile
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2017-12-13 18:58:33 -08:00