319 lines
6.2 KiB
YANG
319 lines
6.2 KiB
YANG
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.1";
|
|
|
|
revision "2018-11-21" {
|
|
description
|
|
"Add OpenConfig module metadata extensions.";
|
|
reference "3.0.1";
|
|
}
|
|
|
|
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
|
|
|
|
|
|
}
|