SFC WG R. Chen Internet-Draft ZTE Corporation Intended status: Standards Track X. Liu Expires: June 30, 2021 Volta Networks H. Chen China Telecom W. Wei ZTE Corporation T. Ao individual December 27, 2020 YANG data model for SFF draft-ao-sfc-yang-03 Abstract This document is to define the YANG data model for SFF configuration. Status of This 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). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://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." This Internet-Draft will expire on June 30, 2021. Copyright Notice Copyright (c) 2020 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 (https://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 Chen, et al. Expires June 30, 2021 [Page 1] Internet-Draft YANG data model for SFF December 2020 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. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Design tree for SFF YANG data model . . . . . . . . . . . . . 2 3. YANG data model for SFF configuration . . . . . . . . . . . . 3 4. Security Considerations . . . . . . . . . . . . . . . . . . . 10 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.1. Normative References . . . . . . . . . . . . . . . . . . 10 6.2. Information References . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 1. Introduction YANG[RFC6020]is a data definition language that was introduced to define the contents of a conceptual data store that allows networked devices to be managed using NETCONF [RFC6241]. This document defines a YANG data model for the configuration of SFF which data plane has been defined in [RFC8300]. 2. Design tree for SFF YANG data model module: ietf-sff +--rw sff +--rw sff* [sff-name] +--rw sfc-enable? boolean +--rw sff-name sff-name +--rw ip-mgmt-address? inet:ip-address +--rw sff-locator* [name] | +--rw sff-loacator-name sff-loacator-name | +--rw (sff-transport-locator)? | | +--:(ipv4} | | | +--rw remote-ipv4? inet:ipv4-address | | +--:(ipv6) | | | +--rw remote-ipv6? inet:ipv6-address | | +--:(mac) | | +--rw remote-mac? yang:mac-address | | +--:(vxlan-gpe) | | | +--rw source-ip? inet:ipv4-address | | | +--rw destination-ip? inet:ipv4-address | | | +--rw vni uint32 | | +--:(mpls) | | +--rw mpls-label? uint32 Chen, et al. Expires June 30, 2021 [Page 2] Internet-Draft YANG data model for SFF December 2020 | +--rw transport? identityref +--rw connected-sf*[name] | +--rw sf-name sf-name | +--rw sf-type sf-type | +--rw sff-sf-locator* | | +--rw sf-locator-name sf-locator-name | | +--rw sff-loacator-name sff-locator-name | +--rw sff-interfaces* [sff-interface] | +--rw sff-interface string +--rw connected-sff* [name] +--rw sff-name sff-name +--rw sff-sff-locator | +--rw (locator-type) | | +--:(ipv4} | | | +--rw remote-ipv4? inet:ipv4-address | | +--:(ipv6) | | | +--rw remote-ipv6? inet:ipv6-address | | +--:(mac) | | +--rw remote-mac? yang:mac-address | | +--:(vxlan-gpe) | | | +--rw source-ip? inet:ipv4-address | | | +--rw destination-ip? inet:ipv4-address | | | +--rw vni uint32 | | +--:(mpls) | | +--rw mpls-label? uint32 | +--rw transport? identityref +--rw sff-interfaces* [sff-interface] +--rw sff-interface string 3. YANG data model for SFF configuration This container defines a YANG model to configurate of SFF.The SF Type listed in this YANG model is referenced by [I-D.ietf-sfc-use-case-mobility] and [I-D.ietf-sfc-dc-use-cases]. file "ietf-sff@2020-12-10.yang" module ietf-sff { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-sff"; prefix "sff"; import ietf-inet-types { prefix "inet"; reference "RFC6991: Common YANG Data Types"; Chen, et al. Expires June 30, 2021 [Page 3] Internet-Draft YANG data model for SFF December 2020 } import ietf-routing-types { prefix "rt-types"; reference "RFC8294:Common YANG Data Types for the Routing Area"; } import ietf-yang-types { prefix "yang"; reference "RFC6991: Common YANG Data Types"; } import ietf-interfaces { prefix "if"; reference "RFC8343: A YANG Data Model for Interface Management"; } organization "IETF SFC Working Group"; contact "WG Web: WG List: WG Chair:Jim Guichard WG Chair:Joel M. Halpern Editor: Ran Chen Editor: Xufeng Liu Editor: Huanan Chen Editor: Wei Wei Editor: Ting Ao "; description "The YANG module defines a generic configuration model for SFF. Copyright (c) 2019 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info). This version of this YANG module is part of RFC XXXX; see the RFC itself for full legal notices."; revision "2020-01-20"{ Chen, et al. Expires June 30, 2021 [Page 4] Internet-Draft YANG data model for SFF December 2020 description "Initial revision."; reference "RFC XXXX: YANG Data Model for SFC Protocol."; } revision "2020-02-06"{ description "01 revision."; reference "RFC XXXX: YANG Data Model for SFC Protocol."; } revision "2020-12-10"{ description "02 revision."; reference "RFC XXXX: YANG Data Model for SFC Protocol."; } /* Typedef */ typedef sff-name { type string; description "Service Function Forwarder Name"; } typedef sff-locator-name { type string; description "Service Function Forwarder data-plane-locator name"; } typedef sf-locator-name { type string; description "A unique name for SF data-plane-locator"; } typedef sf-name { type string; description "Service Function Name"; } typedef sf-type { type string; description "Service Function type Name"; } /* Identities */ identity transport-type{ description "Base identity from which specific transport types are derived."; } identity locator-transport-type { base "transport-type"; Chen, et al. Expires June 30, 2021 [Page 5] Internet-Draft YANG data model for SFF December 2020 description "This identity is used as a base for all transport types"; } identity ipv4 { base locator-transport-type; description "This identity represents IPv4 transport type."; } identity ipv6 { base locator-transport-type; description "This identity represents IPv6 transport-type."; } identity mac { base locator-transport-type; description "This identity represents sfp mac transport-type ."; } identity vxlan-gpe { base locator-transport-type; description "This identity represents vxlan-gpe transport-type."; } identity mpls { base locator-transport-type; description "This identity represents mpls transport-type."; } /*grouping*/ grouping locator-transport-type { description "This group presents configuration for the overlay data plane locator.This could be VXLAN-GRE, MPLS,IP,MAC,etc"; choice transport-type { mandatory true; case ipv4 { description "The configuration for overlay data plane which encapsulation type is ethernet&ipv4."; leaf ipv4 { type inet:ipv4-address ; description "Data-plane IPv4 address."; } description "The configuration for overlay data plane which encapsulation type is ethernet&ipv4."; } case ipv6{ Chen, et al. Expires June 30, 2021 [Page 6] Internet-Draft YANG data model for SFF December 2020 description "The configuration for overlay data plane which encapsulation type is ethernet&ipv6."; leaf ipv6 { type inet:ipv6-address ; description "IPv6 address."; } } case mac{ description "The configuration for overlay data plane which encapsulation type is mac."; leaf mac { type yang:mac-address ; description "MAC address."; } } case vxlan-gpe-nexthop { description "The configuration for overlay data plane which encapsulation type is vxlan-gpe."; leaf source-ip { description "The source IP address."; type inet:ipv4-address ; } leaf destination-ip { description "The destination address."; type inet:ipv4-address ; } leaf vni { type uint32; mandatory true; description "VNI value of the tunnel."; } } case mpls-nexhop{ description"The configuration for overlay data plane which encapsulation type is mpls."; uses rt-types:mpls-label-stack; } description "The collection of all possible data-plane locators."; } leaf transport { type identityref { base locator-transport-type; } description "The encapsulation used to carry NSH packets"; } Chen, et al. Expires June 30, 2021 [Page 7] Internet-Draft YANG data model for SFF December 2020 } container sff { description "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. "; leaf sfc-enable { type boolean; default false ; description "Enable SFC." ; } list sff { key "sff-name"; description "a list of all SFF configurations in the domain."; leaf sff-name { type sff-name; description "The unique name of this service function forwarder."; } leaf ip-mgmt-address { type inet:ip-address; description "The IP and port used to configure this service-function-forwarder"; } list sff-locator{ key "sff-loacator-name"; leaf sff-loacator-name { type sff-loacator-name ; description "A list of all data-plane-locators of this SFF." ; } container sff-transport-locator{ description "The overlay data plane locator used by this SFF. This could be VXLAN-GRE,MPLS,MAC,etc"; uses locator-transport-type; } description "The list of sff data plane locator related informations."; } list connected-sf { key "sf-name"; leaf sf-name { type sf-name; Chen, et al. Expires June 30, 2021 [Page 8] Internet-Draft YANG data model for SFF December 2020 description "The name of the service function."; } leaf sf-type { type sf-type; description "Service Function type names such as firewall, dpi,etc"; } container sff-sf-locator { description "SFF and SF data plane locators to use when sending packets from this SFF to the associated SF"; leaf sf-locator-name { type sf-locator-name; description "The SF data plane locator to use when sending packets to the associated service function"; } leaf sff-locator-name { type sff-locator-name; description "The SFF data plane locator to use when sending packets to the associated service function."; } } list sff-interfaces { key "sff-interface"; leaf sff-interface { type string; description "An individual interface on the SFF connected to the SF"; } description "A list of interfaces on the SFF which are connected to the SF"; } description "A list of all Service Functions attached to this SFF."; } list connected-sff{ key "sff-name"; leaf sff-name { type sff-name; description "The name of the SFF connected to this SFF"; } container sff-sff-locator { description "The SFF uses this data plane locator when sending packets to the associated SFF"; Chen, et al. Expires June 30, 2021 [Page 9] Internet-Draft YANG data model for SFF December 2020 uses locator-transport-type; } list sff-interfaces { key "sff-interface"; leaf sff-interface { type string; description "An individual SFF interface connected to this SFF"; } description "A list of SFF interfaces connected to this SFF"; } description "A list of all Service Function Forwarders connected to this SFF"; } } } } 4. Security Considerations TBD. 5. IANA Considerations TBD. 6. References 6.1. Normative References [RFC7665] Halpern, J., Ed. and C. Pignataro, Ed., "Service Function Chaining (SFC) Architecture", RFC 7665, DOI 10.17487/RFC7665, October 2015, . [RFC8300] Quinn, P., Ed., Elzur, U., Ed., and C. Pignataro, Ed., "Network Service Header (NSH)", RFC 8300, DOI 10.17487/RFC8300, January 2018, . Chen, et al. Expires June 30, 2021 [Page 10] Internet-Draft YANG data model for SFF December 2020 6.2. Information References [I-D.ietf-sfc-dc-use-cases] Kumar, S., Tufail, M., Majee, S., Captari, C., and S. Homma, "Service Function Chaining Use Cases In Data Centers", draft-ietf-sfc-dc-use-cases-06 (work in progress), February 2017. [I-D.ietf-sfc-use-case-mobility] Haeffner, W., Napper, J., Stiemerling, M., Lopez, D., and J. Uttaro, "Service Function Chaining Use Cases in Mobile Networks", draft-ietf-sfc-use-case-mobility-09 (work in progress), January 2019. Authors' Addresses Ran Chen ZTE Corporation Email: chen.ran@zte.com.cn Xufeng Liu Volta Networks Email: xufeng.liu.ietf@gmail.com Huanan Chen China Telecom Email: chenhua6@chinatelecom.com Wei Wei ZTE Corporation Email: wei.wei26@zte.com.cn Ting Ao individual Email: 18555817@qq.com Chen, et al. Expires June 30, 2021 [Page 11]