Commit Graph

10494 Commits

Author SHA1 Message Date
Jafar Al-Gharaibeh
89080977e3
Merge pull request #1742 from chiragshah6/mdev
ospf(6)d: Fix distance option command
2018-02-15 14:30:06 -06:00
Quentin Young
6be1a07b97
Merge branch 'master' into docuser
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-15 15:02:27 -05:00
Donald Sharp
9f64bf393c sharpd: Add ability to build from tarball
Since sharpd is only typically built with a development build
this was not noticed.  Add the necessary headers to build
this thingie(tm).

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-15 14:05:40 -05:00
Donald Sharp
8fd9db586f zebra: Ensure unconfiguration works properly for vrf labels
If you were to configure a v4 and v6 vrf pop and forward label
that both happened to be the same, unconfiguring one would
remove them both.

This fixes that issue by noticing if we should remove it or
not based upon v4 or v6 having the same label or not.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-15 13:52:57 -05:00
Chirag Shah
d6927cf390 ospf6d: router-id change notify to restart ospf6d
Notify user to store config and restart ospf6d
as part of router-id change cli if any of
the area active.
Store zebra router-id under ospf6, when static
router-id removed restore zebra router-id, ask
to restart ospf6d.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-02-15 09:57:05 -08:00
Olivier Dugeon
7abe1e7e0d
Merge pull request #1738 from chiragshah6/ospfv3_dev
ospf6d: Handle Premature Aging of LSAs
2018-02-15 17:17:38 +01:00
Quentin Young
3f5050125b doc: put correct pkg for Centos6 2018-02-15 10:43:30 -05:00
Chirag Shah
76249532fa ospf6d: Handle Premature Aging of LSAs
RFC 2328 (14.1) Premature aging of LSAs from
routing domain :
When ospf6d is going away (router going down),
send MAXAGEd self originated LSAs to all
neighbors in routing domain to trigger
Premature aging to remove from resepective LSDBs.

Neighbor Router Reboot:
Upon receiving Self-originate MAXAGEd LSA, simply
discard, Current copy could be non maxaged latest.

For neighbor advertised LSA's (current copy in LSDB)
is set to MAXAGE but received new LSA with Non-MAXAGE
(with current age), discard the current MAXAGE LSA,
Send latest copy of LSA to neighbors and update the
LSDB with new LSA.

When a neighbor transition to FULL, trigger AS-External
LSAs update from external LSDB to new neighbor.

Testing:
R1 ---- DUT --- R5
| \
R2 R3
|
R4

Area 1: R5 and DUT
Area 0: DUT, R1, R2, R3
Area 2: R2 R4

Add IPv6 static routes at R5
Redistribute kernel routes at R5,
Validate routes at R4, redistributed via backbone
to area 2.
Stop n start frr.service at R5 and validated
MAXAGE LSAs then recent age LSAs in Database at DUT-R4.
Validated external routes installed DUT to R4.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-02-14 17:37:34 -08:00
Donald Sharp
d0a6f3e0c5 isisd: Free up some memory allocated.
The v4 and v6 prefixes were created but not deleted on
shutdown properly.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
(cherry picked from commit 25b1001dc9)
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-02-14 12:12:54 -02:00
Donald Sharp
7d061b3cb1 lib, sharpd, zebra: Update the zapi_vrf_label call to add afi
Add the ability to pass in an afi to zebra.  zebra_vrf keeps
track of the afi/label tuple and then does the right thing
before we call down.  AF_MPLS does not care about v4 or v6
it just knows label and what device to use for lookup.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-14 01:11:09 -05:00
Donald Sharp
6447dbb372 zebra: Clean up some SA issues found by new code
1) Add asserts in a couple of spots to show we
never expect prefix to be bad.
2) Fix some bfd code where out_ctxt will
always be NULL.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-13 23:41:31 -05:00
Donald Sharp
9b50aa1fd3 ospfd: Fix some new SA issues found by coverity
Fix a || && mixup.
Add an assert for area to show we expect it to be non-null
going forward.
When memory is allocated if it fails we abort then
no need to check for null.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-13 23:40:54 -05:00
Donald Sharp
cf29dab3b5 ospf6d: Fix a possible deref by null found in SA
There exists a possibility that rtr_lsa may be null.
Add an assert that shows we actually expect it to
be non-null at this point in time going forward.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-13 23:34:52 -05:00
Martin Winter
74a75bdbad
Merge pull request #1701 from donaldsharp/zapi_vrf_label
Zapi vrf label
2018-02-13 19:05:42 -08:00
Quentin Young
e53d58537c doc: document CLI BNF grammar, add DFA figures
Technical details on CLI implementation.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-13 18:09:58 -05:00
Martin Winter
4f2e2981ce
Merge pull request #1734 from donaldsharp/control_me
debianpkg: Update build dependencies to say we don't co-exist with qu…
2018-02-13 08:49:55 -08:00
Martin Winter
f53f7ac385
Merge pull request #1683 from donaldsharp/doc_debian
doc: Fix Debian 9 build instructions
2018-02-13 08:39:39 -08:00
Mitesh Kanjariya
53c84f7800 bgpd: Policy to control which RIB routes are injected into EVPN
FRR/CL provides the means for injecting regular (IPv4) routes
from the BGP RIB into EVPN as type-5 routes.
This needs to be enhanced to allow selective injection.
This can be achieved by adding a route-map option
for the "advertise ipv4/ipv6 unicast" command.

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-12 16:02:15 -08:00
Quentin Young
79120ae8d6
doc: add everything to makefile
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-12 13:34:41 -05:00
Quentin Young
241eff1636
doc: include manpage Makefile and conf.py in EXTRA_DIST
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-12 10:35:37 -05:00
Mitesh Kanjariya
efc812a379
Merge branch 'master' into type5-with-asymm 2018-02-12 02:05:00 -08:00
Chirag Shah
926b88f00d ospfd: Fix distance command
Reset prevoiusly configured distance command options
if user enters new (different) parameters.

Ticket:CM-19635
Testing Done:

R1(config-router)# distance ospf intra-area 45 external 45
R1# show running-config ospfd
router ospf
 distance ospf intra-area 45 external 45

R1(config-router)# distance ospf inter-area 45
R1# show running-config ospfd
router ospf
 distance ospf inter-area 45

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-02-11 21:05:37 -08:00
Chirag Shah
f89a449b5f ospf6d: Fix distance command
Reset prevoiusly configured distance command options
if user enters new (different) parameters.

Ticket:CM-19635
Reviewed By:
Testing Done:

R1(config-ospf6)# distance ospf6 intra-area 55 external 55
R1#show running-config ospf6d
router ospf6
 distance ospf6 intra-area 55 external 55

R1(config-ospf6)# distance ospf6 inter-area 55
R1#show running-config ospf6d
router ospf6
 distance ospf6 inter-area 55

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-02-11 21:00:29 -08:00
Donald Sharp
420016643c
Merge pull request #1735 from LabNConsulting/working/master/pre-vpn-vrf-leak-indenting
Working/master/pre vpn vrf leak indenting
2018-02-10 09:24:40 -05:00
Mitesh Kanjariya
c48d9f5f85 zebra, bgp: Support type-5 routes with asymmetric routing
Asymmetric routing is an ideal choice when all VLANs are cfged on all leafs.
It simplifies the routing configuration and
eliminates potential need for advertising subnet routes.
However, we need to reach the Internet or global destinations
or to do subnet-based routing between PODs or DCs.
This requires EVPN type-5 routes but those routes require L3 VNI configuration.

This task is to support EVPN type-5 routes for prefix-based routing in
conjunction with asymmetric routing within the POD/DC.
It is done by providing an option to use the L3 VNI only for prefix routes,
so that type-2 routes (host routes) will only use the L2 VNI.

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-10 00:41:28 -08:00
mitesh
7fdaec8894 bgpd: update the VNI labels in type-2 routes when l3vni gets deleted
When an l3-vni is enabled, type-2 routes are sent with 2 labels (l2vni and l3vni).
When it gets deleted, we need to update type-2 routes and send them with only one label (l2vni).

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-09 21:54:00 -08:00
Donald Sharp
5651675e43
Merge pull request #1737 from mkanjari/build-failure
zebra: fix build breakage
2018-02-09 20:53:03 -05:00
mitesh
1f2129ecd3 zebra: fix build breakage
is_vni_l3 was removed as a part of PR1700. However, it seems to be used in master.
Causing the breakage. Made the changes to not use the API anymore.

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2018-02-09 16:57:37 -08:00
Renato Westphal
b2a708904a
Merge pull request #1719 from donaldsharp/rip_split_fuckery
ripd: Fix crash when ip rip split-horizon poisoned-reverse is configed
2018-02-09 22:07:02 -02:00
Renato Westphal
84cc4cf9a3
Merge pull request #1731 from donaldsharp/zebra_stuff
zebra: sharp protocol needs a default admin distance.
2018-02-09 22:01:12 -02:00
Renato Westphal
1a6219e1a3
Merge pull request #1700 from mkanjari/evpn-symm-routing-enhancements-2.0
EVPN Symmetric routing enhancements 2.0
2018-02-09 21:20:27 -02:00
Renato Westphal
a97e5c1a80
Merge pull request #1722 from donaldsharp/vrf_mc_vrf
zebra: Fix vrf routes from assuming their nh's were in the default
2018-02-09 20:54:17 -02:00
G. Paul Ziemba
d316210b65 whitespace/comment fixes per qlyoung
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2018-02-09 13:14:22 -08:00
G. Paul Ziemba
a4d82a8adc bgpd: ran indent.py on some files prior to bgp vpn-vrf leaking changes
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2018-02-09 10:22:50 -08:00
G. Paul Ziemba
9611232b4c also protect ALIAS from indenting
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2018-02-09 10:18:35 -08:00
G. Paul Ziemba
70a94541f9 Merge branch 'working/master/json-bgp-vpn-fixes' of https://github.com/LabNConsulting/frr into working/master/json-bgp-vpn-fixes 2018-02-09 09:40:25 -08:00
G. Paul Ziemba
9386b58830 bgpd: json route table brace counting
Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2018-02-09 09:39:32 -08:00
G. Paul Ziemba
4e5c876fcb bgpd: json route table brace counting 2018-02-09 09:29:39 -08:00
dturlupov
7a5e6e46da ospfd: OSPF support the +/- in set metric <+/-metric>
Signed-off-by: Dmitrii Turlupov <dturlupov@factor-rs.ru>
2018-02-09 17:10:22 +03:00
Olivier Dugeon
19274fe8c7 ospfd: Fix ospfd crash
- ospfd/ospf_opaque.c: Update issue #1652 by introducing a new
function 'free_opaque_info_owner()' to clean list of callback owner
and call this function in appropriate place where 'listdelete_and_null'
is not used.

 - ospfd/ospf_packet.c: In case of crash, ospfd is not been able to
flush LSA. In case of self Opaque LSA, when restarting, ospfd crash
during the resynchronisation process with its neighbor due to an
empty list of LSA to flood. Just add a control on the list count
in 'ospf_ls_upd_queue_send()' to escape the function and avoid the
problem.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2018-02-09 12:13:07 +01:00
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