openconfig-pf-srte

This module defines extensions to the OpenConfig policy forwarding module to support static segment routing traffic engineering ...

  • Version: 2019-10-15

    openconfig-pf-srte@2019-10-15


    
      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-types {
          prefix oc-srt;
        }
    
        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.";
    
        revision "2019-10-15" {
          description
            "Change imported segment-routing module.";
          reference
            "0.2.0";
    
        }
    
        revision "2018-11-21" {
          description
            "Add OpenConfig module metadata extensions.";
          reference
            "0.1.1";
    
        }
    
        revision "2017-10-01" {
          description
            "Initial revision of the SR-TE policy SAFI model.";
          reference
            "0.1.0";
    
        }
    
        oc-ext:openconfig-version "0.2.0";
        oc-ext:regexp-posix;
        oc-ext:catalog-organization "openconfig";
        oc-ext:origin "openconfig";
    
        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 config
    
            container state {
              config false;
              description
                "Operational state parameters associated with SR-TE policies.";
              uses oc-pf-srte-match-config;
            }  // container state
          }  // container srte
        }  // grouping oc-pf-srte-match-top
    
        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-match-config
    
        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 config
    
              container state {
                config false;
                description
                  "Operational state parameters relating to the SR-TE
                segment list.";
                uses oc-pf-srte-segment-list-config;
              }  // container state
    
              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 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;
                  }  // container state
                }  // list sid
              }  // container sids
            }  // list segment-list
          }  // container segment-lists
        }  // grouping oc-pf-srte-segment-list-top
    
        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-config
    
        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-srt: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.";
          }
        }  // grouping oc-pf-srte-segment-list-sid-config
    
        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;
        }
      }  // module openconfig-pf-srte
    

© 2023 YumaWorks, Inc. All rights reserved.