Commit Graph

10554 Commits

Author SHA1 Message Date
Mitesh Kanjariya
12eeac84ff zebra: Handle local-ip change in a correct way for l3-vni
Ticket: CM-19603
Review: CCR-7142
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-08 23:06:43 -08:00
Mitesh Kanjariya
bca63dc8ba zebra: Handle change to VxLAN tunnel (local) IP address for L3 VNI similar to what is done for L2 VNI.
Ticket: CM-19195
Review: CCR-7122
Test: Manual

Signed-of-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2018-02-08 23:06:30 -08:00
Mitesh Kanjariya
4ac71d4bea zebra: fix 'show evpn vni' output
removed an additional field 'local-tunnel-ip' from l2vnis o/p

Ticket: CM-19670
Review: CCR-7167
Testing: Verified that the output is proper

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-08 23:06:17 -08:00
Mitesh Kanjariya
01a6143bda zebra: do not check if advertise-default-gw is on in no-advertise-default-gw flow
Ticket: CM-19116
Review:  CCR-7042
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-08 23:04:17 -08:00
Mitesh Kanjariya
3b103fec6b vtysh/lib: write domainname to config file
Ticket: CM-19626
Review: CCR-7170
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-08 23:04:05 -08:00
vivek
d1911c2664 bgpd: Handle multiple simultaneous changes for a VNI correctly
Ensure that if multiple parameters for a VNI change simultaneously, the
changes are processed correctly. The changes of interest are the local
tunnel IP address and the tenant VRF to which this VNI is attached. The
former is used to originate type-3 routes as well as set the next hop of
all routes, the latter helps to determine the route targets and VNIs to
include in the route.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Mitesh Kanjariya <mitesh@cumulusnetworks.com>

Ticket: CM-19099
Reviewed By: CCR-7102
Testing Done:
1. Manually reproduced problem and verified fix.
2. Additional trigger events tested with fix.
2018-02-08 23:02:44 -08:00
Mitesh Kanjariya
2ca3a78b68 bgpd: enunciate the error message if user tries to configure 'router bgp'
We need a better error message. "Multiple BGP processes are configured"
doesnt makes sense anymore as with l3vni,
we could have multiple auto configured bgp instances.

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-08 23:02:28 -08:00
vivek
25f2ca5307 bgpd: Ensure EVPN routes are not injected back into EVPN
EVPN type-2 and type-5 routes received with a L3 VNI and corresponding RTs
are installed into the appropriate BGP RIB. Ensure that these routes are not
re-injected back into EVPN as type-5 routes when type-5 advertisement is
enabled; only regular IPv4 routes (and IPv6 routes in future) in the RIB
should be injected into EVPN.

As a benefit of this change, no longer restrict that EVPN type-5 routes
should be non-host routes - i.e., allow /32 IPv4 routes (and /128 IPv6
routes in future).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>

Ticket: CM-19456
Reviewed By: CCR-7117
Testing Done:
1. Manual replication of problem and verification of fix
2. evpn-min
2018-02-08 23:02:05 -08:00
Donald Sharp
fc5cca9fa4 zebra: Use appropriate output function for label printing
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:38:16 -05:00
Donald Sharp
42567e0011 bgpd, lib, sharpd, zebra: Use MPLS_LABEL_NONE
Modify mpls.h to rename MPLS_LABEL_ILLEGAL to be MPLS_LABEL_NONE.
Fix all pre-existing code that used MPLS_LABEL_ILLEGAL.

Modify the zapi vrf label message to use MPLS_LABEL_NONE as the
signal to remove label associated with a vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:38:14 -05:00
Donald Sharp
339e36d258 lib, sharpd, zebra: Add new enum for lsp type and pass it through.
Add the ability to pass the lsp owner type through the zapi
and in addition add a new label type for the sharp protocol
for testing.

Finally modify zebra_mpls.h to not have defaults specified
for the enum.  That way when we add a new LSP type the
compile fails and the person doing the addition knows
where he has to touch shit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:35:14 -05:00
Donald Sharp
70e98a7fe7 *: Make code use a consisten definition of labels
Turns out we had 3 different ways to define labels
all of them overlapping with the same meanings.
Consolidate to 1.  This one choosen is consistent
naming wise with what the *bsd and linux kernels
use.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:31:37 -05:00
Donald Sharp
b9abd9adac zebra: Cleanup mpls handling to allow a NEXTHOP_TYPE_IFINDEX
Add the ability for the nexthops to be a NEXTHOP_TYPE_IFINDEX.
Since we are using this code for L3vpn pop and forward operations
and we know that the lo or vrf device name must exist we
trust that it is correct.

Update display to show the correct data with a 'show mpls table'

Update the mpls install into the kernel to treat
NEXTHOP_TYPE_IFINDEX as special and we do not need
to pass in the nexthop label.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:31:37 -05:00
Donald Sharp
75239f4f28 sharpd: Consolidate commands under 'sharp' keyword
The commands if not careful needed a way to isolate
themselves from each other and 'real' system commands
so let's put them under the sharp keyword.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:31:37 -05:00
Donald Sharp
ab18a4954f sharpd: Add some infrastructure to allow test of ZEBRA_VRF_LABEL
Add some infrastructure to allow the testing of ZEBRA_VRF_LABEL

Signed-off-by: Donald Sharp <sharp@cumulusnetworks.com>
2018-02-08 20:31:37 -05:00
Donald Sharp
c83c5e4482 lib, zebra: Add new api to specify a label associated with the vrf
For L3VPN's we need to create a label associated with the specified
vrf to be installed into the kernel to allow a pop and lookup
operation.

The new api is:
zclient_send_vrf_label(struct zclient *zclient, vrf_id_t vrf_id,
                       mpls_label_t label);

For the specified vrf_id associate the specified label for
a pop and lookup operation for forwarding.

To setup a POP and Forward use MPLS_LABEL_IMPLICIT_NULL
If the same label is passed in we ignore the call.
If the label is different we update entry.
If the label is MPLS_LABEL_NONE we remove
the entry.

This sets up the api.  Future commits will have the functionality
to actually install into the kernel.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 20:31:36 -05:00
Donald Sharp
44bdf1590d lib, zebra: Move nh_resolve_via_default to appropriate header
The nh_resolve_via_default function is an accessor function
for NHT in zebra.  Let's move this function to it's proper
place.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 19:36:18 -05:00
Donald Sharp
4a7371e9e2 *: Track vrfs per nexthop not per route entry
Track the vfrs on a per nexthop basis instead
of on a per route entry basis.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 19:35:53 -05:00
Donald Sharp
400a663bf2 zebra: sharp protocol needs a default admin distance.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 19:30:34 -05:00
Jafar Al-Gharaibeh
509d742fb3
Merge pull request #1720 from qlyoung/gitignore-changelog
debianpkg: .gitignore += changelog
2018-02-08 14:32:29 -06:00
Donald Sharp
f631926724 debianpkg: Update build dependencies to say we don't co-exist with quagga
The control files for all build platforms are not consistent.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-08 13:51:04 -05:00
Quentin Young
2f8c365e02
doc: change html theme, add svg logo
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-08 11:53:49 -05:00
Philippe Guibert
8e71b98f72
Merge pull request #1654 from mkanjari/evpn-symm-routing-enhancements
Evpn symmetric routing enhancements
2018-02-08 11:46:29 +01:00
Chirag Shah
6282e1247d ospfd: fix ospf interface and neighbor json
show ip ospf [vrf all] interface json and
show ip ospf [vrf all] neighbor json to display
objects in dictionary output rather in array list.

Ticket:CM-19115,CM-19097

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-02-07 18:37:50 -08:00
Quentin Young
6c74945622
doc: use python 2.6 format strings
Centos 6 only has python 2.6 which requires numerical identifiers for
format strings

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 19:22:52 -05:00
Donald Sharp
dfce9b257d zebra: Fix vrf routes from assuming their nh's were in the default
Fix the read in of vrf routes on a start or restart that caused
the nexthop_vrf to be assumed to be the default vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-07 18:22:15 -05:00
Quentin Young
4898758807
doc: fix makefiles again
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 16:18:52 -05:00
Quentin Young
50cc7127cf
Merge branch 'master' into docuser 2018-02-07 15:48:37 -05:00
Donald Sharp
25236dd35d
Merge pull request #1721 from opensourcerouting/isis-monitor-fds
isis: use descriptor polling instead of time
2018-02-07 14:35:08 -05:00
Rafael Zalamena
b0dd98e798 isis: use descriptor polling instead of time
Allow other supported Operating Systems (OS) to use file descriptor
polling, instead of doing timed fd checks. This should improve
performance greatly on modern OSes (e.g. that support polling on
filtered sockets).

The known OS that doesn't support this is FreeBSD < 5.0, but even then
FRR doesn't compile in these versions. OSes using DLPI method (e.g
Solaris) does not support select()/poll()ing fds as well, so it will be
disabled for it.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-02-07 16:36:05 -02:00
Quentin Young
12b7724ff8
doc: fix toctree warning in manpages
Forgot to add a couple includes to the exclude list. Also move
defines.txt to defines.rst since I know how to properly ignore things
now.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 13:36:03 -05:00
Quentin Young
235684babb
debianpkg: .gitignore += changelog
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 13:13:46 -05:00
Quentin Young
1a52a8c142
debianpkg: add sphinx as build dep
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 12:36:56 -05:00
Quentin Young
b60f68eaa8
doc: note appropriate sphinx packages in docs
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 12:33:31 -05:00
Quentin Young
6180f995f4
doc: replace manpages Makefile
Newer sphinx-build generated makefiles use an as-of-yet undocumented CLI
option that is not present in older versions.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-07 12:33:13 -05:00
Donald Sharp
75e5d6feef
Merge pull request #1718 from ak503/keychain
lib: 'no accept-lifetime' and 'no send-lifetime' for keychain
2018-02-07 09:56:42 -05:00
dturlupov
c50e6abd18 lib: 'no accept-lifetime' and 'no send-lifetime' for keychain
Signed-off-by: Dmitrii Turlupov <dturlupov@factor-rs.ru>
2018-02-07 16:54:43 +03:00
Donald Sharp
aea175a8f4 ripd: Fix crash when ip rip split-horizon poisoned-reverse is configed
The code was attempting to access a variable that would always be NULL.
In fact this code has been broken since the rip ECMP changes
were put into place a few years back.

I'm going to come straight out and say that I don't fully
understand this code.  rinfo is the first item in the ecmp
list and tmp_rinfo is used to iterate over all the items
in the ecmp list.  It sure looks like that the changes
made here were just hacked together.  So I modified
the tmp_rinfo loop to just work on tmp_rinfo and
the check that was crashing I modified to just use
the rinfo since that what was checked originally
in code before the ECMP was added.  So consider
this a hack job to stop the crashing.

I think worse case is that we might be sending some routes
back out interfaces it shouldn't be if you have
ip rip split-horizon poisoned-reverse configured but
that is less bad(tm) than crashing.

Fixes: #1717
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-07 08:27:34 -05:00
Renato Westphal
2415f045c6
Merge pull request #1712 from donaldsharp/nht_updates
Nht updates
2018-02-06 23:34:12 -02:00
Jafar Al-Gharaibeh
90989cfccf
Merge pull request #1677 from chiragshah6/ospfv3_dev
ospf6d: Fix redistribute [connected] with route-map
2018-02-06 14:33:10 -06:00
Martin Winter
91d03d5cdc
Merge pull request #1699 from silasm/debianpkg-fix-debian-rules
debianpkg: normalize rules files, simplify logic/editing with '?='
2018-02-06 11:10:12 -08:00
Donald Sharp
d631e8a3d1 configure: Update version to 4.1-dev
We are now working on 4.1-dev for new work.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-06 12:26:47 -05:00
Martin Winter
5b8b08de57
Merge pull request #1542 from qlyoung/stylechecker
tools: add style checking scripts
2018-02-06 08:44:37 -08:00
Donald Sharp
cfb8a47f81
Merge pull request #1653 from Orange-OpenSource/SR-Routing
OSPFD: Add Experimental Segment Routing support
2018-02-06 11:32:51 -05:00
mitesh
eb474e7313 zebra: fix SA issues
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-05 16:21:00 -08:00
Renato Westphal
5565440c4f
Merge pull request #1713 from donaldsharp/nexthop_vrfs
lib: Fix encoding of vrf
2018-02-05 20:45:50 -02:00
Lou Berger
cfd0d6de7e
Merge pull request #1702 from donaldsharp/bgp_cleanup
Bgp cleanup
2018-02-05 16:06:08 -06:00
Lou Berger
30a6095ac9
Merge pull request #1694 from qlyoung/fix-bgp-default-shutdown-conf-write
bgpd: fixup default shutdown
2018-02-05 16:04:08 -06:00
mitesh
d4ef18b6a7 bgpd: match evpn route type command should use '<>' instead of '{}'
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-05 13:56:12 -08:00
mitesh
2aeb403d37 zebra: fix SA issues
Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-05 13:51:45 -08:00