Commit Graph

1336 Commits

Author SHA1 Message Date
Donald Sharp
baca8cd4d7 zebra: Missing break statement causes crash in zebra
Zebra receiving a macip_del message will automatically call
into the set_master function( a pim function ).  Add missing
break statement

Ticket: CM-16841
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
2017-08-02 20:17:35 -04:00
Donald Sharp
0ecfe5bf38 Merge branch 'master' into PIM_VRF 2017-08-02 09:39:38 -04:00
David Lamparter
f1b32b2e5e build: fix/improve clippy dependencies
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-01 07:09:45 +02:00
David Lamparter
ddfeb48652 build: zebra: remove *_method Makefile hacks
replace with preprocessor checks in source files.  Much simpler...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:30 +02:00
David Lamparter
64d44794fe build: convert zebra/ to non-recursive build
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-31 23:03:30 +02:00
Renato Westphal
00685a85e2 zebra: use DEFPY for static routes
Now we have a single command for IPv4 static routes and another one for
IPv6 static routes (+ one command for IPv4 multicast static routes).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-28 00:46:59 -03:00
Renato Westphal
1d3f0eff59 zebra: unify the ipv4/ipv6 static route functions
Addresses Issue #655.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 23:46:56 -03:00
Renato Westphal
599186ad97 zebra: allow fully specified static ipv4 routes
Fully specified routes are useful when you need to ensure that the
nexthop address is reachable through the specified interface.

Addresses Issue #641.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 23:46:41 -03:00
Renato Westphal
c6cef20ba9 zebra: refactor zebra_static_ipv4() and static_ipv6_func()
This is a preliminary step to join both functions into one later.

The main idea here is to make these functions have separate arguments
for the nexthop address and the nexthop interface, and adjust the call
sites appropriately. Having an argument that could be a nexthop address
OR a nexthop interface was making the code very hard to follow. With
this simplification, a lot of code duplication was removed and now both
functions look very similar.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 23:39:35 -03:00
Renato Westphal
33df4bb219 zebra: accept static v6 routes with non-existent nexthop interfaces
We don't need to enforce that the interface exists because the route can
be activated later once the interface becomes available. We already do
this for IPv4 routes and IPv6 routes with both a nexthop address and a
nexthop interface.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 23:39:27 -03:00
Renato Westphal
d97c792e9f zebra: remove redundant DEFUNs for labeled static routes
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 21:47:23 -03:00
Renato Westphal
8bcbf3b0d7 zebra: remove weird blackhole/reject ipv6 static routes
This is the v6 counterpart of commit 74d263466b.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 21:45:01 -03:00
Renato Westphal
2f8aa457e0 zebra: use curly braces for optional arguments of static routes
This way the optional arguments can be provided in any order.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2017-07-27 21:44:34 -03: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
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
Daniel Walton
ba9d46ff14 zebra: debug cleanup
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-25 12:07:07 -07:00
Donald Sharp
bd8b9272b4 zebra: Convert get_stats to use new kernel interface
Convert the XXX_get_stats functions to use the new
kernel interface.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:52:57 -04:00
Donald Sharp
e0ae31b886 lib, pimd, zebra: Allow pim to set pimregX into appropriate vrf
The pimregX devices when created by the kernel are put into
the default vrf.  When pim gets the callback that the device
exists, check to see if it is a pimregX device and if so
move it into the appropriate vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:39 -04:00
Donald Sharp
43b5cc5ee6 zebra: Allow S,G lookup to use RTNL_FAMILY_IPMR
This current implementation unfortunately must
ask the kernel for all mroutes because vrf's
do not have the ability to request a single
mroute at this time.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:39 -04:00
Donald Sharp
7649a4f60c zebra: Remove strcpy from fast path
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-24 13:51:39 -04: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
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
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
tmartiro
a8a4fa8954 merge with upstream 2017-07-17 17:23:20 +03:00
whitespace / reindent
d62a17aede *: reindent
indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'`

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-17 14:04:07 +02:00
Donald Sharp
2850f0ea58 bgpd, zebra: Cleanup warnings from new code
1) Clean up VTY_NEWLINE -> \n
2) Remove usages of VTY_GET_INTEGER

Signed-off-by: Donald Sharp
2017-07-14 08:52:45 -04:00
Donald Sharp
1ea6b3f237 Merge remote-tracking branch 'origin/master' into evpn_plus_struct_attr 2017-07-14 08:24:46 -04:00
Donald Sharp
da571b7a6c Merge remote-tracking branch 'origin/master' into evpn_plus_struct_attr 2017-07-14 08:11:05 -04:00
Russ White
28bd1c1158 Merge pull request #813 from opensourcerouting/newline-redux
newline redux
2017-07-14 08:00:43 -04:00
Donald Sharp
eef83e96f7 Merge pull request #762 from bingen/mutiple_nh_recursive_levels
Allow for more than 1 NH recursion level
2017-07-14 07:44:02 -04:00
David Lamparter
2d8270596a Merge remote-tracking branch 'frr/master' into newline-redux
Lots of conflicts from CMD_WARNING_CONFIG_FAILED...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 13:07:30 +02:00
David Lamparter
55f70b671f *: remove VTYNL, part 4 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:03 +02:00
David Lamparter
61b7d449bd *: remove VTYNL, part 3 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:03 +02:00
David Lamparter
26a429fe8e *: remove VTYNL, part 2 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:02 +02:00
David Lamparter
6d3c2ed4ed *: remove VTYNL, part 1 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:02 +02:00
David Lamparter
181039f3d7 *: ditch vty_outln(), part 2 of 2
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:19:58 +02:00
Daniel Walton
f1a05de982 vtysh: return non-zero for configuration failures
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

This allows frr-reload.py (or anything else that scripts via vtysh)
to know if the vtysh command worked or hit an error.
2017-07-13 19:56:08 +00:00
David Lamparter
5c7571d43f *: ditch vty_outln(), part 1 of 2
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-13 20:29:22 +02:00
ßingen
7414ebd6c4 zebra: Fix compilation warning
Signed-off-by: ßingen <bingen@voltanet.io>
2017-07-13 15:09:38 +02:00
Donald Sharp
d5424e5356 lib: Fix some defines for older platforms
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 15:07:54 -04:00
vivek
c85c03c7f9 bgpd, zebra: Support for sticky MACs
Implement support for sticky (static) MACs. This includes the following:

- Recognize MAC is static (using NUD_NOARP flag) and inform BGP
- Construct MAC mobility extended community for sticky MACs as per
RFC 7432 section 15.2
- Inform to zebra that remote MAC is sticky, where appropriate
- Install sticky MACs into the kernel with the right flag
- Appropriate handling in route selection

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by:   Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 14:37:14 -04:00
Jafar Al-Gharaibeh
d5b52c7e79 zebra: rename to frrconfdir
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 13:31:13 -05:00
vivek
cec2e17d27 zebra: EVPN/VxLAN UI definitions and handling
Implement various UI (vty) commands for EVPN/VxLAN.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 12:29:27 -04:00
vivek
2232a77c2b zebra: MAC and Neighbor (ARP/ND) handling
Implement handling of MACs and Neighbors (ARP/ND entries) in zebra:
- MAC and Neighbor database handlers
- Read MACs and Neighbors from the kernel, when needed and create
entries in zebra's MAC and Neighbor databases.
- Handle add/update/delete notifications from the kernel for MACs and
Neighbors and update zebra's database appropriately
- Inform locally learnt MACs and Neighbors to client
- Handle MACIP add/delete from client and install appriporiate entries
into the kernel
- Since Neighbor entries will be installed on an SVI, implement the
needed mappings

NOTE: kernel interface is only implemented for Linux/netlink

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 12:29:25 -04:00
Christian Franke
e3054ee94f zebra: prettier format for multilevel-recursive routes
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-07-12 18:28:40 +02:00
Christian Franke
8050720788 zebra: use copy_nexthops in route_entry_copy_nexthops
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-07-12 18:28:05 +02:00
Christian Franke
9fb47c0584 lib,zebra: Fix ALL_NEXTHOPS iterator
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-07-12 18:27:55 +02:00
vivek
4122e25286 zebra: MAC and Neighbor hash table definition
Define the MAC and Neighbor (ARP/ND) data structures. These are maintained
as hash tables against the VNI. Also, define context structures used for
performing various operations on these two tables.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 12:26:04 -04:00