aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/release/release-notes/releasenotes.rst55
-rw-r--r--docs/release/scenarios/os-odl-sfc-ha/scenario.description.rst25
-rw-r--r--docs/release/scenarios/os-odl-sfc-noha/scenario.description.rst27
-rw-r--r--docs/release/scenarios/os-odl-sfc_fdio-ha/index.rst18
-rw-r--r--docs/release/scenarios/os-odl-sfc_fdio-ha/scenario.description.rst44
-rw-r--r--docs/release/scenarios/os-odl-sfc_fdio-noha/index.rst18
-rw-r--r--docs/release/scenarios/os-odl-sfc_fdio-noha/scenario.description.rst44
-rw-r--r--sfc/lib/openstack_utils.py17
-rw-r--r--sfc/unit_tests/unit/lib/test_openstack_utils.py34
9 files changed, 97 insertions, 185 deletions
diff --git a/docs/release/release-notes/releasenotes.rst b/docs/release/release-notes/releasenotes.rst
index d9d22f80..eff3ac13 100644
--- a/docs/release/release-notes/releasenotes.rst
+++ b/docs/release/release-notes/releasenotes.rst
@@ -5,25 +5,25 @@
Abstract
========
-This document compiles the release notes for the Fraser release of
+This document compiles the release notes for the Gambia release of
OPNFV SFC
Important notes
===============
These notes provide release information for the use of SFC with the
-Apex installer, xci tool and Compass4NFV for the Fraser release of OPNFV.
+Apex installer, xci tool and Compass4NFV for the Gambia release of OPNFV.
Summary
=======
-The goal of the SFC Fraser release is to integrate the OpenDaylight
-SFC project into an OPNFV environment, with either the Apex installer,
-xci tools or Compass4NFV.
+The goal of the SFC release is to integrate the OpenDaylight SFC project
+into an OPNFV environment, with either the Apex installer, xci tool or
+Compass4NFV.
More information about OpenDaylight and SFC can be found here.
-- `OpenDaylight <http://www.opendaylight.org>`_ version "Oxygen SR1"
+- `OpenDaylight <http://www.opendaylight.org>`_ version "Fluorine SR1"
- `Service function chaining <https://wiki.opnfv.org/display/sfc/Service+Function+Chaining+Home>`_
@@ -46,18 +46,18 @@ Release Data
| **Project** | sfc |
| | |
+--------------------------------------+--------------------------------------+
-| **Repo/tag** | opnfv-6.2.0 |
+| **Repo/tag** | opnfv-7.0.0 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release designation** | Fraser 6.2 |
+| **Release designation** | Gambia 7.0 |
| | |
+--------------------------------------+--------------------------------------+
-| **Release date** | 29th June 2018 |
+| **Release date** | 12th November 2018 |
| | |
+--------------------------------------+--------------------------------------+
-| **Purpose of the delivery** | Move to OpenStack Pike and ODL Oxygen|
-| | Support symmetric testcases |
-| | Support master branch of OpenStack |
+| **Purpose of the delivery** | Move to OpenStack Rocky, ODL FLuorine|
+| | and OVS 2.9.2 (NSH native support) |
+| | Move to odl_v2 driver in n-sfc |
+--------------------------------------+--------------------------------------+
Version change
@@ -67,15 +67,15 @@ Module version changes
~~~~~~~~~~~~~~~~~~~~~~
This release of OPNFV sfc is based on following upstream versions:
-- OpenStack Pike release
+- OpenStack Rocky release
-- OpenDaylight Oxygen SR1 release
+- OpenDaylight Fluorine SR1 release
-- Open vSwitch 2.6.1 with Yi Yang NSH patch
+- Open vSwitch 2.9.2
Document changes
~~~~~~~~~~~~~~~~
-This is the first tracked version of OPNFV SFC Fraser. It comes with
+This is the first tracked version of OPNFV SFC Gambia. It comes with
the following documentation:
- :ref:`Design document <sfc-design>`
@@ -90,9 +90,10 @@ Reason for version
Feature additions
~~~~~~~~~~~~~~~~~
-- `Using SNAPS as base for our tests`
-- `Increase test coverage with two extra test cases: symmetric and deletion`
-- `Reduced the footprint of the image we use for testing to reduce testing time`
+- `Use odl_v2 driver for n-sfc`
+- `Unit test creation`
+- `Code refactored`
+- `Tests can be run without tacker and with n-sfc directly`
Bug corrections
~~~~~~~~~~~~~~~
@@ -119,7 +120,7 @@ Known Limitations, Issues and Workarounds
System Limitations
------------------
-The Fraser 1.0 release has a few limitations:
+The Gambia 1.0 release has a few limitations:
1 - The testcase sfc_two_chains_SSH_and_HTTP is disabled in this release due to
a missing feature in ODL. We are unable to currently update a chain config
@@ -139,12 +140,12 @@ Workarounds
Test results
============
-The Fraser release of SFC has undergone QA test runs with Functest tests on the
+The Gambia release of SFC has undergone QA test runs with Functest tests on the
Apex and Compass installers and xci utility
References
==========
-For more information on the OPNFV Fraser release, please see:
+For more information on the OPNFV Gambia release, please see:
OPNFV
-----
@@ -153,12 +154,12 @@ OPNFV
2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_
-3) `OPNFV Fraser release <https://docs.opnfv.org/en/stable-fraser/index.html>`_
+3) `OPNFV Gambia release <https://docs.opnfv.org/en/stable-gambia/index.html>`_
OpenStack
---------
-4) `OpenStack Pike Release artifacts <http://www.openstack.org/software/pike>`_
+4) `OpenStack Rocky Release artifacts <http://www.openstack.org/software/rocky>`_
5) `OpenStack documentation <http://docs.openstack.org>`_
@@ -166,9 +167,3 @@ OpenDaylight
------------
6) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_
-
-Open vSwitch with NSH
----------------------
-
-7) https://github.com/yyang13/ovs_nsh_patches
-
diff --git a/docs/release/scenarios/os-odl-sfc-ha/scenario.description.rst b/docs/release/scenarios/os-odl-sfc-ha/scenario.description.rst
index 65ba3c7e..62bb6f55 100644
--- a/docs/release/scenarios/os-odl-sfc-ha/scenario.description.rst
+++ b/docs/release/scenarios/os-odl-sfc-ha/scenario.description.rst
@@ -8,7 +8,7 @@ Introduction
The os-odl-sfc-ha is intended to be used to install the OPNFV SFC project in a standard
OPNFV High Availability mode. The OPNFV SFC project integrates the OpenDaylight SFC project
-into the OPNFV environment. The OPNFV SFC Fraser release uses the OpenDaylight Oxygen SR1 release.
+into the OPNFV environment. The OPNFV SFC Gambia release uses the OpenDaylight Fluorine SR1 release.
Scenario components and composition
===================================
@@ -53,11 +53,14 @@ will automatically be installed.
The VNF Manager
---------------
-In order to create a VM for each Service Function, a VNF Manager is needed. The OPNFV
+In order to create a VM for each Service Function, a VNF Manager is recommended. The OPNFV
SFC project currently uses the Tacker OpenStack project as a VNF Manager. Tacker is
installed on the controller node and manages VNF life cycle, and coordinates VM creation
and SFC configuration with OpenStack and OpenDaylight SFC project.
+It is also possible to run tests without a VNF Manager, steering SFC through networking-sfc
+project
+
Scenario usage overview
=======================
.. Provide a brief overview on how to use the scenario and the features available to the
@@ -66,7 +69,7 @@ Scenario usage overview
Once this scenario is installed, it will be possible to create Service Chains and
classification entries to map tenant traffic to individual, pre-defined Service Chains.
-All configuration can be performed using the Tacker CLI.
+All configuration can be performed using the Tacker CLI or the networking-sfc CLI.
Limitations, Issues and Workarounds
===================================
@@ -77,16 +80,8 @@ Limitations, Issues and Workarounds
Specific version of OVS
-----------------------
-SFC needs changes in OVS to include the Network Service Headers (NSH) Service Chaining
-encapsulation. This OVS patch has been ongoing for quite a while (2 years+), and still
-has not been officially merged. Previously, SFC used NSH from a branched version of OVS
-based on 2.3.90, called the "Pritesh Patch". In the OpenDaylight Oxygen SR1 release, SFC was
-changed to use a newer, branched version of OVS based on 2.6.1, called the "Yi Yang
-Patch".
-
-The older version of OVS only supported VXLAN-GPE + NSH encapsulation, but the newer
-version supports both ETH + NSH and VXLAN-GPE + ETH + NSH. Currently SFC is only
-implemented with VXLAN-GPE + ETH + NSH.
+SFC needs OVS 2.9.2 or higher because it includes the Network Service Headers (NSH)
+Service Chaining encapsulation.
References
==========
@@ -97,6 +92,6 @@ https://wiki.opnfv.org/display/sfc/Service+Function+Chaining+Home
https://wiki.opendaylight.org/view/Service_Function_Chaining:Main
-For more information on the OPNFV Fraser release, please visit:
+For more information on the OPNFV Gambia release, please visit:
-https://docs.opnfv.org/en/stable-fraser/index.html
+https://docs.opnfv.org/en/stable-gambia/index.html
diff --git a/docs/release/scenarios/os-odl-sfc-noha/scenario.description.rst b/docs/release/scenarios/os-odl-sfc-noha/scenario.description.rst
index 65ba3c7e..8c8ea22f 100644
--- a/docs/release/scenarios/os-odl-sfc-noha/scenario.description.rst
+++ b/docs/release/scenarios/os-odl-sfc-noha/scenario.description.rst
@@ -6,9 +6,9 @@ Introduction
============
.. In this section explain the purpose of the scenario and the types of capabilities provided
-The os-odl-sfc-ha is intended to be used to install the OPNFV SFC project in a standard
+The os-odl-sfc-noha is intended to be used to install the OPNFV SFC project in a standard
OPNFV High Availability mode. The OPNFV SFC project integrates the OpenDaylight SFC project
-into the OPNFV environment. The OPNFV SFC Fraser release uses the OpenDaylight Oxygen SR1 release.
+into the OPNFV environment. The OPNFV SFC Gambia release uses the OpenDaylight Fluorine SR1 release.
Scenario components and composition
===================================
@@ -53,11 +53,14 @@ will automatically be installed.
The VNF Manager
---------------
-In order to create a VM for each Service Function, a VNF Manager is needed. The OPNFV
+In order to create a VM for each Service Function, a VNF Manager is recommended. The OPNFV
SFC project currently uses the Tacker OpenStack project as a VNF Manager. Tacker is
installed on the controller node and manages VNF life cycle, and coordinates VM creation
and SFC configuration with OpenStack and OpenDaylight SFC project.
+It is also possible to run tests without a VNF Manager, steering SFC through networking-sfc
+project
+
Scenario usage overview
=======================
.. Provide a brief overview on how to use the scenario and the features available to the
@@ -66,7 +69,7 @@ Scenario usage overview
Once this scenario is installed, it will be possible to create Service Chains and
classification entries to map tenant traffic to individual, pre-defined Service Chains.
-All configuration can be performed using the Tacker CLI.
+All configuration can be performed using the Tacker CLI or the networking-sfc CLI.
Limitations, Issues and Workarounds
===================================
@@ -77,16 +80,8 @@ Limitations, Issues and Workarounds
Specific version of OVS
-----------------------
-SFC needs changes in OVS to include the Network Service Headers (NSH) Service Chaining
-encapsulation. This OVS patch has been ongoing for quite a while (2 years+), and still
-has not been officially merged. Previously, SFC used NSH from a branched version of OVS
-based on 2.3.90, called the "Pritesh Patch". In the OpenDaylight Oxygen SR1 release, SFC was
-changed to use a newer, branched version of OVS based on 2.6.1, called the "Yi Yang
-Patch".
-
-The older version of OVS only supported VXLAN-GPE + NSH encapsulation, but the newer
-version supports both ETH + NSH and VXLAN-GPE + ETH + NSH. Currently SFC is only
-implemented with VXLAN-GPE + ETH + NSH.
+SFC needs OVS 2.9.2 or higher because it includes the Network Service Headers (NSH)
+Service Chaining encapsulation.
References
==========
@@ -97,6 +92,6 @@ https://wiki.opnfv.org/display/sfc/Service+Function+Chaining+Home
https://wiki.opendaylight.org/view/Service_Function_Chaining:Main
-For more information on the OPNFV Fraser release, please visit:
+For more information on the OPNFV Gambia release, please visit:
-https://docs.opnfv.org/en/stable-fraser/index.html
+https://docs.opnfv.org/en/stable-gambia/index.html
diff --git a/docs/release/scenarios/os-odl-sfc_fdio-ha/index.rst b/docs/release/scenarios/os-odl-sfc_fdio-ha/index.rst
deleted file mode 100644
index 28413b2e..00000000
--- a/docs/release/scenarios/os-odl-sfc_fdio-ha/index.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-.. _os-odl-sfc_fdio-ha:
-
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-=========================================
-os-odl-sfc_fdio-ha overview and description
-=========================================
-.. This document will be used to provide a description of the scenario for an end user.
-.. You should explain the purpose of the scenario, the types of capabilities provided and
-.. the unique components that make up the scenario including how they are used.
-
-.. toctree::
- :maxdepth: 3
-
- ./scenario.description.rst
-
diff --git a/docs/release/scenarios/os-odl-sfc_fdio-ha/scenario.description.rst b/docs/release/scenarios/os-odl-sfc_fdio-ha/scenario.description.rst
deleted file mode 100644
index b9d965a3..00000000
--- a/docs/release/scenarios/os-odl-sfc_fdio-ha/scenario.description.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-Introduction
-============
-.. In this section explain the purpose of the scenario and the types of capabilities provided
-
-The os-odl-sfc_fdio-ha is intended to be used to install the OPNFV SFC project in a standard
-OPNFV High Availability mode. The OPNFV SFC project integrates the OpenDaylight SFC project
-into the OPNFV environment. The OPNFV SFC Fraser release uses the OpenDaylight Oxygen SR1 release.
-
-Scenario components and composition
-===================================
-.. In this section describe the unique components that make up the scenario,
-.. what each component provides and why it has been included in order
-.. to communicate to the user the capabilities available in this scenario.
-
-OpenDaylight features installed
--------------------------------
-
-Scenario usage overview
-=======================
-.. Provide a brief overview on how to use the scenario and the features available to the
-.. user. This should be an "introduction" to the userguide document, and explicitly link to it,
-.. where the specifics of the features are covered including examples and API's
-
-Once this scenario is installed, it will be possible to create Service Chains and
-classification entries to map tenant traffic to individual, pre-defined Service Chains.
-All configuration can be performed using the Tacker CLI.
-
-Limitations, Issues and Workarounds
-===================================
-.. Explain scenario limitations here, this should be at a design level rather than discussing
-.. faults or bugs. If the system design only provide some expected functionality then provide
-.. some insight at this point.
-
-Specific version of FD.IO
------------------------
-
-TO BE ADDED
-
-References
-==========
diff --git a/docs/release/scenarios/os-odl-sfc_fdio-noha/index.rst b/docs/release/scenarios/os-odl-sfc_fdio-noha/index.rst
deleted file mode 100644
index a77bc4c5..00000000
--- a/docs/release/scenarios/os-odl-sfc_fdio-noha/index.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-.. _os-odl-sfc_fdio-noha:
-
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-===========================================
-os-odl-sfc_fdio-noha overview and description
-===========================================
-.. This document will be used to provide a description of the scenario for an end user.
-.. You should explain the purpose of the scenario, the types of capabilities provided and
-.. the unique components that make up the scenario including how they are used.
-
-.. toctree::
- :maxdepth: 3
-
- ./scenario.description.rst
-
diff --git a/docs/release/scenarios/os-odl-sfc_fdio-noha/scenario.description.rst b/docs/release/scenarios/os-odl-sfc_fdio-noha/scenario.description.rst
deleted file mode 100644
index b9d965a3..00000000
--- a/docs/release/scenarios/os-odl-sfc_fdio-noha/scenario.description.rst
+++ /dev/null
@@ -1,44 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-Introduction
-============
-.. In this section explain the purpose of the scenario and the types of capabilities provided
-
-The os-odl-sfc_fdio-ha is intended to be used to install the OPNFV SFC project in a standard
-OPNFV High Availability mode. The OPNFV SFC project integrates the OpenDaylight SFC project
-into the OPNFV environment. The OPNFV SFC Fraser release uses the OpenDaylight Oxygen SR1 release.
-
-Scenario components and composition
-===================================
-.. In this section describe the unique components that make up the scenario,
-.. what each component provides and why it has been included in order
-.. to communicate to the user the capabilities available in this scenario.
-
-OpenDaylight features installed
--------------------------------
-
-Scenario usage overview
-=======================
-.. Provide a brief overview on how to use the scenario and the features available to the
-.. user. This should be an "introduction" to the userguide document, and explicitly link to it,
-.. where the specifics of the features are covered including examples and API's
-
-Once this scenario is installed, it will be possible to create Service Chains and
-classification entries to map tenant traffic to individual, pre-defined Service Chains.
-All configuration can be performed using the Tacker CLI.
-
-Limitations, Issues and Workarounds
-===================================
-.. Explain scenario limitations here, this should be at a design level rather than discussing
-.. faults or bugs. If the system design only provide some expected functionality then provide
-.. some insight at this point.
-
-Specific version of FD.IO
------------------------
-
-TO BE ADDED
-
-References
-==========
diff --git a/sfc/lib/openstack_utils.py b/sfc/lib/openstack_utils.py
index 7915e77d..38ca61bb 100644
--- a/sfc/lib/openstack_utils.py
+++ b/sfc/lib/openstack_utils.py
@@ -316,6 +316,23 @@ class OpenStackSFC:
{'vnf': vm_instance.name})
return None
+ # Avoid race conditions by checking the port pair is already committed
+ iterations = 5
+ found_it = False
+ for i in range(iterations):
+ pp_list = self.neutron.list_sfc_port_pairs()['port_pairs']
+ for pp in pp_list:
+ if pp['id'] == port_pair_info['port_pair']['id']:
+ found_it = True
+ break
+ if found_it:
+ break
+ else:
+ time.sleep(3)
+
+ if not found_it:
+ raise Exception("Port pair was not committed in openstack")
+
logger.info("Creating the port pair groups for %s" % vm_instance.name)
port_pair_group = {}
port_pair_group['name'] = vm_instance.name + '-port-pair-group'
diff --git a/sfc/unit_tests/unit/lib/test_openstack_utils.py b/sfc/unit_tests/unit/lib/test_openstack_utils.py
index eca9316d..3397c55a 100644
--- a/sfc/unit_tests/unit/lib/test_openstack_utils.py
+++ b/sfc/unit_tests/unit/lib/test_openstack_utils.py
@@ -715,6 +715,36 @@ class SfcOpenStackUtilsTesting(unittest.TestCase):
@patch('snaps.domain.network.Port', autospec=True)
@patch('snaps.domain.vm_inst.VmInst', autospec=True)
@patch('sfc.lib.openstack_utils.logger', autospec=True)
+ def test_create_port_groups_exception_nopp(self, mock_log, mock_osvm,
+ mock_port):
+ """
+ Checks the create_port_groups when openstack does not commit the pp
+ """
+
+ log_calls_info = [call('Creating the port pairs for vm')]
+ mock_port_ins = mock_port.return_value
+ mock_port_ins.id = '123abc'
+ mock_vm_ins = mock_osvm.return_value
+ mock_vm_ins.name = 'vm'
+ exception_message = "Port pair was not committed in openstack"
+ expected_port_pair = {'name': 'vm-connection-points',
+ 'description': 'port pair for vm',
+ 'ingress': '123abc',
+ 'egress': '123abc'}
+ self.neutron.create_sfc_port_pair.return_value = \
+ {'port_pair': {'id': 'pp_id'}}
+ self.neutron.list_sfc_port_pairs.return_value = \
+ {'port_pairs': [{'id': 'xxxx'}]}
+ with self.assertRaises(Exception) as cm:
+ self.os_sfc.create_port_groups([mock_port_ins], mock_vm_ins)
+ self.assertEqual(exception_message, cm.exception.message)
+ self.neutron.create_sfc_port_pair.assert_has_calls(
+ [call({'port_pair': expected_port_pair})])
+ mock_log.info.assert_has_calls(log_calls_info)
+
+ @patch('snaps.domain.network.Port', autospec=True)
+ @patch('snaps.domain.vm_inst.VmInst', autospec=True)
+ @patch('sfc.lib.openstack_utils.logger', autospec=True)
def test_create_port_groups_returns_none_from_ppg(self, mock_log,
mock_vm,
mock_port):
@@ -732,6 +762,8 @@ class SfcOpenStackUtilsTesting(unittest.TestCase):
mock_port_ins.id = '123abc'
self.neutron.create_sfc_port_pair.return_value = \
{'port_pair': {'id': 'pp_id'}}
+ self.neutron.list_sfc_port_pairs.return_value = \
+ {'port_pairs': [{'id': 'pp_id'}]}
self.neutron.create_sfc_port_pair_group.return_value = None
result = self.os_sfc.create_port_groups([mock_port_ins], mock_vm_ins)
self.assertIsNone(result)
@@ -759,6 +791,8 @@ class SfcOpenStackUtilsTesting(unittest.TestCase):
'egress': '123abc'}
self.neutron.create_sfc_port_pair.return_value = \
{'port_pair': {'id': 'pp_id'}}
+ self.neutron.list_sfc_port_pairs.return_value = \
+ {'port_pairs': [{'id': 'pp_id'}]}
self.neutron.create_sfc_port_pair_group.return_value = \
{'port_pair_group': {'id': 'pp_id'}}
expected_port_pair_gr = {'name': 'vm-port-pair-group',