diff options
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-pf-srte.yang')
-rw-r--r-- | src/plugins/yang/openconfig/openconfig-pf-srte.yang | 280 |
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; + } +} |