]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
7 years agobgpd: add `no set ip next-hop unchanged`
Quentin Young [Thu, 10 Aug 2017 16:55:32 +0000 (12:55 -0400)]
bgpd: add `no set ip next-hop unchanged`

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agolib, bgpd: fix `set ip next-hop peer-address`
Quentin Young [Thu, 10 Aug 2017 16:31:47 +0000 (12:31 -0400)]
lib, bgpd: fix `set ip next-hop peer-address`

This bgp-specific command had its positive form defined only in bgpd and
its negative form defined only in lib, which broke the whole rule for
other daemons.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge pull request #941 from dwalton76/bgpd-peer-group-rebind
David Lamparter [Thu, 10 Aug 2017 06:19:33 +0000 (08:19 +0200)]
Merge pull request #941 from dwalton76/bgpd-peer-group-rebind

bgpd: do not bounce peer when re-binding to current peer-group

7 years agoMerge pull request #938 from LabNConsulting/working/master/patch/pr784-partial-backout
Jafar Al-Gharaibeh [Thu, 10 Aug 2017 04:42:39 +0000 (23:42 -0500)]
Merge pull request #938 from LabNConsulting/working/master/patch/pr784-partial-backout

configure: restore support for --with-rfp-path= broken by PR784

7 years agoconfigure: restore support for --with-rfp-path= broken by PR784
Lou Berger [Wed, 9 Aug 2017 15:56:58 +0000 (11:56 -0400)]
configure: restore support for --with-rfp-path= broken by PR784
   - revised per equinox

7 years agoMerge branch 'frr/pull/822' ("EVPN fixes")
David Lamparter [Wed, 9 Aug 2017 19:34:10 +0000 (21:34 +0200)]
Merge branch 'frr/pull/822' ("EVPN fixes")

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #926 from opensourcerouting/tcp-zebra
Donald Sharp [Wed, 9 Aug 2017 18:43:48 +0000 (14:43 -0400)]
Merge pull request #926 from opensourcerouting/tcp-zebra

remove `--enable-tcp-zebra`

7 years agoMerge pull request #940 from qlyoung/hashtable-expansion-lf
David Lamparter [Wed, 9 Aug 2017 18:43:40 +0000 (20:43 +0200)]
Merge pull request #940 from qlyoung/hashtable-expansion-lf

lib: use load factor as hash expansion trigger

7 years agoMerge remote-tracking branch 'frr/master' into tcp-zebra
David Lamparter [Wed, 9 Aug 2017 18:42:27 +0000 (20:42 +0200)]
Merge remote-tracking branch 'frr/master' into tcp-zebra

7 years agoMerge pull request #911 from opensourcerouting/non-recursive-2
Donald Sharp [Wed, 9 Aug 2017 18:38:07 +0000 (14:38 -0400)]
Merge pull request #911 from opensourcerouting/non-recursive-2

more non-recursive build, fix cross-compile, & doc build mangling

7 years agoMerge pull request #892 from opensourcerouting/watchfrr-simplify
Donald Sharp [Wed, 9 Aug 2017 18:32:44 +0000 (14:32 -0400)]
Merge pull request #892 from opensourcerouting/watchfrr-simplify

simplify watchfrr, add --terminal, improve startup logging

7 years agolib: some final MAC access-list fixes
David Lamparter [Wed, 9 Aug 2017 18:30:34 +0000 (20:30 +0200)]
lib: some final MAC access-list fixes

- couldn't load back written configs because it was trying to parse
  "any" as MAC address
- don't need special-casing in filter_match_zebra(), exact is going to
  be 0 for AF_ETHERNET anyway
- some vty formatting was slightly different
- is_zero_mac now static to prefix.c

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #942 from lunn/eigrpd-debug
Quentin Young [Wed, 9 Aug 2017 17:59:48 +0000 (13:59 -0400)]
Merge pull request #942 from lunn/eigrpd-debug

eigrpd: Add missing install_element for debug eigrp transmit

7 years agoMerge pull request #944 from qlyoung/ignore-disrtamp
David Lamparter [Wed, 9 Aug 2017 17:55:20 +0000 (19:55 +0200)]
Merge pull request #944 from qlyoung/ignore-disrtamp

*: ignore .dirstamp

7 years agolib: use load factor as hash expansion trigger
Quentin Young [Wed, 9 Aug 2017 15:57:13 +0000 (11:57 -0400)]
lib: use load factor as hash expansion trigger

Previous strategy was to resize the hash table when the length of any
one bucket exceeded a certain size, with some logic for intelligently
stopping resizes when the gains from doing so weren't sufficient. While
this was a good idea that attempted to optimize both space and lookup
time, unfortunately under transient degenerate conditions this led to
some issues with the tables not resizing when they should have,
harming performance. The resizing restriction was lifted, but this had
the result of exacerbating degenerate behavior and caused out of memory
conditions.

This patch changes the hash expansion criterion to be based on the
number of elements in the table. Once the # of elements in the table
exceeds the number of buckets, the table size is doubled. While the
space efficiency of this method decreases relative to the perfectness of
the hash function, at least this strategy puts the table performance
squarely in the hands of the hash function.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years ago*: ignore .dirstamp
Quentin Young [Wed, 9 Aug 2017 17:48:31 +0000 (13:48 -0400)]
*: ignore .dirstamp

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge pull request #883 from daveolson53/master
David Lamparter [Wed, 9 Aug 2017 17:29:16 +0000 (19:29 +0200)]
Merge pull request #883 from daveolson53/master

Switch to using syslog for logging as the default

7 years agoeigrpd: Add missing install_element for debug eigrp transmit
Andrew Lunn [Wed, 9 Aug 2017 16:56:13 +0000 (11:56 -0500)]
eigrpd: Add missing install_element for debug eigrp transmit

debug eigrp transmit command is added to the ENABLE_NODE list, but not
CONFIG_NODE. As a result the command cannot be used in the
configuration file. Add the missing call.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
7 years agobgpd: do not bounce peer when re-binding to current peer-group
Daniel Walton [Wed, 9 Aug 2017 16:47:05 +0000 (20:47 +0400)]
bgpd: do not bounce peer when re-binding to current peer-group

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
7 years agobgpd: do not bounce peer when re-binding to current peer-group
Daniel Walton [Wed, 9 Aug 2017 16:04:55 +0000 (20:04 +0400)]
bgpd: do not bounce peer when re-binding to current peer-group

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
7 years agoMerge branch 'stable/3.0'
David Lamparter [Wed, 9 Aug 2017 12:35:17 +0000 (14:35 +0200)]
Merge branch 'stable/3.0'

... with a lot of fixups.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge branch 'stable/3.0' into tmp-3.0-master-merge
David Lamparter [Wed, 9 Aug 2017 11:13:01 +0000 (13:13 +0200)]
Merge branch 'stable/3.0' into tmp-3.0-master-merge

Marker (--strategy=ours) merge to record which point in history master
is in sync with related to stable/3.0.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: fix pseudowire code re. upstream changes
David Lamparter [Wed, 9 Aug 2017 10:37:45 +0000 (12:37 +0200)]
zebra: fix pseudowire code re. upstream changes

- VTY_NEWLINE is out
- thread API changed with the extra arg
- struct rib got renamed to struct route_entry
- MPLS_NO_LABEL was removed
- RB-tree implementation has some extra args

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: add support for static pseudowires
Renato Westphal [Tue, 1 Aug 2017 23:16:28 +0000 (20:16 -0300)]
zebra: add support for static pseudowires

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agorelease: FRR 3.0-rc1 frr-3.0-rc1
David Lamparter [Wed, 9 Aug 2017 10:56:09 +0000 (12:56 +0200)]
release: FRR 3.0-rc1

7 years agoldpd: fix missing label mappings
Renato Westphal [Thu, 6 Jul 2017 03:46:34 +0000 (00:46 -0300)]
ldpd: fix missing label mappings

In some scenarios, it's possible to send a Label Withdraw to a neighbor
and not receive a corresponding Label Release right away. This can happen
during reconvergence after a network failure or configuration change.

When this happens, the list of upstream mappings of a given FEC might
not be empty even after sending a Label Withdraw to all neighbors. This
situation holds until all neighbors either send a Label Release or are
torn down (e.g. keepalive timeout).

With that said, we shouldn't check for 'RB_EMPTY(&fn->upstream)'
in lde_kernel_update() because it can prevent ldpd from sending label
mappings in such circumstances. This check was introduced to avoid sending
the same label mapping more than once to the same neighbor, but we need
to remove this optimization for now until we find a better solution (which
probably involves refactoring the whole zebra<->ldpd communication).

While here, add a new debug message in lde_send_labelmapping() which
can aid in troubleshooting label problems in the future.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra: add support to openbsd's mpw(4) for pseudowires
Renato Westphal [Fri, 30 Jun 2017 15:18:21 +0000 (12:18 -0300)]
zebra: add support to openbsd's mpw(4) for pseudowires

Thanks to rzalamena@ for writing mpw(4) :)

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoldpd: integrate with the pseudowire manager in zebra
Renato Westphal [Fri, 30 Jun 2017 15:19:39 +0000 (12:19 -0300)]
ldpd: integrate with the pseudowire manager in zebra

If we receive a notification from zebra indicating that the installation
of a pseudowire has failed (e.g. no reachability), send a PW Status
notification to the remote peer (or a Label Withdraw if the remote peer
doesn't support the PW Status TLV).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra: add new flag to detect nexthop label updates
Renato Westphal [Thu, 8 Jun 2017 23:29:12 +0000 (20:29 -0300)]
zebra: add new flag to detect nexthop label updates

With the introduction of the pseudowire manager, the NHT tracking code
needs to detect label updates as well.

Create a specific nexthop flag for that. We can't reuse the
RIB_ENTRY_NEXTHOPS_CHANGED flag for this porpose because this flag is
always cleared and reevaluated in rib_process(), setting it outside that
function is a nop.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra: add nexthop tracking for pseudowires
Renato Westphal [Fri, 30 Jun 2017 15:26:04 +0000 (12:26 -0300)]
zebra: add nexthop tracking for pseudowires

If the remote end of a pseudowire becomes unreachable (no route or an
unlabeled route), then it must be uninstalled. In the same way, when
the remote end becomes reachable, the pseudowire must be installed.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra: add pseudowire manager
ßingen [Mon, 15 May 2017 15:09:28 +0000 (17:09 +0200)]
zebra: add pseudowire manager

Base framework for supporting MPLS pseudowires in FRR.

A consistent zserv interface is provided so that any client daemon
(e.g. ldpd, bgpd) can install/uninstall pseudowires in a standard
way. Static pseudowires can also be implemented by using the same
interface.

When zebra receives a request to install a pseudowire and the installation
in the kernel or hardware fails, a notification is sent back to the
client daemon and a new install attempt is made every 60 seconds (until
it succeeds).

Support for external dataplanes is provided by the use of hooks to
install/uninstall pseudowires.

Signed-off-by: ßingen <bingen@voltanet.io>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra: add implicit-null labels to the rib
Renato Westphal [Tue, 6 Jun 2017 01:48:10 +0000 (22:48 -0300)]
zebra: add implicit-null labels to the rib

Implicit-null labels are never installed in the FIB but we need to keep
track of them because of L2/L3 VPN nexthop resolution.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agoMerge commit '78986c0' into tmp-3.0-master-merge
David Lamparter [Wed, 9 Aug 2017 10:09:04 +0000 (12:09 +0200)]
Merge commit '78986c0' into tmp-3.0-master-merge

Marker (--strategy=ours) merge to record which point in history master
is in sync with related to stable/3.0.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoospf: Fix segfault if compiled with DEBUG
ßingen [Tue, 1 Aug 2017 09:38:19 +0000 (11:38 +0200)]
ospf: Fix segfault if compiled with DEBUG

If OSPF_LS_REFRESH_TIME is 60, min_delay in ospf_refresher_register_lsa
function (ospf_lsa.c) would be negative, so index (which is unsigned)
would be out of range, causing a segfault.

Signed-off-by: ßingen <bingen@voltanet.io>
7 years agoospf6: Fix DEBUG compiling error
ßingen [Tue, 1 Aug 2017 09:34:15 +0000 (11:34 +0200)]
ospf6: Fix DEBUG compiling error

struct ospf6_lsa doesn't have next nor prev, so it was raising a
compiling error if DEBUG is set.

Signed-off-by: ßingen <bingen@voltanet.io>
7 years agoldpd: fix bug with dual-stack neighbors
Renato Westphal [Mon, 24 Jul 2017 21:57:20 +0000 (18:57 -0300)]
ldpd: fix bug with dual-stack neighbors

We were assuming that a neighbor can be deleted only when all of its
adjacencies are dead. This is not the case for dual-stack neighbors. If
the transport-preference is IPv4 and all adjacencies are IPv6 (or
vice-versa), then it should be deleted and everything cleaned-up
accordingly.

Bug exposed by the new RB tree implementation on master, but the fix
also applies to stable/3.0.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years agozebra: fetch interface speed on *BSD
Renato Westphal [Fri, 21 Jul 2017 18:09:58 +0000 (15:09 -0300)]
zebra: fetch interface speed on *BSD

Fixes #407 for FreeBSD and NetBSD.

OpenBSD uses ioctl to fetch interface information on startup and the
SIOCGIFMEDIA command is just too cumbersome to use.

The best way to fix the problem for OpenBSD is probably to stop treating
it differently from the other BSDs for no apparent reason.  There should
be nothing preventing us to make OpenBSD use the routing socket to fetch
interface information on startup (we already do it to detect runtime
changes). This is something that should be done in a separate commit
after a careful analysis.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
7 years ago*: reindent reindent-3.0-after
whitespace / reindent [Wed, 9 Aug 2017 09:49:42 +0000 (11:49 +0200)]
*: reindent

indent.py `git ls-files | pcregrep '\.[ch]$' | pcregrep -v '^(ldpd|babeld|nhrpd)/'`

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agowatchfrr: print specific error for removed options
David Lamparter [Wed, 9 Aug 2017 09:28:22 +0000 (11:28 +0200)]
watchfrr: print specific error for removed options

... and document them in the man page.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agowatchfrr: remove STATEDIR preprocessor define
David Lamparter [Wed, 2 Aug 2017 08:46:01 +0000 (10:46 +0200)]
watchfrr: remove STATEDIR preprocessor define

use frr_vtydir from libfrr instead.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agolib: don't mkdir state paths in watchfrr
David Lamparter [Thu, 3 Aug 2017 04:02:45 +0000 (06:02 +0200)]
lib: don't mkdir state paths in watchfrr

watchfrr doesn't know if there will be -u/-g options on the individual
daemons, so it doesn't know what the appropriate ownership is.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agolib: thoroughly disable tcp-zebra
David Lamparter [Tue, 8 Aug 2017 18:11:10 +0000 (20:11 +0200)]
lib: thoroughly disable tcp-zebra

Disable this in the code to make it hard for people to shoot themselves
in the foot.  It's only left as a remnant for development use.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #930 from qlyoung/fix-masters-list-reachable
Lou Berger [Tue, 8 Aug 2017 17:58:06 +0000 (13:58 -0400)]
Merge pull request #930 from qlyoung/fix-masters-list-reachable

lib: fix still reachable linked list in thread.c

7 years agoMerge pull request #920 from opensourcerouting/static-routes-ifindex-update-3.0 reindent-3.0-before
Donald Sharp [Tue, 8 Aug 2017 17:39:38 +0000 (13:39 -0400)]
Merge pull request #920 from opensourcerouting/static-routes-ifindex-update-3.0

[3.0] fixup static routes' ifindexes when interfaces (dis)appear

7 years agoMerge pull request #919 from opensourcerouting/static-routes-ifindex-update
Donald Sharp [Tue, 8 Aug 2017 17:39:19 +0000 (13:39 -0400)]
Merge pull request #919 from opensourcerouting/static-routes-ifindex-update

fixup static routes' ifindexes when interfaces (dis)appear

7 years agolib, bgpd: Use 'struct prefix *' for filter matching
Donald Sharp [Fri, 4 Aug 2017 19:55:44 +0000 (15:55 -0400)]
lib, bgpd: Use 'struct prefix *' for filter matching

There is no need for special casing of mac addresses,
since the mac address is it's own type integrated
into `struct prefix` now.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: fix still reachable linked list in thread.c
Quentin Young [Tue, 8 Aug 2017 16:54:28 +0000 (12:54 -0400)]
lib: fix still reachable linked list in thread.c

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agolib, bgpd: Distinguish between AF_EVPN and AF_ETHERNET
Donald Sharp [Tue, 8 Aug 2017 14:16:12 +0000 (10:16 -0400)]
lib, bgpd: Distinguish between AF_EVPN and AF_ETHERNET

Create AF_EVPN for internal use and start using it.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
7 years agolib, bgpd: Address Review comments.
Donald Sharp [Thu, 27 Jul 2017 16:31:54 +0000 (12:31 -0400)]
lib, bgpd: Address Review comments.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agobgpd: Use JSON_STR
Donald Sharp [Tue, 25 Jul 2017 12:18:20 +0000 (08:18 -0400)]
bgpd: Use JSON_STR

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoldpd: Use JSON_STR
Donald Sharp [Tue, 25 Jul 2017 12:17:55 +0000 (08:17 -0400)]
ldpd: Use JSON_STR

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agozebra: Use JSON_STR
Donald Sharp [Tue, 25 Jul 2017 12:17:31 +0000 (08:17 -0400)]
zebra: Use JSON_STR

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agolib: Fix extra doc string
Donald Sharp [Sat, 15 Jul 2017 18:15:13 +0000 (14:15 -0400)]
lib: Fix extra doc string

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agobgp: fix match mac address/match evpn vni commands
Mitesh Kanjariya [Wed, 12 Jul 2017 21:55:22 +0000 (14:55 -0700)]
bgp: fix match mac address/match evpn vni commands

Ticket: CM-17071
Review: CCR-6454
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agolib: changes needed for mac access-list any command
Mitesh Kanjariya [Wed, 12 Jul 2017 21:27:24 +0000 (14:27 -0700)]
lib: changes needed for mac access-list any command

Ticket: CM-17074
Review: CCR-6453
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agozebra: zebra should not try and advertise gateway macip if EVPN is disabled
Mitesh Kanjariya [Wed, 12 Jul 2017 21:09:36 +0000 (14:09 -0700)]
zebra: zebra should not try and advertise gateway macip if EVPN is disabled

Ticket: CM-17050
Review: CCR-6447
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agobgpd: BGP should not ignore the VNI add notification if it is not live currently
Mitesh Kanjariya [Wed, 12 Jul 2017 20:44:02 +0000 (13:44 -0700)]
bgpd: BGP should not ignore the VNI add notification if it is not live currently

Ticket: CM-17053
Review: CCR-6446
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agozebra: Guard debugs in interface speed check
Donald Sharp [Fri, 7 Jul 2017 13:45:15 +0000 (09:45 -0400)]
zebra: Guard debugs in interface speed check

Not being able to get the interface speed is a common
occurrence for some interface types.  Convert this
these outputs to a guarded debug.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agobgpd: Fix output of interface based 'show bgp ..' commands
Donald Sharp [Fri, 7 Jul 2017 13:08:25 +0000 (09:08 -0400)]
bgpd: Fix output of interface based 'show bgp ..' commands

When issuing a 'show ip bgp' command and the nexthop is
a interface, if the interface name was greater than 7 characters
we would arbitrarily start a new-line and setup the next
line to start at the wrong spot.

Modify the interface field to allow 16 characters than 7( to
match v6 display ), and if the interface name is greater than
16 characters properly setup the next line for display

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agobgpd: show bgp ipv4 label-unicast does not provide any output
Daniel Walton [Thu, 6 Jul 2017 23:47:15 +0000 (23:47 +0000)]
bgpd: show bgp ipv4 label-unicast does not provide any output

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-16957

7 years agobgpd/zebra: honor tunnel ip change in bgp regardless of vni readiness
Mitesh Kanjariya [Thu, 6 Jul 2017 23:33:50 +0000 (16:33 -0700)]
bgpd/zebra: honor tunnel ip change in bgp regardless of vni readiness

Ticket: CM-17014
Review: CCR-6432
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agozebra: Provide neigh-mac tie-in in zebra
Mitesh Kanjariya [Wed, 5 Jul 2017 22:03:14 +0000 (15:03 -0700)]
zebra: Provide neigh-mac tie-in in zebra

Currently, FRR does not do any linking between local MACs and neighbors.
We found this necessary when dealing with centralized GW. A neigh is considered local only when the mac is learnt locally as well.

Ticket: CM-16544
Review: CCR-6388
Unit-test: Manual/Evpn-Smoke

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agoEVPN: Indentation is off for route-target export
Daniel Walton [Fri, 30 Jun 2017 13:29:37 +0000 (13:29 +0000)]
EVPN: Indentation is off for route-target export

Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Ticket: CM-16967

7 years agobgpd: fix crash while configuring rt
Mitesh Kanjariya [Thu, 29 Jun 2017 21:16:49 +0000 (14:16 -0700)]
bgpd: fix crash while configuring rt

Ticket: CM-16410
Review: CCR-6409
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agozebra: Enable JSON for EVPN show cmds
Chirag Shah [Wed, 21 Jun 2017 23:37:51 +0000 (16:37 -0700)]
zebra: Enable JSON for EVPN show cmds

Ticket: CM-16959
Reviewed By: CCR-6401
Testing Done:
Execute 'show evpn .... json' form of outputs with local/remote vteps

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
7 years agozebra: Fix some memory leaks on shutdown
Donald Sharp [Thu, 29 Jun 2017 13:45:18 +0000 (09:45 -0400)]
zebra: Fix some memory leaks on shutdown

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agobgpd, tools, vtysh: Handle config migration from 'address-family evpn' to 'address...
Daniel Walton [Wed, 28 Jun 2017 18:30:36 +0000 (11:30 -0700)]
bgpd, tools, vtysh: Handle config migration from 'address-family evpn' to 'address-family l2vpn evpn'

Ticket: CM-16747
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agobgpd/zebra/lib: EVPN support for asymmetric VxLan routing
Mitesh Kanjariya [Wed, 28 Jun 2017 08:51:10 +0000 (01:51 -0700)]
bgpd/zebra/lib: EVPN support for asymmetric VxLan routing

1. Advertise gateway mac-ip in EVPN
2. Advertise VRR mac-ip in EVPN
3. Ignore gateway mac-ip advertisements in case of distributed gateway
4. Config knob to enable/disable gateway mac-ip advertisements

Ticket: CM-16456, CM-16543, CM-16555, CM-16778
Review: CCR-6283
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agoMerge pull request #927 from donaldsharp/one_day_second
David Lamparter [Tue, 8 Aug 2017 14:19:29 +0000 (16:19 +0200)]
Merge pull request #927 from donaldsharp/one_day_second

*: Define the number of seconds in a Day, Week and year

7 years agozebra: fix mac mobility code path
Mitesh Kanjariya [Tue, 27 Jun 2017 00:55:55 +0000 (17:55 -0700)]
zebra: fix mac mobility code path

Ticket: CM-16928
Review: CCR-6210
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agozebra: update sticky mac attribute to BGP if necessary
Mitesh Kanjariya [Wed, 21 Jun 2017 21:25:39 +0000 (14:25 -0700)]
zebra: update sticky mac attribute to BGP if necessary

Ticket: CM-16732
Review: CCR-6368
Unit-test: Manual (logs attached to ticket)

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agobgpd/zebra: fix bgpd crash happening in mac mobility code path
Mitesh Kanjariya [Wed, 21 Jun 2017 19:55:29 +0000 (12:55 -0700)]
bgpd/zebra: fix bgpd crash happening in mac mobility code path

Ticket: CM-16216
Review: CCR-6210
Unit-test: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agobgpd: Fix evpn help strings
Donald Sharp [Wed, 21 Jun 2017 15:14:24 +0000 (11:14 -0400)]
bgpd: Fix evpn help strings

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
7 years agobgpd: Added support for vni filtering
Mitesh Kanjariya [Wed, 21 Jun 2017 09:00:24 +0000 (02:00 -0700)]
bgpd: Added support for vni filtering

1. provision to add match clause with a vni under route-map

Ticket: CM-16349
Review: CCR-6190
Unit-test: Manual (logs attached to ticket)

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agobgpd, lib, vtysh: Added support for mac filtering in route-maps
Mitesh Kanjariya [Wed, 21 Jun 2017 08:02:46 +0000 (01:02 -0700)]
bgpd, lib, vtysh: Added support for mac filtering in route-maps

1. Added support to create mac filters
2. Enabled route-map commands for EVPN address family
3. Provision to add mac filters under match clause in route-maps

Ticket: CM-16349
Review: CCR-6190
Unit-test: Manual (logs attached to ticket)

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
7 years agobgpd: Fix incorrect AFI reference
vivek [Wed, 14 Jun 2017 02:12:10 +0000 (19:12 -0700)]
bgpd: Fix incorrect AFI reference

Fixes: "bgpd: Fixes related to use of L2VPN/EVPN"
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
7 years agobgpd: Update EVPN operational commands
vivek [Thu, 8 Jun 2017 05:43:19 +0000 (22:43 -0700)]
bgpd: Update EVPN operational commands

Make EVPN operational commands follow the "<afi> <safi>" syntax.
The relevant commands are:
- show bgp l2vpn evpn summary
- show bgp l2vpn evpn vni ...
- show bgp l2vpn evpn route ...
- show bgp l2vpn evpn route vni ...
- show bgp l2vpn evpn import-rt

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
7 years agobgpd: Fix nexthop for labeled-unicast
vivek [Wed, 7 Jun 2017 05:12:39 +0000 (22:12 -0700)]
bgpd: Fix nexthop for labeled-unicast

A prior change broke the nexthop setting for labeled-unicast
address-family in a RFC-5549 scenario (IPv4 prefixes exchanged
with IPv6 next hops). This commit fixes the issue.

Fixes: "bgpd: Fix next hop setting for EVPN"
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
7 years ago*: Define the number of seconds in a Day, Week and year
Donald Sharp [Tue, 8 Aug 2017 12:24:17 +0000 (08:24 -0400)]
*: Define the number of seconds in a Day, Week and year

The defines:

ONE_DAY_SECOND
ONE_WEEK_SECOND
ONE_YEAR_SECOND

were being defined all over the system, move the
define to a central location.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
7 years agoMerge pull request #783 from opensourcerouting/pw-manager-2
Donald Sharp [Tue, 8 Aug 2017 11:54:32 +0000 (07:54 -0400)]
Merge pull request #783 from opensourcerouting/pw-manager-2

Add Pseudowire management in Zebra

7 years ago*: remove --enable-tcp-zebra, rework ZAPI path
David Lamparter [Sun, 6 Aug 2017 05:35:50 +0000 (07:35 +0200)]
*: remove --enable-tcp-zebra, rework ZAPI path

This adds "@tcp" as new choice on the -z option present in zebra and the
protocol daemons.  The --enable-tcp-zebra option on configure is no
longer needed, both UNIX and TCP socket support is always available.

Note that @tcp should not be used by default (e.g. in an init script),
and --enable-tcp-zebra should never have been in any distro package
builds, because

**** TCP-ZEBRA IS A SECURITY PROBLEM ****

It allows arbitrary local users to mess with the routing table and
inject bogus data -- and also ZAPI is not designed to be robust against
attacks.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #924 from qlyoung/deprecate-ospf-lsa-min-arrival
David Lamparter [Tue, 8 Aug 2017 02:17:00 +0000 (04:17 +0200)]
Merge pull request #924 from qlyoung/deprecate-ospf-lsa-min-arrival

ospfd: deprecate `timers lsa arrival ...`

7 years agoMerge pull request #923 from devicenull/master
David Lamparter [Tue, 8 Aug 2017 02:16:08 +0000 (04:16 +0200)]
Merge pull request #923 from devicenull/master

rhel: Don't obsolete bird

7 years agoMerge pull request #925 from qlyoung/ldpd-no-str
Renato Westphal [Mon, 7 Aug 2017 21:27:52 +0000 (18:27 -0300)]
Merge pull request #925 from qlyoung/ldpd-no-str

ldpd: use NO_STR

7 years agoldpd: use NO_STR
Quentin Young [Mon, 7 Aug 2017 20:22:59 +0000 (16:22 -0400)]
ldpd: use NO_STR

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoospfd: deprecate `timers lsa arrival ...`
Quentin Young [Mon, 7 Aug 2017 20:11:10 +0000 (16:11 -0400)]
ospfd: deprecate `timers lsa arrival ...`

Don't need two of these that do the exact same thing.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agorhel: Don't obsolete bird
Brian Rak [Mon, 7 Aug 2017 18:37:21 +0000 (14:37 -0400)]
rhel: Don't obsolete bird

The FRR RPM was obsoleting BIRD, which meant that as soon as you added a FRR RPM to a repository, you could no longer install BIRD.  This patch switches it over to Conflicts instead, which should be much nicer behavior

7 years agoMerge pull request #922 from qlyoung/pim-cli
Jafar Al-Gharaibeh [Mon, 7 Aug 2017 18:19:11 +0000 (13:19 -0500)]
Merge pull request #922 from qlyoung/pim-cli

pimd: some pim cli fixes

7 years agopimd: some pim cli fixes
Quentin Young [Mon, 7 Aug 2017 16:42:05 +0000 (12:42 -0400)]
pimd: some pim cli fixes

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
7 years agoMerge pull request #916 from donaldsharp/eigrp_various
Jafar Al-Gharaibeh [Mon, 7 Aug 2017 16:22:36 +0000 (11:22 -0500)]
Merge pull request #916 from donaldsharp/eigrp_various

Eigrp various

7 years agoMerge pull request #903 from donaldsharp/pimble
Jafar Al-Gharaibeh [Mon, 7 Aug 2017 16:20:39 +0000 (11:20 -0500)]
Merge pull request #903 from donaldsharp/pimble

Pimble

7 years agoMerge pull request #921 from opensourcerouting/vty-varname-end-tkn
Quentin Young [Mon, 7 Aug 2017 14:33:15 +0000 (10:33 -0400)]
Merge pull request #921 from opensourcerouting/vty-varname-end-tkn

lib: cli: don't run off graph "pre-end"

7 years agolib: cli: don't run off graph "pre-end"
David Lamparter [Mon, 7 Aug 2017 13:05:34 +0000 (15:05 +0200)]
lib: cli: don't run off graph "pre-end"

Behind END_TKN, there is another graph node whose data pointer is
actually struct cmd_element instead of struct cmd_token.  Don't try to
interpret that as cmd_token.  This causes very interesting crashes when
ASLR decides to give one of the strings of a command definition a lower
32-bit value that is a valid cmd_token_type (e.g. FORK_TKN).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agoMerge pull request #918 from opensourcerouting/vtysh-miss-newline
Donald Sharp [Mon, 7 Aug 2017 12:39:08 +0000 (08:39 -0400)]
Merge pull request #918 from opensourcerouting/vtysh-miss-newline

vtysh: add missing \n on warning message

7 years agozebra: vrf: remove VRF-move static route updating
David Lamparter [Sun, 6 Aug 2017 05:50:18 +0000 (07:50 +0200)]
zebra: vrf: remove VRF-move static route updating

This was incorrectly implemented to begin with (it only re-added routes,
but didn't remove them) and is now covered in static_ifindex_update.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: vrf: remove VRF-move static route updating
David Lamparter [Sun, 6 Aug 2017 05:50:18 +0000 (07:50 +0200)]
zebra: vrf: remove VRF-move static route updating

This was incorrectly implemented to begin with (it only re-added routes,
but didn't remove them) and is now covered in static_ifindex_update.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: static: update on ifindex changes
David Lamparter [Sun, 6 Aug 2017 03:14:39 +0000 (05:14 +0200)]
zebra: static: update on ifindex changes

Whenever an interface is created or deleted in the system, we need to
check whether we have static routes referencing that interface by name.
If so, we need to [un]install these routes.

This has the unfortunate side effect of making static routes with
non-existent interfaces disappear from "show ip route", but I think
that's acceptable (and I don't see a "good" fix for that).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: static: rename IFINDEX -> IFNAME
David Lamparter [Sun, 6 Aug 2017 02:32:55 +0000 (04:32 +0200)]
zebra: static: rename IFINDEX -> IFNAME

Static routes are really held by ifname, not ifindex.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: static: update on ifindex changes
David Lamparter [Sun, 6 Aug 2017 03:14:39 +0000 (05:14 +0200)]
zebra: static: update on ifindex changes

Whenever an interface is created or deleted in the system, we need to
check whether we have static routes referencing that interface by name.
If so, we need to [un]install these routes.

This has the unfortunate side effect of making static routes with
non-existent interfaces disappear from "show ip route", but I think
that's acceptable (and I don't see a "good" fix for that).

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
7 years agozebra: static: rename IFINDEX -> IFNAME
David Lamparter [Sun, 6 Aug 2017 02:32:55 +0000 (04:32 +0200)]
zebra: static: rename IFINDEX -> IFNAME

Static routes are really held by ifname, not ifindex.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>