From 3723d26d5dbb63364e8e8d839a3484781b038885 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jaime=20Caama=C3=B1o=20Ruiz?= Date: Mon, 18 Dec 2017 17:55:39 +0100 Subject: [PATCH] Add yang model for directional data plane locators MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Plus updated spec to align it to the latest model proposal. Change-Id: I7984d8e55decdeb91cd5611ad396b8a14f3492de Signed-off-by: Jaime Caamaño Ruiz --- docs/specs/directional-dpl.rst | 61 ++++++++++++++----- .../src/main/yang/rendered-service-path.yang | 7 +++ .../service-function-forwarder-logical.yang | 12 ++++ .../main/yang/service-function-forwarder.yang | 37 ++++++++++- 4 files changed, 99 insertions(+), 18 deletions(-) diff --git a/docs/specs/directional-dpl.rst b/docs/specs/directional-dpl.rst index 053e0ca9e..7460bb108 100644 --- a/docs/specs/directional-dpl.rst +++ b/docs/specs/directional-dpl.rst @@ -39,7 +39,6 @@ mechanisms to steer traffic (mac chaining, nsh, vlan, mpls...), versus bump in the wire service functions that are sfc unaware and thus might not allow any modification over the source traffic. - Use Cases --------- Support 'bump in the wire' network devices that can be made sfc aware to @@ -137,7 +136,6 @@ while operating in this mode, are sfc aware in that they allow to use already supported mechanisms (mac chaining, nsh...) to steer SFC traffic. - Pipeline changes ---------------- The existing OpenFlow pipeline will not be affected by this change. @@ -207,15 +205,49 @@ within the service function forwarder. } } +Logical interface locator support is also added to the service function +forwarder data plane locator. + +.. code-block:: service-function-forwarder-logical.yang + + augment "/sfc-sff:service-function-forwarders/" + + "sfc-sff:service-function-forwarder/" + + "sfc-sff:sff-data-plane-locator/" + + "sfc-sff:data-plane-locator/" + + "sfc-sff:locator-type/" { + description "Augments the Service Function Forwarder to allow the use of logical + interface locators"; + case logical-interface { + uses logical-interface-locator; + } + } + +A new leaf is added to the rendered service path model to flag reverse +paths. + +.. code-block:: rendered-service-path.yang + + leaf reverse-path { + type boolean; + mandatory true; + description + "True if this path is the reverse path of a symmetric + chain."; + } + Configuration impact -------------------- New optional parameters are added to the SFF-SF dictionary. These new parameters may not be configured in which case behavior is not changed. -Backward compatibility is preserved. + +The new flag introduced in the rendered service path model does not +have configuration impact as the entity is not meant to be configured. Logical SFF configuration model will change. Both, previous and new configuration models will be supported. +Thus backward compatibility is preserved despite the introduced +changes. Clustering considerations ------------------------- @@ -373,14 +405,16 @@ Work Items interfaces. * Update odl-openflow-renderer processor and surrounding utilities to use the proper data plane locator based on the direction of the path. +* Update provider to set the reverse flag on reverse rendered service + paths. * Update the shell command for service functions and service function forwarders to display the associations between them. +* Update CSIT Full Deploy to use new Logical SFF configuration model. * Update the user & developer guide to document directional data plane locators. * Update the user & developer guide to reflect the new Logical SFF configuration model. - Dependencies ============ The following projects currently depend on SFC: @@ -405,7 +439,8 @@ None. CSIT ---- -None. +Existing Full Deploy CSIT will be updated to use the new Logical SFF +configuration model. Documentation Impact ==================== @@ -414,17 +449,11 @@ Both the User Guide and Developer Guide will need to be updated. Open Issues =========== -* Should we drop support for the old Logical SFF configuration model for - simpler code, given it is not probably used by itself much and we will - update the netvirt sfc translator anyway? -* CSIT was not proposed yet because it requires testing with traffic, - which we don't currently have and is a major undertaking on itself. -* Currently reverse paths are only recognized with a name ending in - '-Reverse'. We probably should have a more explicit property to - designate a reversed path. -* I think that considering a yang model proposal that covers full bump - in the wire support in this spec would be interesting. So can we do this - without committing to a full implementation for the targeted release? +* Drop support for the old Logical SFF configuration model? +* New CSIT tests not proposed yet because it requires testing with + traffic, which we don't currently have and is a major undertaking on + itself. References ========== +NA \ No newline at end of file diff --git a/sfc-model/src/main/yang/rendered-service-path.yang b/sfc-model/src/main/yang/rendered-service-path.yang index c0fff9a1b..2bc9da30c 100644 --- a/sfc-model/src/main/yang/rendered-service-path.yang +++ b/sfc-model/src/main/yang/rendered-service-path.yang @@ -187,6 +187,13 @@ module rendered-service-path { description "Identifies the associated symmetric path, if any."; } + leaf reverse-path { + type boolean; + mandatory true; + description + "True if this path is the reverse path of a symmetric + chain."; + } leaf sfc-encapsulation { config false; type sfc-sl:sfc-encapsulation-type; diff --git a/sfc-model/src/main/yang/service-function-forwarder-logical.yang b/sfc-model/src/main/yang/service-function-forwarder-logical.yang index 220f63384..56f17d684 100644 --- a/sfc-model/src/main/yang/service-function-forwarder-logical.yang +++ b/sfc-model/src/main/yang/service-function-forwarder-logical.yang @@ -87,6 +87,18 @@ module service-function-forwarder-logical { } } + augment "/sfc-sff:service-function-forwarders/" + + "sfc-sff:service-function-forwarder/" + + "sfc-sff:sff-data-plane-locator/" + + "sfc-sff:data-plane-locator/" + + "sfc-sff:locator-type/" { + description "Augments the Service Function Forwarder to allow the use of logical + interface locators"; + case logical-interface { + uses logical-interface-locator; + } + } + augment "/sfc-sff:service-function-forwarders-state/" + "sfc-sff:service-function-forwarder-state/" { description "Augments the SFF state to hold logical SFF specific information"; diff --git a/sfc-model/src/main/yang/service-function-forwarder.yang b/sfc-model/src/main/yang/service-function-forwarder.yang index 75cd6cbd8..b2056ed1f 100644 --- a/sfc-model/src/main/yang/service-function-forwarder.yang +++ b/sfc-model/src/main/yang/service-function-forwarder.yang @@ -163,14 +163,47 @@ module service-function-forwarder { type sfc-common:sf-data-plane-locator-name; description "The SF data plane locator to use when sending - packets to the associated service function"; + packets to the associated service function. + Used for both forward and reverse packets on + symmetric paths with Service Functions that + have just one locator."; } leaf sff-dpl-name { type sfc-common:sff-data-plane-locator-name; description "The SFF data plane locator to use when sending packets to the associated service function. - This is necessary when the SFF has multiple DPLs"; + Used for both forward and reverse packets on + symmetric paths with Service Functions that + have just one locator."; + } + leaf sf-forward-dpl-name { + type sfc-common:sf-data-plane-locator-name; + description + "The SF data plane locator to use when sending + packets to the associated service function + on the forward path of a symmetric chain"; + } + leaf sf-reverse-dpl-name { + type sfc-common:sf-data-plane-locator-name; + description + "The SF data plane locator to use when sending + packets to the associated service function + on the reverse path of a symmetric chain"; + } + leaf sff-forward-dpl-name { + type sfc-common:sff-data-plane-locator-name; + description + "The SFF data plane locator to use when sending + packets to the associated service function + on the forward path of a symmetric chain."; + } + leaf sff-reverse-dpl-name { + type sfc-common:sff-data-plane-locator-name; + description + "The SFF data plane locator to use when sending + packets to the associated service function + on the reverse path of a symmetric chain."; } } list sff-interfaces { -- 2.36.6