submodule openconfig-aft-mpls { belongs-to "openconfig-aft" { prefix "oc-aft"; } import openconfig-extensions { prefix "oc-ext"; } import openconfig-mpls-types { prefix "oc-mplst"; } // Include common cross-AFT groupings from the common submodule. include openconfig-aft-common; organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "Submodule containing definitions of groupings for the abstract forwarding table for MPLS label forwarding."; oc-ext:openconfig-version "0.3.1"; revision 2017-08-24 { description "Formatting fixes"; reference "0.3.1"; } revision 2017-05-10 { description "Refactor to provide concretised per-AF schemas per AFT."; reference "0.3.0"; } grouping aft-mpls-structural { description "Structural grouping defining the schema for the MPLS abstract forwarding table."; list label-entry { key "label"; description "List of the MPLS entries within the abstract forwarding table. This list is keyed by the top-most MPLS label."; leaf label { type leafref { path "../config/label"; } description "Reference to the top-most MPLS label matched by the entry."; } container config { description "Configuration parameters for the MPLS AFT entry."; uses aft-mpls-entry-config; } container state { config false; description "Operational state parameters for the MPLS AFT entry."; uses aft-mpls-entry-config; uses aft-mpls-entry-state; } } } grouping aft-mpls-entry-config { description "Configuration parameters for the MPLS entry."; leaf label { type oc-mplst:mpls-label; description "The top-most MPLS label that should be matched to utilise the AFT entry."; } } grouping aft-mpls-entry-state { description "Operational state parameters for the MPLS entry."; uses aft-common-entry-state; leaf-list popped-mpls-label-stack { type oc-mplst:mpls-label; description "The MPLS label stack to be popped from the packet when switched by the system. The stack is encoded as a leaf-list such that the first entry is the label that is outer-most (i.e., furthest from the bottom of the stack). If the local system pops the outer-most label 400, then the value of this list is [400,]. If the local system removes two labels, the outer-most being 500, and the second of which is 400, then the value of the list is [500, 400]. A swap operation is reflected by entries in the popped-mpls-label-stack and pushed-mpls-label-stack nodes."; } } }