Internet DRAFT - draft-zhang-mpls-lspdb-yang

draft-zhang-mpls-lspdb-yang







MPLS Working Group                                              X. Zhang
Internet-Draft                                                  D. Dhody
Intended status: Standards Track                     Huawei Technologies
Expires: September 4, 2015                                 March 3, 2015


         A generic YANG Data Model for Label Switch Path (LSP).
                     draft-zhang-mpls-lspdb-yang-00

Abstract

   This document defines a generic YANG data model for the Label Switch
   Paths (LSPs).  The data model includes the operational state of LSP
   (LSP-DB).  It is expected that this modules will be augmented by
   additional YANG modules defining data models for signalling protocol
   and other functions.

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 September 4, 2015.

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
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.



Zhang & Dhody           Expires September 4, 2015               [Page 1]

Internet-Draft                 LSPDB-YANG                     March 2015


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Requirements Language . . . . . . . . . . . . . . . . . . . .   3
   3.  Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Prefixes in Data Node Names . . . . . . . . . . . . . . . . .   4
   5.  Objectives  . . . . . . . . . . . . . . . . . . . . . . . . .   4
   6.  The Design of LSP-DB Data Model . . . . . . . . . . . . . . .   5
     6.1.  The Lsp-entry Lists . . . . . . . . . . . . . . . . . . .   5
     6.2.  Incoming/Outgoing Containers  . . . . . . . . . . . . . .   6
     6.3.  Primary/Backup Lists  . . . . . . . . . . . . . . . . . .   6
   7.  The LSP-DB YANG Module  . . . . . . . . . . . . . . . . . . .   6
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   9.  Manageability Considerations  . . . . . . . . . . . . . . . .  13
     9.1.  Control of Function and Policy  . . . . . . . . . . . . .  13
     9.2.  Information and Data Models . . . . . . . . . . . . . . .  13
     9.3.  Liveness Detection and Monitoring . . . . . . . . . . . .  13
     9.4.  Verify Correct Operations . . . . . . . . . . . . . . . .  13
     9.5.  Requirements On Other Protocols . . . . . . . . . . . . .  13
     9.6.  Impact On Network Operations  . . . . . . . . . . . . . .  13
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
   11. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  14
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . .  14
     12.1.  Normative References . . . . . . . . . . . . . . . . . .  14
     12.2.  Informative References . . . . . . . . . . . . . . . . .  14
   Appendix A.  Contributor Addresses  . . . . . . . . . . . . . . .  15
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15

1.  Introduction

   Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS)
   Label Switched Path (LSP) has various common attributes irrespective
   of the protocol and signalling mechanism (For example, RSVP-TE, LDP,
   BGP, PCEP etc).

   The objective of this document is to write a high level generic LSP
   database module to capture these common attributes.  Thus this
   document defines YANG [RFC6020] data model for a generic high-level
   tree structures of MPLS and GMPLS LSPs.

   Further modules augmenting this data model with specific signalling
   protocol, technology or advanced features will be handled in a
   separate document A possible relationship is roughly depicted in the
   figure below.







Zhang & Dhody           Expires September 4, 2015               [Page 2]

Internet-Draft                 LSPDB-YANG                     March 2015


                 +---------------+
                 | Generic LSPDB |
                 |   ietf-lspdb  |
                 +-------^-------+
                         |
         ---------------------------------------------
        |                |                |           |
        |                |                |           |
   +----+----+   +-------+-------+   +----+----+   +--+--+
   | LDP-LSP |   |    BGP-LSP    |   |  TE-LSP |   | SR  |
   |         |   |               |   |         |   |     |
   +---------+   +---------------+   +----^----+   +--^--+
                                          |           |
                                           -----------
                                          |           |
                                          |           |
                                     +----+----+   +--+--+
                                     | RSVP-TE |   | SR- |
                                     |         |   | TE  |
                                     +----^----+   +--^--+
                                          |           |
                                          |           |
                                           -----------
                                          |
                                     +----+----+
                                     |  PCEP   |
                                     |         |
                                     +---------+

   This document contains a specification of the base LSPDB YANG module,
   "ietf-lspdb".

2.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  Tree Diagrams

   A graphical representation of the complete data tree is presented in
   Section 6.  The meaning of the symbols in these diagrams is as
   follows and as per [I-D.ietf-netmod-rfc6087bis]:

   o  Brackets "[" and "]" enclose list keys.

   o  Curly braces "{" and "}" contain names of optional features that
      make the corresponding node conditional.



Zhang & Dhody           Expires September 4, 2015               [Page 3]

Internet-Draft                 LSPDB-YANG                     March 2015


   o  Abbreviations before data node names: "rw" means configuration
      (read-write), and "ro" state data (read-only).

   o  Symbols after data node names: "?" means an optional node and "*"
      denotes a "list" or "leaf-list".

   o  Parentheses enclose choice and case nodes, and case nodes are also
      marked with a colon (":").

   o  Ellipsis ("...") stands for contents of subtrees that are not
      shown.

4.  Prefixes in Data Node Names

   In this document, names of data nodes and other data model objects
   are often used without a prefix, as long as it is clear from the
   context in which YANG module each name is defined.  Otherwise, names
   are prefixed using the standard prefix associated with the
   corresponding YANG module, as shown in Table 1.

                 +--------+-----------------+-----------+
                 | Prefix | YANG module     | Reference |
                 +--------+-----------------+-----------+
                 | yang   | ietf-yang-types | [RFC6991] |
                 | inet   | ietf-inet-types | [RFC6991] |
                 | if     | ietf-interfaces | [RFC7223] |
                 +--------+-----------------+-----------+

             Table 1: Prefixes and corresponding YANG modules

5.  Objectives

   This section describes some of the design objectives for the model:

   o  In case of existing implementations, it needs to map the data
      model defined in this document to their proprietary native data
      model.  To facilitate such mappings, the data model should be
      simple.

   o  The data model should be suitable for new implementations to use
      as is.

   o  Mapping to the MIB Module should be clear.

   o  The data model should allow for static configurations of LSP.
      (Editors Note - Maybe taken for future)





Zhang & Dhody           Expires September 4, 2015               [Page 4]

Internet-Draft                 LSPDB-YANG                     March 2015


   o  The data model should include read-only counters in order to
      gather statistics with errors.

   o  It should be fairly straightforward to augment the base data
      model.

6.  The Design of LSP-DB Data Model

   The module "ietf-lspdb", defines the generic components of a LSP-DB.
   This module will be augmented with with additional data nodes and
   features based on signalling protocol and advanced features.

   module: ietf-lspdb
      +--ro lspdb
         +--ro lsp-num?     uint32
         +--ro lsp-entry* [system-generated-id]
            +--ro system-generated-id    uint64
            +--ro lsp-signaling          lsp-signalingtypes
            +--ro is-primary?            boolean
            +--ro lsr-type?              lsr-types
            +--ro source                 inet:ip-address
            +--ro destination            inet:ip-address
            +--ro creation-time?         yang:date-and-time
            +--ro last-change?           yang:date-and-time
            +--ro operation-status?      status-types
            +--ro incoming
            |  +--ro incoming-interface?   if:interface-state-ref
            |  +--ro incoming-label
            +--ro outgoing
            |  +--ro outgoing-interface?   if:interface-state-ref
            |  +--ro outgoing-label
            +--ro primary-lsp*           lsp-ref
            +--ro backup-lsp*            lsp-ref
            +--ro statistics


6.1.  The Lsp-entry Lists

   The LSP-DB yang module contains the full LSP-DB and thus the status
   information for all LSPs.  The data model presented in this document
   uses a flat list of LSPs.  Each entity in the list is identified by a
   system generated id (system-generated-id).  Furthermore, each entity
   has a mandatory "lsp-signaling" leaf (the signalling protocol/
   mechanism).







Zhang & Dhody           Expires September 4, 2015               [Page 5]

Internet-Draft                 LSPDB-YANG                     March 2015


6.2.  Incoming/Outgoing Containers

   These containers contain the interface and label information in
   incoming and outgoing directions.  A reference to the interface name
   to "ietf-interfaces" module [RFC7223] and an empty label container is
   maintained.  The label should be augmented by the data plane specific
   YANG modules.

6.3.  Primary/Backup Lists

   All LSPs (primary and backup) are maintained together in a single
   flat lsp-entry list.  The relationship to other LSPs is maintained
   via the "primary-lsp" and "backup-lsp" leaf-lists.

   A LSP is identified by its system-generated-id, which is unique
   within the node.  This property is captured in "lsp-ref" typedef,
   which other should use when they need to reference a LSP.

   Thus a list of references to primary and backup LSPs are maintained
   per LSP.

7.  The LSP-DB YANG Module

   RFC Ed.: In this section, replace all occurrences of 'XXXX' with the
   actual RFC number and all occurrences of the revision date below with
   the date of RFC publication (and remove this note).


   <CODE BEGINS> file "ietf-lspdb@2015-03-xx.yang"






   module ietf-lspdb {

       namespace "urn:ietf:params:xml:ns:yang:ietf-lspdb";
       prefix lspdb;

       import ietf-inet-types {
           prefix "inet";
       }

       import ietf-yang-types {
           prefix "yang";
       }




Zhang & Dhody           Expires September 4, 2015               [Page 6]

Internet-Draft                 LSPDB-YANG                     March 2015


       import ietf-interfaces {
           prefix "if";
       }

       organization
           "IETF XXX Working Group";

       contact
           "
           Editor:   Dhruv dhody
                     <dhruv.dhody@huawei.com>
           Editor:   Xian ZHANG
                     <zhang.xian@huawei.com>";
       description
           "This module contains a collection of YANG definitions for
           configuring LSP database. The intent of this module is to
           serve as a base model and it is kept protocol-independent.
           It is expected that it will be augmented depending on the
           targeted protocol.

           Copyright (c) 2015 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
           (http://trustee.ietf.org/license-info).";

       revision 2015-03-05 {
           description
               "Initial revision.";
           reference
               "RFC XXX: A YANG Data Model for Label Switched Path
                           (LSP) Database Management";
       }

       /*
        * Features:none.
        */


       /*
        * Typedefs
        */

       typedef lsp-signalingtypes {



Zhang & Dhody           Expires September 4, 2015               [Page 7]

Internet-Draft                 LSPDB-YANG                     March 2015


           type enumeration {
               enum "rsvp" {
                   value 1;
                   description
                   "Resource reSerVation Protocol.";
               }
               enum "ldp" {
                   value 2;
                   description
                   "Label Distribution Protocol";
               }
               enum "bgp" {
                   value 3;
                   description
                   "Border Gateway Protocol.";
               }
               enum "sr" {
                   value 4;
                   description
                   "Segment Routing.";
               }
               enum "static" {
                   value 5;
                   description
                   "Manually Configured.";
               }
           }
           description
               "The signalling type of a LSP.";
       }

       typedef status-types {
           type enumeration {
               enum "up" {
                   value 1;
                   description
                   "UP";
               }
               enum "down" {
                   value 2;
                   description
                   "Not working/failed";
               }
               enum "standby" {
                   value 3;
                   description
                   "Idle state, created by not used";
               }



Zhang & Dhody           Expires September 4, 2015               [Page 8]

Internet-Draft                 LSPDB-YANG                     March 2015


           }
           description
               "The status types of a LSP.";
       }

       typedef lsr-types {
           type enumeration {
               enum "ingress" {
                   value 1;
                   description
                   "Ingress node";
               }
               enum "transit" {
                   value 2;
                   description
                   "Transit node";
               }
               enum "egress" {
                   value 3;
                   description
                   "Egress node";
               }
           }
           description
               "the role of the Label Switched Router (LSR) for a
               LSP entry.";
       }

       typedef lsp-ref {
           type leafref {
               path "/lspdb/lsp-entry/system-generated-id";
           }
           description
               "This type is used by data models that need to
               reference other LSP.";
       }

       /*
        * Operational data nodes
        */

       container lspdb {

           config false;

           description
               "This container defines the information of all the
               LSP a node has/stores";



Zhang & Dhody           Expires September 4, 2015               [Page 9]

Internet-Draft                 LSPDB-YANG                     March 2015


           leaf lsp-num {
               type uint32;

               description
                   "This stores the total number of LSPs, including
                   working and backup.";
           }

           list lsp-entry {

               key "system-generated-id";

               description
                   "This define each LSP entry.";

               leaf system-generated-id {
                   type uint64;
                   description
                       "This is generated by the local node and it is
                       unique within this node";
               }

               leaf lsp-signaling {
                   type lsp-signalingtypes;
                   mandatory true;
                   description
                       "The signalling protocol/mechanism for the
                                           LSP.";
               }

               leaf is-primary {
                   type boolean;
                   description
                       "Whether a LSP is a primary or second LSP.
                        1-primary, 0-secondary";
               }

               leaf lsr-type {
                   type lsr-types;
                   description
                       "The role of this LSR with regard to the
                        current LSP";
               }

               leaf source {
                   type inet:ip-address;
                   mandatory true;
                   description



Zhang & Dhody           Expires September 4, 2015              [Page 10]

Internet-Draft                 LSPDB-YANG                     March 2015


                       "The Source node of this LSP";
               }

               leaf destination {
                   type inet:ip-address;
                   mandatory true;
                   description
                       "The Destination node of this LSP";
               }

               leaf creation-time {
                   type yang:date-and-time;
                   description
                       "The time the LSP was created.";
               }

               leaf last-change {
                   type yang:date-and-time;
                   description
                       "The time the LSP entered its current state.";
               }

               leaf operation-status {
                   type status-types;
                   description
                       "The operational status of this LSP";
               }



               container incoming {
                   description
                       "The incoming interface, label
                                           information.";
                   leaf incoming-interface {
                       type if:interface-state-ref;
                       description
                           "The reference to the name of the incoming
                            interface.";
                   }
                   container incoming-label {
                       description
                           "Empty container, Label format to be
                           augmented depending on the  data plane
                           technology";
                   }
               }




Zhang & Dhody           Expires September 4, 2015              [Page 11]

Internet-Draft                 LSPDB-YANG                     March 2015


               container outgoing {
                   description
                       "The outgoing interface, label
                                            information.";
                   leaf outgoing-interface {
                       type if:interface-state-ref;
                       description
                           "The reference to the name of the outgoing
                            interface.";
                   }

                   container outgoing-label {
                       description
                           "Empty container, Label format to be
                           augmented depending on the data plane
                           technology";
                   }
               }

               leaf-list primary-lsp {
                   type lsp-ref;
                   description
                       "A list of references to primary LSPs (if
                       exist) for this LSP.";
                   reference
                       "xxx";
               }

               leaf-list backup-lsp {
                   type lsp-ref;
                   description
                       "A list of references to backup LSPs (if
                       exist) for this LSP.";
                   reference
                       "xxx";
               }

               container statistics {
                   description
                       "TBD";
               }
           }
       }
   }//module

   <CODE ENDS>





Zhang & Dhody           Expires September 4, 2015              [Page 12]

Internet-Draft                 LSPDB-YANG                     March 2015


8.  Security Considerations

   The YANG module defined in this memo is designed to be accessed via
   the NETCONF protocol [RFC6241].  The lowest NETCONF layer is the
   secure transport layer and the mandatory-to-implement secure
   transport is SSH [RFC6242].  The NETCONF access control model
   [RFC6536] provides the means to restrict access for particular
   NETCONF users to a pre-configured subset of all available NETCONF
   protocol operations and content.

   There are a number of data nodes defined in the YANG module which are
   writable/creatable/deletable (i.e., config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g., <edit-config>)
   to these data nodes without proper protection can have a negative
   effect on network operations.

   TBD: List specific Subtrees and data nodes and their sensitivity/
   vulnerability.

9.  Manageability Considerations

9.1.  Control of Function and Policy

9.2.  Information and Data Models

9.3.  Liveness Detection and Monitoring

9.4.  Verify Correct Operations

9.5.  Requirements On Other Protocols

9.6.  Impact On Network Operations

10.  IANA Considerations

   This document registers a URI in the "IETF XML Registry" [RFC3688].
   Following the format in RFC 3688, the following registration has been
   made.

   URI:  urn:ietf:params:xml:ns:yang:ietf-lspdb

   Registrant Contact:  The MPLS WG of the IETF.

   XML:  N/A; the requested URI is an XML namespace.

   This document registers a YANG module in the "YANG Module Names"
   registry [RFC6020].



Zhang & Dhody           Expires September 4, 2015              [Page 13]

Internet-Draft                 LSPDB-YANG                     March 2015


       Name:         ietf-lspdb
       Namespace:    urn:ietf:params:xml:ns:yang:ietf-lspdb
       Prefix:       lspdb
       Reference:    This I-D

11.  Acknowledgements

12.  References

12.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3688]  Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
              January 2004.

   [RFC6020]  Bjorklund, M., "YANG - A Data Modeling Language for the
              Network Configuration Protocol (NETCONF)", RFC 6020,
              October 2010.

   [RFC6991]  Schoenwaelder, J., "Common YANG Data Types", RFC 6991,
              July 2013.

   [RFC7223]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 7223, May 2014.

12.2.  Informative References

   [RFC6241]  Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
              Bierman, "Network Configuration Protocol (NETCONF)", RFC
              6241, June 2011.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, June 2011.

   [RFC6536]  Bierman, A. and M. Bjorklund, "Network Configuration
              Protocol (NETCONF) Access Control Model", RFC 6536, March
              2012.

   [I-D.ietf-netmod-rfc6087bis]
              Bierman, A., "Guidelines for Authors and Reviewers of YANG
              Data Model Documents", draft-ietf-netmod-rfc6087bis-01
              (work in progress), October 2014.







Zhang & Dhody           Expires September 4, 2015              [Page 14]

Internet-Draft                 LSPDB-YANG                     March 2015


Appendix A.  Contributor Addresses



Authors' Addresses

   Xian Zhang
   Huawei Technologies
   Bantian, Longgang District
   Shenzhen  518129
   P.R.China

   EMail: zhang.xian@huawei.com


   Dhruv Dhody
   Huawei Technologies
   Divyashree Techno Park, Whitefield
   Bangalore, Karnataka  560037
   India

   EMail: dhruv.ietf@gmail.com





























Zhang & Dhody           Expires September 4, 2015              [Page 15]