Commit Graph

2144 Commits

Author SHA1 Message Date
Jafar Al-Gharaibeh
0329ff96a9
Merge pull request #2753 from qlyoung/fix-zebra-shutdown-crash-2
Fix zebra shutdown crash: Round 3
2018-07-31 10:31:55 -05:00
Quentin Young
f3e33b690b zebra: dont delete pthreads from under themselves
* Rename some things to be less confusing
* Convert client close function to take a client struct rather than a
  task
* Extern client close function and use it when handling SIGTERM

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-30 23:06:27 +00: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
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
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
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
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
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
Donald Sharp
0be9d44862
Merge pull request #2607 from pguibert6WIND/complement_fs_patch3
Complement fs patch3
2018-07-26 09:25:35 -04:00
Russ White
4dbd617abd
Merge pull request #2704 from sworleys/Netlink-Nexthop-Hang
zebra: Add check for nexthop loop to prevent hanging
2018-07-24 19:42:11 -04:00
Russ White
32bf84c1cd
Merge pull request #2714 from qlyoung/fix-unused-variable-zserv
zebra: remove unused var in zserv.c
2018-07-24 19:26:13 -04:00
Quentin Young
29cb1b24d1 zebra: remove unused var in zserv.c
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-24 21:01:29 +00:00
Renato Westphal
5d13cd0a93
Merge pull request #2699 from sworleys/Netlink-MTU-Check
zebra: Add check for mtu on netlink RTM_NEWLINK
2018-07-24 17:04:47 -03:00
Stephen Worley
acfa8927f9 Refactor code for new fuzzing netlink flag
Changed the configure flag used by netlink fuzzing
and refactored code accordingly.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-24 13:39:25 -04:00
Russ White
bbc7adf1b4
Merge pull request #2665 from chiragshah6/evpn_dev
bgpd: support evpn nd ext community
2018-07-24 11:55:08 -04:00
Stephen Worley
001c591673 Remove whitespace change in netlink fuzz code
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-24 11:29:32 -04:00
Stephen Worley
758297039c Change log statements to use unsigned format
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-24 11:14:07 -04:00
Christian Franke
1f610a1fb3 zebra: do not ignore ipv6 srcdest routes
Commit a2ca67d1d2 consolidated IPv4 and IPv6 handling. It also applied
our ignorance for IPv4 srcdest routes onto IPv6.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-07-24 14:09:17 +02:00
Philippe Guibert
0b328d3fdb zebra: add information about which port is monitored
Each ipset with port value monitors either src port or dst port.
The information is added to show pbr iptable commmand.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-07-24 12:17:57 +02:00
Philippe Guibert
7929821a81 zebra: show pbr iptable per iptable
Add ability to pass a ip table parameter.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-07-24 12:17:57 +02:00
Stephen Worley
3c04071d99 zebra: Add check for nexthop loop to prevent hanging
Bad nexthop messages from netlink were causing zebra
to hang here. Added a check to verify the length
of the nexthop so it doesn't keep trying to read.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-23 18:51:26 -04:00
Russ White
af9036b76d
Merge pull request #2698 from sworleys/Netlink-Filter-AFI
zebra: Add address family filters
2018-07-23 17:45:44 -04:00
Russ White
59c97d9839
Merge pull request #2697 from mjstapp/routemap_const
libs, daemons: use const in route-map apply
2018-07-23 17:42:04 -04:00
Russ White
57be6296f3
Merge pull request #2646 from AnuradhaKaruppiah/evpn-fixes
zebra: install EVPN gateway MAC as static/sticky
2018-07-23 16:53:34 -04:00
Stephen Worley
adac720d77 Remove not needed filters and fix typos
Some more address family filters we can safely ignore
as well as typos in logger. Added AF_MPLS as filterable.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-23 15:08:37 -04:00
Stephen Worley
930571d24f zebra: Add check for prefix length from kernel messages
Zebra needed a check that varifies the prefix length
of an address is a valid length when receiving route
changes and interface address changes.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-23 14:21:59 -04:00
Renato Westphal
f4f9200dec
Merge pull request #2668 from dslicenc/cm21722-v6-vrf-display
zebra: remove default vrf output for kernel vrf ipv6 blackhole default
2018-07-23 14:56:29 -03:00
Stephen Worley
d23b983bd4 zebra: Add check for mtu on netlink RTM_NEWLINK
Zebra needed a check for mtu from the message it
received from the kernel before adding the new link.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-23 12:17:45 -04:00
Stephen Worley
8a1b681cba zebra: Add address family filters
The zebra netlink socket was attempting to read netlink
messages with invalid address families in a couple areas.
Added filters and warn messages.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-23 12:11:02 -04:00
Stephen Worley
bd7891fd70 Style for Add code for fuzzing netlink
Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-23 11:25:31 -04:00
Mark Stapp
c886868f64 zebra: clean up const use in bsd build
Missed a bsd/routing socket change when enforcing use of const
in some kernel-facing api calls.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-07-23 11:22:14 -04:00
Mark Stapp
123214efb8 libs, daemons: use const in route-map apply
Use 'const prefix *' in route-map apply apis; led to some
corresponding changes in several daemons.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-07-23 10:34:35 -04:00
Stephen Worley
81a2f870dd zebra: Add code for fuzzing netlink
This code allows you to fuzz the netlink listening socket
in zebra by --enable-fuzzing and passing the -w [FILE]
option when running zebra.

File collection is stored in /var/run/frr/netlink_*
where each number is just a counter to keep the
files distinct.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2018-07-21 00:06:38 -04:00
Donald Sharp
86180eeeeb
Merge pull request #2690 from opensourcerouting/fix-srcdest-route-display
zebra: fix do_show_route_helper to include srcdest routes
2018-07-20 01:55:53 -04:00
Donald Sharp
dc7f5a78b5
Merge pull request #2688 from pguibert6WIND/vrf_delete_on_netns_fail
zebra: cancel vrf creation if netns activation failed
2018-07-20 01:54:10 -04:00
Christian Franke
c9591045cc zebra: fix do_show_route_helper to include srcdest routes 2018-07-19 15:16:57 -04:00
Jafar Al-Gharaibeh
d0597b69f9
Merge pull request #2679 from qlyoung/fix-zapi-fuzzing
Fix zapi fuzzing
2018-07-19 10:54:33 -05:00
Philippe Guibert
73899a2f81 zebra: cancel vrf creation if netns activation failed
To keep configuration consistent, vrf that have not been able to be
associated with netns are removed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-07-19 17:52:29 +02:00
Donald Sharp
d1a85fe40d
Merge pull request #2608 from pacovn/PVS-Studio_dead_code_1
eigrpd lib pimd zebra: dead code (PVS-Studio)
2018-07-19 08:50:01 -04:00
Quentin Young
f6b66ba90c zebra: fix some cli option descriptions
Couple typos / clarity fixes.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-18 16:39:20 +00:00
Quentin Young
2875801fa3 zebra: fix zapi fuzzing infra
Some of this stuff got broken with the introduction of pthreads.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-18 16:32:07 +00:00
Philippe Guibert
85a0edcab2 zebra: sometimes, it is not possible to assign a NSID to a vrf
This test case happens in scenarios with mininet, where external netns
may be impossible for the local instance to be modified. The error is
ignored and the netns parsed is ignored too.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-07-18 18:02:46 +02:00
Don Slice
bbde7a0f25 zebra: fix nexthop type check for kernel default route display
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2018-07-18 13:05:50 +00:00
Chirag Shah
68e331515e bgpd: support evpn nd ext community
EVPN ND ext community support NA flag R-bit, to have proxy ND.

Set R-bit in EVPN NA if a given router is default gateway or there is a
local
router attached, which can be determine based on local neighbor entry.

Implement BGP ext community attribute to generate and parse  R-bit and
pass along zebra to program neigh entry in kernel.

Upon receiving MAC/IP update with community type 0x06 and sub_type 0x08,
pass the R-bit to zebra to program neigh entry.

Set NTF_ROUTER in neigh entry and inform kernel to do proxy NA for EVPN.

Ref:
https://tools.ietf.org/html/draft-ietf-bess-evpn-na-flags-01

Ticket:CM-21712, CM-21711
Reviewed By:
Testing Done:
Configure Local vni enabled L3 Gateway, which would act as router,
checked
show evpn arp-cache vni x ip <ip of svi> on originated and remote VTEPs.
"Router" flag is set.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-07-17 13:06:41 -07:00