SFC WG LiangNetwork Working Group L. XiaInternet Draft QinInternet-Draft Q. Wu Intended status:StandardStandards Track HuaweiDeepak Kumar CiscoExpires:JuneSeptember 7, 2015February 10,D. Kumar Cisco M. Boucadair France Telecom Z. Wang Huawei March 6, 2015 YANG Data Model for SFC Operations, Administration, and Maintenance (OAM)draft-xia-sfc-yang-oam-01.txtdraft-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 ofthisThis Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force(IETF), its areas, and its working groups.(IETF). Note that other groups may also distribute 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 http://www.ietf.org/shadow.htmlThis Internet-Draft will expire onJune 25,2015.September 7, 2015. Copyright Notice Copyright (c)20142015 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as 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 1. Introduction................................................. . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventionsused in this document ...........................and Terminology . . . . . . . . . . . . . . . . . 3 2.1.Terminology ............................................ 4Terminologies . . . . . . . . . . . . . . . . . . . . . . 3 3. Architecture of OAM YANG Model and Relationship to SFC OAM . 4 4. SFC Extensions to LIME YANG Model........................... 4 3.1.. . . . . . . . . . . . . . 5 4.1. MEP Address............................................. . . . . . . . . . . . . . . . . . . . . . . 53.2.4.2. Connectivity-Context.................................... . . . . . . . . . . . . . . . . . 63.3.4.3. SFC Layer For RPC - Path Discovery...................... . . . . . . . . . . 74.5. SFC OAM YANG Data Hierarchy.................................. . . . . . . . . . . . . . . . . 85.6. SFC OAM YANG Module........................................ 17 6.. . . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations.................................... 40 7.. . . . . . . . . . . . . . . . . . . 32 8. IANA Considerations........................................ 40 8.. . . . . . . . . . . . . . . . . . . . . 33 9. References................................................. 40 8.1.. . . . . . . . . . . . . . . . . . . . . . . . . 33 9.1. Normative References.................................. 40 8.2.. . . . . . . . . . . . . . . . . . 33 9.2. Informative References................................ 41 9. Acknowledgments ............................................ 41. . . . . . . . . . . . . . . . . 33 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 1. Introduction YANG [RFC6020] is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF) [RFC6241], NETCONF remote procedure calls (RPC), and NETCONF notifications. This document defines the YANG data model for Service Function Chaining (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- yang-oam-management] propose a basic YANG data model for Layer independent OAM Management that can be applied to various OAM technologies. SFC OAM YANG data model can be defined by directly extending the basic model with SFC technology specifics. It can bring some obvious benefits such as unified format, reusable parts, and correlation of defects, faults, network failure at the specific layer. In addition, various components in the SFC technology specific YANG data model defined in [SFCYANG] can be directly reused in this draft to define the SFC OAM YANG data model. Note that SFC OAM mechanisms are not yet defined or standardized although some of the basic concepts and functions (e.g., fault detection, fault localization, performance measurement, etc) may be similar to traditional OAM mechanisms. This draft should get alignment with the latest development SFC OAM mechanisms. 2. Conventionsused in this documentand Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described inRFC-2119[RFC2119]. The following terms are defined in [RFC6241] and are not redefined here: o client o configuration data o server o state data The following terms are defined in [RFC6020] and are not redefined here: o augment o data model o data node The terminology for describing YANG data models is found in [RFC6020]. 2.1.TerminologyTerminologies MP-Maintenance Point[8021Q][8021Q]. MEP-Maintenance End Point [8021Q] [RFC6371] MIP-Maintenance Intermediate Point [8021Q] [RFC6371] MEG-Maintenance Entity Group [Y1731] [RFC6371] ME-Maintenance Entity [Y.1731] [RFC6371] MD-Maintenance Domain [8021Q] 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] SF-Service Function [SFCYANG] SFC-Service Function Chaining [SFCYANG] SFF-Service Function Forwarder [SFCYANG] 3. Architecture of OAM YANG Model and Relationship to SFC OAM 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 identifying the SFC specific YANG model extension: identity SFC { base goam:technology-types; description "SFC type"; }Figure 1SFC identity type Only when the Technology parameter is set to the "SFC" value, the SFC specific extensions are applied.3.1.4.1. MEP Address 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 without specifying service function path. Therefore the MEP/MIP 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- lime-rpc-yang-oam-management], MEP/MIP address is defined using a combination of choice and case statement. We augment this to include SFC specific SF/SFF address plus service function path id. augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- address" { case sf-mep-address { description "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 { when "/goam:domains/goam:domain/goam:technology='sfc'"; type sfc-sf:service-function-ref; } leaf sfp-mep-ref { when "/goam:domains/goam:domain/goam:technology='sfc'"; type sfc-sfp:service-function-path-ref; } } case sff-mep-address { description "Service function forwarder address plus service function path id 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; } leaf sfp-mep-ref { type sfc-sfp:service-function-path-ref; } } }Figure 2Augment SFC MEP address3.2.4.2. Connectivity-Context 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- management] defines a placeholder for connectivity-context. This allows other technologies to easily augment that to include technology specific extensions. The snippet below depicts an example of augmenting connectivity-context to include the SFC connectivity- context. augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: connectivity-context" { case connectivity-context-sfc { leaf connectivity-context-sfp { type sfc-sfp:service-function-path-ref; } } }Figure 3Augment SFC Connectivity-Context3.3.4.3. SFC Layer For RPC - Path Discovery Path Discovery is used to discover the path that specific 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 desired degree of path information. typedef SFC-layer { type enumeration { enum "Service function layer" { value 0; } enum "SFC forwarding layer" { value 1; } } } augment"/goam-rpc:initiated-path-discovery/goam-rpc:input""/goam-rpc:path-discovery/goam-rpc:input" { description "Adding SFC specific items on the input"; leaf path-discovery-layer { type SFC-layer; description "Identifying which SFC layer to run path discovery"; } }Figure 4Augment SFC SFC-layer for Path Discovery4.5. SFC OAM YANG Data Hierarchy The complete data hierarchy related to the SFC OAM YANG model is presented below. The following notations are used within the data tree and carry the meaning as noted below. Each node is printed as: <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-/goam-rpc: 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-/goam-rpc: 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-/goam-rpc: 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-/goam-rpc: 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:/goam-rpc: path-discovery/goam-rpc:input: +--ro:path-discovery-layer SFC-layer augment/goam-rpc:initiated-path-discovery/goam-rpc:input/goam-/goam-rpc: 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 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref augment/goam-rpc:initiated-path-discovery/goam-rpc:input/goam-/goam-rpc: path-discovery/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:output//goam-rpc: path-discovery/goam-rpc:output/ goam- rpc:response/goam-rpc:destination-mp/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-path-discovery/goam-rpc:input: +--ro:path-discovery-layer SFC-layer augment /goam-rpc:revoke-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 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref augment /goam-rpc:revoke-path-discovery/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-performance-measurement/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-performance-measurement/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-performance-measurement/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-performance-measurement/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-other-function/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-other-function/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-other-function/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-other-function/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-refFigure 5Data hierarchy of SFC OAM5.6. SFC OAM YANG Module <CODE BEGINS> file"sfc-oam.yang""xxx.yang" <CODE BEGINS> file "xxx.yang" module sfc-oam { namespace "urn:huawei:params:xml:ns:yang:sfc-oam"; prefix sfcoam; import gen-oam { prefix goam; } import gen-oam-rpc { prefix goam-rpc; } import service-function { prefix sfc-sf; } import service-function-path { prefix sfc-sfp; } import service-function-forwarder { prefix sfc-sff; } revision 2014-09-04 { description "Initial revision."; } identity sfc { base goam:technology-types; description "sfc type"; } typedef SFC-layer { type enumeration { enum "Service function layer" { value 0; } enum "SFC forwarding layer" { value 1; } } } augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity- context" { case connectivity-context-sfc { leaf connectivity-context-sfp { type sfc-sfp:service-function-path-ref; } } } augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- address" { case sf-mep-address { description "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 { when "/goam:domains/goam:domain/goam:technology='sfc'"; type sfc-sf:service-function-ref; } leaf sfp-mep-ref { when "/goam:domains/goam:domain/goam:technology='sfc'"; type sfc-sfp:service-function-path-ref; } } case sff-mep-address { 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; } 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 { 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:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go am:connectivity-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; } leaf sfp-mep-ref { type sfc-sfp:service-function-path-ref; } } } augment "/goam-rpc:initiated-continuity-check/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; } 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-continuity-check/goam-rpc:input/goam-"/goam-rpc: 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; } leaf sfp-mep-ref { type sfc-sfp:service-function-path-ref; } } } augment"/goam-rpc:revoke-continuity-check/goam-rpc:input/goam-"/goam-rpc: continuity-check/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; } 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 connectity-verification part augment"/goam-rpc:initiated-connectivity-verification/goam-"/goam-rpc: connectivity-verification/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; } leaf sfp-mep-ref { type sfc-sfp:service-function-path-ref; } } } augment"/goam-rpc:initiated-connectivity-verification/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; } 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-connectity-verification/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; } leaf sfp-mep-ref { type sfc-sfp:service-function-path-ref; } } } augment "/goam-rpc:revoke-connectity-verification/goam-"/goam-rpc: connectivity-verification/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; } 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""/goam-rpc: 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-"/goam-rpc: 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; } } 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:initiated-path-discovery/goam-rpc:input/goam-"/goam-rpc: path-discovery/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; } 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:initiated-path-discovery/goam-rpc:output/goam-"/goam-rpc: path-discovery/goam-rpc:output/goam- rpc:response/goam-rpc:destination-mp/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-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:revoke-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; } } 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-path-discovery/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; } 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 performance-measurement part augment "/goam-rpc:initiated-performance-measurement/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; } leaf sfp-mep-ref { type sfc-sfp:service-function-path-ref; } } } augment "/goam-rpc:initiated-performance-measurement/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; } 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-performance-measurement/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; } 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 { 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; } } } //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 { 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:initiated-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; } 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: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; } 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; } 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; } } } } <CODE ENDS>Figure 6 YANG module of SFC OAM 6.7. Security ConsiderationsTBD 7.TBD. 8. IANA ConsiderationsThis document registers the following namespace URI in the IETF XML registry. URI:TBD 8.TBD. 9. References8.1.9.1. Normative References[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Crocker, D.[IEEE.802.1Q-2011] Institute of Electrical andOverell, P.(Editors), "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, Internet Mail ConsortiumElectronics Engineers, "Media Access Control (MAC) Bridges andDemon Internet Ltd., November 1997.Virtual Bridged Local Area Networks", IEEE Standard 802.1Q, August 2011. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels",BCP 14, RFC 2119,March 1997. [RFC2234] Crocker,D.D., Ed. and P. Overell,P.(Editors),"Augmented BNF for Syntax Specifications: ABNF", RFC 2234,Internet Mail Consortium and Demon Internet Ltd.,November 1997.[8021Q] IEEE, "Media Access Control (MAC) Bridges and Virtual Bridged Local Area Networks", IEEE Std 802.1Q-2011, August, 2011. 8.2.9.2. Informative References[Y1731] ITU, "OAM functions and mechanisms for Ethernet based networks", ITU-T G.8013/Y.1731, July, 2011 [RFC6291] Andersson, L., et.al., "Guidelines for the use of the "OAM" Acronym in the IETF" RFC 6291, June 2011. [I-D.tissa-lime-yang-oam-model] Senevirathne , T.[I-D.penno-sfc-yang] Penno, R., Quinn, P., Zhou, D., andQ. Wu, "YANGJ. Li, "Yang Data Model forGeneric Operations, Administration, and Maintenance (OAM)", WorkService Function Chaining", draft-penno-sfc- yang-13 (work inProgress, November 2014.progress), March 2015. [I-D.wang-lime-rpc-yang-oam-management] Wang,Z., " AdditionalZ. and Q. Wu, "Additional RPC definitions to Generic YANG Data Model for layer Independent OAMManagement ", WorkManagement", draft-wang-lime-rpc-yang-oam-management-00 (work inProgress, December,progress), October 2014.[SFCYANG] Penno, R., et.al., "Yang Data Model[Y.1731] "OAM functions and mechanisms forService Function Chaining", Work in Progress, October, 2014. 9. Acknowledgments This document was prepared using 2-Word-v2.0.template.dot.Ethernet based networks", ITU G.8013/Y.1731, July 2011. Authors' Addresses Liang Xia Huawei Technologies,Co.,Ltd 101 Software Avenue, Yuhua District Nanjing 210012 China Email:Frank.xialiang@huawei.comfrank.xialiang@huawei.com Qin Wu Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email:Bill.wu@huawei.combill.wu@huawei.com Deepak KumarCISCOCisco Systems 510 McCarthy Blvd Milpitas, CA95035.95035 USA Email: dekumar@cisco.com Mohamed Boucadair France Telecom Rennes 35000 France Email: mohamed.boucadair@orange.com Zitao Wang Huawei Technologies,Co.,Ltd 101 Software Avenue, Yuhua District Nanjing 210012 China Email: wangzitao@huawei.com