| < draft-xia-sfc-yang-oam-01.txt | draft-xia-sfc-yang-oam-02.txt > | |||
|---|---|---|---|---|
| SFC WG Liang Xia | ||||
| Internet Draft Qin Wu | ||||
| Intended status: Standard Track Huawei | ||||
| Deepak Kumar | ||||
| Cisco | ||||
| Expires: June 2015 February 10, 2015 | ||||
| YANG Data Model for SFC Operations, Administration, and Maintenance | Network Working Group L. Xia | |||
| (OAM) | Internet-Draft Q. Wu | |||
| draft-xia-sfc-yang-oam-01.txt | Intended status: Standards Track Huawei | |||
| Expires: September 7, 2015 D. Kumar | ||||
| Cisco | ||||
| M. Boucadair | ||||
| France Telecom | ||||
| Z. Wang | ||||
| Huawei | ||||
| March 6, 2015 | ||||
| Status of this Memo | YANG Data Model for SFC Operations, Administration, and Maintenance | |||
| (OAM) | ||||
| draft-xia-sfc-yang-oam-02 | ||||
| Abstract | ||||
| This document defines YANG data model for Service Function Chaining | ||||
| (SFC) Operations, Administration, and Maintenance (OAM). It extends | ||||
| from the basic YANG data model for Layer independent OAM Management | ||||
| defined in [I-D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc- | ||||
| yang-oam-management] with SFC technology specifics. It includes SFC | ||||
| OAM related configuration, state, and RPC information data. | ||||
| Status of This Memo | ||||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF). Note that other groups may also distribute | |||
| other groups may also distribute working documents as Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six | ||||
| months and may be updated, replaced, or obsoleted by other documents | ||||
| at any time. It is inappropriate to use Internet-Drafts as | ||||
| reference material or to cite them other than as "work in progress." | ||||
| The list of current Internet-Drafts can be accessed at | ||||
| http://www.ietf.org/ietf/1id-abstracts.txt | ||||
| The list of Internet-Draft Shadow Directories can be accessed at | Internet-Drafts are draft documents valid for a maximum of six months | |||
| http://www.ietf.org/shadow.html | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | ||||
| material or to cite them other than as "work in progress." | ||||
| This Internet-Draft will expire on June 25,2015. | This Internet-Draft will expire on September 7, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2015 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with | carefully, as they describe your rights and restrictions with respect | |||
| respect to this document. Code Components extracted from this | to this document. Code Components extracted from this document must | |||
| document must include Simplified BSD License text as described in | include Simplified BSD License text as described in Section 4.e of | |||
| Section 4.e of the Trust Legal Provisions and are provided without | the Trust Legal Provisions and are provided without warranty as | |||
| warranty as described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Abstract | ||||
| This document defines YANG data model for Service Function Chaining | ||||
| (SFC) Operations, Administration, and Maintenance (OAM). It extends | ||||
| from the basic YANG data model for Layer independent OAM Management | ||||
| defined in [I-D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc- | ||||
| yang-oam-management] with SFC technology specifics. It includes SFC | ||||
| OAM related configuration, state, and RPC information data. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction ................................................ 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Conventions used in this document ........................... 3 | 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 | |||
| 2.1. Terminology ............................................ 4 | 2.1. Terminologies . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. SFC Extensions to LIME YANG Model ........................... 4 | 3. Architecture of OAM YANG Model and Relationship to SFC OAM . 4 | |||
| 3.1. MEP Address ............................................ 5 | 4. SFC Extensions to LIME YANG Model . . . . . . . . . . . . . . 5 | |||
| 3.2. Connectivity-Context ................................... 6 | 4.1. MEP Address . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.3. SFC Layer For RPC - Path Discovery ..................... 7 | 4.2. Connectivity-Context . . . . . . . . . . . . . . . . . . 6 | |||
| 4. SFC OAM YANG Data Hierarchy ................................. 8 | 4.3. SFC Layer For RPC - Path Discovery . . . . . . . . . . . 7 | |||
| 5. SFC OAM YANG Module ........................................ 17 | 5. SFC OAM YANG Data Hierarchy . . . . . . . . . . . . . . . . . 8 | |||
| 6. Security Considerations .................................... 40 | 6. SFC OAM YANG Module . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 7. IANA Considerations ........................................ 40 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 | |||
| 8. References ................................................. 40 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 8.1. Normative References .................................. 40 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
| 8.2. Informative References ................................ 41 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 33 | |||
| 9. Acknowledgments ............................................ 41 | 9.2. Informative References . . . . . . . . . . . . . . . . . 33 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
| 1. Introduction | 1. Introduction | |||
| YANG [RFC6020] is a data modeling language used to model | YANG [RFC6020] is a data modeling language used to model | |||
| configuration and state data manipulated by the Network | configuration and state data manipulated by the Network Configuration | |||
| Configuration Protocol (NETCONF) [RFC6241], NETCONF remote procedure | Protocol (NETCONF) [RFC6241], NETCONF remote procedure calls (RPC), | |||
| calls (RPC), and NETCONF notifications. | and NETCONF notifications. This document defines the YANG data model | |||
| for Service Function Chaining (SFC) [SFCPS] OAM. The SFC OAM YANG | ||||
| This document defines the YANG data model for Service Function Chaining | module involves the OAM configuration, RPCs and notifications, etc. | |||
| (SFC) [SFCPS] OAM. The SFC OAM YANG module involves the OAM | ||||
| configuration, RPCs and notifications, etc. | ||||
| Currently, [I-D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc- | Currently, [I-D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc- | |||
| yang-oam-management] propose a basic YANG data model for Layer | yang-oam-management] propose a basic YANG data model for Layer | |||
| independent OAM Management that can be applied to various OAM | independent OAM Management that can be applied to various OAM | |||
| technologies. SFC OAM YANG data model can be defined by directly | technologies. SFC OAM YANG data model can be defined by directly | |||
| extending the basic model with SFC technology specifics. It can | extending the basic model with SFC technology specifics. It can | |||
| bring some obvious benefits such as unified format, reusable parts, | bring some obvious benefits such as unified format, reusable parts, | |||
| and correlation of defects, faults, network failure at the specific | and correlation of defects, faults, network failure at the specific | |||
| layer. | layer. | |||
| In addition, various components in the SFC technology specific YANG | In addition, various components in the SFC technology specific YANG | |||
| data model defined in [SFCYANG] can be directly reused in this draft | data model defined in [SFCYANG] can be directly reused in this draft | |||
| to define the SFC OAM YANG data model. | to define the SFC OAM YANG data model. | |||
| Note that SFC OAM mechanisms are not yet defined or standardized | Note that SFC OAM mechanisms are not yet defined or standardized | |||
| although some of the basic concepts and functions (e.g., fault | although some of the basic concepts and functions (e.g., fault | |||
| detection, fault localization, performance measurement, etc) may be | detection, fault localization, performance measurement, etc) may be | |||
| similar to traditional OAM mechanisms. This draft should get | similar to traditional OAM mechanisms. This draft should get | |||
| alignment with the latest development SFC OAM mechanisms. | alignment with the latest development SFC OAM mechanisms. | |||
| 2. Conventions used in this document | 2. Conventions and Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC-2119 [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| The following terms are defined in [RFC6241] and are not redefined | The following terms are defined in [RFC6241] and are not redefined | |||
| here: | here: | |||
| o client | o client | |||
| o configuration data | o configuration data | |||
| o server | o server | |||
| o state data | o state data | |||
| The following terms are defined in [RFC6020] and are not redefined | The following terms are defined in [RFC6020] and are not redefined | |||
| here: | here: | |||
| o augment | o augment | |||
| o data model | o data model | |||
| o data node | o data node | |||
| The terminology for describing YANG data models is found in | The terminology for describing YANG data models is found in | |||
| [RFC6020]. | [RFC6020]. | |||
| 2.1. Terminology | 2.1. Terminologies | |||
| MP - Maintenance Point [8021Q] | MP Maintenance Point [8021Q]. | |||
| MEP - Maintenance End Point [8021Q] [RFC6371] | MEP Maintenance End Point [8021Q] [RFC6371] | |||
| MIP - Maintenance Intermediate Point [8021Q] [RFC6371] | MIP Maintenance Intermediate Point [8021Q] [RFC6371] | |||
| MEG - Maintenance Entity Group [Y1731] [RFC6371] | MEG Maintenance Entity Group [Y1731] [RFC6371] | |||
| ME Maintenance Entity [Y.1731] [RFC6371] | ||||
| ME - Maintenance Entity [Y.1731] [RFC6371] | MD Maintenance Domain [8021Q] | |||
| MD - Maintenance Domain [8021Q] | OAM Operations, Administration, and Maintenance [RFC6291] | |||
| OAM - Operations, Administration, and Maintenance [RFC6291] | LIME Layer Independent OAM Management [I-D.tissa-lime-yang-oam- | |||
| model] [I-D.wang-lime-rpc-yang-oam-management] | ||||
| LIME - Layer Independent OAM Management [I-D.tissa-lime-yang-oam- | SF Service Function [SFCYANG] | |||
| model] [I-D.wang-lime-rpc-yang-oam-management] | ||||
| SF - Service Function [SFCYANG] | SFC Service Function Chaining [SFCYANG] | |||
| SFC - Service Function Chaining [SFCYANG] | SFF Service Function Forwarder [SFCYANG] | |||
| SFF - Service Function Forwarder [SFCYANG] | 3. Architecture of OAM YANG Model and Relationship to SFC OAM | |||
| 3. SFC Extensions to LIME YANG Model | Layer independent OAM YANG model[I-D.tissa-lime-yang-oam-model] and | |||
| [I-D.wang-lime-rpc-yang-oam-management] is used as the basis for all | ||||
| the other OAM YANG models. This allows users to span across OAM | ||||
| tools of different technologies through a uniform API. The following | ||||
| Figure depicts the relationship of SFC OAM YANG model to the Layer | ||||
| Independent OAM YANG Model. | ||||
| +-+-+-+-+-+ | ||||
| | Layer | | ||||
| |independent | ||||
| |OAM YANG | | ||||
| +-+-+-+-+-+ | ||||
| | | ||||
| O | ||||
| | | ||||
| +--------------------------------------------------+ | ||||
| | | | | | ||||
| +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ | ||||
| | TRILL | | NVO3 | | SFC |. .| foo | | ||||
| |OAM YANG | |OAM YANG | |OAM YANG | |OAM YANG | | ||||
| +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ | ||||
| | | | | | ||||
| | | | | | ||||
| | | | | | ||||
| +----------------------------------------------------+ | ||||
| | Uniform API | | ||||
| +----------------------------------------------------+ | ||||
| Relationship of SFC OAM YANG model to Layer independent OAM YANG | ||||
| model | ||||
| 4. SFC Extensions to LIME YANG Model | ||||
| A new Technology parameter of SFC is defined here for the purpose of | A new Technology parameter of SFC is defined here for the purpose of | |||
| identifying the SFC specific YANG model extension: | identifying the SFC specific YANG model extension: | |||
| identity SFC { | identity SFC { | |||
| base goam:technology-types; | base goam:technology-types; | |||
| description | description | |||
| "SFC type"; | "SFC type"; | |||
| } | } | |||
| Figure 1 SFC identity type | SFC identity type | |||
| Only when the Technology parameter is set to the "SFC" value, the | Only when the Technology parameter is set to the "SFC" value, the SFC | |||
| SFC specific extensions are applied. | specific extensions are applied. | |||
| 3.1. MEP Address | 4.1. MEP Address | |||
| In SFC, either the SF on service function layer or SF/SFF on SFC | In SFC, either the SF on service function layer or SF/SFF on SFC | |||
| forwarding layer can be MEP/MIP. A MEP/MIP cannot be identified | forwarding layer can be MEP/MIP. A MEP/MIP cannot be identified | |||
| without specifying service function path. Therefore the MEP/MIP | without specifying service function path. Therefore the MEP/MIP | |||
| address can only be identified by SF/SFF address plus service | address can only be identified by SF/SFF address plus service | |||
| function path id. In [I-D.tissa-lime-yang-oam-model] and [I-D.wang- | function path id. In [I-D.tissa-lime-yang-oam-model] and [I-D.wang- | |||
| lime-rpc-yang-oam-management], MEP/MIP address is defined using a | lime-rpc-yang-oam-management], MEP/MIP address is defined using a | |||
| combination of choice and case statement. We augment this to include | combination of choice and case statement. We augment this to include | |||
| SFC specific SF/SFF address plus service function path id. | SFC specific SF/SFF address plus service function path id. | |||
| augment | augment | |||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- | "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- | |||
| address" { | address" { | |||
| case sf-mep-address { | case sf-mep-address { | |||
| description | description | |||
| skipping to change at page 6, line 4 ¶ | skipping to change at page 6, line 20 ¶ | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| case sff-mep-address { | case sff-mep-address { | |||
| description | description | |||
| "Service function forwarder address plus service function path | "Service function forwarder address plus service function path | |||
| id identify one SFC MEP. A SFC MP can be a service function or | id identify one SFC MEP. A SFC MP can be a service function or | |||
| service function forwarder!" | service function forwarder!" | |||
| leaf sff-mep-ref { | leaf sff-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| Figure 2 Augment SFC MEP address | Augment SFC MEP address | |||
| 3.2. Connectivity-Context | 4.2. Connectivity-Context | |||
| In SFC, connectivity-context is the service function path id. [I- | In SFC, connectivity-context is the service function path id. [I- | |||
| D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc-yang-oam- | D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc-yang-oam- | |||
| management] defines a placeholder for connectivity-context. This | management] defines a placeholder for connectivity-context. This | |||
| allows other technologies to easily augment that to include | allows other technologies to easily augment that to include | |||
| technology specific extensions. The snippet below depicts an example | technology specific extensions. The snippet below depicts an example | |||
| of augmenting connectivity-context to include the SFC connectivity- | of augmenting connectivity-context to include the SFC connectivity- | |||
| context. | context. | |||
| augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: | augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: | |||
| connectivity-context" { | connectivity-context" { | |||
| case connectivity-context-sfc { | case connectivity-context-sfc { | |||
| leaf connectivity-context-sfp { | leaf connectivity-context-sfp { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | ||||
| } | } | |||
| } | Augment SFC Connectivity-Context | |||
| Figure 3 Augment SFC Connectivity-Context | ||||
| 3.3. SFC Layer For RPC - Path Discovery | 4.3. SFC Layer For RPC - Path Discovery | |||
| Path Discovery is used to discover the path that specific service | Path Discovery is used to discover the path that specific service | |||
| traverses in the network. For SFC, it can be used on both service | traverses in the network. For SFC, it can be used on both service | |||
| function layer and SFC forwarding layer depending on what is the | function layer and SFC forwarding layer depending on what is the | |||
| desired degree of path information. | desired degree of path information. | |||
| typedef SFC-layer { | typedef SFC-layer { | |||
| type enumeration { | type enumeration { | |||
| enum "Service function layer" { | enum "Service function layer" { | |||
| value 0; | value 0; | |||
| } | } | |||
| enum "SFC forwarding layer" { | enum "SFC forwarding layer" { | |||
| value 1; | value 1; | |||
| } | } | |||
| } | ||||
| } | } | |||
| } | augment "/goam-rpc:path-discovery/goam-rpc:input" { | |||
| augment "/goam-rpc:initiated-path-discovery/goam-rpc:input" { | description | |||
| description | "Adding SFC specific items on the input"; | |||
| "Adding SFC specific items on the input"; | leaf path-discovery-layer { | |||
| leaf path-discovery-layer { | type SFC-layer; | |||
| type SFC-layer; | ||||
| description | description | |||
| "Identifying which SFC layer to run path discovery"; | "Identifying which SFC layer to run path discovery"; | |||
| } | } | |||
| } | } | |||
| Figure 4 Augment SFC SFC-layer for Path Discovery | Augment SFC SFC-layer for Path Discovery | |||
| 4. SFC OAM YANG Data Hierarchy | 5. SFC OAM YANG Data Hierarchy | |||
| The complete data hierarchy related to the SFC OAM YANG model is | The complete data hierarchy related to the SFC OAM YANG model is | |||
| presented below. The following notations are used within the data | presented below. The following notations are used within the data | |||
| tree and carry the meaning as noted below. | tree and carry the meaning as noted below. | |||
| Each node is printed as: | Each node is printed as: | |||
| <status> <flags> <name> <opts> <type> | <status> <flags> <name> <opts> <type> | |||
| <status> is one of: | ||||
| + for current | ||||
| x for deprecated | ||||
| o for obsolete | ||||
| <flags> is one of: | ||||
| rw for configuration data | ||||
| ro for non-configuration data | ||||
| -x for rpcs | ||||
| -n for notifications | ||||
| <name> is the name of the node | ||||
| If the node is augmented into the tree from another module, | ||||
| its | ||||
| name is printed as <prefix>:<name>. | ||||
| <opts> is one of: | ||||
| ? for an optional leaf or choice | ||||
| ! for a presence container | ||||
| * for a leaf-list or list | ||||
| [<keys>] for a list's keys | ||||
| <type> is the name of the type for leafs and leaf-lists | ||||
| module: sfc-oam | ||||
| augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam: | ||||
| connectivity-context: | ||||
| +--:(connectivity-context-sfc) | ||||
| +--rw connectivity-context-sfp? sfc-sfp:service-function- | ||||
| path-ref | ||||
| augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- | ||||
| address: | ||||
| +--:(sf-mep-address) | ||||
| | +--rw sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--rw sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: | ||||
| connectivity-context: | ||||
| +--:(connectivity-context-sfc) | ||||
| +--rw connectivity-context-sfp? sfc-sfp:service-function- | ||||
| path-ref | ||||
| augment | ||||
| /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/goa | ||||
| m:destination-mep-address/goam:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--rw sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| +--rw sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment | ||||
| /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/goa | ||||
| m:connectivity-context: | ||||
| +--:(connectivity-context-sfc) | ||||
| +--rw connectivity-context-sfp? sfc-sfp:service-function- | ||||
| path-ref | ||||
| augment /goam-rpc:initiated-contiuity-check/goam-rpc:input/goam- | ||||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:initiated-contiuity-check/goam-rpc:input/goam- | ||||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:revoke-contiuity-check/goam-rpc:input/goam- | ||||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:revoke-contiuity-check/goam-rpc:input/goam- | ||||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:initiated-connectity-verification/goam- | ||||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:initiated-connectity-verification/goam- | ||||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:revoke-connectity-verification/goam- | ||||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:revoke-connectity-verification/goam- | ||||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| augment /goam-rpc:initiated-path-discovery/goam-rpc:input: | ||||
| +--ro:path-discovery-layer SFC-layer | ||||
| augment /goam-rpc:initiated-path-discovery/goam-rpc:input/goam- | ||||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--:(sff-mep-address) | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | <status> is one of: | |||
| + for current | ||||
| x for deprecated | ||||
| o for obsolete | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | <flags> is one of: | |||
| augment /goam-rpc:initiated-path-discovery/goam-rpc:input/goam- | rw for configuration data | |||
| rpc:destination-mep/goam-rpc:mp-address: | ro for non-configuration data | |||
| -x for rpcs | ||||
| -n for notifications | ||||
| +--:(sf-mep-address) | <name> is the name of the node | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | If the node is augmented into the tree from another module, its name | |||
| is printed as <prefix>:<name>. | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | <opts> is one of: | |||
| +--:(sff-mep-address) | ? for an optional leaf or choice | |||
| ! for a presence container | ||||
| * for a leaf-list or list | ||||
| [<keys>] for a list's keys | ||||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | <type> is the name of the type for leafs and leaf-lists | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | module: sfc-oam | |||
| augment /goam-rpc:initiated-path-discovery/goam-rpc:output/ goam- | augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam: | |||
| rpc:response/goam-rpc:destination-mp/goam-rpc:mp-address: | connectivity-context: | |||
| +--:(sf-mep-address) | +--:(connectivity-context-sfc) | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | +--rw connectivity-context-sfp? sfc-sfp:service-function- | |||
| path-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- | |||
| address: | ||||
| +--:(sff-mep-address) | +--:(sf-mep-address) | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | | +--rw sf-mep-ref? sfc-sf:service-function-ref | |||
| | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sff-mep-address) | |||
| augment /goam-rpc:revoke-path-discovery/goam-rpc:input: | | +--rw sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| +--ro:path-discovery-layer SFC-layer | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| augment /goam-rpc:revoke-path-discovery/goam-rpc:input/goam- | augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: | |||
| rpc:source-mep/goam-rpc:mp-address: | connectivity-context: | |||
| +--:(sf-mep-address) | +--:(connectivity-context-sfc) | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | +--rw connectivity-context-sfp? sfc-sfp:service-function- | |||
| path-ref | ||||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment | |||
| /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/goa | ||||
| m:destination-mep-address/goam:mp-address: | ||||
| +--:(sff-mep-address) | +--:(sf-mep-address) | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | | +--rw sf-mep-ref? sfc-sf:service-function-ref | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| augment /goam-rpc:revoke-path-discovery/goam-rpc:input/goam- | +--:(sff-mep-address) | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | +--rw sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment | |||
| /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/goa | ||||
| m:connectivity-context: | ||||
| +--:(sff-mep-address) | +--:(connectivity-context-sfc) | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | +--rw connectivity-context-sfp? sfc-sfp:service-function- | |||
| path-ref | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam-rpc: contiuity-check/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| augment /goam-rpc:initiated-performance-measurement/goam- | +--:(sf-mep-address) | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | +--:(sff-mep-address) | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| +--:(sff-mep-address) | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | augment /goam-rpc: contiuity-check/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sf-mep-address) | |||
| augment /goam-rpc:initiated-performance-measurement/goam- | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | +--:(sff-mep-address) | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| +--:(sff-mep-address) | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | augment /goam-rpc: connectity-verification/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sf-mep-address) | |||
| augment /goam-rpc:revoke-performance-measurement/goam- | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | +--:(sff-mep-address) | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| +--:(sff-mep-address) | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | augment /goam-rpc: connectity-verification/goam- | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sf-mep-address) | |||
| augment /goam-rpc:revoke-performance-measurement/goam- | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--:(sff-mep-address) | ||||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--:(sff-mep-address) | augment /goam-rpc: path-discovery/goam-rpc:input: | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | +--ro:path-discovery-layer SFC-layer | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam-rpc: path-discovery/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| augment /goam-rpc:initiated-other-function/goam-rpc:input/goam- | +--:(sf-mep-address) | |||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sff-mep-address) | |||
| +--:(sff-mep-address) | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam-rpc: path-discovery/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| augment /goam-rpc:initiated-other-function/goam-rpc:input/goam- | +--:(sf-mep-address) | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sff-mep-address) | |||
| +--:(sff-mep-address) | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam-rpc: path-discovery/goam-rpc:output/ goam- | |||
| rpc:response/goam-rpc:destination-mp/goam-rpc:mp-address: | ||||
| augment /goam-rpc:revoke-other-function/goam-rpc:input/goam- | +--:(sf-mep-address) | |||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sff-mep-address) | |||
| +--:(sff-mep-address) | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam-rpc:initiated-performance-measurement/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| augment /goam-rpc:revoke-other-function/goam-rpc:input/goam- | +--:(sf-mep-address) | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| +--:(sf-mep-address) | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| | +--ro sf-mep-ref? sfc-sf:service-function-ref | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | +--:(sff-mep-address) | |||
| +--:(sff-mep-address) | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | augment /goam-rpc:initiated-performance-measurement/goam- | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| Figure 5 Data hierarchy of SFC OAM | +--:(sf-mep-address) | |||
| 5. SFC OAM YANG Module | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| <CODE BEGINS> file "sfc-oam.yang" | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| module sfc-oam { | +--:(sff-mep-address) | |||
| namespace "urn:huawei:params:xml:ns:yang:sfc-oam"; | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| prefix sfcoam; | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| import gen-oam { | augment /goam-rpc:revoke-performance-measurement/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: | ||||
| prefix goam; | +--:(sf-mep-address) | |||
| } | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| import gen-oam-rpc { | ||||
| prefix goam-rpc; | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| +--:(sff-mep-address) | ||||
| } | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| import service-function { | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| prefix sfc-sf; | augment /goam-rpc:revoke-performance-measurement/goam- | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: | ||||
| } | +--:(sf-mep-address) | |||
| import service-function-path { | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| prefix sfc-sfp; | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| } | +--:(sff-mep-address) | |||
| import service-function-forwarder { | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| prefix sfc-sff; | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| } | augment /goam-rpc:initiated-other-function/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| revision 2014-09-04 { | +--:(sf-mep-address) | |||
| description | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| "Initial revision."; | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| } | +--:(sff-mep-address) | |||
| identity sfc { | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| base goam:technology-types; | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| description | augment /goam-rpc:initiated-other-function/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| "sfc type"; | +--:(sf-mep-address) | |||
| } | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| typedef SFC-layer { | ||||
| type enumeration { | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| enum "Service function layer" { | +--:(sff-mep-address) | |||
| value 0; | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | ||||
| } | augment /goam-rpc:revoke-other-function/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address: | ||||
| enum "SFC forwarding layer" { | +--:(sf-mep-address) | |||
| value 1; | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| } | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| } | +--:(sff-mep-address) | |||
| } | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| augment | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity- | ||||
| context" { | ||||
| case connectivity-context-sfc { | augment /goam-rpc:revoke-other-function/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address: | ||||
| leaf connectivity-context-sfp { | +--:(sf-mep-address) | |||
| type sfc-sfp:service-function-path-ref; | | +--ro sf-mep-ref? sfc-sf:service-function-ref | |||
| } | | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| } | +--:(sff-mep-address) | |||
| } | | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref | |||
| augment | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref | |||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- | ||||
| address" { | ||||
| case sf-mep-address { | Data hierarchy of SFC OAM | |||
| description | ||||
| "Service function (or service function forwarder) address plus | 6. SFC OAM YANG Module | |||
| service function path id to identify one SFC MEP. A SFC MP can be a | ||||
| service function or service function forwarder!"; | ||||
| leaf sf-mep-ref { | <CODE BEGINS> file "xxx.yang" | |||
| when "/goam:domains/goam:domain/goam:technology='sfc'"; | <CODE BEGINS> file "xxx.yang" | |||
| type sfc-sf:service-function-ref; | module sfc-oam { | |||
| } | namespace "urn:huawei:params:xml:ns:yang:sfc-oam"; | |||
| leaf sfp-mep-ref { | prefix sfcoam; | |||
| when "/goam:domains/goam:domain/goam:technology='sfc'"; | import gen-oam { | |||
| prefix goam; | ||||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | import gen-oam-rpc { | |||
| } | prefix goam-rpc; | |||
| case sff-mep-address { | } | |||
| description | import service-function { | |||
| "Service function address plus service function path id to | prefix sfc-sf; | |||
| identify one SFC MEP. A SFC MP can be a service function or service | ||||
| function forwarder!"; | ||||
| leaf sff-mep-ref { | } | |||
| type sfc-sff:service-function-forwarder-ref; | import service-function-path { | |||
| } | prefix sfc-sfp; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | import service-function-forwarder { | |||
| } | prefix sfc-sff; | |||
| } | } | |||
| } | revision 2014-09-04 { | |||
| augment | ||||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go | ||||
| am:destination-mep-address/goam:mp-address" { | ||||
| case sf-mep-address { | description | |||
| leaf sf-mep-ref { | "Initial revision."; | |||
| type sfc-sf:service-function-ref; | } | |||
| } | identity sfc { | |||
| leaf sfp-mep-ref { | base goam:technology-types; | |||
| type sfc-sfp:service-function-path-ref; | description | |||
| "sfc type"; | ||||
| } | } | |||
| } | typedef SFC-layer { | |||
| case sff-mep-address { | type enumeration { | |||
| leaf sff-mep-ref { | enum "Service function layer" { | |||
| type sfc-sff:service-function-forwarder-ref; | value 0; | |||
| } | } | |||
| leaf sfp-mep-ref { | enum "SFC forwarding layer" { | |||
| type sfc-sfp:service-function-path-ref; | value 1; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment | augment | |||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go | "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity- | |||
| am:connectivity-context" { | context" { | |||
| case connectivity-context-sfc { | ||||
| leaf connectivity-context-sfp { | ||||
| type sfc-sfp:service-function-path-ref; | ||||
| } | ||||
| } | ||||
| } | ||||
| //SFC extension of contiuity-check part | ||||
| augment "/goam-rpc:initiated-continuity-check/goam-rpc:input/goam- | ||||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | ||||
| leaf sf-mep-ref { | ||||
| type sfc-sf:service-function-ref; | ||||
| } | ||||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | ||||
| } | ||||
| } | ||||
| case sff-mep-address { | ||||
| leaf sff-mep-ref { | ||||
| type sfc-sff:service-function-forwarder-ref; | ||||
| } | case connectivity-context-sfc { | |||
| leaf sfp-mep-ref { | leaf connectivity-context-sfp { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:initiated-continuity-check/goam-rpc:input/goam- | augment | |||
| rpc:destination-mep/goam-rpc:mp-address" { | "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- | |||
| address" { | ||||
| case sf-mep-address { | case sf-mep-address { | |||
| leaf sf-mep-ref { | description | |||
| type sfc-sf:service-function-ref; | "Service function (or service function forwarder) address plus | |||
| service function path id to identify one SFC MEP. A SFC MP can be a | ||||
| service function or service function forwarder!"; | ||||
| } | leaf sf-mep-ref { | |||
| leaf sfp-mep-ref { | when "/goam:domains/goam:domain/goam:technology='sfc'"; | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sf:service-function-ref; | |||
| } | } | |||
| } | leaf sfp-mep-ref { | |||
| case sff-mep-address { | when "/goam:domains/goam:domain/goam:technology='sfc'"; | |||
| leaf sff-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sff:service-function-forwarder-ref; | } | |||
| } | } | |||
| leaf sfp-mep-ref { | case sff-mep-address { | |||
| type sfc-sfp:service-function-path-ref; | description | |||
| } | "Service function address plus service function path id to | |||
| identify one SFC MEP. A SFC MP can be a service function or service | ||||
| function forwarder!"; | ||||
| } | leaf sff-mep-ref { | |||
| } | type sfc-sff:service-function-forwarder-ref; | |||
| augment "/goam-rpc:revoke-continuity-check/goam-rpc:input/goam- | } | |||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | ||||
| leaf sf-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sf:service-function-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | augment | |||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go | ||||
| am:destination-mep-address/goam:mp-address" { | ||||
| } | case sf-mep-address { | |||
| case sff-mep-address { | leaf sf-mep-ref { | |||
| leaf sff-mep-ref { | type sfc-sf:service-function-ref; | |||
| type sfc-sff:service-function-forwarder-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | } | |||
| } | case sff-mep-address { | |||
| } | leaf sff-mep-ref { | |||
| augment "/goam-rpc:revoke-continuity-check/goam-rpc:input/goam- | type sfc-sff:service-function-forwarder-ref; | |||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | } | |||
| leaf sf-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sf:service-function-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | ||||
| } | } | |||
| } | augment | |||
| "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go | ||||
| am:connectivity-context" { | ||||
| case sff-mep-address { | case connectivity-context-sfc { | |||
| leaf connectivity-context-sfp { | ||||
| leaf sff-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sff:service-function-forwarder-ref; | } | |||
| } | } | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | //SFC extension of contiuity-check part | |||
| } | augment "/goam-rpc: continuity-check/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| } | case sf-mep-address { | |||
| } | leaf sf-mep-ref { | |||
| //SFC extension of connectity-verification part | type sfc-sf:service-function-ref; | |||
| augment "/goam-rpc:initiated-connectivity-verification/goam- | } | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | leaf sfp-mep-ref { | |||
| leaf sf-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sf:service-function-ref; | } | |||
| } | } | |||
| leaf sfp-mep-ref { | case sff-mep-address { | |||
| type sfc-sfp:service-function-path-ref; | leaf sff-mep-ref { | |||
| } | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| case sff-mep-address { | ||||
| leaf sff-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | augment "/goam-rpc: continuity-check/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| } | case sf-mep-address { | |||
| } | leaf sf-mep-ref { | |||
| augment "/goam-rpc:initiated-connectivity-verification/goam- | type sfc-sf:service-function-ref; | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | } | |||
| leaf sf-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sf:service-function-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | case sff-mep-address { | |||
| } | leaf sff-mep-ref { | |||
| } | type sfc-sff:service-function-forwarder-ref; | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | } | |||
| } | //SFC extension of connectity-verification part | |||
| } | augment "/goam-rpc: connectivity-verification/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | ||||
| augment "/goam-rpc:revoke-connectity-verification/goam- | case sf-mep-address { | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | leaf sf-mep-ref { | |||
| leaf sf-mep-ref { | type sfc-sf:service-function-ref; | |||
| type sfc-sf:service-function-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | } | |||
| } | case sff-mep-address { | |||
| case sff-mep-address { | leaf sff-mep-ref { | |||
| leaf sff-mep-ref { | type sfc-sff:service-function-forwarder-ref; | |||
| type sfc-sff:service-function-forwarder-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | } | |||
| } | } | |||
| } | augment "/goam-rpc: connectivity-verification/goam- | |||
| augment "/goam-rpc:revoke-connectity-verification/goam- | rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | case sf-mep-address { | |||
| leaf sf-mep-ref { | leaf sf-mep-ref { | |||
| type sfc-sf:service-function-ref; | type sfc-sf:service-function-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | ||||
| } | ||||
| } | ||||
| case sff-mep-address { | ||||
| leaf sff-mep-ref { | ||||
| type sfc-sff:service-function-forwarder-ref; | ||||
| } | ||||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | ||||
| } | ||||
| } | ||||
| } | ||||
| //SFC extension of path-discovery part | ||||
| augment "/goam-rpc:initiated-path-discovery/goam-rpc:input" { | ||||
| description | ||||
| "adds SFC specific items on the input"; | ||||
| leaf path-discovery-layer { | ||||
| type SFC-layer; | ||||
| description | ||||
| "Identifying which SFC layer to run path discovery"; | ||||
| } | ||||
| } | ||||
| augment "/goam-rpc:initiated-path-discovery/goam-rpc:input/goam- | ||||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | ||||
| leaf sf-mep-ref { | ||||
| type sfc-sf:service-function-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | case sff-mep-address { | |||
| } | leaf sff-mep-ref { | |||
| case sff-mep-address { | type sfc-sff:service-function-forwarder-ref; | |||
| leaf sff-mep-ref { | } | |||
| type sfc-sff:service-function-forwarder-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | } | |||
| } | ||||
| } | //SFC extension of path-discovery part | |||
| augment "/goam-rpc:initiated-path-discovery/goam-rpc:input/goam- | augment "/goam-rpc: path-discovery/goam-rpc:input" { | |||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | description | |||
| leaf sf-mep-ref { | "adds SFC specific items on the input"; | |||
| type sfc-sf:service-function-ref; | leaf path-discovery-layer { | |||
| } | type SFC-layer; | |||
| leaf sfp-mep-ref { | description | |||
| type sfc-sfp:service-function-path-ref; | "Identifying which SFC layer to run path discovery"; | |||
| } | } | |||
| } | } | |||
| case sff-mep-address { | augment "/goam-rpc: path-discovery/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| leaf sff-mep-ref { | case sf-mep-address { | |||
| type sfc-sff:service-function-forwarder-ref; | leaf sf-mep-ref { | |||
| } | type sfc-sf:service-function-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:initiated-path-discovery/goam-rpc:output/goam- | case sff-mep-address { | |||
| rpc:response/goam-rpc:destination-mp/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | leaf sff-mep-ref { | |||
| leaf sf-mep-ref { | ||||
| type sfc-sf:service-function-ref; | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | augment "/goam-rpc: path-discovery/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| type sfc-sff:service-function-forwarder-ref; | case sf-mep-address { | |||
| leaf sf-mep-ref { | ||||
| } | type sfc-sf:service-function-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:revoke-path-discovery/goam-rpc:input" { | case sff-mep-address { | |||
| description | leaf sff-mep-ref { | |||
| "adds SFC specific items on the input"; | type sfc-sff:service-function-forwarder-ref; | |||
| leaf path-discovery-layer { | } | |||
| type SFC-layer; | leaf sfp-mep-ref { | |||
| description | type sfc-sfp:service-function-path-ref; | |||
| "Identifying which SFC layer to run path discovery"; | } | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:revoke-path-discovery/goam-rpc:input/goam- | augment "/goam-rpc: path-discovery/goam-rpc:output/goam- | |||
| rpc:source-mep/goam-rpc:mp-address" { | rpc:response/goam-rpc:destination-mp/goam-rpc:mp-address" { | |||
| case sf-mep-address { | case sf-mep-address { | |||
| leaf sf-mep-ref { | leaf sf-mep-ref { | |||
| type sfc-sf:service-function-ref; | type sfc-sf:service-function-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| case sff-mep-address { | case sff-mep-address { | |||
| leaf sff-mep-ref { | leaf sff-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:revoke-path-discovery/goam-rpc:input/goam- | //SFC extension of performance-measurement part | |||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | augment "/goam-rpc:initiated-performance-measurement/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | ||||
| leaf sf-mep-ref { | case sf-mep-address { | |||
| type sfc-sf:service-function-ref; | ||||
| } | leaf sf-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sf:service-function-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | } | |||
| type sfc-sff:service-function-forwarder-ref; | case sff-mep-address { | |||
| leaf sff-mep-ref { | ||||
| } | type sfc-sff:service-function-forwarder-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| //SFC extension of performance-measurement part | } | |||
| augment "/goam-rpc:initiated-performance-measurement/goam- | augment "/goam-rpc:initiated-performance-measurement/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | |||
| case sf-mep-address { | case sf-mep-address { | |||
| leaf sf-mep-ref { | leaf sf-mep-ref { | |||
| type sfc-sf:service-function-ref; | type sfc-sf:service-function-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| case sff-mep-address { | case sff-mep-address { | |||
| leaf sff-mep-ref { | leaf sff-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | ||||
| } | } | |||
| } | augment "/goam-rpc:revoke-performance-measurement/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | ||||
| augment "/goam-rpc:initiated-performance-measurement/goam- | case sf-mep-address { | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | leaf sf-mep-ref { | |||
| leaf sf-mep-ref { | type sfc-sf:service-function-ref; | |||
| type sfc-sf:service-function-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sfp:service-function-path-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | } | |||
| } | case sff-mep-address { | |||
| case sff-mep-address { | ||||
| leaf sff-mep-ref { | leaf sff-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:revoke-performance-measurement/goam- | augment "/goam-rpc:revoke-performance-measurement/goam- | |||
| rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { | rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | |||
| case sf-mep-address { | ||||
| leaf sf-mep-ref { | case sf-mep-address { | |||
| leaf sf-mep-ref { | ||||
| type sfc-sf:service-function-ref; | type sfc-sf:service-function-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | leaf sfp-mep-ref { | |||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| case sff-mep-address { | case sff-mep-address { | |||
| leaf sff-mep-ref { | leaf sff-mep-ref { | |||
| type sfc-sff:service-function-forwarder-ref; | type sfc-sff:service-function-forwarder-ref; | |||
| } | } | |||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:revoke-performance-measurement/goam- | } | |||
| rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | //SFC extension of other-function part | |||
| leaf sf-mep-ref { | augment "/goam-rpc:initiated-other-function/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| type sfc-sf:service-function-ref; | case sf-mep-address { | |||
| } | leaf sf-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sf:service-function-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | } | |||
| type sfc-sff:service-function-forwarder-ref; | case sff-mep-address { | |||
| } | leaf sff-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sff:service-function-forwarder-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| //SFC extension of other-function part | } | |||
| augment "/goam-rpc:initiated-other-function/goam-rpc:input/goam- | } | |||
| rpc:source-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | augment "/goam-rpc:initiated-other-function/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| leaf sf-mep-ref { | case sf-mep-address { | |||
| type sfc-sf:service-function-ref; | leaf sf-mep-ref { | |||
| } | type sfc-sf:service-function-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | case sff-mep-address { | |||
| type sfc-sff:service-function-forwarder-ref; | leaf sff-mep-ref { | |||
| } | type sfc-sff:service-function-forwarder-ref; | |||
| leaf sfp-mep-ref { | } | |||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| augment "/goam-rpc:initiated-other-function/goam-rpc:input/goam- | augment "/goam-rpc:revoke-other-function/goam-rpc:input/goam- | |||
| rpc:destination-mep/goam-rpc:mp-address" { | rpc:source-mep/goam-rpc:mp-address" { | |||
| case sf-mep-address { | case sf-mep-address { | |||
| leaf sf-mep-ref { | leaf sf-mep-ref { | |||
| type sfc-sf:service-function-ref; | ||||
| } | type sfc-sf:service-function-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | case sff-mep-address { | |||
| type sfc-sff:service-function-forwarder-ref; | leaf sff-mep-ref { | |||
| } | type sfc-sff:service-function-forwarder-ref; | |||
| leaf sfp-mep-ref { | } | |||
| type sfc-sfp:service-function-path-ref; | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| } | ||||
| augment "/goam-rpc:revoke-other-function/goam-rpc:input/goam- | augment "/goam-rpc:revoke-other-function/goam-rpc:input/goam- | |||
| rpc:source-mep/goam-rpc:mp-address" { | rpc:destination-mep/goam-rpc:mp-address" { | |||
| case sf-mep-address { | ||||
| leaf sf-mep-ref { | ||||
| type sfc-sf:service-function-ref; | ||||
| } | ||||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | ||||
| } | ||||
| } | ||||
| case sff-mep-address { | ||||
| leaf sff-mep-ref { | ||||
| type sfc-sff:service-function-forwarder-ref; | ||||
| } | ||||
| leaf sfp-mep-ref { | ||||
| type sfc-sfp:service-function-path-ref; | ||||
| } | ||||
| } | ||||
| } | ||||
| augment "/goam-rpc:revoke-other-function/goam-rpc:input/goam- | ||||
| rpc:destination-mep/goam-rpc:mp-address" { | ||||
| case sf-mep-address { | ||||
| leaf sf-mep-ref { | ||||
| type sfc-sf:service-function-ref; | case sf-mep-address { | |||
| } | leaf sf-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sf:service-function-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| case sff-mep-address { | } | |||
| leaf sff-mep-ref { | } | |||
| type sfc-sff:service-function-forwarder-ref; | case sff-mep-address { | |||
| } | leaf sff-mep-ref { | |||
| leaf sfp-mep-ref { | type sfc-sff:service-function-forwarder-ref; | |||
| type sfc-sfp:service-function-path-ref; | } | |||
| } | leaf sfp-mep-ref { | |||
| } | type sfc-sfp:service-function-path-ref; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | } | |||
| Figure 6 YANG module of SFC OAM | } | |||
| <CODE ENDS> | ||||
| 6. Security Considerations | 7. Security Considerations | |||
| TBD | TBD. | |||
| 7. IANA Considerations | 8. IANA Considerations | |||
| This document registers the following namespace URI in the IETF XML | TBD. | |||
| registry. | ||||
| URI:TBD | 9. References | |||
| 8. References | 9.1. Normative References | |||
| 8.1. Normative References | [IEEE.802.1Q-2011] | |||
| Institute of Electrical and Electronics Engineers, "Media | ||||
| Access Control (MAC) Bridges and Virtual Bridged Local | ||||
| Area Networks", IEEE Standard 802.1Q, August 2011. | ||||
| [1] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", March 1997. | |||
| [2] Crocker, D. and Overell, P.(Editors), "Augmented BNF for | [RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Syntax Specifications: ABNF", RFC 2234, Internet Mail | Specifications: ABNF", RFC 2234, November 1997. | |||
| Consortium and Demon Internet Ltd., November 1997. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | 9.2. Informative References | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | ||||
| [RFC2234] Crocker, D. and Overell, P.(Editors), "Augmented BNF for | [I-D.penno-sfc-yang] | |||
| Syntax Specifications: ABNF", RFC 2234, Internet Mail | Penno, R., Quinn, P., Zhou, D., and J. Li, "Yang Data | |||
| Consortium and Demon Internet Ltd., November 1997. | Model for Service Function Chaining", draft-penno-sfc- | |||
| yang-13 (work in progress), March 2015. | ||||
| [8021Q] IEEE, "Media Access Control (MAC) Bridges and Virtual | [I-D.wang-lime-rpc-yang-oam-management] | |||
| Bridged Local Area Networks", IEEE Std 802.1Q-2011, August, | Wang, Z. and Q. Wu, "Additional RPC definitions to Generic | |||
| 2011. | YANG Data Model for layer Independent OAM Management", | |||
| draft-wang-lime-rpc-yang-oam-management-00 (work in | ||||
| progress), October 2014. | ||||
| 8.2. Informative References | [Y.1731] "OAM functions and mechanisms for Ethernet based | |||
| networks", ITU G.8013/Y.1731, July 2011. | ||||
| [Y1731] ITU, "OAM functions and mechanisms for Ethernet based | Authors' Addresses | |||
| networks", ITU-T G.8013/Y.1731, July, 2011 | ||||
| [RFC6291] Andersson, L., et.al., "Guidelines for the use of the | Liang Xia | |||
| "OAM" Acronym in the IETF" RFC 6291, June 2011. | Huawei Technologies,Co.,Ltd | |||
| 101 Software Avenue, Yuhua District | ||||
| Nanjing 210012 | ||||
| China | ||||
| [I-D.tissa-lime-yang-oam-model] Senevirathne , T. and Q. Wu, "YANG | Email: frank.xialiang@huawei.com | |||
| Data Model for Generic Operations, Administration, and | Qin Wu | |||
| Maintenance (OAM)", Work in Progress, November 2014. | Huawei | |||
| 101 Software Avenue, Yuhua District | ||||
| Nanjing, Jiangsu 210012 | ||||
| China | ||||
| [I-D.wang-lime-rpc-yang-oam-management] Wang, Z., " Additional RPC | Email: bill.wu@huawei.com | |||
| definitions to Generic YANG Data Model for layer | ||||
| Independent OAM Management ", Work in Progress, December, | ||||
| 2014. | ||||
| [SFCYANG] Penno, R., et.al., "Yang Data Model for Service Function | Deepak Kumar | |||
| Chaining", Work in Progress, October, 2014. | Cisco Systems | |||
| 510 McCarthy Blvd Milpitas, | ||||
| CA 95035 | ||||
| USA | ||||
| 9. Acknowledgments | Email: dekumar@cisco.com | |||
| This document was prepared using 2-Word-v2.0.template.dot. | Mohamed Boucadair | |||
| France Telecom | ||||
| Rennes 35000 | ||||
| France | ||||
| Authors' Addresses | Email: mohamed.boucadair@orange.com | |||
| Liang Xia | Zitao Wang | |||
| Huawei | Huawei Technologies,Co.,Ltd | |||
| Email: Frank.xialiang@huawei.com | 101 Software Avenue, Yuhua District | |||
| Qin Wu | Nanjing 210012 | |||
| Huawei | China | |||
| Email: Bill.wu@huawei.com | ||||
| Deepak Kumar | Email: wangzitao@huawei.com | |||
| CISCO Systems | ||||
| 510 McCarthy Blvd | ||||
| Milpitas, CA 95035. | ||||
| Email: dekumar@cisco.com | ||||
| End of changes. 609 change blocks. | ||||
| 1105 lines changed or deleted | 805 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||