BIER WG                                                        Ran. Chen
Internet-Draft                                               Fangwei. Hu
Intended status: Standards Track                            Zheng. Zhang
Expires: April 18, 2016                                     Xianxia. Dai
                                                         ZTE Corporation
                                                        Mahesh Sivakumar
                                                     Cisco Systems, Inc.
                                                        October 16, 2015


                   YANG Data Model for BIER Protocol
                    draft-chh-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 April 18, 2016.

Copyright Notice

   Copyright (c) 2015 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 April 18, 2016                 [Page 1]


Internet-Draft                  BIER YANG                   October 2015


   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 . . . . . . . . . . . . . . . . . . .  15
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  15
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  15
   11. Normative references  . . . . . . . . . . . . . . . . . . . .  15
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  16

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       enumeration
                +--rw bfr-id                uint16
                +--rw af
                |  +--rw ipv4
                |  |  +--rw ipv4-bfr-prefix    inet:ipv4-prefix
                |  +--rw ipv6
                |     +--rw ipv6-bfr-prefix    inet:ipv6-prefix
                +--rw sub-domain* [sub-domain-id]
                   +--rw sub-domain-id      uint16
                   +--rw mt-id              uint16
                   +--rw bfr-id?            uint16
                   +--rw frr?               boolean
                   +--rw bitstringlength    enumeration
                   +--rw af
                      +--rw ipv4* [bitstringlength bier-mpls-label]
                      |  +--rw bitstringlength               uint16
                      |  +--rw bier-mpls-label               uint32
                      |  +--rw bier-mpls-label-range-size?   uint8



Chen, et al.             Expires April 18, 2016                 [Page 2]


Internet-Draft                  BIER YANG                   October 2015


                      +--rw ipv6* [bitstringlength bier-mpls-label]
                         +--rw bitstringlength               uint16
                         +--rw bier-mpls-label               uint32
                         +--rw bier-mpls-label-range-size?   uint8

       augment /rt:routing/rt:routing-instance/rt:routing-protocols
       /rt:routing-protocol/isis:isis/isis:instance:
          +--rw mt
             +--rw mt-id          uint16
             +--rw bier-global
                +--rw enable?      boolean
                +--rw advertise?   boolean
                +--rw receive?     boolean

       augment /rt:routing/rt:routing-instance/rt:routing-protocols
       /rt:routing-protocol/ospf:ospf/ospf:instance:
          +--rw mt
             +--rw mt-id          uint16
             +--rw bier-global
                +--rw enable?      boolean
                +--rw advertise?   boolean
                +--rw receive?     boolean

       augment /rt:routing-state:
          +--ro bier-global
          |  +--ro bfr-id             uint16
          |  +--ro ipv4-bfr-prefix?   inet:ipv4-prefix
          |  +--ro ipv6-bfr-prefix?   inet:ipv6-prefix
          |  +--ro sub-domain* [sub-domain-id]
          |     +--ro sub-domain-id      uint16
          |     +--ro mt-id              uint16
          |     +--ro bfr-id?            uint16
          |     +--ro bitstringlength    uint16
          |     +--ro ipv4* [bitstringlength label]
          |     |  +--ro bitstringlength     uint16
          |     |  +--ro label?              uint32
          |     |  +--ro label-range-size?   uint8
          |     +--ro ipv6* [bitstringlength label]
          |        +--ro bitstringlength     uint16
          |        +--ro label?              uint32
          |        +--ro label-range-size?   uint8
          +--ro birts
             +--ro birt* [sub-domain-id bitstringlength si]
                +--ro sub-domain-id          uint16
                +--ro bitstringlength        uint16
                +--ro si                     uint16
                +--ro f-bm?                  uint16
                +--ro bier-mpls-in-label     uint32



Chen, et al.             Expires April 18, 2016                 [Page 3]


Internet-Draft                  BIER YANG                   October 2015


                +--ro bfr-nbr?               union
                +--ro bier-mpls-out-label    uint32


       notifications:
          +---n bfr-id-collision
          |  +--ro bfr-id?   uint16
          +---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?   uint16
             +--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 transport type, imposition
   BitStringLengths, BFR-id, AF, 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 routing-protocol 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 BFR-id, BFR-prefixes and parameters associated with
   bier sub-domain.



Chen, et al.             Expires April 18, 2016                 [Page 4]


Internet-Draft                  BIER YANG                   October 2015


   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


 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";
     }


     organization
       "IETF BIER(Bit Indexed Explicit Replication ) Working Group";

     contact
        "WG List:  <mailto:bier@ietf.org>

        WG Chair: Tony Przygienda
                  <mailto:tonysietf@gmail.com>

        WG Chair: Greg Shepherd
                  <mailto:gjshep@gmail.com>


        Editor:   Ran Chen
                   <mailto:chen.ran@zte.com.cn>
        Editor:   Fangwei Hu
                   <mailto:hu.fangwei@zte.com.cn>
        Editor:   Zheng Zhang
                   <mailto:zhang.zheng@zte.com.cn>
        Editor:   Xianxian Dai
                   <mailto:dai.xianxian@zte.com.cn>
        Editor:   Mahesh Sivakumar
                   <mailto:masivaku@cisco.com>



Chen, et al.             Expires April 18, 2016                 [Page 5]


Internet-Draft                  BIER YANG                   October 2015


        ";
     description
     "The YANG module defines a generic configuration
       model for BIER.";

     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.";
     }

     /* Configuration Data */
    augment "/rt:routing" {
                description
                        "This augments routing-instance configuration with bier.";
        container bier{
                description "BIER config.";
                container bier-global {
                        description
                                "BIER global config.";
                        leaf encapsulation-type {
                                type identityref {
                                        base bier-encapsulation;
                                }
                                default "bier-encapsulation-mpls";
                                description
                                        "Dataplane to be used.";
                        }
                        leaf bitstringlength{



Chen, et al.             Expires April 18, 2016                 [Page 6]


Internet-Draft                  BIER YANG                   October 2015


                                type enumeration{
                                        enum 64-bit{
                                        description "bitstringlength is 64";
                                        }
                                        enum 128-bit{
                                        description "bitstringlength is 128";
                                        }
                                        enum 256-bit{
                                        description "bitstringlength is 256";
                                        }
                                        enum 512-bit{
                                        description "bitstringlength is 512";
                                        }
                                        enum 1024-bit{
                                        description "bitstringlength is 1024";
                                        }
                                        enum 2048-bit{
                                        description "bitstringlength is 2048";
                                        }
                                        enum 4096-bit{
                                        description "bitstringlength is 4096";
                                        }
                                }
                                description
                                        "imposition";
                        }
                        leaf bfr-id {
                                type uint16;
                                        description
                                        "BIER bfr identifier.";
                        }
                        container af {
                                container ipv4 {
                                        leaf ipv4-bfr-prefix {
                                                type inet:ipv4-prefix;
                                                description
                                                        "BIER IPv4 prefix.";
                                        }
                                        description
                                                "IPv4 prefix.";
                                }
                                container ipv6 {
                                        leaf ipv6-bfr-prefix {
                                                type  inet:ipv6-prefix;
                                                description
                                                        "BIER IPv6 prefix.";
                                        }
                                        description



Chen, et al.             Expires April 18, 2016                 [Page 7]


Internet-Draft                  BIER YANG                   October 2015


                                                "IPv6 prefix.";
                                }
                        description
                                                "BIER IPV4&IPV6 prefix";
                        }
                        list sub-domain {
                                key "sub-domain-id";
                                leaf sub-domain-id{
                                        type uint16;
                                        description
                             "sub-domain ID.";
                                }
                                leaf mt-id {
                                        type uint16;
                                description
                                  "multi-topology ID.";
                                }
                                leaf bfr-id{
                                        type uint16;
                                         description
                                   "BIER bfr identifier.";
                                }
                                leaf frr{
                                        type boolean;
                                        description
                                  "Enables BIER FRR.";
                                }
                                leaf bitstringlength{
                                    type enumeration{
                                          enum 64-bit{
                                          description "bitstringlength is 64";
                                          }
                                          enum 128-bit{
                                          description "bitstringlength is 128";
                                          }
                                          enum 256-bit{
                                          description "bitstringlength is 256";
                                          }
                                          enum 512-bit{
                                          description "bitstringlength is 512";
                                          }
                                          enum 1024-bit{
                                          description "bitstringlength is 1024";
                                          }
                                          enum 2048-bit{
                                          description "bitstringlength is 2048";
                                          }
                                          enum 4096-bit{



Chen, et al.             Expires April 18, 2016                 [Page 8]


Internet-Draft                  BIER YANG                   October 2015


                                          description "bitstringlength is 4096";
                                         }
                                }
                                        description
                                                "disposition";
                                }
                                container af {
                                        list ipv4 {
                                                key "bitstringlength bier-mpls-label";
                                                leaf bitstringlength {
                                                        type uint16;
                                                    description
                                         "BIER bitstringlength.";
                                                }
                                                leaf bier-mpls-label{
                                                        type uint32;
                                                    description
                                              "BIER label.";
                                                }
                                                leaf bier-mpls-label-range-size{
                                                        type uint8;
                                                    description
                                              "BIER label range.";
                                                }
                                                description
                                                        "IPv4 mapping entries.";
                                        }
                                        list ipv6 {
                                                key "bitstringlength bier-mpls-label";
                                                leaf bitstringlength {
                                                        type uint16;
                                                    description
                                         "BIER bitstringlength.";
                                                }
                                                leaf bier-mpls-label{
                                                        type uint32;
                                                    description
                                              "BIER label.";
                                                }
                                                leaf bier-mpls-label-range-size{
                                                        type uint8;
                                                    description
                                              "BIER label range.";
                                                }
                                                description
                                                        "IPv6 mapping entries.";
                                        }
                                description



Chen, et al.             Expires April 18, 2016                 [Page 9]


Internet-Draft                  BIER YANG                   October 2015


                                  "Bier mapping entries.";
                                }
                        description
                          "Parameters associated with bier sub-domain.";
                        }
                }
        }
        }
     augment "/rt:routing/rt:routing-instance/rt:routing-protocols/"
           + "rt:routing-protocol" {
                description
                        "This augments ospf protocol configuration with bier.";
                container mt{
                        description
                                "Control of bier advertisement and reception.";
                        leaf mt-id{
                                type uint16;
                                description
                                        "Multi-topology associated with bier sub-domain.";
                        }
                        container bier-global {
                                description
                                        "BIER global config.";
                                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.";
                                }
                        }
                }
    }

        augment "/rt:routing/rt:routing-instance/rt:routing-protocols/"



Chen, et al.             Expires April 18, 2016                [Page 10]


Internet-Draft                  BIER YANG                   October 2015


           + "rt:routing-protocol" {
                description
                        "This augments ISIS protocol configuration with bier.";
                container mt{
                        description
                                "Control of bier advertisement and reception.";
                        leaf mt-id{
                                type uint16;
                                description
                                        "Multi-topology associated with bier sub-domain.";
                        }
                        container bier-global {
                                description
                                        "BIER global config.";
                                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.";
                                }
                        }
                }
    }

         /* Operational  data */
    augment "/rt:routing-state" {
        description
                        "This augments the operational states with bier.";
                container bier-global{
                        leaf bfr-id{
                type uint16;
                                description
                                        "BIER BFR ID.";
            }



Chen, et al.             Expires April 18, 2016                [Page 11]


Internet-Draft                  BIER YANG                   October 2015


                        leaf ipv4-bfr-prefix{
                type inet:ipv4-prefix;
                description
                                    "BIER ipv4 prefix.";
            }
                        leaf ipv6-bfr-prefix{
                type inet:ipv6-prefix;
                description
                                    "BIER ipv6 prefix.";
            }
                        list sub-domain {
                                key "sub-domain-id";
                                leaf sub-domain-id {
                                        type uint16;
                                        description
                                                "sub-domain ID.";
                                }
                                leaf mt-id {
                                        type uint16;
                                        description
                                         "Multi-topology ID";
                                }
                                leaf bfr-id {
                                        type uint16;
                                        description
                                                "BIER bfr identifier.";
                                }
                                leaf bitstringlength{
                                        type uint16;
                                        description
                                  "BIER bitstringlength.";
                                }
                                list ipv4 {
                                        key "bitstringlength label";
                                        leaf bitstringlength {
                                                type uint16;
                                                description
                                      "BIER bitstringlength.";
                                        }
                                        leaf label{
                                                type uint32;
                                                description
                                          "BIER label.";
                                        }
                                        leaf label-range-size{
                                                type uint8;
                                                description
                                          "BIER label range.";



Chen, et al.             Expires April 18, 2016                [Page 12]


Internet-Draft                  BIER YANG                   October 2015


                                        }
                                        description
                                                "IPv4 mapping entries.";
                                }
                                list ipv6 {
                                        key "bitstringlength label";
                                        leaf bitstringlength {
                                                type uint16;
                                                description
                                      "BIER bitstringlength.";
                                        }
                                        leaf label{
                                                type uint32;
                                                description
                                          "BIER label.";
                                        }
                                        leaf label-range-size{
                                                type uint8;
                                                description
                                          "BIER label range.";
                                        }
                                        description
                                                "IPv6 mapping entries.";
                                }

                description
                                   "Parameters associated with bier sub-domain.";
                        }
                description
                   "Parameters associated with bier.";
                }
                container birts{
                        list birt{
                                key "sub-domain-id bitstringlength si";
                                leaf sub-domain-id{
                                        type uint16;
                                        description
                                                "BIER sub domain ID";
                                }
                                leaf bitstringlength{
                                        type uint16;
                                        description
                                  "BIER bitstringlength.";
                                }
                                leaf si{
                                        type uint16;
                                        description
                                  "BIER SI.";



Chen, et al.             Expires April 18, 2016                [Page 13]


Internet-Draft                  BIER YANG                   October 2015


                                }
                                leaf f-bm{
                                        type uint16;
                                        description
                                    "BIER Forwarding Bit Mask.";
                                }
                                leaf bier-mpls-in-label{
                                        type uint32;
                    description
                                        "BIER in-label.";
                                }
                                leaf bfr-nbr{
                                        type union{
                                        type inet:ipv4-address;
                    type inet:ipv6-address;
                                        }
                                        description
                                      "BIER BFR Neighbors.";
                                }
                                leaf bier-mpls-out-label{
                                        type uint32;
                     description
                                           "BIER out-label.";
                                }
                         description
                            "Shows Bit Index Routing Table.";
                        }
                 description
                    "BIER birt operational states.";
                }
        }

          /* Notifications */
    notification bfr-id-collision{
                leaf bfr-id{
                        type uint16;
                        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



Chen, et al.             Expires April 18, 2016                [Page 14]


Internet-Draft                  BIER YANG                   October 2015


                                "BIER ipv4 bfr prefix";
        }
                leaf ipv6-bfr-prefix{
                        type inet:ipv6-prefix;
                        description
                                "BIER ipv6 bfr prefix";
        }
                description
                        "Invalid value associated with prefix";
    }

    notification sub-domain-id-collision{
                leaf sub-domain-id{
                        type uint16;
                        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

   TBD.

10.  IANA Considerations

   This document requires no IANA Actions.  Please remove this section
   before RFC publication.

11.  Normative references







Chen, et al.             Expires April 18, 2016                [Page 15]


Internet-Draft                  BIER YANG                   October 2015


   [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-02 (work in
              progress), July 2015.

   [I-D.ietf-bier-isis-extensions]
              Ginsberg, L., Aldrin, S., Zhang, J., and T. Przygienda,
              "BIER support via ISIS", draft-ietf-bier-isis-
              extensions-00 (work in progress), April 2015.

   [I-D.ietf-bier-mpls-encapsulation]
              Wijnands, I., Rosen, E., Dolganow, A., Tantsura, J., and
              S. Aldrin, "Encapsulation for Bit Index Explicit
              Replication in MPLS Networks", draft-ietf-bier-mpls-
              encapsulation-02 (work in progress), August 2015.

   [I-D.ietf-bier-ospf-bier-extensions]
              Psenak, P., Kumar, N., Wijnands, I., Dolganow, A.,
              Przygienda, T., Zhang, J., and S. Aldrin, "OSPF Extensions
              For BIER", draft-ietf-bier-ospf-bier-extensions-00 (work
              in progress), April 2015.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <http://www.rfc-editor.org/info/rfc6020>.

   [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,
              <http://www.rfc-editor.org/info/rfc6241>.

   [RFC6991]  Schoenwaelder, J., Ed., "Common YANG Data Types",
              RFC 6991, DOI 10.17487/RFC6991, July 2013,
              <http://www.rfc-editor.org/info/rfc6991>.

   [RFC7223]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 7223, DOI 10.17487/RFC7223, May 2014,
              <http://www.rfc-editor.org/info/rfc7223>.

Authors' Addresses









Chen, et al.             Expires April 18, 2016                [Page 16]


Internet-Draft                  BIER YANG                   October 2015


   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


   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 April 18, 2016                [Page 17]