Commit Graph

8050 Commits

Author SHA1 Message Date
Russ White
a67223a8b6 Merge pull request #859 from donaldsharp/bgp_ll_global
Bgp -> Allow comparison of correct v6 nexthop
2017-07-27 15:56:56 -04:00
Russ White
7fb47b9276 Merge pull request #862 from dwalton76/bgpd-update-too-large
bgpd: UPDATE may be larger than 4096 if addpath is used
2017-07-27 15:56:06 -04:00
Russ White
b891a761ed Merge pull request #863 from dwalton76/zebra-static-reject
zebra: static route cleanup
2017-07-27 15:54:48 -04:00
Russ White
d8bdc2ffd6 Merge pull request #864 from dwalton76/zebra-debug-packet-detail
Zebra debug packet detail
2017-07-27 15:54:16 -04:00
Russ White
723cc5ce52 Merge pull request #869 from donaldsharp/hash_a_roni
lib: Remove expansion of hash table
2017-07-27 15:47:48 -04:00
Donald Sharp
713cb249d1 Merge pull request #868 from LabNConsulting/working/master/patch-set/rfapi-lib+
Restore rfapi and encap attribute, broken by some recent changes
2017-07-27 14:02:00 -04:00
Lou Berger
e7038ddec6 bgpd rfapi: use afi_t
Signed-off-by: Lou Berger <lberger@labn.net>
2017-07-27 13:15:53 -04:00
Lou Berger
2f5078856e bgpd rfapi: fix breakage introduced in refactoring
Signed-off-by: Lou Berger <lberger@labn.net>
2017-07-27 13:15:47 -04:00
Donald Sharp
8b2a6222e8 lib: Remove expansion of hash table
The hash code has the idea of stopping expanding
the hash table when certain criteria are set.
With the recent addition of `show hashtable`
we can now see that when we have a full internet
feed we've stopped expanding the table at 1k
buckets.  This results in some serious performance
issues at scale.

Since we now have the ability to see the statistics
on a hash table, let's allow it to expand.  Doing
so on a full feed showed this:

before:
   Hash table          |  Buckets   Entries   Empty   LF        SD      FLF       SD
 ----------------------+----------------------------------------------------------------
   route table hash    |  1024      1187579   0%      1159.75   34.06   1159.75   35.08
   route table hash    |  32768     76208     10%     2.33      2.80    2.58      4.03
   route table hash    |  1024      1187572   0%      1159.74   34.06   1159.74   35.08
   route table hash    |  2048      76205     0%      37.21     6.13    37.21     7.29

Showing hash table statistics for BGP
-------------------------------------

   Hash table         |  Buckets   Entries   Empty   LF       SD      FLF      SD
 ---------------------+--------------------------------------------------------------
   BGP Attributes     |  131072    251229    15%     1.92     2.48    2.25     3.33
   route table hash   |  4096      1187572   0%      289.93   17.03   289.93   17.87
   route table hash   |  32768     76205     10%     2.33     2.90    2.58     4.21

After:

   Hash table          |  Buckets   Entries   Empty   LF     SD     FLF    SD
 ----------------------+--------------------------------------------------------
   route table hash    |  1048576   1187349   32%     1.13   2.57   1.67   3.16
   route table hash    |  32768     76195     10%     2.33   2.81   2.58   4.03
   route table hash    |  1048576   1187342   32%     1.13   2.58   1.67   3.16
   route table hash    |  32768     76192     10%     2.33   2.68   2.58   3.81

Showing hash table statistics for BGP
-------------------------------------

   Hash table         |  Buckets   Entries   Empty   LF     SD     FLF    SD
 ---------------------+--------------------------------------------------------
   BGP Attributes     |  131072    251222    15%     1.92   2.64   2.25   3.58
   route table hash   |  1048576   1187342   32%     1.13   2.52   1.67   3.07
   route table hash   |  32768     76192     10%     2.33   2.86   2.58   4.12

We should see some significant performance improvements across the board
for full feeds.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-27 11:08:40 -04:00
Lou Berger
0ae6124f48 bgp rfapi: use route_table_init and _finish (fixes crash due to recent lib change)
Signed-off-by: Lou Berger <lberger@labn.net>
2017-07-27 11:02:31 -04:00
Donald Sharp
05a38c0c8b bgpd: Fix nexthop comparison for v6
When we have both a LL and a Global address,
use what the attribute wants for comparison
instead of assuming Global than LL.

This was causing BGP to install v6 routes
that used the LL as the nexthop, where
the global address was different and
being used as the basis for comparison.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-26 14:18:30 -04:00
Donald Sharp
647450524c bgpd: Set the ifindex to DELETED after we notify zebra
The code path for a deleted interface was calling
zebra with a IFINDEX_DELETED, which caused zebra
to bitch and moan about the issue.  Since the
only thing this function does is call zebra
to deregister the RA stuff, don't set the
ifindex to DELETED till afterwords.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-26 14:17:35 -04:00
Daniel Walton
6f4d6a15a9 Merge branch 'master' of https://github.com/dwalton76/frr into zebra-debug-packet-detail
Conflicts:
	zebra/debug.c
2017-07-26 18:17:33 +00:00
Daniel Walton
e386c1d575 bgpd: UPDATE may be larger than 4096 if addpath is used
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-26 16:33:39 +00:00
David Lamparter
0d510865ec Merge pull request #842 from qlyoung/update-style-guide
Update COMMUNITY.md
2017-07-26 18:20:17 +02:00
Daniel Walton
1ac79ce8df zebra: static route cleanup
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

- The 'reject' keyword was being lost
- Hide the "ip route A.B.C.D A.B.C.D" config options since these will be
  displayed as "ip route A.B.C.D/X"
2017-07-25 13:24:45 -07:00
Quentin Young
f1423462b1
COMMUNITY.md: rewrap paragraphs, update PR section
* Wrap paragraphs at 80 lines
* Update Github PR section to remove mention of develop branch

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-25 15:53:05 -04:00
Quentin Young
4b8ac525ff COMMUNITY.md: minor grammatical fixes
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-25 15:46:00 -04:00
Quentin Young
a03e352668 COMMUNITY.md: document documentation
Add guidelines for documentation to COMMUNITY.md

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-25 15:45:55 -04:00
Quentin Young
b0ff7312a4 COMMUNITY.md: miscellaneous documentation
Also:
- Add documentation on mailing list
- Update mentions of unit tests
- Update process description

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-25 15:37:21 -04:00
Quentin Young
c545559d4a COMMUNITY.md: s/PROJECT/FRRouting
Also:
* Make headers consistently capitalized
* Some extra backticks where needed

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-25 15:37:21 -04:00
Quentin Young
6058ea8cb1 COMMUNITY.md: update style guide
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-25 15:37:21 -04:00
Daniel Walton
ba9d46ff14 zebra: debug cleanup
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-25 12:07:07 -07:00
Donald Sharp
c6413dd394 Merge pull request #848 from opensourcerouting/rb-tree-fix
Fix corrupted RB trees
2017-07-25 11:11:33 -04:00
David Lamparter
d5eb795965 Merge pull request #847 from donaldsharp/cmd_success
Cmd success
2017-07-25 16:23:48 +02:00
David Lamparter
4ff218ac39 Merge pull request #838 from dwalton76/lib-copy-nexthops
lib: copy_nexthops() only copies the first nexthop
2017-07-25 16:20:08 +02:00
David Lamparter
533450e4b9 Merge pull request #837 from qlyoung/fix-eigrp-routemap-cli
eigrpd, vtysh: add dummy route-map cli
2017-07-25 16:15:54 +02:00
David Lamparter
c8ac4457c0 Merge pull request #836 from dwalton76/zebra-debug-packet-send-detail
zebra: "debug zebra packet" config display
2017-07-25 16:01:40 +02:00
Renato Westphal
145b205177 lib: fix corrupted RB trees
Commit 8f942af90 introduced a bug while silencing a clang warning. Silence
the warning in a different way to fix our red-black tree implementation.

Fixes #841.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-24 18:50:45 -03:00
Renato Westphal
52535beec1 lib: revert reindent of files imported from OpenBSD
We should preserve the original indentation to make it easier to keep
these files in sync with the upstream.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-24 18:40:24 -03:00
Donald Sharp
9c9d843baa ripd: Fix debug config failures
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 16:00:20 -04:00
Donald Sharp
40e344cc4b ripngd: Fix failure returned with some debug commands
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 15:59:36 -04:00
David Lamparter
92690ee649 *: fix git-reindent-branch.py reversing order
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-22 18:00:44 +02:00
David Lamparter
9d303b37d7 Revert "*: reindent pt. 2"
This reverts commit c14777c6bf.

clang 5 is not widely available enough for people to indent with.  This
is particularly problematic when rebasing/adjusting branches.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-22 14:52:33 +02:00
Daniel Walton
8744028312 lib: copy_nexthops() only copies the first nexthop
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

Before the fix NHT had each path resolving via swp1

cel-redxp-10# show ip route 20.0.11.253
Routing entry for 20.0.11.0/24
  Known via "bgp", distance 20, metric 0, best
  Last update 00:00:20 ago
  * 169.254.0.1, via swp1
  * 169.254.0.17, via swp2

cel-redxp-10#

cel-redxp-10# show ip nht
[snip]
20.0.11.253
 resolved via bgp
 via 169.254.0.1, swp1
 via 169.254.0.1, swp1
 Client list: pim(fd 19)

After the fix

cel-redxp-10# show ip nht
[snip]
20.0.11.253
 resolved via bgp
 via 169.254.0.1, swp1
 via 169.254.0.17, swp2
 Client list: pim(fd 19)
2017-07-20 17:11:43 +00:00
David Lamparter
dceb5f8ac7 *: add git-reindent-branch.py
This tries to heave a branch over the reindentation step.  Somewhat
tested, don't trust it blindly...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-20 19:09:56 +02:00
Quentin Young
a72730d34a
eigrpd, vtysh: add dummy route-map cli
eigrpd will successfully accept `(conf)# route-map foo ...` because it
is not sent to eigrpd from vtysh, but of course, this is the classic
node sync syndrome.

Since eigrpd apparently doesn't support proper routemaps yet just add
the cli so we can suppress the vtysh errors.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-20 12:51:57 -04:00
David Lamparter
95b06c0aa5 Merge pull request #834 from dwalton76/ospf6d-show-crash
ospf6d: crash in ospf6_lsdb_show
2017-07-19 22:05:23 +02:00
David Lamparter
9fdcca14ca Merge pull request #835 from dwalton76/lib-route-node-lookup
lib: route_node_lookup() needs to apply_mask() to prefix
2017-07-19 22:03:36 +02:00
Daniel Walton
94c608d636 zebra: "debug zebra packet" config display
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-19 18:20:02 +00:00
Daniel Walton
b37aead99b lib: route_node_lookup() needs to apply_mask() to prefix
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   <qlyoung@cumulusnetworks.com>
2017-07-19 16:54:24 +00:00
Quentin Young
8ed86a5d20 Merge pull request #828 from tigranmartirosyan/master
#752 ARP is not updating if mac address changed on remote side
2017-07-18 12:11:35 -04:00
tmartiro
f26bc77358 Add 1 more identation to correspond to kernel style multi-line comment 2017-07-18 19:06:57 +03:00
Jafar Al-Gharaibeh
04ce08ecd1 Merge pull request #833 from dslicenc/cm16779-bgp-startup-ll
bgpd: fix peer startup for labeled-unicast if linklocal address not f…
2017-07-18 10:46:03 -05:00
Quentin Young
e71d2d641f Merge pull request #827 from devicenull/patch-1
Add note about bridge limitations
2017-07-18 11:41:11 -04:00
Quentin Young
7b47def8cf Merge pull request #805 from Orange-OpenSource/master
Add OSPF API and FRR Hacking documents
2017-07-18 11:34:25 -04:00
Daniel Walton
62d86b87fc ospf6d: crash in ospf6_lsdb_show
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-18 13:19:47 +00:00
Don Slice
e5f22b3036 bgpd: fix peer startup for labeled-unicast if linklocal address not found
Problem found in testing where ipv6 labeled-unicast prefixes were not received
on the peers if a "service networking restart" was issued.  Same problem would
happen with an ifdown/ifup on the link to the peer.  Found the problem to be
that peers would establish for labeled-unicast even if a link-local address was
not yet available on the interface toward the peer, causing updates to be sent
without a nexthop value. These were then rejected by the peer. Fix is to delay
peer establishment until after the link-local addresses are available.

Ticket: CM-16779
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed By: Donald Sharp <sharpd@cumulusnetworks.com>
Testing Done: Manual testing successful.  Bgp-smoke completed with no new failures
2017-07-18 13:09:34 +00:00
tmartiro
d1479ec895 replace space to tabs, add kernel styles multiline, remove trailing whitespaces. 2017-07-18 10:34:21 +03:00
whitespace / reindent
c14777c6bf
*: reindent pt. 2
w/ clang 5

* reflow comments
* struct members go 1 per line
* binpack algo was adjusted
2017-07-17 15:26:02 -04:00