summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-pf-srte.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-pf-srte.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-pf-srte.yang280
1 files changed, 280 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-pf-srte.yang b/src/plugins/yang/openconfig/openconfig-pf-srte.yang
new file mode 100644
index 0000000..07e6cc5
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-pf-srte.yang
@@ -0,0 +1,280 @@
+module openconfig-pf-srte {
+ yang-version "1";
+ namespace "http://openconfig.net/yang/policy-forwarding/sr-te";
+ prefix "oc-pf-srte";
+
+ import openconfig-extensions { prefix "oc-ext"; }
+ import openconfig-network-instance { prefix "oc-ni"; }
+ import openconfig-mpls-types { prefix "oc-mplst"; }
+ import openconfig-inet-types { prefix "oc-inet"; }
+ import openconfig-segment-routing { prefix "oc-sr"; }
+
+ organization
+ "OpenConfig working group";
+
+ contact
+ "OpenConfig Working group
+ www.openconfig.net";
+
+ description
+ "This module defines extensions to the OpenConfig policy forwarding
+ module to support static segment routing traffic engineering policy
+ definitions. Extensions are provided to match:
+
+ - Ingress binding SIDs, such that traffic can be mapped based on
+ an ingress label.
+ - A colour community and endpoint combination, such that the
+ routes can be resolved according to the policy forwarding
+ entries that are to be installed.
+
+ In addition, policy forwarding actions associated with next-hops are
+ added to the model. The next-hop set to be forwarded to is augmented
+ to cover a set of lists of segments. The most common application of
+ such segment lists is to express stacks of MPLS labels which are used
+ as SR segments. In addition, they may be used to expressed segments
+ in the form of IPv6 addresses.";
+
+ oc-ext:openconfig-version "0.1.0";
+
+ revision 2017-10-01 {
+ description
+ "Initial revision of the SR-TE policy SAFI model.";
+ reference "0.1.0";
+ }
+
+ grouping oc-pf-srte-match-top {
+ description
+ "Top-level grouping used for SR-TE policy match criteria within
+ a policy forwarding rule.";
+
+ container srte {
+ description
+ "Match criteria associated with Segment Routing Traffic Engineering
+ policies.";
+
+ container config {
+ description
+ "Configuration parameters associated with SR-TE policies.";
+ uses oc-pf-srte-match-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state parameters associated with SR-TE policies.";
+ uses oc-pf-srte-match-config;
+ }
+ }
+ }
+
+ grouping oc-pf-srte-match-config {
+ description
+ "Configuration parameters specific to Segment Routing traffic
+ Engineering.";
+
+ leaf mpls-bsid {
+ type oc-mplst:mpls-label;
+ description
+ "The Binding SID (BSID) to be matched expressed as an MPLS label. Packets
+ that are ingress to the system with the top-most label matching
+ the SID value specified in this leaf should be forwarded according
+ to the policy. The top-most label (the specified Binding SID)
+ must be popped from the label stack by the system.";
+ }
+
+ leaf srte-endpoint {
+ type oc-inet:ip-address;
+ description
+ "When the policy forwarding rule is used for RIB resolution
+ to a Segment Routing Traffic Engineering path, the policy is used
+ when the required endpoint (which may be the protocol next-hop)
+ matches the endpoint address specified in this
+ leaf. When the leaf is set to all zeros (0.0.0.0 or ::), the endpoint
+ acts as a wildcard in the policy resolution.";
+ }
+
+ leaf srte-color {
+ type uint32;
+ description
+ "When the policy forwarding rule is used for RIB resolution to a
+ specific Segment Routing Traffic Engineering path, the policy is
+ used when the colour required in the policy (which may be specified
+ based on the value of a BGP extended colour community) matches the
+ value of this leaf. The colour being set to 0 indicates that the
+ colour is a wildcard in the policy resolution.";
+ }
+
+ leaf srte-preference {
+ type uint32;
+ description
+ "When there are multiple policy forwarding rules specified for
+ a particular SR-TE endpoint. The preference is used to resolve
+ between them. These rules may be learnt from a dynamic routing
+ protocol, or interface to the device, or from other static
+ entries configured on the system.";
+ }
+ }
+
+ grouping oc-pf-srte-segment-list-top {
+ description
+ "Top-level grouping for specifying segment lists under a policy
+ forwarding action.";
+
+ container segment-lists {
+ description
+ "A list of SR-TE segment lists that should be applied as an
+ action within this policy. Where a system selects the SR-TE
+ policy to be used, the list of segment lists that is specified
+ should be used as forwarding next-hops.";
+
+ list segment-list {
+ key "index";
+ description
+ "An individual segment list within the list of segment
+ lists used for SR-TE policies.";
+
+ leaf index {
+ type leafref {
+ path "../config/index";
+ }
+ description
+ "Reference to the index leaf which act as a key to the
+ segment-list list.";
+ }
+
+ container config {
+ description
+ "Configuration parameters for the SR-TE segment list.";
+ uses oc-pf-srte-segment-list-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state parameters relating to the SR-TE
+ segment list.";
+ uses oc-pf-srte-segment-list-config;
+ }
+
+ container sids {
+ description
+ "Surrounding container for the list of SIDs that makes up the
+ segment list.";
+
+ list sid {
+ key "index";
+
+ description
+ "List of SIDs that make up the segment list. The segment list
+ is formed by ordering the set of SIDs that are specified by
+ their index in ascending numerical order.";
+
+ leaf index {
+ type leafref {
+ path "../config/index";
+ }
+ description
+ "Reference to the SID's index within the segment list which
+ acts as the key of the list.";
+ }
+
+ container config {
+ description
+ "Configuration parameters relating to the SID within the
+ segment list.";
+ uses oc-pf-srte-segment-list-sid-config;
+ }
+
+ container state {
+ config false;
+ description
+ "Operational state parameters relating to the SID within
+ the segment list.";
+ uses oc-pf-srte-segment-list-sid-config;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ grouping oc-pf-srte-segment-list-config {
+ description
+ "Configuration parameters relating to a segment list.";
+
+ leaf index {
+ type uint64;
+ description
+ "Unique integer identifying the segment list within the set
+ of segment lists used for the SR-TE policy action.";
+ }
+
+ leaf weight {
+ type uint32;
+ description
+ "The weight of the segment list within the set of segment lists
+ specified for the policy. The traffic that is forwarded according
+ to the policy is distributed across the set of paths such that
+ each list receives weight/(sum of all weights) traffic.";
+ }
+ }
+
+ grouping oc-pf-srte-segment-list-sid-config {
+ description
+ "Configuration parameters relating to a SID within an SR-TE segment
+ list";
+
+ leaf index {
+ type uint64;
+ description
+ "The index of the SID within the segment list. The segment list is
+ applied by ordering the SID entries in ascending numerical order
+ beginning at 0.";
+ }
+
+ leaf value {
+ type oc-sr:sr-sid-type;
+ description
+ "The value of the SID that is to be used. Specified as an MPLS
+ label or IPv6 address.";
+ }
+
+ leaf mpls-ttl {
+ type uint8;
+ default 0;
+ description
+ "The TTL to be set if the type of the SID is an MPLS label. If the
+ value of the TTL is set to be 0, the value is picked by the local
+ implementation.";
+ }
+
+ leaf mpls-tc {
+ type uint8 {
+ range "0..7";
+ }
+ default 0;
+ description
+ "The value of the MPLS Traffic Class (TC) bits to be used if the
+ value of the SID is an MPLS label. In the case that the value is
+ set to 0, then the local implementation should choose the value.";
+ }
+ }
+
+ augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:policy-forwarding/" +
+ "oc-ni:policies/oc-ni:policy/oc-ni:rules/oc-ni:rule" {
+ description
+ "Add the SR-TE specific policy forwarding match criteria to the
+ policy forwarding model.";
+
+ uses oc-pf-srte-match-top;
+ }
+
+ augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:policy-forwarding/" +
+ "oc-ni:policies/oc-ni:policy/oc-ni:rules/oc-ni:rule/oc-ni:action" {
+ description
+ "Add the SR-TE specific policy forwarding actions to the
+ policy forwarding model.";
+
+ uses oc-pf-srte-segment-list-top;
+ }
+}