netconfcentral logo

openconfig-mpls-static@2017-08-24



  submodule openconfig-mpls-static {

    yang-version 1;

    belongs-to openconfig-mpls {
        prefix mpls;
    }

    import openconfig-mpls-types {
      prefix oc-mplst;
    }
    import openconfig-inet-types {
      prefix inet;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    netopenconfig@googlegroups.com";

    description
      "Defines static LSP configuration";

    revision "2017-08-24" {
      description "Minor formatting fixes.";
      reference
        "2.4.1";

    }

    revision "2017-06-21" {
      description "Add TC bits typedef.";
      reference
        "2.4.0";

    }

    revision "2017-03-22" {
      description
        "Add RSVP calculated-absolute-subscription-bw";
      reference
        "2.3.0";

    }

    revision "2017-01-26" {
      description
        "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
      reference
        "2.2.0";

    }

    revision "2016-12-15" {
      description
        "Add additional MPLS parameters";
      reference
        "2.1.0";

    }

    revision "2016-09-01" {
      description
        "Revisions based on implementation feedback";
      reference
        "2.0.0";

    }

    revision "2016-08-08" {
      description
        "Public release of MPLS models";
      reference
        "1.0.1";

    }

    oc-ext:openconfig-version "2.4.1";

    grouping static-lsp-common-config {
      description
        "common definitions for static LSPs";
      leaf next-hop {
        type inet:ip-address;
        description
          "next hop IP address for the LSP";
      }

      leaf incoming-label {
        type oc-mplst:mpls-label;
        description
          "label value on the incoming packet";
      }

      leaf push-label {
        type oc-mplst:mpls-label;
        description
          "label value to push at the current hop for the
        LSP";
      }
    }  // grouping static-lsp-common-config

    grouping static-lsp-ingress-config {
      description
        "Configuration data for ingress LSPs";
      uses static-lsp-common-config;
    }  // grouping static-lsp-ingress-config

    grouping static-lsp-ingress-state {
      description
        "Operational state data for ingress LSPs";
    }  // grouping static-lsp-ingress-state

    grouping static-lsp-ingress-top {
      description
        "Top-level grouping for ingress LSP data";
      container ingress {
        description
          "Static LSPs for which the router is an
          ingress node";
        container config {
          description
            "Configuration data for ingress LSPs";
          uses static-lsp-ingress-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data for ingress LSPs";
          uses static-lsp-ingress-config;

          uses static-lsp-ingress-state;
        }  // container state
      }  // container ingress
    }  // grouping static-lsp-ingress-top

    grouping static-lsp-transit-config {
      description
        "Configuration data for transit LSPs";
      uses static-lsp-common-config;
    }  // grouping static-lsp-transit-config

    grouping static-lsp-transit-state {
      description
        "Operational state data for transit LSPs";
    }  // grouping static-lsp-transit-state

    grouping static-lsp-transit-top {
      description
        "Top-level grouping for transit LSP data";
      container transit {
        description
          "Static LSPs for which the router is an
          transit node";
        container config {
          description
            "Configuration data for transit LSPs";
          uses static-lsp-transit-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data for transit LSPs";
          uses static-lsp-transit-config;

          uses static-lsp-transit-state;
        }  // container state
      }  // container transit
    }  // grouping static-lsp-transit-top

    grouping static-lsp-egress-config {
      description
        "Configuration data for egress LSPs";
      uses static-lsp-common-config;
    }  // grouping static-lsp-egress-config

    grouping static-lsp-egress-state {
      description
        "Operational state data for egress LSPs";
    }  // grouping static-lsp-egress-state

    grouping static-lsp-egress-top {
      description
        "Top-level grouping for egress LSP data";
      container egress {
        description
          "Static LSPs for which the router is an
          egress node";
        container config {
          description
            "Configuration data for egress LSPs";
          uses static-lsp-egress-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data for egress LSPs";
          uses static-lsp-egress-config;

          uses static-lsp-egress-state;
        }  // container state
      }  // container egress
    }  // grouping static-lsp-egress-top

    grouping static-lsp-config {
      description
        "Configuration data for static LSPs";
      leaf name {
        type string;
        description
          "name to identify the LSP";
      }
    }  // grouping static-lsp-config

    grouping static-lsp-state {
      description
        "Operational state data for static LSPs";
    }  // grouping static-lsp-state

    grouping static-lsp-top {
      description
        "grouping for top level list of static LSPs";
      list static-lsp {
        key "name";
        description
          "list of defined static LSPs";
        leaf name {
          type leafref {
            path "../config/name";
          }
          description
            "Reference the name list key";
        }

        container config {
          description
            "Configuration data for the static lsp";
          uses static-lsp-config;
        }  // container config

        container state {
          config false;
          description
            "Operational state data for the static lsp";
          uses static-lsp-config;

          uses static-lsp-state;
        }  // container state

        uses static-lsp-ingress-top;

        uses static-lsp-transit-top;

        uses static-lsp-egress-top;
      }  // list static-lsp
    }  // grouping static-lsp-top
  }  // submodule openconfig-mpls-static