summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-mpls-static.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-mpls-static.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-static.yang312
1 files changed, 312 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-static.yang b/src/plugins/yang/openconfig/openconfig-mpls-static.yang
new file mode 100644
index 0000000..493b5f8
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-mpls-static.yang
@@ -0,0 +1,312 @@
+submodule openconfig-mpls-static {
+
+ yang-version "1";
+
+ belongs-to "openconfig-mpls" {
+ prefix "mpls";
+ }
+
+ // import some basic types
+ import openconfig-mpls-types {prefix oc-mplst; }
+ import openconfig-inet-types { prefix inet; }
+ import openconfig-extensions { prefix oc-ext; }
+
+
+ // meta
+ organization "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ netopenconfig@googlegroups.com";
+
+ description
+ "Defines static LSP configuration";
+
+
+ oc-ext:openconfig-version "3.0.0";
+
+ revision "2018-07-02" {
+ description
+ "Add new RSVP-TE statistics, remove associated-rsvp-session
+ leaf. Remove use of date-and-time.";
+ reference "3.0.0";
+ }
+
+ revision "2018-06-16" {
+ description
+ "Included attributes for base LDP configuration.";
+ reference "2.6.0";
+ }
+
+ revision "2018-06-13" {
+ description
+ "Add ttl-propagation to global MPLS config";
+ reference "2.5.0";
+ }
+
+ revision "2018-06-05" {
+ description
+ "Fixed bugs in when statements on RSVP-TE attributes";
+ reference "2.4.2";
+ }
+
+ 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";
+ }
+
+ // grouping statements
+
+ 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-ingress-config {
+ description
+ "Configuration data for ingress LSPs";
+
+ uses static-lsp-common-config;
+ }
+
+ grouping static-lsp-ingress-state {
+ description
+ "Operational state data for ingress LSPs";
+ }
+
+ 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 state {
+
+ config false;
+
+ description
+ "Operational state data for ingress LSPs";
+
+ uses static-lsp-ingress-config;
+ uses static-lsp-ingress-state;
+ }
+ }
+ }
+
+ grouping static-lsp-transit-config {
+ description
+ "Configuration data for transit LSPs";
+
+ uses static-lsp-common-config;
+ }
+
+ grouping static-lsp-transit-state {
+ description
+ "Operational state data for transit LSPs";
+ }
+
+ 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 state {
+
+ config false;
+
+ description
+ "Operational state data for transit LSPs";
+
+ uses static-lsp-transit-config;
+ uses static-lsp-transit-state;
+ }
+ }
+ }
+
+ grouping static-lsp-egress-config {
+ description
+ "Configuration data for egress LSPs";
+
+ uses static-lsp-common-config;
+ }
+
+ grouping static-lsp-egress-state {
+ description
+ "Operational state data for egress LSPs";
+ }
+
+ 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 state {
+
+ config false;
+
+ description
+ "Operational state data for egress LSPs";
+
+ uses static-lsp-egress-config;
+ uses static-lsp-egress-state;
+ }
+ }
+ }
+
+ grouping static-lsp-config {
+ description
+ "Configuration data for static LSPs";
+
+ leaf name {
+ type string;
+ description
+ "name to identify the LSP";
+ }
+ }
+
+ grouping static-lsp-state {
+ description
+ "Operational state data for static LSPs";
+
+ }
+
+ 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 state {
+ config false;
+
+ description
+ "Operational state data for the static lsp";
+
+ uses static-lsp-config;
+ uses static-lsp-state;
+
+ }
+
+ // TODO: separation into ingress, transit, egress may help
+ // to figure out what exactly is configured, but need to
+ // consider whether implementations can support the
+ // separation
+ uses static-lsp-ingress-top;
+ uses static-lsp-transit-top;
+ uses static-lsp-egress-top;
+ }
+ }
+
+ // data definition statements
+
+ // augment statements
+
+
+}