From c3b2c2a9a22bac5cf17813c589444d3abebaa23b Mon Sep 17 00:00:00 2001 From: Wojciech Dec Date: Tue, 16 Aug 2016 19:27:01 +0200 Subject: Adding Mitaka networking-old module with the ODL topology based port binding resolution mechanism from https://review.openstack.org/333186 Change-Id: I10d400aac9bb639c146527f0f93e6925cb74d9de Signed-off-by: Wojciech Dec --- networking-odl/doc/source/specs/sfc-driver.rst | 139 +++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 networking-odl/doc/source/specs/sfc-driver.rst (limited to 'networking-odl/doc/source/specs/sfc-driver.rst') diff --git a/networking-odl/doc/source/specs/sfc-driver.rst b/networking-odl/doc/source/specs/sfc-driver.rst new file mode 100644 index 0000000..388b2c1 --- /dev/null +++ b/networking-odl/doc/source/specs/sfc-driver.rst @@ -0,0 +1,139 @@ +================================================= +Service Function Chaining Driver for OpenDaylight +================================================= + +This spec describes the plan to implement OpenStack networking-sfc[1] driver +for OpenDaylight Controller. + +Problem Statement +=================== +OpenStack SFC project (networking-sfc [1]) exposes generic APIs[2] for Service +Function Chaining (SFC) that can be implemented by any backend networking +service provider to support SFC. These APIs provide a way to integrate +OpenStack SFC with any of the backend SFC providers. OpenDaylight SFC project +provides a very mature implementation of SFC [3], but currently there is no +formal integration mechanism present to consume OpenDaylight as an SFC provider +for networking-sfc. + +Recently Tacker project [4] has been approved as an official project in +OpenStack, that opens many possibilities to realize the NFV use cases (e.g SFC) +using OpenStack as a platform. Providing a formal end to end integration +between OpenStack and OpenDaylight for SFC use case will help NFV users +leverage OpenStack, Tacker and OpenDaylight as a solution. A POC for this +integration work has already been implemented [5][6] by Tim Rozet, but in +this POC work, Tacker directly communicates to OpenDaylight SFC & classifier +providers and not through OpenStack SFC APIs (networking-sfc). + +Proposed Change +=============== +Implementation of this spec will introduce a networking-sfc[1] driver for +OpenDaylight Controller in networking-odl project that will pass through +the networking-sfc API's call to the OpenDaylight Controller. + +Detailed Design +=============== +To enable the formal end to end integration between OpenStack SFC and +OpenDaylight requires an SFC driver for OpenDaylight. ODL SFC driver will +act as a shim layer between OpenStack and OpenDaylight that will carry out +following two main tasks: + +* Translation of OpenStack SFC Classifier API to ODL SFC classifier yang + models**. + +* Translation of OpenStack SFC API's to OpenDaylight Neutron Northbound + SFC models** [8]. + +** This work is not yet done, but the OpenDaylight neutron northbound project +needs to come up with yang models for SFC classification/chain. These models +will be based on the existing networking-sfc APIs. This work is out of scope +of networking-odl work and will be collaborated in the scope of OpenDaylight +Neutron Northbound project. + +SFC providers (E.g Net-Virt, GBP, SFC ) in OpenDaylight can listen to these +OpenDaylight Neutron Northbound SFC models and translate it to their specific +yang models for classification/sfc. The following diagram shows the high level +integration between OpenStack and the OpenDaylight SFC provider:: + + +---------------------------------------------+ + | OpenStack Network Server (networking-sfc) | + | +-------------------+ | + | | networking-odl | | + | | SFC Driver | | + | +-------------------+ | + +----------------------|----------------------+ + | REST Communication + | + ----------------------- + OpenDaylight Controller | | + +-----------------------|-----------------------|---------------+ + | +----------v----+ +---v---+ | + | Neutron | SFC Classifier| |SFC | Neutron | + | Northbound | Models | |Models | Northbound| + | Project +---------------+ +-------+ Project | + | / \ | | + | / \ | | + | / \ | | + | +-----V--+ +---V----+ +---V---+ | + | |Net-Virt| ... | GBP | | SFC | ... | + | +---------+ +--------+ +-------+ | + +-----------|----------------|------------------|---------------+ + | | | + | | | + +-----------V----------------V------------------V---------------+ + | Network/OVS | + | | + +---------------------------------------------------------------+ + +In the above architecture, the opendaylight components are shown just to +understand the overall architecture, but it's out of scope of this spec's +work items. This spec will only track progress related to networking-odl +OpenStack sfc driver work. + +Given that OpenStack SFC APIs are port-pair based API's and OpenDaylight SFC +API's are based on IETF SFC yang models[8], there might be situations where +translation might requires API enhancement from OpenStack SFC. Networking SFC +team is open for these new enhancement requirements given that they are generic +enough to be leveraged by other backend SFC providers[9]. This work will be +leveraging the POC work done by Tim [10] to come up with the first version of +SFC driver. + +Dependencies +============ +It has a dependency on OpenDaylight Neutron Northbound SFC classifier and chain +yang models, but that is out of scope of this spec. + +Impact +====== +None + +Assignee(s) +=========== + +Following developers will be the initial contributor to the driver, but we will +be happy to have more contributor on board. + +* Anil Vishnoi (vishnoianil@gmail.com, irc: vishnoianil) +* Tim Rozet (trozet@redhat.com, irc: trozet) + +References +========== + +[1] http://docs.openstack.org/developer/networking-sfc/ + +[2] https://github.com/openstack/networking-sfc/blob/master/doc/source/api.rst + +[3] https://wiki.opendaylight.org/view/Service_Function_Chaining:Main + +[4] https://wiki.openstack.org/wiki/Tacker + +[5] https://github.com/trozet/tacker/tree/SFC_brahmaputra/tacker/sfc + +[6] https://github.com/trozet/tacker/tree/SFC_brahmaputra/tacker/sfc_classifier + +[7] https://tools.ietf.org/html/draft-ietf-netmod-acl-model-05 + +[8] https://wiki.opendaylight.org/view/NeutronNorthbound:Main + +[9] http://eavesdrop.openstack.org/meetings/service_chaining/2016/service_chaining.2016-03-31-17.00.log.html + +[10] https://github.com/trozet/tacker/blob/SFC_brahmaputra/tacker/sfc/drivers/opendaylight.py -- cgit 1.2.3-korg