Commit Graph

12193 Commits

Author SHA1 Message Date
Donald Sharp
51c4ed0a0e staticd, zebra: Fix up code warnings
CI found a couple of warnings that needed to be cleaned up.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 13:06:49 -04:00
Donald Sharp
fe64533ad9 lib: Set proper write file when using backup config
When we read in a backup file, we should save the original
host.config so that we can put it back to the correct original
location after we read in the backup config.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
0b70cb101c staticd: Fix crash with NULL si
Move the call to the static_install_route to inside
of the loop, since we have changed the behavior of
how we send down routes to zebra a bit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
8bc8de2c15 staticd: Allow daemon to have backup static routes
Modify staticd to allow it to have backup static routes
with higher admin distance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
40ecd8e46d lib, zebra: Allow protocols to use Distance as part of RR semantics
Allow protocols to specify to zebra that they would like zebra
to use the distance passed down as part of determine sameness for
Route Replace semantics.

This will be used by the static daemon to allow it to have
backup static routes with greater distances.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
8d5cbee91d staticd: Code review comments fixes
1) Conform staticd to proper gnu gpl file format.
2) Fix a spelling mistake found.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
614aa5c166 doc: Add some documentation for staticd
Remove the ip route specific sections from zebra documenation and
create a specific one for the new staticd.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:21 -04:00
Donald Sharp
88a9001659 staticd: Fix recursive routes for certain types of nexthops
Existing NEXTHOP_TYPE_IPV4_IFINDEX and NEXTHOP_TYPE_IPV6_IFINDEX
routes allow recursion, but were broken when the route happened
to recursively resolve and the resolution nexthop changed.

This commit fixes this issue.  Please note that this issue was
in pre-move of static route handling to it's own daemon as well.
This was some easy low-hanging fruit, so to speak.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:26 -04:00
Donald Sharp
9f2982ab69 zebra: Remove zebra_static.c and .h
These are no longer needed so remove.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:26 -04:00
Donald Sharp
ad3489a0d2 staticd: Enable backup config
When the user is not using the integrated config and
has upgraded to a version of FRR with staticd, that
probably means that static routes are stored in zebra.conf.
Take advantage of the backup backup config option and read
those in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:26 -04:00
Donald Sharp
7ac1de8ee0 debianpkg, redhat, tools: Fixup startup/build for new daemon
Add code to allow FRR to properly build and handle the staticd
for some of the more common packaging.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:25 -04:00
Donald Sharp
7e24fdf333 staticd: Start the addition of a staticd
This is the start of separating out the static
handling code from zebra -> staticd.  This will
help simplify the zebra code and isolate static
route handling to it's own code base.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:24 -04:00
Donald Sharp
f23cbcda59 zebra: Allow a static daemon to connect
As part of moving the static route handling to it's own daemon
allow zebra to accept static route types from upper level
protocols.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:27:48 -04:00
Russ White
155d6d4415
Merge pull request #2696 from sworleys/Netlink-Fuzz
zebra: Add code for fuzzing netlink
2018-07-29 08:33:43 -04:00
Russ White
22939e78f1
Merge pull request #2700 from sworleys/Netlink-Prefix-Len-Check
zebra: Add check for prefix length from kernel messages
2018-07-29 08:32:14 -04:00
Russ White
a31f28f9c2
Merge pull request #2728 from donaldsharp/table_cleanup
lib: Add parameter names as a hint of what is expected.
2018-07-29 08:24:38 -04:00
Russ White
ddd4a7a4cc
Merge pull request #2735 from sworleys/Netlink-Next-Fault
zebra: Check for netlink message next fault
2018-07-29 07:58:01 -04:00
Russ White
3688ecb8d9
Merge pull request #2748 from chiragshah6/evpn_dev
zebra: display consistant mac count
2018-07-29 07:53:31 -04:00
Chirag Shah
63ce2ee70c zebra: display consistant mac count
show evpn mac vni all
show evpn mac vni x
does not display local svi and anycast mac into count.

Ticket:CM-20456
Testing Done:

Before:

TOR1# show evpn mac vni 1008
Number of MACs (local and remote) known for this VNI: 4
MAC               Type   Intf/Remote VTEP      VLAN
44:38:39:00:6b:4c local  vlan1008              1008
00:02:00:00:00:04 local  hostbond5             1008
00:02:00:00:00:02 local  hostbond4             1008
00:00:5e:00:01:01 local  vlan1008-v0           1008
00:02:00:00:00:0c remote 27.0.0.15
00:02:00:00:00:0a remote 27.0.0.15
dell-s6000-07#

After:

TOR1# show evpn mac vni 1008
Number of MACs (local and remote) known for this VNI: 6
MAC               Type   Intf/Remote VTEP      VLAN
44:38:39:00:6b:4c local  vlan1008              1008
00:02:00:00:00:04 local  hostbond5             1008
00:02:00:00:00:02 local  hostbond4             1008
00:00:5e:00:01:01 local  vlan1008-v0           1008
00:02:00:00:00:0c remote 27.0.0.15
00:02:00:00:00:0a remote 27.0.0.15

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-07-28 11:23:10 -07:00
Lou Berger
bf7bf2b99c
Merge pull request #2719 from pguibert6WIND/fix_tableno_vrf
zebra: fix missing table identifier passed for ip route vrf commands
2018-07-28 10:42:07 -04:00
Lou Berger
6e6b03c0dc
Merge pull request #2742 from vangheem/master
fix json output when vrf not active
2018-07-28 10:29:10 -04:00
Lou Berger
fdc1996e32
Merge pull request #2746 from chiragshah6/mdev1
bgpd: add keepalive thread name
2018-07-28 10:18:12 -04:00
Lou Berger
f503378408
Merge pull request #2745 from adharkar/frr-filtered_route
bgpd: Show routes filtered by prefix-list in filter-routes command
2018-07-28 10:16:20 -04:00
Chirag Shah
a9198bc1e2 bgpd: add keepalive thread name
Testing Done:

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-07-27 21:04:47 -07:00
Ameya Dharkar
13c8e163fc bgpd: Show routes filtered by prefix-list in filter-routes command
Update:Addressed review comments

Changed "show bgp ipv4 neighbor filtered-routes"
to show routes filtered by prefx lists, distribute lists and filter lists

Closes: #2653

Signed-off-by: Ameya Dharkar adharkar@vmware.com
2018-07-27 11:23:32 -07:00
Lou Berger
729fa7048b
Merge pull request #2743 from donaldsharp/bgp_null_stuff
Put back some removed Code
2018-07-27 12:45:08 -04:00
Nathan Van Gheem
ec1db5882d lib,zebra: fix json output when vrf1 when not active
When I did a show ip route with `json` on a vrf when it didn't exist,
frr would output invalid json.

Signed-off-by: Nathan Van Gheem <nathan@cumulusnetworks.com>
2018-07-27 10:17:03 -04:00
Donald Sharp
239b37bb3c bgpd: Notice when we unlock if we should NULL pointer
The bi->net pointer that is being unlocked had a commit
that removed the `bi->net = NULL;` recently.  This code
was preventing a use after free crash being experienced
in other code paths.  While commit 37e679629f was fixing
a different code path crash.

Make the parent->net pointer aware it may be locked/freed
from multiple places and to not NULL the pointer to it
unless we have actually freed the data.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-27 10:02:34 -04:00
Donald Sharp
563f0c2b2d lib: Modify route unlock code to return appropriate pointer
Modify the unlock code for a route_node to return NULL on
pointer freed or to return the node itself again.

We'll need to go through the code and fix this pattern,
but this is a problem for another day.  Get this fix in
place and we can make it a low hanging problem to fix.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-27 09:54:39 -04:00
Russ White
298de6ef18
Merge pull request #2708 from ton31337/feature/default-originate_apply_route-maps
bgpd: Set attributes according route-maps if applied for default-originate
2018-07-27 09:05:43 -04:00
Russ White
282d51c6be
Merge pull request #2737 from vishaldhingra/master
bgpd: changes for crash seen in BGP on "no rt vpn" bug Id 2667
2018-07-27 09:05:00 -04:00
Philippe Guibert
521191140d zebra: fix missing table identifier passed for ip route vrf commands
The parameter was missing in that vty command. Then it is being added.
Also some documentation is refreshed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-07-27 08:42:14 +02:00
vishaldhingra
38f423be4e
Merge pull request #1 from vishaldhingra/bug_fix
bgpd: changes for crash seen in BGP on "no rt vpn" bug Id 2667
2018-07-27 10:07:33 +05:30
Donatas Abraitis
74401e6272 bgpd: Set attributes according route-maps if applied for default-originate 2018-07-27 07:19:30 +03:00
Russ White
7e9c591278
Merge pull request #2729 from qlyoung/doc-misc-bgp-fixes
doc: misc bgp.rst fixes
2018-07-26 22:32:40 -04:00
Ameya Dharkar
f99def6130 bgpd: Show routes filtered by prefix-list in filter-routes command
Changed "show bgp ipv4 neighbor <peer> filtered-routes"
to show routes filtered by prefx lists, distribute lists and filter lists

Closes: #2653

Signed-off-by: Ameya Dharkar adharkar@vmware.com
2018-07-26 14:48:05 -07:00
Stephen Worley
e6a0e0d141 zebra: Check for netlink message next fault
NLMSG_NEXT decrements the buffer length (status) by
the header msg length (nlmsg_len) everytime its called.
If nlmsg_len isn't accurate and set to be larger than
what it should represent, it will cause status to
decrement passed 0. This makes NLMSG_NEXT return a
pointer that references an inaccessible address.
When that is passed to NLMSG_OK, it segfaults.

Add a check to verify that there is still something to read
before we try to.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-26 16:46:57 -04:00
Stephen Worley
2e2b0fb3c2
Merge branch 'master' into Netlink-Prefix-Len-Check 2018-07-26 15:34:56 -04:00
Stephen Worley
e17d9b2dfe zebra: Make prefix length check return error
Prefix length validation checks should be returning an error
rather than 0. Switch to that and make them error messages.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-26 15:10:53 -04:00
Stephen Worley
29bf7b0b67 Style, don't initialize netlink_read flag
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-26 14:34:28 -04:00
Stephen Worley
ef593eff00 zebra: Make fuzzer code use default netlink socket
Change the fuzzing code so that it fakes data from
the listening socket rather than using its own pseudo one.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-26 14:32:50 -04:00
Jafar Al-Gharaibeh
4b22e6bc05
Merge pull request #2727 from donaldsharp/pim_jp_lollipops
pimd: RPT Prunes do not need to be figured for a *,G Prune
2018-07-26 10:18:39 -05:00
Donald Sharp
0be9d44862
Merge pull request #2607 from pguibert6WIND/complement_fs_patch3
Complement fs patch3
2018-07-26 09:25:35 -04:00
Jafar Al-Gharaibeh
c11b11d566
Merge pull request #2681 from qlyoung/doc-cleanup-rpki
doc: cleanup rpki.rst
2018-07-25 17:04:02 -05:00
Lou Berger
b77da155be
Merge pull request #2662 from donaldsharp/tests
Tests
2018-07-25 17:53:05 -04:00
Quentin Young
c0868e8b2a doc: misc bgp.rst fixes
* Clean up command stubs
* Document `disable-connected-check`
* Add markup
* Clarify section on autonomous systems
* Rewrap line to 80 characters
* Fix typos
* Fix grammar

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-25 20:02:08 +00:00
Donald Sharp
e070029078 lib: Add parameter names as a hint of what is expected.
Add some parameter names to functions in table.h to give a
clue as to what we expect people to pass in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-25 15:16:02 -04:00
Donald Sharp
ccc34deb38 tests: Let compiler know this was an intentionall fallthrough
Let the compiler know that this code intentionally fell
through to the next case statement in a switch.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-25 15:00:52 -04:00
Donald Sharp
9fc8a332b1 tests: Prevent weird type promotion objection in bgp tests
The va_start function cannot take a object that can be type promoted
Looks like a new warning coming in from a new compiler.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-25 14:50:29 -04:00
Donald Sharp
e3c5f7b689 tests: Fix const change
Some of the parameters for lib/srcdest.. have changed to
consts, make the test cases respect that.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-25 14:50:29 -04:00