BIER WG Ran. Chen Internet-Draft Fangwei. Hu Intended status: Standards Track Zheng. Zhang Expires: July 25, 2017 Xianxia. Dai ZTE Corporation Mahesh Sivakumar Cisco Systems, Inc. January 21, 2017 YANG Data Model for BIER Protocol draft-ietf-bier-bier-yang-01.txt Abstract This document defines a YANG data model for BIER configuration and operation. 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 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." This Internet-Draft will expire on July 25, 2017. Copyright Notice Copyright (c) 2017 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 Chen, et al. Expires July 25, 2017 [Page 1] Internet-Draft BIER YANG January 2017 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 2 3. Configuration . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Control plane configuration . . . . . . . . . . . . . . . . . 4 5. States . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6. Notification . . . . . . . . . . . . . . . . . . . . . . . . 5 7. BIER YANG Data Model . . . . . . . . . . . . . . . . . . . . 5 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 11. Normative references . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 1. Introduction This document defines a YANG data model for BIER configuration and operation. 2. Design of the Data Model module: ietf-bier augment /rt:routing: +--rw bier +--rw bier-global +--rw encapsulation-type? identityref +--rw bitstringlength? bsl +--rw bfr-id? bfr-id +--rw ipv4-bfr-prefix? inet:ipv4-prefix +--rw ipv6-bfr-prefix? inet:ipv6-prefix +--rw sub-domain* [sub-domain-id] +--rw sub-domain-id sub-domain-id +--rw igp-type? igp-type +--rw mt-id? mt-id +--rw bfr-id? bfr-id +--rw bitstringlength? bsl +--rw af +--rw ipv4* [bitstringlength bier-mpls-label-base] | +--rw bitstringlength uint16 | +--rw bier-mpls-label-base mpls:mpls-label | +--rw bier-mpls-label-range-size? bier-mpls-label-range-size +--rw ipv6* [bitstringlength bier-mpls-label-base] +--rw bitstringlength uint16 +--rw bier-mpls-label-base mpls:mpls-label Chen, et al. Expires July 25, 2017 [Page 2] Internet-Draft BIER YANG January 2017 +--rw bier-mpls-label-range-size? bier-mpls-label-range-size augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/ospf:ospf/ospf:instance: +--rw bier-ospf-cfg +--rw mt-id mt-id +--rw bier-global +--rw enable? boolean +--rw advertise? boolean +--rw receive? boolean augment /rt:routing/rt:control-plane-protocols/rt:control-plane-protocol/isis:isis: +--rw bier-isis-cfg +--rw mt-id mt-id +--rw bier-global +--rw enable? boolean +--rw advertise? boolean +--rw receive? boolean augment /rt:routing-state: +--ro bier-global | +--ro encapsulation-type? identityref | +--ro bitstringlength? bsl | +--ro bfr-id? bfr-id | +--ro ipv4-bfr-prefix? inet:ipv4-prefix | +--ro ipv6-bfr-prefix? inet:ipv6-prefix | +--ro sub-domain* [sub-domain-id] | +--ro sub-domain-id sub-domain-id | +--ro igp-type igp-type | +--ro mt-id? mt-id | +--ro bfr-id? bfr-id | +--rw bitstringlength? bsl | +--ro ipv4* [bitstringlength bier-mpls-label-base] | | +--ro bitstringlength uint16 | | +--ro bier-mpls-label-base mpls:mpls-label | | +--ro bier-mpls-label-range-size? bier-mpls-label-range-size | +--ro ipv6* [bitstringlength bier-mpls-label-base] | +--ro bitstringlength uint16 | +--ro bier-mpls-label-base mpls:mpls-label | +--ro bier-mpls-label-range-size? bier-mpls-label-range-size +--ro birts +--ro birt* [sub-domain-id] +--ro sub-domain-id sub-domain-id +--ro birt-bitstringlength* [bitstringlength] +--ro bitstringlength uint16 +--ro birt-si* [si] +--ro si si Chen, et al. Expires July 25, 2017 [Page 3] Internet-Draft BIER YANG January 2017 +--ro f-bm? uint16 +--ro bier-mpls-in-label? mpls:mpls-label +--ro bfr-nbr? inet:ip-address +--ro bier-mpls-out-label? mpls:mpls-label notifications: +---n bfr-id-collision | +--ro bfr-id? bfr-id +---n bfr-zero | +--ro ipv4-bfr-prefix? inet:ipv4-prefix | +--ro ipv6-bfr-prefix? inet:ipv6-prefix +---n sub-domain-id-collision +--ro sub-domain-id? sub-domain-id +--ro mt-id? uint16 3. Configuration This Module augments the "/rt:routing:" with a BIER container. This Container defines all the configuration parameters related to BIER for this particular routing. The BIER configuration contains global configuration. The global configuration includes BIER encapsulation type, imposition BitStringLengths, BFR-id, BFR-prefixes, and parameters associated with bier sub-domain. In this document, we contains two types of BitStringLengths: Imposition and Disposition BitStringLengths, as defined in ([I-D.ietf-bier-architecture]).The imposition BitStringLengths is defined under bier-global container, and the disposition BitStringLengths is defined under the sub-domain. 4. Control plane configuration This Module augments the "/rt:routing/rt:routing-protocols/ rt:routing-protocol/ospf:ospf/ospf:instance:" and "/rt:routing/ rt:routing-protocols/rt:routing-protocol/isis:isis:"configuration with BIER. This Module supports ISIS ([I-D.ietf-bier-isis-extensions])and OSPF ([I-D.ietf-bier-ospf-bier-extensions]) as control plane for BIER. 5. States The operational states contains basic parameters associated with bier, such as BIER encapsulation type, BitStringLengths, BFR-id, BFR- prefixes, and parameters associated with bier sub-domain. Chen, et al. Expires July 25, 2017 [Page 4] Internet-Draft BIER YANG January 2017 It also includes the Bit Index Routing Table(BIRT). 6. Notification This Module includes bfr-id-collision, bfr-zero, and sub-domain-id- collision. 7. BIER YANG Data Model file "ietf-bier.yang" module ietf-bier { namespace "urn:ietf:params:xml:ns:yang:ietf-bier"; prefix "bier"; import ietf-routing { prefix "rt"; } import ietf-inet-types { prefix "inet"; } import ietf-mpls { prefix "mpls"; } import ietf-isis{ prefix "isis"; } import ietf-ospf { prefix "ospf"; } organization "IETF BIER(Bit Indexed Explicit Replication ) Working Group"; contact "WG List: WG Chair: Tony Przygienda WG Chair: Greg Shepherd Chen, et al. Expires July 25, 2017 [Page 5] Internet-Draft BIER YANG January 2017 Editor: Ran Chen Editor: Fangwei Hu Editor: Zheng Zhang Editor: Xianxian Dai Editor: Mahesh Sivakumar "; description "The YANG module defines a generic configuration model for BIER."; revision 2017-01-20{ description "01 revision"; reference "draft-ietf-bier-bier-yang-01"; } revision 2016-07-23{ description "00 revision"; reference "draft-ietf-bier-bier-yang-00"; } revision 2016-05-12{ description "04 revision"; reference "draft-chh-bier-bier-yang-04"; } revision 2016-03-16 { description "03 revision"; reference "draft-chh-bier-bier-yang-03"; } revision 2015-12-03 { description "02 revision"; reference "draft-chh-bier-bier-yang-02"; Chen, et al. Expires July 25, 2017 [Page 6] Internet-Draft BIER YANG January 2017 } revision 2015-10-16 { description "01 revision."; reference "draft-chh-bier-bier-yang-01"; } revision 2015-06-22 { description "Initial revision."; reference "draft-chh-bier-bier-yang-00"; } /* Identities */ identity bier-encapsulation{ description "Base identity for BIER encapsulation."; } identity bier-encapsulation-mpls { base bier-encapsulation; description "This identity represents MPLS encapsulation for bier."; } /*Typedefs*/ typedef sub-domain-id { type uint16; description "The type for sub-domain-id"; } typedef si { type uint16; description "The type for set identifier"; } typedef bfr-id { type uint16; description "The type for bfr identifier"; } typedef mt-id { Chen, et al. Expires July 25, 2017 [Page 7] Internet-Draft BIER YANG January 2017 type uint16; description "The type for multi-topology identifier"; } typedef bier-mpls-label-range-size{ type uint8; description "The type for BIER label range size."; } typedef bsl { type enumeration{ enum 64-bit{ value 1; description "bitstringlength is 64"; } enum 128-bit{ value 2; description "bitstringlength is 128"; } enum 256-bit{ value 3; description "bitstringlength is 256"; } enum 512-bit{ value 4; description "bitstringlength is 512"; } enum 1024-bit{ value 5; description "bitstringlength is 1024"; } enum 2048-bit{ value 6; description "bitstringlength is 2048"; } enum 4096-bit{ value 7; description "bitstringlength is 4096"; } Chen, et al. Expires July 25, 2017 [Page 8] Internet-Draft BIER YANG January 2017 } description "The bitstringlength type for imposition mode"; } typedef igp-type { type enumeration{ enum ISIS{ value 1; description "isis protocol"; } enum OSPF{ value 2; description "ospf protocol"; } } description "The IGP type"; } /*grouping*/ grouping bier-protocol-extensions{ leaf mt-id{ type mt-id; description "Multi-topology associated with bier sub-domain."; } container bier-global { leaf enable { type boolean; default false; description "Enables bier protocol extensions."; } leaf advertise { type boolean; default true; description "Enable to advertise the parameters associated with bier."; } leaf receive { type boolean; default true; description "Enable to receive the parameters associated with bier."; } Chen, et al. Expires July 25, 2017 [Page 9] Internet-Draft BIER YANG January 2017 description "BIER global config."; } description "Defines protocol extensions."; } grouping bier-parameters{ leaf encapsulation-type { type identityref { base bier-encapsulation; } default "bier-encapsulation-mpls"; description "Dataplane to be used."; } leaf bitstringlength{ type bsl; description "imposition bitstringlength."; } leaf bfr-id { type bfr-id; description "BIER bfr identifier."; } leaf ipv4-bfr-prefix { type inet:ipv4-prefix; description "BIER IPv4 prefix."; } leaf ipv6-bfr-prefix { type inet:ipv6-prefix; description "BIER IPv6 prefix."; } description " BIER parameters."; } grouping bier-mpls-cfg{ leaf bitstringlength { type uint16; description "BIER bitstringlength."; } leaf bier-mpls-label-base{ type mpls:mpls-label; Chen, et al. Expires July 25, 2017 [Page 10] Internet-Draft BIER YANG January 2017 description "BIER label base."; } leaf bier-mpls-label-range-size{ type bier-mpls-label-range-size; description "BIER label range."; } description "Defines the necessary label ranges per bitstring length."; } /* Configuration Data */ augment "/rt:routing" { description "This augments routing-instance configuration with bier."; container bier{ container bier-global { uses bier-parameters; list sub-domain{ key "sub-domain-id"; leaf sub-domain-id{ type sub-domain-id; description "sub-domain ID."; } leaf igp-type { type igp-type; description "IGP type."; } leaf mt-id { type mt-id; description "multi-topology ID."; } leaf bfr-id{ type bfr-id; description "BIER bfr identifier."; } leaf bitstringlength{ type bsl; description "Disposition bitstringlength."; } Chen, et al. Expires July 25, 2017 [Page 11] Internet-Draft BIER YANG January 2017 container af { list ipv4 { key "bitstringlength bier-mpls-label-base"; uses bier-mpls-cfg; description "Defines the necessary label ranges per bitstring length in ipv4."; } list ipv6 { key "bitstringlength bier-mpls-label-base"; uses bier-mpls-cfg; description "Defines the necessary label ranges per bitstring length in ipv6."; } description "Bier mapping entries."; } description "Denfines subdomain configuration"; } description "BIER global config."; } description "BIER config."; } } augment "/rt:routing/rt:control-plane-protocols/" + "rt:control-plane-protocol/ospf:ospf/ospf:instance" { when "../../rt:type = 'ospf:ospfv2' or ../../rt:type = 'ospf:ospfv3'" { description "This augments the ospf routing protocol when used"; } description "This augments ospf protocol configuration with bier."; container bier-ospf-cfg{ uses bier-protocol-extensions; description "Control of bier advertisement and reception."; } } augment "/rt:routing/rt:control-plane-protocols/" +"rt:control-plane-protocol/isis:isis"{ when "/rt:routing/rt:control-plane-protocols/"+ "rt:control-plane-protocol/rt:type = 'isis:isis'" { Chen, et al. Expires July 25, 2017 [Page 12] Internet-Draft BIER YANG January 2017 description "This augment ISIS routing protocol when used"; } description "This augments ISIS protocol configuration with bier."; container bier-isis-cfg{ uses bier-protocol-extensions; description "Control of bier advertisement and reception."; } } /* Operational data */ augment "/rt:routing-state" { description "This augments the operational states with bier."; container bier-global{ uses bier-parameters; list sub-domain{ key "sub-domain-id"; leaf sub-domain-id{ type sub-domain-id; description "sub-domain ID."; } leaf igp-type { type igp-type; description "IGP type."; } leaf mt-id { type mt-id; description "multi-topology ID."; } leaf bfr-id{ type bfr-id; description "BIER bfr identifier."; } leaf bitstringlength{ type bsl; description "Disposition bitstringlength."; } list ipv4 { Chen, et al. Expires July 25, 2017 [Page 13] Internet-Draft BIER YANG January 2017 key "bitstringlength bier-mpls-label-base"; uses bier-mpls-cfg; description "Show the necessary label ranges per bitstring length in ipv4."; } list ipv6 { key "bitstringlength bier-mpls-label-base"; uses bier-mpls-cfg; description "Show the necessary label ranges per bitstring length in ipv6."; } description "Denfines subdomain configuration"; } description "Parameters associated with bier."; } container birts{ list birt{ key "sub-domain-id"; leaf sub-domain-id{ type sub-domain-id; description "BIER sub domain ID"; } list birt-bitstringlength { key "bitstringlength"; leaf bitstringlength{ type uint16; description "BIER bitstringlength."; } list birt-si { key "si"; leaf si{ type si; description "BIER set identifier."; } leaf f-bm{ type uint16; description "BIER Forwarding Bit Mask."; } leaf bier-mpls-in-label{ type mpls:mpls-label; description Chen, et al. Expires July 25, 2017 [Page 14] Internet-Draft BIER YANG January 2017 "BIER in-label."; } leaf bfr-nbr{ type inet:ip-address; description "BIER BFR Neighbors."; } leaf bier-mpls-out-label{ type mpls:mpls-label; description "BIER out-label."; } description "Query the BIRT based on the key set identifier & bitstringlength & sub-domain-id."; } description "Query the BIRT based on the key bitstringlengt & sub-domain-id."; } description "Query the BIRT based on the key sub-domain."; } description "Shows Bit Index Routing Table."; } } /* Notifications */ notification bfr-id-collision{ leaf bfr-id{ type bfr-id; description "BIER BFR ID."; } description "BFR ID received in the controlplane that caused BFR ID collision."; } notification bfr-zero{ leaf ipv4-bfr-prefix{ type inet:ipv4-prefix; description "BIER ipv4 bfr prefix"; } leaf ipv6-bfr-prefix{ type inet:ipv6-prefix; description "BIER ipv6 bfr prefix"; Chen, et al. Expires July 25, 2017 [Page 15] Internet-Draft BIER YANG January 2017 } description "Invalid value associated with prefix"; } notification sub-domain-id-collision{ leaf sub-domain-id{ type sub-domain-id; description "BIER sub domain ID"; } leaf mt-id{ type uint16; description "Multi-topology ID"; } description "Sub domain ID received in the controlplane that caused Sub domain ID collision"; } } 8. Security Considerations TBD. 9. Acknowledgements We would like to thank IJsbrand Wijnands, Reshad Rahman and Giles Heron for their comments and support of this work. 10. IANA Considerations This document requires no IANA Actions. Please remove this section before RFC publication. 11. Normative references [I-D.ietf-bier-architecture] Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and S. Aldrin, "Multicast using Bit Index Explicit Replication", draft-ietf-bier-architecture-05 (work in progress), October 2016. Chen, et al. Expires July 25, 2017 [Page 16] Internet-Draft BIER YANG January 2017 [I-D.ietf-bier-isis-extensions] Ginsberg, L., Przygienda, T., Aldrin, S., and Z. Zhang, "BIER support via ISIS", draft-ietf-bier-isis- extensions-03 (work in progress), September 2016. [I-D.ietf-bier-mpls-encapsulation] Wijnands, I., Rosen, E., Dolganow, A., Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation for Bit Index Explicit Replication in MPLS and non-MPLS Networks", draft-ietf-bier-mpls-encapsulation-06 (work in progress), December 2016. [I-D.ietf-bier-ospf-bier-extensions] Psenak, P., Kumar, N., Wijnands, I., Dolganow, A., Przygienda, T., Zhang, Z., and S. Aldrin, "OSPF Extensions for BIER", draft-ietf-bier-ospf-bier-extensions-04 (work in progress), September 2016. [I-D.ietf-isis-yang-isis-cfg] Litkowski, S., Yeung, D., Lindem, A., Zhang, Z., and L. Lhotka, "YANG Data Model for IS-IS protocol", draft-ietf- isis-yang-isis-cfg-14 (work in progress), November 2016. [I-D.ietf-mpls-base-yang] Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data Model for MPLS Base", draft-ietf-mpls-base-yang-01 (work in progress), July 2016. [I-D.ietf-mpls-static-yang] Saad, T., Raza, K., Gandhi, R., Liu, X., Beeram, V., Shah, H., Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data Model for MPLS Static LSPs", draft-ietf-mpls-static- yang-02 (work in progress), January 2017. [I-D.ietf-netmod-routing-cfg] Lhotka, L. and A. Lindem, "A YANG Data Model for Routing Management", draft-ietf-netmod-routing-cfg-25 (work in progress), November 2016. [I-D.ietf-ospf-yang] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, "Yang Data Model for OSPF Protocol", draft-ietf-ospf- yang-06 (work in progress), October 2016. Chen, et al. Expires July 25, 2017 [Page 17] Internet-Draft BIER YANG January 2017 [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010, . [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, . [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10.17487/RFC6991, July 2013, . [RFC7223] Bjorklund, M., "A YANG Data Model for Interface Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, . Authors' Addresses Ran Chen ZTE Corporation No.50 Software Avenue,Yuhuatai District Nanjing, Jiangsu Province 210012 China Phone: +86 025 88014636 Email: chen.ran@zte.com.cn Fangwei Hu ZTE Corporation No.889 Bibo Rd Shanghai 201203 China Phone: +86 21 68896273 Email: hu.fangwei@zte.com.cn Zheng Zhang ZTE Corporation No.50 Software Avenue,Yuhuatai District Nanjing, Jiangsu Province 210012 China Email: zhang.zheng@zte.com.cn Chen, et al. Expires July 25, 2017 [Page 18] Internet-Draft BIER YANG January 2017 Xianxian Dai ZTE Corporation No.50 Software Avenue,Yuhuatai District Nanjing, Jiangsu Province 210012 China Email: Dai.xianxian@zte.com.cn Mahesh Sivakumar Cisco Systems, Inc. 510 McCarthy Blvd Milpitas,California 95035 United States Email: masivaku@cisco.com Chen, et al. Expires July 25, 2017 [Page 19]