Commit Graph

8065 Commits

Author SHA1 Message Date
David Lamparter
625e016d14 *: remove VTYNL, part 6 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:03 +02:00
David Lamparter
cdda201036 *: remove VTYNL, part 5 of 6
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-14 10:20:03 +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
6b18e3b2e0 ospf6d: VNL -> VTYNL
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
Donald Sharp
07ccdc88ad eigrpd: Fix up some redistribution issues
Get EIGRP to start attempting to redistribute routes
as well as to display the fact it thinks it is redistributed.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-13 18:58:31 -04:00
Donald Sharp
9e9012d7c1 eigrpd: Let eigrp setup it's router-id in some situations
If the router-id is passed up to eigrp before we have
started the instance, allow it to set it up properly
as we start the instance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-13 18:45:20 -04:00
Donald Sharp
d286e5f565 eigrpd: Fixed wrong type used
Recent additions to prefix_copy to check afi type exposed
an issue with eigrp setting the wrong afi type for a `struct prefix`.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-13 18:12:07 -04:00
Donald Sharp
0277c4d712 babeld: Allow babel to redistribute v6 routes
Turn on the ability in babel to receive v6 routes when requested.

robot# show babel route
192.168.201.0/24 metric 0 (exported)
2606:a000:111d:803e::/64 metric 0 (exported)
robot# conf t
robot(config)# int enp3s0
robot(config-if)# ipv6 addr 2404:4000:991d:804c:c32:ee94:742c:4d5/73
robot(config-if)# end
robot# show babel route
192.168.201.0/24 metric 0 (exported)
2606:a000:111d:803e::/64 metric 0 (exported)
2404:4000:991d:804c:c00::/73 metric 0 (exported)
robot#

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-13 17:35:29 -04: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
Quentin Young
ac74942cfb
vtysh: fixup password commands
`password` and `enable password` commands got a bit broken in an earlier
commit, fix 'em up.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-13 15:28:41 -04: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
David Lamparter
83eba583d7 lib: move \n vs. \r\n handling into vty code
Instead of having an ?: expression embedded in every single caller of
vty_out, just expand \n to \r\n in the vty code if neccessary.

(Deprecation warnings will be enabled in the next commits which will do
the search-and-replace over the codebase.)

[This reverts commit 4d5f445 "lib: add vty_outln()"]

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-13 20:29:20 +02:00
David Lamparter
8867927f0e lib: vty: warn when using compatibility macros
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-13 20:29:18 +02:00
David Lamparter
817302b875 *: COMMUNITY.md: compatibility foo & deprecation
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-07-13 20:29:15 +02:00
Daniel Walton
019386c2b8 bgpd: show bgp ipv4 label-unicast does not provide any output
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-13 15:17:15 +00:00
Quentin Young
1a0f614dd2
lib, vtysh: pretty-print variable autocompletions
Pretty-prints variable autocompletions by breaking them up into multiple
lines, indenting them consistently and respecting the column width of
the terminal.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-07-13 10:59:13 -04:00
Olivier Dugeon
3e9b76922a Remove FRR-hacking.md documentation
Content is too old and too many changes are needed to achieved an
up to date documentation

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2017-07-13 16:05:55 +02:00
Donald Sharp
4b8197a4f7 Merge pull request #807 from Jafaral/qua2frr
Find/Replace Quagga/FRR
2017-07-13 10:00:19 -04:00
ßingen
7414ebd6c4 zebra: Fix compilation warning
Signed-off-by: ßingen <bingen@voltanet.io>
2017-07-13 15:09:38 +02:00
ßingen
97ba3968a0 lib, test: Add test case for ALL_NEXTHOPS_RO
Without it, tests were passing before commit 9fb47c0, so a case was
missing (the one which that commit fixes).

Signed-off-by: ßingen <bingen@voltanet.io>
2017-07-13 15:07:12 +02:00
David Lamparter
76ac0fe511 Merge pull request #798 from dwalton76/CMD_RANGE_STR
bgpd: --enable-multipath=256 setting is ignored
2017-07-13 14:58:52 +02:00
David Lamparter
f4b0619dc6 Merge pull request #796 from qlyoung/fix-hash-stats
lib: use 32-bit atomics, s/pow/mul
2017-07-13 14:57:44 +02:00
Donald Sharp
aadc090505 bgpd: Refactor 'struct attr_extra' into 'struct attr'
Most of the attributes in 'struct attr_extra' allow for
the more interesting cases of using bgp.  The extra
overhead of managing it will induce errors as we add
more attributes and the extra memory overhead is
negligible on anything but full bgp feeds.

Additionally this greatly simplifies the code for
the handling of data.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>

bgpd: Fix missing label set

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 15:23:18 -04: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
Donald Sharp
ea3ce9a1a5 bgpd: On cleanup make sure pointers exist
Test cases create fake bgp structure that is passed to
cleanup.  The new evpn code assumed ( and probably rightly so)
that if the bgp structure was created it actually initialized
all useful data structures.  Just make the evpn cleanup
functions be smart about attempting to free memory never
allocated.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-07-12 15:07:54 -04:00
vivek
af0daa50be bgpd: Ensure EVPN next hops are not overriden
Updates: bgpd: Fix next hop setting for EVPN
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-07-12 15:07:54 -04:00
vivek
2d48ee25bb bgpd: Handle change to router id for EVPN
When the BGP router-id changes, EVPN routes need to be processed due
to potential change to their RD.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-07-12 15:07:28 -04:00
vivek
90e60aa7c9 bgpd: Additional configuration for EVPN
Implement configuration options for EVPN. The configuration options include
VNI configuration with RD and Import and Export Route Targets. Also, display
the EVPN configuration.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-12 15:07:27 -04:00
vivek
520d5d768b bgpd: Display (show) commands for EVPN
Implement various operational/display commands for EVPN:
- show bgp evpn summary
- show bgp evpn vni [<vni>]
- show bgp evpn route [type <macip|multicast>]
- show bgp evpn route [rd <rd> [type <macip|multicast>]]
- show bgp evpn route [rd <rd> [mac <mac> [ip <ip>]]]
- show bgp evpn route vni <vni> [type <macip|multicast> | vtep <ip>]
- show bgp evpn route vni <vni> [mac <mac> [ip <ip>]]]
- show bgp evpn route vni <vni> [multicast <ip>]
- show bgp evpn route vni all [vtep <ip>]
- show bgp evpn import-rt

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-07-12 15:04:41 -04:00
vivek
b16031a2ec bgpd: Debug logging updates for EVPN
Ensure VNI and EVPN nexthops are logged in debug logs.

Updates: "bgpd: labeled unicast processing"
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-07-12 14:59:03 -04:00
vivek
11e2785d09 bgpd: MAC Mobility extended community string conversion
Updates: d5b9da8a79cbf2acf287bda2600e86a5a3243c64
Updates: 749513cc9d7bf571b3049931057d544b4111c39d

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-12 14:37:16 -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
vivek
128ea8abbd bgpd: EVPN route handling
Core EVPN route handling functionality. This includes support for the
following:
- interface with zebra to learn about local VNIs and MACIPs as well as
to install remote VTEPs (per VNI) and remote MACIPs
- create/update/delete EVPN type-2 and type-3 routes
- attribute creation, route selection and install
- route handling per VNI and for the global routing table
- parsing of received EVPN routes and handling by route type
- encoding attributes for EVPN routes and EVPN prefix creation (for
Updates)

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-12 14:36:46 -04:00
Jafar Al-Gharaibeh
f9abcf58c4 doc: update a few places to say FRR
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 13:36:25 -05: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
Jafar Al-Gharaibeh
1a8c43f114 tools: update to use FRR name
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 13:26:22 -05:00
Daniel Walton
69ba6dd7c3 bgpd: "set ipv4 vpn next-hop 1.1.1.1" is saved/displayed as "set ip vpn
next-hop 1.1.1.1"

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-07-12 18:02:33 +00:00
Olivier Dugeon
b8b16dc9ce Add OSPF API and FRR Hacking documents
With the help of the WayBackMachine, add old documentation
about the OSPF API and basic Zebra hacking

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2017-07-12 19:18:35 +02:00
Jafar Al-Gharaibeh
9abbae000b gitignore: update references to FRR
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 11:55:04 -05:00
vivek
0ee26848f3 bgpd: Additional check on presence of tag/label
In the case of EVPN, not all EVPN routes will necessarily have a tag/label.
Do an additional check on presence of tag, where needed.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-07-12 12:48:04 -04:00
Christian Franke
6c968614b5 tests: update prng to return better pseudo random numbers
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2017-07-12 18:44:44 +02:00
Jafar Al-Gharaibeh
7c4e6ea920 lib: fix error message to reference FRR
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 11:42:25 -05:00
vivek
5b4168879d lib: Define handlers for VNI and MACIP
Define client handlers for processing add or delete of local VNIs
and local MACIPs.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-07-12 12:39:12 -04:00
vivek
abddf7583c bgpd: Install or remove only relevant routes from zebra
Ensure that the AFI/SAFI is relevant to the FIB before attempting to install
or remove the route from zebra.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-07-12 12:39:11 -04:00
Jafar Al-Gharaibeh
ef8a03ccd1 lib: Change comment to reference watchfrr
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2017-07-12 11:36:47 -05:00
vivek
7724c0a1a7 bgpd: Implement EVPN enable/disable
Implement the command 'advertise-all-vni' under the EVPN address-family
in order to allow the local system to learn about local VNIs (and MACs
and Neighbors corresponding to those VNIs) and exchange with other EVPN
speakers.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:   Dinesh Dutt <ddutt@cumulusnetworks.com>
2017-07-12 12:36:35 -04:00