netconfcentral logo

ietf-mpls-mldp

HTML

ietf-mpls-mldp@2017-10-19



  module ietf-mpls-mldp {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-mpls-mldp";

    prefix mldp;

    import ietf-inet-types {
      prefix inet;
    }
    import ietf-interfaces {
      prefix if;
    }
    import ietf-mpls-ldp {
      prefix ldp;
    }
    import ietf-routing {
      prefix rt;
    }
    import ietf-routing-types {
      prefix rt-types;
    }

    organization "IETF MPLS Working Group";

    contact
      "WG Web:   <http://tools.ietf.org/wg/teas/>
     WG List:  <mailto:teas@ietf.org>

     WG Chair: Loa Andersson
               <mailto:loa@pi.nu>

     WG Chair: Ross Callon
               <mailto:rcallon@juniper.net>

     WG Chair: George Swallow
               <mailto:swallow.ietf@gmail.com>

     Editor:   Kamran Raza
               <mailto:skraza@cisco.com>

     Editor:   Rajiv Asati
               <mailto:rajiva@cisco.com>

     Editor:   Xufeng Liu
               <mailto:Xufeng_Liu@jabil.com>

     Editor:   Santosh Esale
               <mailto:sesale@juniper.net>

     Editor:   Xia Chen
               <mailto:jescia.chenxia@huawei.com>

     Editor:   Himanshu Shah
               <mailto:hshah@ciena.com>";

    description
      "This YANG module defines the essential components for the
     management of Multi-Protocol Label Switching (MPLS) Multipoint
     LDP (mLDP).";

    revision "2017-10-19" {
      description "Initial revision.";
      reference
        "RFC XXXX: YANG Data Model for MPLS mLDP.";

    }


    typedef multipoint-type {
      type enumeration {
        enum "p2mp" {
          value 0;
          description "Point to multipoint.";
        }
        enum "mp2mp" {
          value 1;
          description
            "Multipoint to multipoint.";
        }
      }
      description "p2mp or mp2mp.";
    }

    grouping mldp-capabilities {
      description "mLDP capabilities.";
      container p2mp {
        description
          "Configure point-to-multipoint capability.";
        leaf enable {
          type boolean;
          description
            "Enable point-to-multipoint.";
        }
      }  // container p2mp

      container mp2mp {
        description
          "Configure multipoint-to-multipoint capability.";
        leaf enable {
          type boolean;
          description
            "Enable multipoint-to-multipoint.";
        }
      }  // container mp2mp

      container make-before-break {
        description
          "Configure make-before-break capability.";
        leaf enable {
          type boolean;
          description
            "Enable make-before-break.";
        }

        leaf switchover-delay {
          type uint16;
          units "seconds";
          description
            "Switchover delay in seconds.";
        }

        leaf timeout {
          type uint16;
          units "seconds";
          description "Timeout in seconds.";
        }
      }  // container make-before-break
    }  // grouping mldp-capabilities

    grouping mldp-fec-event {
      description "A mLDP FEC event.";
      choice opaque-type {
        description
          "The type of opaque value element.";
        container opaque-type-lspid {
          description
            "The type of opaque value element is
             the generic LSP identifier";
          reference
            "RFC6388: Label Distribution Protocol
            Extensions for Point-to-Multipoint and
            Multipoint-to-Multipoint Label Switched
            Paths.";

          leaf root-address {
            type inet:ip-address;
            description "Root address.";
          }

          leaf lsp-id {
            type uint32;
            description
              "ID to identify the LSP.";
          }

          leaf multipoint-type {
            type multipoint-type;
            description
              "The type of mutipoint, p2mp or mp2mp.";
          }
        }  // container opaque-type-lspid
      }  // choice opaque-type
    }  // grouping mldp-fec-event

    grouping mldp-binding-label-peer-state-attributes {
      description
        "mLDP label binding per peer attributes.";
      leaf direction {
        type ldp:downstream-upstream;
        description
          "Downstream or upstream.";
      }

      leaf peer {
        type leafref {
          path
            "/rt:routing/rt:control-plane-protocols/"
              + "ldp:mpls-ldp/ldp:peers/ldp:peer/ldp:lsr-id";
        }
        description
          "LDP peer from which this binding is received,
         or to which this binding is advertised.";
      }

      leaf advertisement-type {
        type ldp:advertised-received;
        description
          "Advertised or received.";
      }

      leaf label {
        type rt-types:mpls-label;
        description
          "Advertised (outbound) or received (inbound) label.";
      }

      leaf mbb-role {
        when "../direction = 'upstream'" {
          description "For upstream.";
        }
        type enumeration {
          enum "none" {
            value 0;
            description
              "MBB is not enabled.";
          }
          enum "active" {
            value 1;
            description
              "This LSP is active.";
          }
          enum "inactive" {
            value 2;
            description
              "This LSP is inactive.";
          }
        }
        description
          "The MBB status of this LSP.";
      }
    }  // grouping mldp-binding-label-peer-state-attributes

    grouping mldp-binding-label-state-attributes {
      description
        "mLDP label binding attributes.";
      list peer {
        key "direction peer advertisement-type";
        description
          "List of advertised and received peers.";
        uses mldp-binding-label-peer-state-attributes;
      }  // list peer
    }  // grouping mldp-binding-label-state-attributes

    augment /rt:routing/rt:control-plane-protocols/ldp:mpls-ldp/ldp:global/ldp:capability {
      description
        "Augmentation for MLDP global capability.";
      container mldp {
        description
          "Multipoint capabilities.";
        uses mldp-capabilities;
      }  // container mldp
    }

    augment /rt:routing/rt:control-plane-protocols/ldp:mpls-ldp/ldp:peers/ldp:peer/ldp:received-peer-state/ldp:capability {
      description
        "Augmentation for MLDP received peer state capability.";
      container mldp {
        description
          "Multipoint capabilities.";
        container p2mp {
          description
            "Configure point-to-multipoint capability.";
          leaf enable {
            type boolean;
            description
              "Enable point-to-multipoint.";
          }
        }  // container p2mp

        container mp2mp {
          description
            "Configure multipoint-to-multipoint capability.";
          leaf enable {
            type boolean;
            description
              "Enable multipoint-to-multipoint.";
          }
        }  // container mp2mp

        container make-before-break {
          description
            "Configure make-before-break capability.";
          leaf enable {
            type boolean;
            description
              "Enable make-before-break.";
          }
        }  // container make-before-break
      }  // container mldp
    }

    augment /rt:routing/rt:control-plane-protocols/ldp:mpls-ldp/ldp:global {
      description
        "MLDP global augmentation.";
      container mldp {
        description
          "mLDP attributes at per instance level. Defining
         attributes here does not enable any MP capabilities.
         MP capabilities need to be explicitly enabled under
         container capability.";
        leaf enable {
          type boolean;
          description "Enable mLDP.";
        }

        container address-families {
          description "Per-af params.";
          container ipv4 {
            description "IPv4 information.";
            container roots {
              config false;
              description
                "IPv4 multicast LSP roots.";
              list root {
                key "root-address";
                description
                  "List of roots for configured multicast LSPs.";
                leaf root-address {
                  type inet:ipv4-address;
                  description
                    "Root address.";
                }

                leaf is-self {
                  type boolean;
                  description
                    "This is the root.";
                }

                list reachability {
                  key "address interface";
                  description
                    "A next hop for reachability to root,
                     as a RIB view.";
                  leaf address {
                    type inet:ipv4-address;
                    description
                      "The next hop address to reach root.";
                  }

                  leaf interface {
                    type if:interface-ref;
                    description
                      "Interface connecting to next-hop.";
                  }

                  leaf peer {
                    type leafref {
                      path "../../../../../../../../ldp:peers/ldp:peer/ldp:lsr-id";
                    }
                    description
                      "LDP peer from which this next hop can be
                     reached.";
                  }
                }  // list reachability

                container bindings {
                  description
                    "mLDP FEC to label bindings.";
                  container opaque-type-lspid {
                    description
                      "The type of opaque value element is
                       the generic LSP identifier";
                    reference
                      "RFC6388: Label Distribution Protocol
                      Extensions for Point-to-Multipoint and
                      Multipoint-to-Multipoint Label Switched
                      Paths.";

                    list fec-label {
                      key "lsp-id";
                      description
                        "List of FEC to label bindings.";
                      leaf lsp-id {
                        type uint32;
                        description
                          "ID to identify the LSP.";
                      }

                      leaf multipoint-type {
                        type multipoint-type;
                        description
                          "The type of mutipoint, p2mp or mp2mp.";
                      }

                      uses mldp-binding-label-state-attributes;
                    }  // list fec-label
                  }  // container opaque-type-lspid
                }  // container bindings
              }  // list root
            }  // container roots

            container configured-leaf-lsps {
              description
                "Configured multicast LSPs.";
              container opaque-type-lspid {
                description
                  "The type of opaque value element is
                 the generic LSP identifier";
                reference
                  "RFC6388: Label Distribution Protocol
                  Extensions for Point-to-Multipoint and
                  Multipoint-to-Multipoint Label Switched
                  Paths.";

                list fec-label {
                  key "root-address lsp-id";
                  description
                    "List of FEC to label bindings.";
                  leaf root-address {
                    type inet:ipv4-address;
                    description
                      "Root address.";
                  }

                  leaf lsp-id {
                    type uint32;
                    description
                      "ID to identify the LSP.";
                  }

                  leaf multipoint-type {
                    type multipoint-type;
                    description
                      "The type of mutipoint, p2mp or mp2mp.";
                  }
                }  // list fec-label
              }  // container opaque-type-lspid
            }  // container configured-leaf-lsps
          }  // container ipv4
        }  // container address-families
      }  // container mldp
    }

    notification mpls-mldp-fec-event {
      description
        "Notification event for a change of FEC status.";
      leaf event-type {
        type ldp:oper-status-event-type;
        description "Event type.";
      }

      uses mldp-fec-event;
    }  // notification mpls-mldp-fec-event
  }  // module ietf-mpls-mldp

Summary

  
  
Organization IETF MPLS Working Group
  
Module ietf-mpls-mldp
Version 2017-10-19
File ietf-mpls-mldp@2017-10-19.yang
  
Prefix mldp
Namespace urn:ietf:params:xml:ns:yang:ietf-mpls-mldp
  
Cooked /cookedmodules/ietf-mpls-mldp/2017-10-19
YANG /src/ietf-mpls-mldp@2017-10-19.yang
XSD /xsd/ietf-mpls-mldp@2017-10-19.xsd
  
Abstract This YANG module defines the essential components for the management of Multi-Protocol Label Switching (MPLS) Multipoint LDP (mL...
  
Contact
WG Web:   <http://tools.ietf.org/wg/teas/>
WG List:  <mailto:teas@ietf.org>

WG Chair: Loa Andersson
	  <mailto:loa@pi.nu>

WG Chair: Ross Callon
	  <mailto:rcallon@juniper.net>

WG Chair: George Swallow
	  <mailto:swallow.ietf@gmail.com>

Editor:   Kamran Raza
	  <mailto:skraza@cisco.com>

Editor:   Rajiv Asati
	  <mailto:rajiva@cisco.com>

Editor:   Xufeng Liu
	  <mailto:Xufeng_Liu@jabil.com>

Editor:   Santosh Esale
	  <mailto:sesale@juniper.net>

Editor:   Xia Chen
	  <mailto:jescia.chenxia@huawei.com>

Editor:   Himanshu Shah
	  <mailto:hshah@ciena.com>

Description

 
This YANG module defines the essential components for the
management of Multi-Protocol Label Switching (MPLS) Multipoint
LDP (mLDP).

Typedefs

Typedef Base type Abstract
multipoint-type enumeration p2mp or mp2mp.

Groupings

Grouping Objects Abstract
mldp-binding-label-peer-state-attributes direction peer advertisement-type label mbb-role mLDP label binding per peer attributes.
mldp-binding-label-state-attributes peer mLDP label binding attributes.
mldp-capabilities p2mp mp2mp make-before-break mLDP capabilities.
mldp-fec-event opaque-type A mLDP FEC event.

Notifications

Notification Abstract
mpls-mldp-fec-event Notification event for a change of FEC status.