Implement EVPN Type 2 and Type 5 infrastructure

Bug #1636654 reported by Nischal Sheth on 2016-10-25
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R5.0
In Progress
Wishlist
Ananth Suryanarayana
Trunk
In Progress
Wishlist
Ananth Suryanarayana

Bug Description

Implement EVPN Type 2 and 5 infrastructure based on the following drafts:

o Type 2

https://tools.ietf.org/html/draft-ietf-bess-evpn-inter-subnet-forwarding-03

The functionality of interest is inter-subnet forwarding using the L3 VNI
with VXLAN encapsulation.

o Type 5

https://tools.ietf.org/html/draft-ietf-bess-evpn-prefix-advertisement-03

The scenario of interest is Interface-less IP-VRF-to-IP-VRF model as
described in section 5.4.1.

Hence we expect ESI and GW address fields to be all zero for now and the
foreseeable future.

Router Mac extended community is defined in section 6.1 of the following:

https://tools.ietf.org/html/draft-ietf-bess-evpn-inter-subnet-forwarding-01

Nischal Sheth (nsheth) on 2016-10-25
description: updated

Review in progress for https://review.opencontrail.org/25329
Submitter: Nischal Sheth (<email address hidden>)

Nischal Sheth (nsheth) on 2016-10-26
description: updated
OpenContrail Admin (ci-admin-f) wrote :

Review in progress for https://review.opencontrail.org/25330
Submitter: Nischal Sheth (<email address hidden>)

Reviewed: https://review.opencontrail.org/25330
Committed: http://github.org/Juniper/contrail-controller/commit/71f408638cc8ce6e142f32c58415f0b5664b3a74
Submitter: Zuul
Branch: master

commit 71f408638cc8ce6e142f32c58415f0b5664b3a74
Author: Nischal Sheth <email address hidden>
Date: Tue Oct 25 17:45:22 2016 -0700

Implement RouterMac extended community

Change-Id: I50f29f797842c7554d7f0f0a6b13397e33444a7c
Partial-Bug: 1636654

OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/25329
Committed: http://github.org/Juniper/contrail-controller/commit/865c42a666885e78a6b9b77ed086466570dbf287
Submitter: Zuul
Branch: master

commit 865c42a666885e78a6b9b77ed086466570dbf287
Author: Nischal Sheth <email address hidden>
Date: Mon Oct 24 15:52:51 2016 -0700

Add infra for Evpn Type 5 route parsing/formatting

The use case of interest is the Interface-less IP-VRF-to-IP-VRF model.
Hence the ESI and GW IP Address are expected to be all zero for now.

Change-Id: I3a15485cb4e7bf17a491cb4ac06d13f54bf63511
Partial-Bug: 1636654

Review in progress for https://review.opencontrail.org/25831
Submitter: Nischal Sheth (<email address hidden>)

Reviewed: https://review.opencontrail.org/25831
Committed: http://github.org/Juniper/contrail-controller/commit/1d52154a4db368c4239817ef135d6f66006575e3
Submitter: Zuul
Branch: master

commit 1d52154a4db368c4239817ef135d6f66006575e3
Author: Nischal Sheth <email address hidden>
Date: Wed Nov 2 14:01:14 2016 -0700

Further progress on evpn type 5 route support

- Add path replication rules for type 5 routes
- Add unit tests for type 5 routes
- Schema change for xmpp unicast routes to include vni and mac
- Modify xmpp receive code to add/delete inet/inet6 and evpn
type 5 routes for inet/inet6 prefixes
- Disable xmpp code to add/delete type 5 routes for now

Change-Id: Ida92aab4a0f8c47d38ef330fdf99697429e2bc63
Partial-Bug: 1636654

Nischal Sheth (nsheth) on 2017-02-28
description: updated
summary: - Implement EVPN Type 5 infrastructure
+ Implement EVPN Type 2 and Type 5 infrastructure

Review in progress for https://review.opencontrail.org/29528
Submitter: Nischal Sheth (<email address hidden>)

Reviewed: https://review.opencontrail.org/29528
Committed: http://github.org/Juniper/contrail-controller/commit/aaa8759c49645021fcae6886e3cab60cbc935f4f
Submitter: Zuul (<email address hidden>)
Branch: master

commit aaa8759c49645021fcae6886e3cab60cbc935f4f
Author: Nischal Sheth <email address hidden>
Date: Thu Feb 9 16:47:13 2017 -0800

Add support for parsing L3 label in EVPN Type 2 routes

Change-Id: Iefe4aa83235b83c2e8e3b0746b43a26157797b2f
Partial-Bug: 1636654

Review in progress for https://review.opencontrail.org/29982
Submitter: Nischal Sheth (<email address hidden>)

Reviewed: https://review.opencontrail.org/29982
Committed: http://github.org/Juniper/contrail-controller/commit/3824962b7f802b06b3d3601d8d60a959588f5a0f
Submitter: Zuul (<email address hidden>)
Branch: master

commit 3824962b7f802b06b3d3601d8d60a959588f5a0f
Author: Nischal Sheth <email address hidden>
Date: Tue Mar 28 14:10:12 2017 -0700

Add end to end support for L3 label in EVPN Type 2 routes

This includes the following:

- Add l3-label to xmpp_enet schema
- Encode and decode l3-label in xmpp messages
- Add l3-label to BgpPath and RibOutAttr

Change-Id: I81261683fd7082e9fd041e6fbbbbcb4ceeaf1d58
Partial-Bug: 1636654

Review in progress for https://review.opencontrail.org/30141
Submitter: Nischal Sheth (<email address hidden>)

Reviewed: https://review.opencontrail.org/30141
Committed: http://github.org/Juniper/contrail-controller/commit/08e043abd1769840bea3854b8d6a2dacb1786840
Submitter: Zuul (<email address hidden>)
Branch: master

commit 08e043abd1769840bea3854b8d6a2dacb1786840
Author: Nischal Sheth <email address hidden>
Date: Tue Apr 4 10:11:18 2017 -0700

Support router mac in EVPN Type 2 routes

Change-Id: I0dc2f5e91d6054ef760d26de220fc7b136f9aaa2
Partial-Bug: 1636654

Review in progress for https://review.opencontrail.org/38447
Submitter: Manish Singh (<email address hidden>)

Reviewed: https://review.opencontrail.org/38447
Committed: http://github.com/Juniper/contrail-controller/commit/9b150fd22534194c51f78482b38b777792343711
Submitter: Zuul (<email address hidden>)
Branch: master

commit 9b150fd22534194c51f78482b38b777792343711
Author: Manish <email address hidden>
Date: Tue Dec 19 12:31:35 2017 +0530

EVPN type-5 support

Spec borrowed from
https://github.com/kirankn80/specs/wiki/EVPN-type-5-support-in-Contrail

Modified agent section.

Implements: blueprint https://blueprints.launchpad.net/juniperopenstack/+spec/evpn-type5
Partial-bug: 1636654
Change-Id: I39ace35be6ae95e7f88276d7bbffca66114497f4

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39200
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39201
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39200
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39201
Submitter: Ananth Suryanarayana (<email address hidden>)

Reviewed: https://review.opencontrail.org/39200
Committed: http://github.com/Juniper/contrail-controller/commit/103b737aa973e3daa1d952bb3be85aa1ac1ff30a
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 103b737aa973e3daa1d952bb3be85aa1ac1ff30a
Author: Ananth Suryanarayana <email address hidden>
Date: Wed Jan 24 11:56:06 2018 -0800

EVPN Type5 prefix process changes for control-node

By using existing mechanism to encode evpn route swith mac-address as all zeros,
evpn type-5 inet/inet6 prefixes if received from agent are processed and installed
into *.evpn.0 table and exported as applicable

Change-Id: Ib6e9413a73c8c540ece13b1f0cc63bc15be6b43b
Implements: blueprint https://blueprints.launchpad.net/juniperopenstack/+spec/evpn-type5
Partial-bug: 1636654

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Reviewed: https://review.opencontrail.org/39201
Committed: http://github.com/Juniper/contrail-specs/commit/7bf3c36a2670192249f6f18411402a99850e157f
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 7bf3c36a2670192249f6f18411402a99850e157f
Author: Ananth Suryanarayana <email address hidden>
Date: Mon Jan 22 11:25:44 2018 -0800

EVPN Type5 prefix process changes for control-node

By using existing mechanism to encode evpn route swith mac-address as all zeros,
evpn type-5 inet/inet6 prefixes if received from agent are processed and installed
into *.evpn.0 table and exported as applicable

Also truncate long lines in the spec to 80 columns for easier readability.

Change-Id: Ib6e9413a73c8c540ece13b1f0cc63bc15be6b43b
Implements: blueprint https://blueprints.launchpad.net/opencontrail/+spec/evpn-type-5
Partial-bug: 1636654

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39435
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39435
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39467
Submitter: Manish Singh (<email address hidden>)

information type: Proprietary → Public

Reviewed: https://review.opencontrail.org/39435
Committed: http://github.com/Juniper/contrail-generateDS/commit/981c58f8f4c00a72a0df0c9b8e5bde39214aa9a0
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 981c58f8f4c00a72a0df0c9b8e5bde39214aa9a0
Author: Ananth Suryanarayana <email address hidden>
Date: Fri Feb 2 15:53:26 2018 -0800

Add default None value to link with attributes

In order to add attributes to existing links in schema, relax
generated code to use None as optional link attributes value
and set it only if the value is not None.

Change-Id: Ia7f8a3893b2a304532643952a7c00d867cf1edc7
Partial-bug: 1636654

Review in progress for https://review.opencontrail.org/39467
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39695
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39773
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39773
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39828
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39840
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39773
Submitter: Ananth Suryanarayana (<email address hidden>)

Review in progress for https://review.opencontrail.org/39167
Submitter: Ananth Suryanarayana (<email address hidden>)

Reviewed: https://review.opencontrail.org/39773
Committed: http://github.com/Juniper/contrail-generateDS/commit/02c0068837963cd6b1472d05f3ae62a3bf2c944b
Submitter: Rudra Rugge (<email address hidden>)
Branch: master

commit 02c0068837963cd6b1472d05f3ae62a3bf2c944b
Author: Ananth Suryanarayana <email address hidden>
Date: Wed Feb 14 17:17:07 2018 -0800

Add default None value to link with attributes for set_<obj>_list methods

In order to add attributes to existing links in schema, generate set_<obj>_list
with ref_data_list argument an optional by defaulting with None

Change-Id: I0aa35f774bab5f756c0d72ab2088c033356de747
Depends-On: I29f02badbc0e20e6e5cff67e26de5a42ac6cd5ce
Partial-bug: 1636654

Reviewed: https://review.opencontrail.org/39167
Committed: http://github.com/Juniper/contrail-controller/commit/0f3fbb053928a664c362f123ace7f0aea9f0ff08
Submitter: Rudra Rugge (<email address hidden>)
Branch: master

commit 0f3fbb053928a664c362f123ace7f0aea9f0ff08
Author: Ananth Suryanarayana <email address hidden>
Date: Thu Jan 25 12:01:40 2018 -0800

Schema changes for Type-5 EVPN

To handle EVPN Type-5 prefixes, all L2 virtual-networks are to be associated
with a single L3VRF virtual-network. This is used to route packets for all
children L2 virtual-networks.

There already exists a link between logical-router and virtual-network. In this
schema change, this link is annotated with attributes so that the relationship
can be futher qualified. This attribute defaults to existing behavior as
ExternalGateway. Additional L2VN and L3VN types are added to this link attribute.

Change-Id: I560596afb5f16e77c48b1ae926e608afd5c8c504
Depends-On: I0aa35f774bab5f756c0d72ab2088c033356de747
Implements: blueprint https://blueprints.launchpad.net/opencontrail/+spec/evpn-type-5
Partial-bug: 1636654

Review in progress for https://review.opencontrail.org/39840
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/40086
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39840
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/40086
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39840
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/40086
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/39840
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/41263
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/41285
Submitter: Kiran (<email address hidden>)

Reviewed: https://review.opencontrail.org/41263
Committed: http://github.com/Juniper/contrail-controller/commit/6cbdbc52a2d24a46c2befdb50719ee2b137bb9a5
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 6cbdbc52a2d24a46c2befdb50719ee2b137bb9a5
Author: Manish <email address hidden>
Date: Fri Feb 16 17:12:49 2018 +0530

Agent changes: VXLAN Routing/EVPN type-5 support.

Agent uses EVPN type 2 routes to pick up the locally created routes
(i.e. VM) and re publish same in following tables:
- Inet table of L2 VN - redirect to l3 vn.
- Evpn table of L3 VN(routing VN) - IP with zero mac, exported to CN.
- Inet table L3 VN - Used for forwarding after routing.

Vxlan routing knob is based on following:
- vxlan routing knob in project
- linking of l3 vn(routing VN) to logical router

Depends-On: I0aa35f774bab5f756c0d72ab2088c033356de747
Implements: blueprint https://blueprints.launchpad.net/opencontrail/+spec/evpn-type-5
Partial-bug: 1636654

Conflicts:
 src/vnsw/agent/oper/agent.sandesh
 src/vnsw/agent/oper/nexthop.cc
 src/vnsw/agent/oper/tunnel_nh.h
 src/vnsw/agent/oper/vn.cc
 src/vnsw/agent/oper/vn.h
 src/vnsw/agent/vrouter/ksync/nexthop_ksync.cc

Change-Id: Iea9018390612dd5d48fde3fbb4d5ce6ae2dce141

Review in progress for https://review.opencontrail.org/42536
Submitter: Manish Singh (<email address hidden>)

Review in progress for https://review.opencontrail.org/42541
Submitter: Manish Singh (<email address hidden>)

Reviewed: https://review.opencontrail.org/42536
Committed: http://github.com/Juniper/contrail-vrouter/commit/3d482cc6937294217d61b5fc1dc95fb08d8cba08
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 3d482cc6937294217d61b5fc1dc95fb08d8cba08
Author: Manish Singh <email address hidden>
Date: Thu Apr 26 12:32:43 2018 +0530

Introduce a flag to identify L3 VXLAN in nexthop.

Change-Id: I9fa0a857ddf0af34410ad9f2842b7113165c6616
Partial-Bug: 1636654

Reviewed: https://review.opencontrail.org/42541
Committed: http://github.com/Juniper/contrail-vrouter/commit/330d1c4ddf674f41a088a730b175dfc3578a64b6
Submitter: Zuul v3 CI (<email address hidden>)
Branch: R5.0

commit 330d1c4ddf674f41a088a730b175dfc3578a64b6
Author: Manish Singh <email address hidden>
Date: Thu Apr 26 12:32:43 2018 +0530

Introduce a flag to identify L3 VXLAN in nexthop.

Change-Id: I9fa0a857ddf0af34410ad9f2842b7113165c6616
Partial-Bug: 1636654

Review in progress for https://review.opencontrail.org/43510
Submitter: Kiran (<email address hidden>)

Reviewed: https://review.opencontrail.org/43510
Committed: http://github.com/Juniper/contrail-vrouter/commit/87c2f0f9de803fb500a6618dd946ca380eeed15b
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit 87c2f0f9de803fb500a6618dd946ca380eeed15b
Author: Kiran Kasim <email address hidden>
Date: Mon Jun 4 15:13:38 2018 -0700

EVPN type 5 vRouter changes

The following vRouter changes are done for supporting EVPN type 5:
1) Introduce a new nh flag NH_FLAG_L3_VXLAN
2) On tx side, if the flag is set, overwrite the L2 packet's smac and
dmac with local vrouter MAC and dst vrouter MAC
(which is set in nh_vxlan_tun_l3_mac)
3) On rx side, no change
4) Introduce a new structure for vxlan tunnel which contains the
nh_vxlan_tun_l3_mac field
5) Change L2 VXLAN fields to the above structure so that
same VXLAN structure gets used for both L2 and L3
6) Enhance the nh utility to add type-5 routes using the flag l3_vxlan

Refer review comments here: https://review.opencontrail.org/#/c/41285/
Partial-Bug: 1636654
Implements: blueprint https://blueprints.launchpad.net/opencontrail/+spec/evpn-type-5

Change-Id: I70f5c163b7acb46cadc730946653f98fe670323a

Review in progress for https://review.opencontrail.org/44377
Submitter: Manish Singh (<email address hidden>)

Reviewed: https://review.opencontrail.org/44377
Committed: http://github.com/Juniper/contrail-vrouter/commit/1c25f098c22e70d76d39cbb1a8fd75b89eae310a
Submitter: Zuul v3 CI (<email address hidden>)
Branch: R5.0

commit 1c25f098c22e70d76d39cbb1a8fd75b89eae310a
Author: Kiran Kasim <email address hidden>
Date: Mon Jun 4 15:13:38 2018 -0700

EVPN type 5 vRouter changes

The following vRouter changes are done for supporting EVPN type 5:
1) Introduce a new nh flag NH_FLAG_L3_VXLAN
2) On tx side, if the flag is set, overwrite the L2 packet's smac and
dmac with local vrouter MAC and dst vrouter MAC
(which is set in nh_vxlan_tun_l3_mac)
3) On rx side, no change
4) Introduce a new structure for vxlan tunnel which contains the
nh_vxlan_tun_l3_mac field
5) Change L2 VXLAN fields to the above structure so that
same VXLAN structure gets used for both L2 and L3
6) Enhance the nh utility to add type-5 routes using the flag l3_vxlan

Refer review comments here: https://review.opencontrail.org/#/c/41285/
Partial-Bug: 1636654
Implements: blueprint https://blueprints.launchpad.net/opencontrail/+spec/evpn-type-5

Change-Id: I70f5c163b7acb46cadc730946653f98fe670323a
(cherry picked from commit 87c2f0f9de803fb500a6618dd946ca380eeed15b)

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers