Commit Graph

8941 Commits

Author SHA1 Message Date
Donald Sharp
37736d0870 pimd: More S,G RPT prune state missinformation
If you read the extra fine print of the PIM RFC
it asks you to stop the PP Timer and the
Expiry Timer when you are certain S,G RPT states.

This commit puts this into practice and it also
deletes the S,G ifchannel if necessary.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
2017-09-13 19:43:39 -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
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
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
David Lamparter
b4cb15c667 bgpd: rip out bgp_attr_deep_dup(), fix table-map
bgp_attr_deep_dup is based on a misunderstanding of how route-maps work.
They never change actual data, just pointers & fields in "struct attr".
The correct thing to do is copy struct attr and call bgp_attr_flush()
afterwards.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 15:19:06 +02:00
David Lamparter
7c87afac92 bgpd: kill bgp_attr_refcount()
This attempt at optimization has cost us more than a week's worth of
time on several people hunting down the subtle bug that it was missing
an increment on attr->lcommunity.

This is absolutely not worth the maintenance cost.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 14:56:08 +02:00
David Lamparter
96099b4030 bgpd: add safety check on ATTR_FLAG_BIT
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-09-07 14:54:42 +02:00
David Lamparter
a7e5e20a22 Merge pull request #1099 from donaldsharp/hashing
Hashing
2017-09-07 11:35:07 +02:00
David Lamparter
cbd1fec331 Merge pull request #1105 from qlyoung/fixup-hashtable-stats-aaa
vtysh: complete 40818cec
2017-09-07 11:34:18 +02:00
David Lamparter
ea5455d58d Merge pull request #1113 from qlyoung/vtysh-pathspace-fix
vtysh: fix pathspace
2017-09-07 11:33:32 +02:00