Commit Graph

8947 Commits

Author SHA1 Message Date
Russ White
42b6df56da Merge pull request #1110 from qlyoung/mtsafe-log
lib: mt-safe log.c
2017-09-13 16:21:56 -04:00
Russ White
dcc4574ae6 Merge pull request #1163 from donaldsharp/deduplicate_nexthops
zebra: deduplicate nexthops
2017-09-13 16:18:41 -04:00
Russ White
7577536c5c Merge pull request #1170 from donaldsharp/ospf6d_crashasplat
ospf6d: Fix crash in prefix-list handling
2017-09-13 16:11:08 -04:00
Russ White
2fcd98bd13 Merge pull request #1171 from qlyoung/max-cli-tokens
lib, doc: increase maximum cli tokens
2017-09-13 16:09:36 -04:00
Lou Berger
323a4653ce Merge pull request #1169 from donaldsharp/eas_crud
bgpd: Fix warning introduced by PR #1133
2017-09-13 13:19:23 -04:00
Lou Berger
469874c45a Merge pull request #1173 from qlyoung/dedup-struct-ecomm
bgpd: deduplicate struct definition
2017-09-13 13:16:41 -04:00
Donald Sharp
8ce42777bc Merge pull request #1158 from opensourcerouting/ldpd-label-allocation
ldpd label allocation
2017-09-13 12:24:14 -04:00
Quentin Young
5a0ccebf91
bgpd: deduplicate struct definition
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-13 11:47:35 -04:00
Quentin Young
bb74e5acbc
lib, doc: increase maximum cli tokens
When matching user input against a CLI graph, we keep a stack of tokens
matched. Stack size was limited to 64, making the effective number of
tokens that could be entered on a line 64. This is too limiting in some
circumstances, so bump it to 256 (and document it).

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-13 10:39:22 -04:00
Renato Westphal
fea0584841 Merge pull request #1161 from dslicenc/bgp-vrf-nexthop
bgpd: fix show ip bgp vrf <vrf> nexthop
2017-09-13 10:46:34 -03:00
Donald Sharp
e017797b3b ospf6d: Fix crash in prefix-list handling
Commit 427f8e61bb introduced prefix list callbacks
to handle when a prefix list is changed.  Unfortunately
if you have ospf6 running but not configured it crashes.

Modify ospf6d to not crash when we are not properly configured
yet for prefix-lists handling.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-13 09:46:28 -04:00
Donald Sharp
88a837f6ce bgpd: Fix warning introduced by PR #1133
I am merely fixing the compiler warning.  I do not
understand what the as value should be for output
to the end user or where it should be retrieved
from.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-13 09:14:46 -04:00
Daniel Walton
e775854d9c Merge pull request #1133 from opensourcerouting/shift-sign
*: fix be32 reading / 24-bit left shift
2017-09-12 17:48:03 -04:00
Donald Sharp
14a481d916 zebra: Allow 'show ip route...' to display uptime for all routes
Display uptime for all route types instead of just for RIP,
OSPFv2, ISIS, NHRP, TABLE? and BGP routes.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 14:58:10 -04:00
Donald Sharp
eaf5150f58 zebra: Modify 'show ip route ...' to show duplicated nexthops
Add the ability for person issuing 'show ip route...' commands
to see if we've suppressed adding a nexthop to the kernel.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 14:52:20 -04:00
Quentin Young
c22fbb9b45
lib: smallify loglock
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-12 14:49:58 -04:00
Quentin Young
dd73dca94a
lib: mt-safe log.c
Tentative thread-safety support for zlog. Functions designed to be
called from signal handlers are not mt-safe.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-12 14:28:58 -04:00
Renato Westphal
016bded5d5 Merge pull request #1165 from dwalton76/bgpd-vrf-redistribute-static
zebra: api.vrf_id should be re->vrf_id
2017-09-12 15:07:20 -03:00
Daniel Walton
3d536c7c9c zebra: api.vrf_id should be re->vrf_id
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>

This fixes route redistribution for VRFs
2017-09-12 11:03:07 -07:00
Renato Westphal
cc2e32a333 Merge pull request #1156 from donaldsharp/cleaner
Some minor cleanups around zebra code
2017-09-12 12:42:55 -03:00
Don Slice
b7ada6280d bgpd: fix show ip bgp vrf <vrf> nexthop
Problem with not finding the correct bgp instance when doing the command
"show ip bgp vrf <vrf> nexthop" resolved by setting up the arg values
correctly.  Manual testing fine.  bgp-smoke had no new failures.

Ticket: CM-17454
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: CCR-6664
2017-09-12 14:16:44 +00:00
Renato Westphal
08e4b24451 ldpd: guard the label allocation debug messages
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 11:10:15 -03:00
David Lamparter
25b9cb0cc8 zebra: deduplicate nexthops
There exists situations where it is possible to have duplicate
nexthops passed from a higher level protocol into zebra.

This code notices this duplication of nexthops and marks
the duplicates as DUPLICATE so we don't attempt to install
it into the kernel.

This is important on *BSD as I understand it because passing
duplicate nexthops will cause the route to be rejected.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-12 10:05:07 -04:00
Renato Westphal
2a178cdd7c ldpd: fix broken label allocation
Once ldpd allocated label 48 for a given FEC, all subsequent requests
for a new label would return the same value (48). The problem is that
we were left shifting an uint32_t value up to 64 times, losing important
information.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-12 09:52:54 -03:00
Donald Sharp
0a16efff9b zebra: Fix rib_update_table
We should only be operating RIB_UPDATE_IF_CHANGE on
types that zebra has control of.  We assume that
the calling routing protocol is going to take care
of their own route changes based upon the interface
state change.

Also try to re-organize the code a tiny bit to allow
it to fit better within a tabed world.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-11 13:35:26 -04:00
Donald Sharp
407c87a6c3 zebra: Fixup indentation
RNODE_FOREACH_RE... function calls were not properly being
indented when we switched over to the new format.  Let's fix
this issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-11 13:35:23 -04:00
Donald Sharp
c9abf5584a zebra: Small performance improvement for garbage collection
There is no need to retrieve the zvrf *unless* we are doing
debugs.  So move the retrieval under the debug statement.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-11 11:12:03 -04:00
David Lamparter
953d97fc4a Merge pull request #1154 from donaldsharp/bgp_aspath
bgpd: Fix AS_PATH size calculation for long paths
2017-09-11 11:05:08 +02:00
David Lamparter
3a4ed171c6 Merge pull request #1142 from nkukard/lc-docs-master
docs: Added large-community documentation
2017-09-11 11:03:20 +02:00
David Lamparter
848e7ccac4 Merge pull request #1084 from donaldsharp/zebra_frame
zebra: Fix vty_frame usage in zebra
2017-09-11 11:01:39 +02:00
David Lamparter
29b32df94d Merge pull request #1149 from qlyoung/fix-thread-master-name-leak
lib: free thread master name
2017-09-11 10:47:04 +02:00
David Lamparter
937652c6e4 *: fix be32 reading / 24-bit left shift
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-09 19:50:58 +02:00
Quentin Young
4e1000a188
lib: free thread master name
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-09-08 16:39:53 -04:00
David Lamparter
5cf0c43de6 Merge pull request #1143 from dwalton76/frr-reload-vni
tools: frr-reload.py support for vni under 'address-family l2vpn evpn'
2017-09-08 17:35:23 +02:00
Quentin Young
2e4b945a75 Merge pull request #1137 from subsecond/documentation
Typos and formatting
2017-09-08 10:59:13 -04:00
Daniel Walton
7918b33541 tools: frr-reload.py support for vni under 'address-family l2vpn evpn'
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-09-08 13:27:23 +00:00
Nigel Kukard
ca383542dd docs: Added large-community documentation
Closes #1140

Signed-off-by: Nigel Kukard <nkukard@lbsd.net>
2017-09-08 12:40:17 +00:00
Andreas Jaggi
084002351f bgpd: Fix AS_PATH size calculation for long paths
If you have an AS_PATH with more entries than
what can be written into a single AS_SEGMENT_MAX
it needs to be broken up.  The code that noticed
that the AS_PATH needs to be broken up was not
correctly calculating the size of the resulting
message.  This patch addresses this issue.

This patch was built from an email that Andreas
sent to the dev alias for FRRouting.

Fixes: #1114
Signed-off-by: Andreas Jaggi <aj@open.ch>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-08 07:54:03 -04:00
Manuel Schweizer
c730652f80 Typos and formatting 2017-09-08 12:36:23 +02:00
Daniel Walton
b1eec2516a Merge pull request #1118 from opensourcerouting/attr-kill-master
kill bgp attr badness
2017-09-07 15:23:28 -04:00
Daniel Walton
43fba41d39 Merge pull request #1127 from opensourcerouting/connected_duplicates
zebra: allow multiple connected routes for the same prefix
2017-09-07 15:19:56 -04:00
Renato Westphal
b200bb7484 Merge pull request #1124 from donaldsharp/pim_igmp_fix
pimd: We do not need to BINDTODEVICE for default vrf
2017-09-07 15:04:54 -03:00
Renato Westphal
c2713b2acb zebra: allow multiple connected routes for the same prefix
With unnumbered interfaces on Linux we have the same IP address configured
on several different interfaces and hence multiple connected routes for
the same prefix.

With that said, add an exception in rib_add() to allow zebra to keep
track of all connected routes. We don't need to worry about the bugs
reported in a3d18ce because connected routes are always added from the
connected_up() function, and connected_update() already takes care of
handling duplicate addresses per interface.

Fixes #1112.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-09-07 15:00:42 -03:00
Donald Sharp
91288c42f8 Merge pull request #1122 from opensourcerouting/non-recursive-3
non-recursive pimd & tools & watchfrr
2017-09-07 11:27:17 -04:00
Donald Sharp
d1ee84e951 pimd: We do not need to BINDTODEVICE for default vrf
The changes introduced in PR #1044 caused pim to notice
when a setsockopt call failed.  The kicker here is that
this used to just work because we ignored the issue
pre.  So VRF's need to BINDTODEVICE to get igmp callbacks
but the default vrf does not need to do so.

With the fix we now see IGMP group join:
root@dell-s6000-02 ~/frr# vtysh -c "show ip igmp group"
Interface Address         Group           Mode Timer    Srcs V Uptime
br1       20.0.11.1       232.2.3.4       EXCL 00:04:14    1 3 00:00:05

Fixes: #1121
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-09-07 11:14:30 -04:00
David Lamparter
35a3c3c132 build: non-recursive pimd
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 16:20:42 +02:00
David Lamparter
bd354725a6 build: non-recursive watchfrr & tools
(also forgot to remove AC_SUBST(ISISD) earlier)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 16:18:50 +02:00
David Lamparter
be054588b4 bgpd: fix compiler warning
bgp_route.c:6393:7: error: ‘len’ may be used uninitialized in this function
gcc 5.4.0 isn't intelligent enough to notice it's set on all paths.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 15:31:50 +02:00
David Lamparter
dbbac180c1 bgpd: add comment on bgp_attr_intern
This is confusing enough to warrant a comment.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 15:29:32 +02:00
David Lamparter
821127e041 bgpd: remove transit_dup() & cluster_dup()
These are now unused.  route-maps can't modify these attributes, so
there is no need for _dup functions.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 15:29:32 +02:00