idnits 2.17.1 draft-xia-sfc-yang-oam-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([I-D.tissa-lime-yang-oam-model], [I-D.wang-lime-rpc-yang-oam-management]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document date (March 6, 2015) is 3337 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'I-D.tissa-lime-yang-oam-model' is mentioned on line 217, but not defined == Missing Reference: 'RFC6020' is mentioned on line 132, but not defined == Missing Reference: 'RFC6241' is mentioned on line 111, but not defined == Missing Reference: 'SFCPS' is mentioned on line 83, but not defined == Missing Reference: 'SFCYANG' is mentioned on line 156, but not defined == Missing Reference: '8021Q' is mentioned on line 145, but not defined == Missing Reference: 'RFC6371' is mentioned on line 143, but not defined == Missing Reference: 'Y1731' is mentioned on line 142, but not defined == Missing Reference: 'RFC6291' is mentioned on line 147, but not defined == Unused Reference: 'IEEE.802.1Q-2011' is defined on line 1462, but no explicit reference was found in the text == Unused Reference: 'RFC2234' is defined on line 1470, but no explicit reference was found in the text == Unused Reference: 'I-D.penno-sfc-yang' is defined on line 1475, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'IEEE.802.1Q-2011' ** Obsolete normative reference: RFC 2234 (Obsoleted by RFC 4234) == Outdated reference: A later version (-15) exists of draft-penno-sfc-yang-13 == Outdated reference: A later version (-03) exists of draft-wang-lime-rpc-yang-oam-management-00 Summary: 2 errors (**), 0 flaws (~~), 16 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group L. Xia 3 Internet-Draft Q. Wu 4 Intended status: Standards Track Huawei 5 Expires: September 7, 2015 D. Kumar 6 Cisco 7 M. Boucadair 8 France Telecom 9 Z. Wang 10 Huawei 11 March 6, 2015 13 YANG Data Model for SFC Operations, Administration, and Maintenance 14 (OAM) 15 draft-xia-sfc-yang-oam-02 17 Abstract 19 This document defines YANG data model for Service Function Chaining 20 (SFC) Operations, Administration, and Maintenance (OAM). It extends 21 from the basic YANG data model for Layer independent OAM Management 22 defined in [I-D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc- 23 yang-oam-management] with SFC technology specifics. It includes SFC 24 OAM related configuration, state, and RPC information data. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on September 7, 2015. 43 Copyright Notice 45 Copyright (c) 2015 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3 62 2.1. Terminologies . . . . . . . . . . . . . . . . . . . . . . 3 63 3. Architecture of OAM YANG Model and Relationship to SFC OAM . 4 64 4. SFC Extensions to LIME YANG Model . . . . . . . . . . . . . . 5 65 4.1. MEP Address . . . . . . . . . . . . . . . . . . . . . . . 5 66 4.2. Connectivity-Context . . . . . . . . . . . . . . . . . . 6 67 4.3. SFC Layer For RPC - Path Discovery . . . . . . . . . . . 7 68 5. SFC OAM YANG Data Hierarchy . . . . . . . . . . . . . . . . . 8 69 6. SFC OAM YANG Module . . . . . . . . . . . . . . . . . . . . . 15 70 7. Security Considerations . . . . . . . . . . . . . . . . . . . 32 71 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 33 72 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 73 9.1. Normative References . . . . . . . . . . . . . . . . . . 33 74 9.2. Informative References . . . . . . . . . . . . . . . . . 33 75 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 77 1. Introduction 79 YANG [RFC6020] is a data modeling language used to model 80 configuration and state data manipulated by the Network Configuration 81 Protocol (NETCONF) [RFC6241], NETCONF remote procedure calls (RPC), 82 and NETCONF notifications. This document defines the YANG data model 83 for Service Function Chaining (SFC) [SFCPS] OAM. The SFC OAM YANG 84 module involves the OAM configuration, RPCs and notifications, etc. 86 Currently, [I-D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc- 87 yang-oam-management] propose a basic YANG data model for Layer 88 independent OAM Management that can be applied to various OAM 89 technologies. SFC OAM YANG data model can be defined by directly 90 extending the basic model with SFC technology specifics. It can 91 bring some obvious benefits such as unified format, reusable parts, 92 and correlation of defects, faults, network failure at the specific 93 layer. 95 In addition, various components in the SFC technology specific YANG 96 data model defined in [SFCYANG] can be directly reused in this draft 97 to define the SFC OAM YANG data model. 99 Note that SFC OAM mechanisms are not yet defined or standardized 100 although some of the basic concepts and functions (e.g., fault 101 detection, fault localization, performance measurement, etc) may be 102 similar to traditional OAM mechanisms. This draft should get 103 alignment with the latest development SFC OAM mechanisms. 105 2. Conventions and Terminology 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 109 document are to be interpreted as described in [RFC2119]. 111 The following terms are defined in [RFC6241] and are not redefined 112 here: 114 o client 116 o configuration data 118 o server 120 o state data 122 The following terms are defined in [RFC6020] and are not redefined 123 here: 125 o augment 127 o data model 129 o data node 131 The terminology for describing YANG data models is found in 132 [RFC6020]. 134 2.1. Terminologies 136 MP Maintenance Point [8021Q]. 138 MEP Maintenance End Point [8021Q] [RFC6371] 140 MIP Maintenance Intermediate Point [8021Q] [RFC6371] 142 MEG Maintenance Entity Group [Y1731] [RFC6371] 143 ME Maintenance Entity [Y.1731] [RFC6371] 145 MD Maintenance Domain [8021Q] 147 OAM Operations, Administration, and Maintenance [RFC6291] 149 LIME Layer Independent OAM Management [I-D.tissa-lime-yang-oam- 150 model] [I-D.wang-lime-rpc-yang-oam-management] 152 SF Service Function [SFCYANG] 154 SFC Service Function Chaining [SFCYANG] 156 SFF Service Function Forwarder [SFCYANG] 158 3. Architecture of OAM YANG Model and Relationship to SFC OAM 160 Layer independent OAM YANG model[I-D.tissa-lime-yang-oam-model] and 161 [I-D.wang-lime-rpc-yang-oam-management] is used as the basis for all 162 the other OAM YANG models. This allows users to span across OAM 163 tools of different technologies through a uniform API. The following 164 Figure depicts the relationship of SFC OAM YANG model to the Layer 165 Independent OAM YANG Model. 167 +-+-+-+-+-+ 168 | Layer | 169 |independent 170 |OAM YANG | 171 +-+-+-+-+-+ 172 | 173 O 174 | 175 +--------------------------------------------------+ 176 | | | | 177 +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ 178 | TRILL | | NVO3 | | SFC |. .| foo | 179 |OAM YANG | |OAM YANG | |OAM YANG | |OAM YANG | 180 +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ +-+-+-+-+-+ 181 | | | | 182 | | | | 183 | | | | 184 +----------------------------------------------------+ 185 | Uniform API | 186 +----------------------------------------------------+ 188 Relationship of SFC OAM YANG model to Layer independent OAM YANG 189 model 191 4. SFC Extensions to LIME YANG Model 193 A new Technology parameter of SFC is defined here for the purpose of 194 identifying the SFC specific YANG model extension: 196 identity SFC { 198 base goam:technology-types; 200 description 202 "SFC type"; 204 } 206 SFC identity type 208 Only when the Technology parameter is set to the "SFC" value, the SFC 209 specific extensions are applied. 211 4.1. MEP Address 213 In SFC, either the SF on service function layer or SF/SFF on SFC 214 forwarding layer can be MEP/MIP. A MEP/MIP cannot be identified 215 without specifying service function path. Therefore the MEP/MIP 216 address can only be identified by SF/SFF address plus service 217 function path id. In [I-D.tissa-lime-yang-oam-model] and [I-D.wang- 218 lime-rpc-yang-oam-management], MEP/MIP address is defined using a 219 combination of choice and case statement. We augment this to include 220 SFC specific SF/SFF address plus service function path id. 222 augment 223 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- 224 address" { 226 case sf-mep-address { 228 description 230 "Service function (or service function forwarder) address plus 231 service function path id to identify one SFC MEP. A SFC MP can 232 be a service function or service function forwarder!" 234 leaf sf-mep-ref { 236 when "/goam:domains/goam:domain/goam:technology='sfc'"; 238 type sfc-sf:service-function-ref; 240 } 242 leaf sfp-mep-ref { 244 when "/goam:domains/goam:domain/goam:technology='sfc'"; 246 type sfc-sfp:service-function-path-ref; 248 } 250 } 252 case sff-mep-address { 254 description 256 "Service function forwarder address plus service function path 257 id identify one SFC MEP. A SFC MP can be a service function or 258 service function forwarder!" 260 leaf sff-mep-ref { 262 type sfc-sff:service-function-forwarder-ref; 264 } 266 leaf sfp-mep-ref { 268 type sfc-sfp:service-function-path-ref; 270 } 272 } 274 } 276 Augment SFC MEP address 278 4.2. Connectivity-Context 280 In SFC, connectivity-context is the service function path id. [I- 281 D.tissa-lime-yang-oam-model] and [I-D.wang-lime-rpc-yang-oam- 282 management] defines a placeholder for connectivity-context. This 283 allows other technologies to easily augment that to include 284 technology specific extensions. The snippet below depicts an example 285 of augmenting connectivity-context to include the SFC connectivity- 286 context. 288 augment "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: 289 connectivity-context" { 291 case connectivity-context-sfc { 293 leaf connectivity-context-sfp { 295 type sfc-sfp:service-function-path-ref; 297 } 299 } 300 } 302 Augment SFC Connectivity-Context 304 4.3. SFC Layer For RPC - Path Discovery 306 Path Discovery is used to discover the path that specific service 307 traverses in the network. For SFC, it can be used on both service 308 function layer and SFC forwarding layer depending on what is the 309 desired degree of path information. 311 typedef SFC-layer { 313 type enumeration { 315 enum "Service function layer" { 317 value 0; 319 } 321 enum "SFC forwarding layer" { 323 value 1; 325 } 327 } 329 } 331 augment "/goam-rpc:path-discovery/goam-rpc:input" { 333 description 335 "Adding SFC specific items on the input"; 337 leaf path-discovery-layer { 339 type SFC-layer; 341 description 343 "Identifying which SFC layer to run path discovery"; 345 } 347 } 349 Augment SFC SFC-layer for Path Discovery 351 5. SFC OAM YANG Data Hierarchy 353 The complete data hierarchy related to the SFC OAM YANG model is 354 presented below. The following notations are used within the data 355 tree and carry the meaning as noted below. 357 Each node is printed as: 359 361 is one of: 362 + for current 363 x for deprecated 364 o for obsolete 366 is one of: 368 rw for configuration data 369 ro for non-configuration data 370 -x for rpcs 371 -n for notifications 373 is the name of the node 375 If the node is augmented into the tree from another module, its name 376 is printed as :. 378 is one of: 380 ? for an optional leaf or choice 381 ! for a presence container 382 * for a leaf-list or list 383 [] for a list's keys 385 is the name of the type for leafs and leaf-lists 387 module: sfc-oam 389 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam: 390 connectivity-context: 392 +--:(connectivity-context-sfc) 394 +--rw connectivity-context-sfp? sfc-sfp:service-function- 395 path-ref 397 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- 398 address: 400 +--:(sf-mep-address) 402 | +--rw sf-mep-ref? sfc-sf:service-function-ref 403 | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref 405 +--:(sff-mep-address) 407 | +--rw sff-mep-ref? sfc-sff:service-function-forwarder-ref 409 +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref 411 augment /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam: 412 connectivity-context: 414 +--:(connectivity-context-sfc) 416 +--rw connectivity-context-sfp? sfc-sfp:service-function- 417 path-ref 419 augment 420 /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/goa 421 m:destination-mep-address/goam:mp-address: 423 +--:(sf-mep-address) 425 | +--rw sf-mep-ref? sfc-sf:service-function-ref 427 | +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref 429 +--:(sff-mep-address) 431 +--rw sff-mep-ref? sfc-sff:service-function-forwarder-ref 433 +--rw sfp-mep-ref? sfc-sfp:service-function-path-ref 435 augment 436 /goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/goa 437 m:connectivity-context: 439 +--:(connectivity-context-sfc) 441 +--rw connectivity-context-sfp? sfc-sfp:service-function- 442 path-ref 444 augment /goam-rpc: contiuity-check/goam-rpc:input/goam- 445 rpc:source-mep/goam-rpc:mp-address: 447 +--:(sf-mep-address) 449 | +--ro sf-mep-ref? sfc-sf:service-function-ref 450 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 452 +--:(sff-mep-address) 454 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 456 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 458 augment /goam-rpc: contiuity-check/goam-rpc:input/goam- 459 rpc:destination-mep/goam-rpc:mp-address: 461 +--:(sf-mep-address) 463 | +--ro sf-mep-ref? sfc-sf:service-function-ref 465 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 467 +--:(sff-mep-address) 469 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 471 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 473 augment /goam-rpc: connectity-verification/goam- 474 rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: 476 +--:(sf-mep-address) 478 | +--ro sf-mep-ref? sfc-sf:service-function-ref 480 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 482 +--:(sff-mep-address) 484 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 486 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 488 augment /goam-rpc: connectity-verification/goam- 489 rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: 491 +--:(sf-mep-address) 493 | +--ro sf-mep-ref? sfc-sf:service-function-ref 495 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 496 +--:(sff-mep-address) 498 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 500 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 502 augment /goam-rpc: path-discovery/goam-rpc:input: 504 +--ro:path-discovery-layer SFC-layer 506 augment /goam-rpc: path-discovery/goam-rpc:input/goam- 507 rpc:source-mep/goam-rpc:mp-address: 509 +--:(sf-mep-address) 511 | +--ro sf-mep-ref? sfc-sf:service-function-ref 513 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 515 +--:(sff-mep-address) 517 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 519 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 521 augment /goam-rpc: path-discovery/goam-rpc:input/goam- 522 rpc:destination-mep/goam-rpc:mp-address: 524 +--:(sf-mep-address) 526 | +--ro sf-mep-ref? sfc-sf:service-function-ref 528 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 530 +--:(sff-mep-address) 532 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 534 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 536 augment /goam-rpc: path-discovery/goam-rpc:output/ goam- 537 rpc:response/goam-rpc:destination-mp/goam-rpc:mp-address: 539 +--:(sf-mep-address) 541 | +--ro sf-mep-ref? sfc-sf:service-function-ref 542 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 544 +--:(sff-mep-address) 546 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 548 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 550 augment /goam-rpc:initiated-performance-measurement/goam- 551 rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: 553 +--:(sf-mep-address) 555 | +--ro sf-mep-ref? sfc-sf:service-function-ref 557 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 559 +--:(sff-mep-address) 561 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 563 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 565 augment /goam-rpc:initiated-performance-measurement/goam- 566 rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: 568 +--:(sf-mep-address) 570 | +--ro sf-mep-ref? sfc-sf:service-function-ref 572 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 574 +--:(sff-mep-address) 576 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 578 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 580 augment /goam-rpc:revoke-performance-measurement/goam- 581 rpc:input/goam-rpc:source-mep/goam-rpc:mp-address: 583 +--:(sf-mep-address) 585 | +--ro sf-mep-ref? sfc-sf:service-function-ref 587 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 588 +--:(sff-mep-address) 590 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 592 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 594 augment /goam-rpc:revoke-performance-measurement/goam- 595 rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address: 597 +--:(sf-mep-address) 599 | +--ro sf-mep-ref? sfc-sf:service-function-ref 601 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 603 +--:(sff-mep-address) 605 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 607 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 609 augment /goam-rpc:initiated-other-function/goam-rpc:input/goam- 610 rpc:source-mep/goam-rpc:mp-address: 612 +--:(sf-mep-address) 614 | +--ro sf-mep-ref? sfc-sf:service-function-ref 616 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 618 +--:(sff-mep-address) 620 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 622 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 624 augment /goam-rpc:initiated-other-function/goam-rpc:input/goam- 625 rpc:destination-mep/goam-rpc:mp-address: 627 +--:(sf-mep-address) 629 | +--ro sf-mep-ref? sfc-sf:service-function-ref 631 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 633 +--:(sff-mep-address) 635 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 636 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 638 augment /goam-rpc:revoke-other-function/goam-rpc:input/goam- 639 rpc:source-mep/goam-rpc:mp-address: 641 +--:(sf-mep-address) 643 | +--ro sf-mep-ref? sfc-sf:service-function-ref 645 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 647 +--:(sff-mep-address) 649 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 651 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 653 augment /goam-rpc:revoke-other-function/goam-rpc:input/goam- 654 rpc:destination-mep/goam-rpc:mp-address: 656 +--:(sf-mep-address) 658 | +--ro sf-mep-ref? sfc-sf:service-function-ref 660 | +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 662 +--:(sff-mep-address) 664 | +--ro sff-mep-ref? sfc-sff:service-function-forwarder-ref 666 +--ro sfp-mep-ref? sfc-sfp:service-function-path-ref 668 Data hierarchy of SFC OAM 670 6. SFC OAM YANG Module 672 file "xxx.yang" 674 file "xxx.yang" 676 module sfc-oam { 678 namespace "urn:huawei:params:xml:ns:yang:sfc-oam"; 680 prefix sfcoam; 682 import gen-oam { 683 prefix goam; 685 } 687 import gen-oam-rpc { 689 prefix goam-rpc; 691 } 693 import service-function { 695 prefix sfc-sf; 697 } 699 import service-function-path { 701 prefix sfc-sfp; 703 } 705 import service-function-forwarder { 707 prefix sfc-sff; 709 } 711 revision 2014-09-04 { 713 description 715 "Initial revision."; 717 } 719 identity sfc { 721 base goam:technology-types; 723 description 724 "sfc type"; 726 } 728 typedef SFC-layer { 730 type enumeration { 732 enum "Service function layer" { 734 value 0; 736 } 738 enum "SFC forwarding layer" { 740 value 1; 742 } 744 } 746 } 748 augment 749 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:connectivity- 750 context" { 752 case connectivity-context-sfc { 754 leaf connectivity-context-sfp { 756 type sfc-sfp:service-function-path-ref; 758 } 760 } 762 } 764 augment 765 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:mp- 766 address" { 767 case sf-mep-address { 769 description 771 "Service function (or service function forwarder) address plus 772 service function path id to identify one SFC MEP. A SFC MP can be a 773 service function or service function forwarder!"; 775 leaf sf-mep-ref { 777 when "/goam:domains/goam:domain/goam:technology='sfc'"; 779 type sfc-sf:service-function-ref; 781 } 783 leaf sfp-mep-ref { 785 when "/goam:domains/goam:domain/goam:technology='sfc'"; 787 type sfc-sfp:service-function-path-ref; 789 } 791 } 793 case sff-mep-address { 795 description 797 "Service function address plus service function path id to 798 identify one SFC MEP. A SFC MP can be a service function or service 799 function forwarder!"; 801 leaf sff-mep-ref { 803 type sfc-sff:service-function-forwarder-ref; 805 } 807 leaf sfp-mep-ref { 809 type sfc-sfp:service-function-path-ref; 811 } 813 } 815 } 817 augment 818 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go 819 am:destination-mep-address/goam:mp-address" { 821 case sf-mep-address { 823 leaf sf-mep-ref { 825 type sfc-sf:service-function-ref; 827 } 829 leaf sfp-mep-ref { 831 type sfc-sfp:service-function-path-ref; 833 } 835 } 837 case sff-mep-address { 839 leaf sff-mep-ref { 841 type sfc-sff:service-function-forwarder-ref; 843 } 845 leaf sfp-mep-ref { 847 type sfc-sfp:service-function-path-ref; 849 } 851 } 853 } 855 augment 856 "/goam:domains/goam:domain/goam:MAs/goam:MA/goam:MEP/goam:session/go 857 am:connectivity-context" { 859 case connectivity-context-sfc { 860 leaf connectivity-context-sfp { 862 type sfc-sfp:service-function-path-ref; 864 } 866 } 868 } 870 //SFC extension of contiuity-check part 872 augment "/goam-rpc: continuity-check/goam-rpc:input/goam- 873 rpc:source-mep/goam-rpc:mp-address" { 875 case sf-mep-address { 877 leaf sf-mep-ref { 879 type sfc-sf:service-function-ref; 881 } 883 leaf sfp-mep-ref { 885 type sfc-sfp:service-function-path-ref; 887 } 889 } 891 case sff-mep-address { 893 leaf sff-mep-ref { 895 type sfc-sff:service-function-forwarder-ref; 897 } 899 leaf sfp-mep-ref { 901 type sfc-sfp:service-function-path-ref; 903 } 905 } 907 } 909 augment "/goam-rpc: continuity-check/goam-rpc:input/goam- 910 rpc:destination-mep/goam-rpc:mp-address" { 912 case sf-mep-address { 914 leaf sf-mep-ref { 916 type sfc-sf:service-function-ref; 918 } 920 leaf sfp-mep-ref { 922 type sfc-sfp:service-function-path-ref; 924 } 926 } 928 case sff-mep-address { 930 leaf sff-mep-ref { 932 type sfc-sff:service-function-forwarder-ref; 934 } 936 leaf sfp-mep-ref { 938 type sfc-sfp:service-function-path-ref; 940 } 942 } 944 } 946 //SFC extension of connectity-verification part 948 augment "/goam-rpc: connectivity-verification/goam- 949 rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { 951 case sf-mep-address { 953 leaf sf-mep-ref { 955 type sfc-sf:service-function-ref; 957 } 959 leaf sfp-mep-ref { 961 type sfc-sfp:service-function-path-ref; 963 } 965 } 967 case sff-mep-address { 969 leaf sff-mep-ref { 971 type sfc-sff:service-function-forwarder-ref; 973 } 975 leaf sfp-mep-ref { 977 type sfc-sfp:service-function-path-ref; 979 } 981 } 983 } 985 augment "/goam-rpc: connectivity-verification/goam- 986 rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { 988 case sf-mep-address { 990 leaf sf-mep-ref { 992 type sfc-sf:service-function-ref; 994 } 996 leaf sfp-mep-ref { 998 type sfc-sfp:service-function-path-ref; 1000 } 1002 } 1004 case sff-mep-address { 1006 leaf sff-mep-ref { 1008 type sfc-sff:service-function-forwarder-ref; 1010 } 1012 leaf sfp-mep-ref { 1014 type sfc-sfp:service-function-path-ref; 1016 } 1018 } 1020 } 1022 //SFC extension of path-discovery part 1024 augment "/goam-rpc: path-discovery/goam-rpc:input" { 1026 description 1028 "adds SFC specific items on the input"; 1030 leaf path-discovery-layer { 1032 type SFC-layer; 1034 description 1036 "Identifying which SFC layer to run path discovery"; 1038 } 1040 } 1042 augment "/goam-rpc: path-discovery/goam-rpc:input/goam- 1043 rpc:source-mep/goam-rpc:mp-address" { 1045 case sf-mep-address { 1047 leaf sf-mep-ref { 1049 type sfc-sf:service-function-ref; 1051 } 1053 leaf sfp-mep-ref { 1055 type sfc-sfp:service-function-path-ref; 1057 } 1059 } 1061 case sff-mep-address { 1063 leaf sff-mep-ref { 1065 type sfc-sff:service-function-forwarder-ref; 1067 } 1069 leaf sfp-mep-ref { 1071 type sfc-sfp:service-function-path-ref; 1073 } 1075 } 1077 } 1079 augment "/goam-rpc: path-discovery/goam-rpc:input/goam- 1080 rpc:destination-mep/goam-rpc:mp-address" { 1082 case sf-mep-address { 1083 leaf sf-mep-ref { 1085 type sfc-sf:service-function-ref; 1087 } 1089 leaf sfp-mep-ref { 1091 type sfc-sfp:service-function-path-ref; 1093 } 1095 } 1097 case sff-mep-address { 1099 leaf sff-mep-ref { 1101 type sfc-sff:service-function-forwarder-ref; 1103 } 1105 leaf sfp-mep-ref { 1107 type sfc-sfp:service-function-path-ref; 1109 } 1111 } 1113 } 1115 augment "/goam-rpc: path-discovery/goam-rpc:output/goam- 1116 rpc:response/goam-rpc:destination-mp/goam-rpc:mp-address" { 1118 case sf-mep-address { 1120 leaf sf-mep-ref { 1122 type sfc-sf:service-function-ref; 1124 } 1126 leaf sfp-mep-ref { 1128 type sfc-sfp:service-function-path-ref; 1130 } 1132 } 1134 case sff-mep-address { 1136 leaf sff-mep-ref { 1138 type sfc-sff:service-function-forwarder-ref; 1140 } 1142 leaf sfp-mep-ref { 1144 type sfc-sfp:service-function-path-ref; 1146 } 1148 } 1150 } 1152 //SFC extension of performance-measurement part 1154 augment "/goam-rpc:initiated-performance-measurement/goam- 1155 rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { 1157 case sf-mep-address { 1159 leaf sf-mep-ref { 1161 type sfc-sf:service-function-ref; 1163 } 1165 leaf sfp-mep-ref { 1167 type sfc-sfp:service-function-path-ref; 1169 } 1171 } 1173 case sff-mep-address { 1174 leaf sff-mep-ref { 1176 type sfc-sff:service-function-forwarder-ref; 1178 } 1180 leaf sfp-mep-ref { 1182 type sfc-sfp:service-function-path-ref; 1184 } 1186 } 1188 } 1190 augment "/goam-rpc:initiated-performance-measurement/goam- 1191 rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { 1193 case sf-mep-address { 1195 leaf sf-mep-ref { 1197 type sfc-sf:service-function-ref; 1199 } 1201 leaf sfp-mep-ref { 1203 type sfc-sfp:service-function-path-ref; 1205 } 1207 } 1209 case sff-mep-address { 1211 leaf sff-mep-ref { 1213 type sfc-sff:service-function-forwarder-ref; 1215 } 1217 leaf sfp-mep-ref { 1219 type sfc-sfp:service-function-path-ref; 1221 } 1222 } 1224 } 1226 augment "/goam-rpc:revoke-performance-measurement/goam- 1227 rpc:input/goam-rpc:source-mep/goam-rpc:mp-address" { 1229 case sf-mep-address { 1231 leaf sf-mep-ref { 1233 type sfc-sf:service-function-ref; 1235 } 1237 leaf sfp-mep-ref { 1239 type sfc-sfp:service-function-path-ref; 1241 } 1243 } 1245 case sff-mep-address { 1247 leaf sff-mep-ref { 1249 type sfc-sff:service-function-forwarder-ref; 1251 } 1253 leaf sfp-mep-ref { 1255 type sfc-sfp:service-function-path-ref; 1257 } 1259 } 1261 } 1263 augment "/goam-rpc:revoke-performance-measurement/goam- 1264 rpc:input/goam-rpc:destination-mep/goam-rpc:mp-address" { 1266 case sf-mep-address { 1267 leaf sf-mep-ref { 1269 type sfc-sf:service-function-ref; 1271 } 1273 leaf sfp-mep-ref { 1275 type sfc-sfp:service-function-path-ref; 1277 } 1279 } 1281 case sff-mep-address { 1283 leaf sff-mep-ref { 1285 type sfc-sff:service-function-forwarder-ref; 1287 } 1289 leaf sfp-mep-ref { 1291 type sfc-sfp:service-function-path-ref; 1293 } 1295 } 1297 } 1299 //SFC extension of other-function part 1301 augment "/goam-rpc:initiated-other-function/goam-rpc:input/goam- 1302 rpc:source-mep/goam-rpc:mp-address" { 1304 case sf-mep-address { 1306 leaf sf-mep-ref { 1308 type sfc-sf:service-function-ref; 1310 } 1312 leaf sfp-mep-ref { 1314 type sfc-sfp:service-function-path-ref; 1316 } 1318 } 1320 case sff-mep-address { 1322 leaf sff-mep-ref { 1324 type sfc-sff:service-function-forwarder-ref; 1326 } 1328 leaf sfp-mep-ref { 1330 type sfc-sfp:service-function-path-ref; 1332 } 1334 } 1336 } 1338 augment "/goam-rpc:initiated-other-function/goam-rpc:input/goam- 1339 rpc:destination-mep/goam-rpc:mp-address" { 1341 case sf-mep-address { 1343 leaf sf-mep-ref { 1345 type sfc-sf:service-function-ref; 1347 } 1349 leaf sfp-mep-ref { 1351 type sfc-sfp:service-function-path-ref; 1353 } 1355 } 1357 case sff-mep-address { 1359 leaf sff-mep-ref { 1361 type sfc-sff:service-function-forwarder-ref; 1363 } 1364 leaf sfp-mep-ref { 1366 type sfc-sfp:service-function-path-ref; 1368 } 1370 } 1372 } 1374 augment "/goam-rpc:revoke-other-function/goam-rpc:input/goam- 1375 rpc:source-mep/goam-rpc:mp-address" { 1377 case sf-mep-address { 1379 leaf sf-mep-ref { 1381 type sfc-sf:service-function-ref; 1383 } 1385 leaf sfp-mep-ref { 1387 type sfc-sfp:service-function-path-ref; 1389 } 1391 } 1393 case sff-mep-address { 1395 leaf sff-mep-ref { 1397 type sfc-sff:service-function-forwarder-ref; 1399 } 1401 leaf sfp-mep-ref { 1403 type sfc-sfp:service-function-path-ref; 1405 } 1407 } 1409 } 1410 augment "/goam-rpc:revoke-other-function/goam-rpc:input/goam- 1411 rpc:destination-mep/goam-rpc:mp-address" { 1413 case sf-mep-address { 1415 leaf sf-mep-ref { 1417 type sfc-sf:service-function-ref; 1419 } 1421 leaf sfp-mep-ref { 1423 type sfc-sfp:service-function-path-ref; 1425 } 1427 } 1429 case sff-mep-address { 1431 leaf sff-mep-ref { 1433 type sfc-sff:service-function-forwarder-ref; 1435 } 1437 leaf sfp-mep-ref { 1439 type sfc-sfp:service-function-path-ref; 1441 } 1443 } 1445 } 1447 } 1448 1450 7. Security Considerations 1452 TBD. 1454 8. IANA Considerations 1456 TBD. 1458 9. References 1460 9.1. Normative References 1462 [IEEE.802.1Q-2011] 1463 Institute of Electrical and Electronics Engineers, "Media 1464 Access Control (MAC) Bridges and Virtual Bridged Local 1465 Area Networks", IEEE Standard 802.1Q, August 2011. 1467 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1468 Requirement Levels", March 1997. 1470 [RFC2234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 1471 Specifications: ABNF", RFC 2234, November 1997. 1473 9.2. Informative References 1475 [I-D.penno-sfc-yang] 1476 Penno, R., Quinn, P., Zhou, D., and J. Li, "Yang Data 1477 Model for Service Function Chaining", draft-penno-sfc- 1478 yang-13 (work in progress), March 2015. 1480 [I-D.wang-lime-rpc-yang-oam-management] 1481 Wang, Z. and Q. Wu, "Additional RPC definitions to Generic 1482 YANG Data Model for layer Independent OAM Management", 1483 draft-wang-lime-rpc-yang-oam-management-00 (work in 1484 progress), October 2014. 1486 [Y.1731] "OAM functions and mechanisms for Ethernet based 1487 networks", ITU G.8013/Y.1731, July 2011. 1489 Authors' Addresses 1491 Liang Xia 1492 Huawei Technologies,Co.,Ltd 1493 101 Software Avenue, Yuhua District 1494 Nanjing 210012 1495 China 1497 Email: frank.xialiang@huawei.com 1498 Qin Wu 1499 Huawei 1500 101 Software Avenue, Yuhua District 1501 Nanjing, Jiangsu 210012 1502 China 1504 Email: bill.wu@huawei.com 1506 Deepak Kumar 1507 Cisco Systems 1508 510 McCarthy Blvd Milpitas, 1509 CA 95035 1510 USA 1512 Email: dekumar@cisco.com 1514 Mohamed Boucadair 1515 France Telecom 1516 Rennes 35000 1517 France 1519 Email: mohamed.boucadair@orange.com 1521 Zitao Wang 1522 Huawei Technologies,Co.,Ltd 1523 101 Software Avenue, Yuhua District 1524 Nanjing 210012 1525 China 1527 Email: wangzitao@huawei.com