idnits 2.17.1 draft-ao-sfc-yang-03.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 : ---------------------------------------------------------------------------- ** There are 20 instances of too long lines in the document, the longest one being 136 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (December 27, 2020) is 1209 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. 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: 'RFC6241' is mentioned on line 69, but not defined == Missing Reference: 'I-D.ietf-sfc-use-case-mobility' is mentioned on line 483, but not defined == Missing Reference: 'I-D.ietf-sfc-dc-use-cases' is mentioned on line 477, but not defined == Unused Reference: 'RFC7665' is defined on line 465, but no explicit reference was found in the text ** Downref: Normative reference to an Informational RFC: RFC 7665 Summary: 2 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SFC WG R. Chen 3 Internet-Draft ZTE Corporation 4 Intended status: Standards Track X. Liu 5 Expires: June 30, 2021 Volta Networks 6 H. Chen 7 China Telecom 8 W. Wei 9 ZTE Corporation 10 T. Ao 11 individual 12 December 27, 2020 14 YANG data model for SFF 15 draft-ao-sfc-yang-03 17 Abstract 19 This document is to define the YANG data model for SFF configuration. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on June 30, 2021. 38 Copyright Notice 40 Copyright (c) 2020 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (https://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 2. Design tree for SFF YANG data model . . . . . . . . . . . . . 2 57 3. YANG data model for SFF configuration . . . . . . . . . . . . 3 58 4. Security Considerations . . . . . . . . . . . . . . . . . . . 10 59 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 60 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 61 6.1. Normative References . . . . . . . . . . . . . . . . . . 10 62 6.2. Information References . . . . . . . . . . . . . . . . . 11 63 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 65 1. Introduction 67 YANG[RFC6020]is a data definition language that was introduced to 68 define the contents of a conceptual data store that allows networked 69 devices to be managed using NETCONF [RFC6241]. This document defines 70 a YANG data model for the configuration of SFF which data plane has 71 been defined in [RFC8300]. 73 2. Design tree for SFF YANG data model 75 module: ietf-sff 76 +--rw sff 77 +--rw sff* [sff-name] 78 +--rw sfc-enable? boolean 79 +--rw sff-name sff-name 80 +--rw ip-mgmt-address? inet:ip-address 81 +--rw sff-locator* [name] 82 | +--rw sff-loacator-name sff-loacator-name 83 | +--rw (sff-transport-locator)? 84 | | +--:(ipv4} 85 | | | +--rw remote-ipv4? inet:ipv4-address 86 | | +--:(ipv6) 87 | | | +--rw remote-ipv6? inet:ipv6-address 88 | | +--:(mac) 89 | | +--rw remote-mac? yang:mac-address 90 | | +--:(vxlan-gpe) 91 | | | +--rw source-ip? inet:ipv4-address 92 | | | +--rw destination-ip? inet:ipv4-address 93 | | | +--rw vni uint32 94 | | +--:(mpls) 95 | | +--rw mpls-label? uint32 96 | +--rw transport? identityref 97 +--rw connected-sf*[name] 98 | +--rw sf-name sf-name 99 | +--rw sf-type sf-type 100 | +--rw sff-sf-locator* 101 | | +--rw sf-locator-name sf-locator-name 102 | | +--rw sff-loacator-name sff-locator-name 103 | +--rw sff-interfaces* [sff-interface] 104 | +--rw sff-interface string 105 +--rw connected-sff* [name] 106 +--rw sff-name sff-name 107 +--rw sff-sff-locator 108 | +--rw (locator-type) 109 | | +--:(ipv4} 110 | | | +--rw remote-ipv4? inet:ipv4-address 111 | | +--:(ipv6) 112 | | | +--rw remote-ipv6? inet:ipv6-address 113 | | +--:(mac) 114 | | +--rw remote-mac? yang:mac-address 115 | | +--:(vxlan-gpe) 116 | | | +--rw source-ip? inet:ipv4-address 117 | | | +--rw destination-ip? inet:ipv4-address 118 | | | +--rw vni uint32 119 | | +--:(mpls) 120 | | +--rw mpls-label? uint32 121 | +--rw transport? identityref 122 +--rw sff-interfaces* [sff-interface] 123 +--rw sff-interface string 125 3. YANG data model for SFF configuration 127 This container defines a YANG model to configurate of SFF.The SF Type 128 listed in this YANG model is referenced by 129 [I-D.ietf-sfc-use-case-mobility] and [I-D.ietf-sfc-dc-use-cases]. 131 file "ietf-sff@2020-12-10.yang" 133 module ietf-sff { 134 yang-version 1.1; 136 namespace "urn:ietf:params:xml:ns:yang:ietf-sff"; 137 prefix "sff"; 139 import ietf-inet-types { 140 prefix "inet"; 141 reference "RFC6991: Common YANG Data Types"; 143 } 144 import ietf-routing-types { 145 prefix "rt-types"; 146 reference "RFC8294:Common YANG Data Types for the Routing Area"; 147 } 148 import ietf-yang-types { 149 prefix "yang"; 150 reference "RFC6991: Common YANG Data Types"; 151 } 152 import ietf-interfaces { 153 prefix "if"; 154 reference "RFC8343: A YANG Data Model for Interface Management"; 155 } 156 organization "IETF SFC Working Group"; 158 contact 159 "WG Web: 160 WG List: 161 WG Chair:Jim Guichard 162 163 WG Chair:Joel M. Halpern 164 165 Editor: Ran Chen 166 167 Editor: Xufeng Liu 168 169 Editor: Huanan Chen 170 171 Editor: Wei Wei 172 173 Editor: Ting Ao 174 175 "; 176 description 177 "The YANG module defines a generic configuration model for SFF. 178 Copyright (c) 2019 IETF Trust and the persons 179 identified as authors of the code. All rights reserved. 181 Redistribution and use in source and binary forms, with or 182 without modification, is permitted pursuant to, and subject 183 to the license terms contained in, the Simplified BSD License 184 set forth in Section 4.c of the IETF Trust's Legal Provisions 185 Relating to IETF Documents 186 (https://trustee.ietf.org/license-info). 187 This version of this YANG module is part of RFC XXXX; see 188 the RFC itself for full legal notices."; 190 revision "2020-01-20"{ 191 description "Initial revision."; 192 reference "RFC XXXX: YANG Data Model for SFC Protocol."; 193 } 195 revision "2020-02-06"{ 196 description "01 revision."; 197 reference "RFC XXXX: YANG Data Model for SFC Protocol."; 198 } 200 revision "2020-12-10"{ 201 description "02 revision."; 202 reference "RFC XXXX: YANG Data Model for SFC Protocol."; 203 } 205 /* Typedef */ 206 typedef sff-name { 207 type string; 208 description "Service Function Forwarder Name"; 209 } 211 typedef sff-locator-name { 212 type string; 213 description "Service Function Forwarder data-plane-locator name"; 214 } 216 typedef sf-locator-name { 217 type string; 218 description 219 "A unique name for SF data-plane-locator"; 220 } 222 typedef sf-name { 223 type string; 224 description "Service Function Name"; 225 } 227 typedef sf-type { 228 type string; 229 description "Service Function type Name"; 230 } 232 /* Identities */ 233 identity transport-type{ 234 description 235 "Base identity from which specific transport types are derived."; 236 } 237 identity locator-transport-type { 238 base "transport-type"; 239 description 240 "This identity is used as a base for all transport types"; 241 } 242 identity ipv4 { 243 base locator-transport-type; 244 description 245 "This identity represents IPv4 transport type."; 246 } 247 identity ipv6 { 248 base locator-transport-type; 249 description 250 "This identity represents IPv6 transport-type."; 251 } 252 identity mac { 253 base locator-transport-type; 254 description 255 "This identity represents sfp mac transport-type ."; 256 } 257 identity vxlan-gpe { 258 base locator-transport-type; 259 description 260 "This identity represents vxlan-gpe transport-type."; 261 } 262 identity mpls { 263 base locator-transport-type; 264 description 265 "This identity represents mpls transport-type."; 266 } 268 /*grouping*/ 269 grouping locator-transport-type { 270 description 271 "This group presents configuration for the overlay data plane locator.This could be VXLAN-GRE, MPLS,IP,MAC,etc"; 272 choice transport-type { 273 mandatory true; 275 case ipv4 { 276 description 277 "The configuration for overlay data plane which encapsulation type is ethernet&ipv4."; 278 leaf ipv4 { 279 type inet:ipv4-address ; 280 description "Data-plane IPv4 address."; 281 } 282 description "The configuration for overlay data plane which encapsulation type is ethernet&ipv4."; 283 } 285 case ipv6{ 286 description 287 "The configuration for overlay data plane which encapsulation type is ethernet&ipv6."; 288 leaf ipv6 { 289 type inet:ipv6-address ; 290 description "IPv6 address."; 291 } 292 } 294 case mac{ 295 description 296 "The configuration for overlay data plane which encapsulation type is mac."; 297 leaf mac { 298 type yang:mac-address ; 299 description "MAC address."; 300 } 301 } 303 case vxlan-gpe-nexthop { 304 description 305 "The configuration for overlay data plane which encapsulation type is vxlan-gpe."; 306 leaf source-ip { 307 description "The source IP address."; 308 type inet:ipv4-address ; 309 } 310 leaf destination-ip { 311 description "The destination address."; 312 type inet:ipv4-address ; 313 } 314 leaf vni { 315 type uint32; 316 mandatory true; 317 description "VNI value of the tunnel."; 318 } 319 } 321 case mpls-nexhop{ 322 description"The configuration for overlay data plane which encapsulation type is mpls."; 323 uses rt-types:mpls-label-stack; 324 } 325 description "The collection of all possible data-plane locators."; 326 } 327 leaf transport { 328 type identityref { 329 base locator-transport-type; 330 } 331 description 332 "The encapsulation used to carry NSH packets"; 333 } 335 } 337 container sff { 338 description 339 "A service function forwarder is responsible for delivering traffic received from the SFC network forwarder to one or more connected service functions via information carried in the SFC encapsulation. 340 "; 341 leaf sfc-enable { 342 type boolean; 343 default false ; 344 description "Enable SFC." ; 345 } 346 list sff { 347 key "sff-name"; 348 description 349 "a list of all SFF configurations in the domain."; 350 leaf sff-name { 351 type sff-name; 352 description 353 "The unique name of this service function forwarder."; 354 } 356 leaf ip-mgmt-address { 357 type inet:ip-address; 358 description 359 "The IP and port used to configure this 360 service-function-forwarder"; 361 } 363 list sff-locator{ 364 key "sff-loacator-name"; 365 leaf sff-loacator-name { 366 type sff-loacator-name ; 367 description "A list of all data-plane-locators of this SFF." ; 368 } 369 container sff-transport-locator{ 370 description 371 "The overlay data plane locator used by this SFF. This could be VXLAN-GRE,MPLS,MAC,etc"; 372 uses locator-transport-type; 373 } 374 description 375 "The list of sff data plane locator related informations."; 376 } 378 list connected-sf { 379 key "sf-name"; 380 leaf sf-name { 381 type sf-name; 382 description 383 "The name of the service function."; 384 } 385 leaf sf-type { 386 type sf-type; 387 description 388 "Service Function type names such as firewall, dpi,etc"; 389 } 390 container sff-sf-locator { 391 description 392 "SFF and SF data plane locators to use when sending packets from this SFF to the associated SF"; 393 leaf sf-locator-name { 394 type sf-locator-name; 395 description 396 "The SF data plane locator to use when sending packets to the associated service function"; 397 } 398 leaf sff-locator-name { 399 type sff-locator-name; 400 description 401 "The SFF data plane locator to use when sending 402 packets to the associated service function."; 403 } 404 } 405 list sff-interfaces { 406 key "sff-interface"; 407 leaf sff-interface { 408 type string; 409 description 410 "An individual interface on the SFF connected to the SF"; 411 } 412 description 413 "A list of interfaces on the SFF which are connected to the SF"; 414 } 415 description 416 "A list of all Service Functions attached to this SFF."; 417 } 419 list connected-sff{ 420 key "sff-name"; 421 leaf sff-name { 422 type sff-name; 423 description 424 "The name of the SFF connected to this SFF"; 425 } 426 container sff-sff-locator { 427 description 428 "The SFF uses this data plane locator when sending 429 packets to the associated SFF"; 431 uses locator-transport-type; 432 } 433 list sff-interfaces { 434 key "sff-interface"; 435 leaf sff-interface { 436 type string; 437 description 438 "An individual SFF interface connected to this SFF"; 439 } 440 description 441 "A list of SFF interfaces connected to this SFF"; 442 } 443 description 444 "A list of all Service Function Forwarders connected to 445 this SFF"; 446 } 447 } 449 } 450 } 451 453 4. Security Considerations 455 TBD. 457 5. IANA Considerations 459 TBD. 461 6. References 463 6.1. Normative References 465 [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function 466 Chaining (SFC) Architecture", RFC 7665, 467 DOI 10.17487/RFC7665, October 2015, 468 . 470 [RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., 471 "Network Service Header (NSH)", RFC 8300, 472 DOI 10.17487/RFC8300, January 2018, 473 . 475 6.2. Information References 477 [I-D.ietf-sfc-dc-use-cases] 478 Kumar, S., Tufail, M., Majee, S., Captari, C., and S. 479 Homma, "Service Function Chaining Use Cases In Data 480 Centers", draft-ietf-sfc-dc-use-cases-06 (work in 481 progress), February 2017. 483 [I-D.ietf-sfc-use-case-mobility] 484 Haeffner, W., Napper, J., Stiemerling, M., Lopez, D., and 485 J. Uttaro, "Service Function Chaining Use Cases in Mobile 486 Networks", draft-ietf-sfc-use-case-mobility-09 (work in 487 progress), January 2019. 489 Authors' Addresses 491 Ran Chen 492 ZTE Corporation 494 Email: chen.ran@zte.com.cn 496 Xufeng Liu 497 Volta Networks 499 Email: xufeng.liu.ietf@gmail.com 501 Huanan Chen 502 China Telecom 504 Email: chenhua6@chinatelecom.com 506 Wei Wei 507 ZTE Corporation 509 Email: wei.wei26@zte.com.cn 511 Ting Ao 512 individual 514 Email: 18555817@qq.com