module openconfig-segment-routing-types {
yang-version 1;
namespace
"http://openconfig.net/yang/segment-routing-types";
prefix oc-srt;
import openconfig-extensions {
prefix oc-ext;
}
import openconfig-mpls-types {
prefix oc-mplst;
}
import openconfig-inet-types {
prefix oc-inet;
}
organization "OpenConfig working group";
contact
"OpenConfig working group
www.openconfig.net";
description
"Types associated with a network instance";
revision "2020-02-04" {
description
"Consistent prefix for openconfig-mpls-types.";
reference
"0.2.0";
}
revision "2019-09-24" {
description
"Initial revision of the SR types.";
reference
"0.1.0";
}
oc-ext:openconfig-version "0.2.0";
typedef sr-dataplane-type {
type enumeration {
enum "MPLS" {
value 0;
description
"The entity uses MPLS labels as Segment Identifiers.";
}
enum "IPV6" {
value 1;
description
"The entity uses IPv6 prefixes as Segment Identifiers.";
}
}
description
"Types of data plane that can be used to instantiate a Segment
Routing block of SIDs.";
}
typedef sr-sid-type {
type union {
type oc-mplst:mpls-label;
type oc-inet:ipv6-address;
}
description
"The defined value of a segment identifier.";
}
typedef srte-protocol-type {
type enumeration {
enum "PCEP" {
value 10;
description
"Path Computation Element Protocol.";
}
enum "BGP" {
value 20;
description "BGP SR policy.";
}
enum "CONFIG" {
value 30;
description "Local configuration.";
}
}
description
"The component or protocol that originates or signals the
candidate path.";
reference
"Section 2.3 of draft-ietf-spring-segment-routing-policy.";
}
typedef srte-endpoint-type {
type oc-inet:ip-address;
description
"SR-TE endpoint is the policy destination which can be either an
IPv4 or IPv6 address.";
reference
"draft-ietf-spring-segment-routing-policy";
}
typedef srte-invalid-sl-reason {
type enumeration {
enum "EMPTY_SL" {
value 0;
description
"Segment-list is empty.";
}
enum "ZERO_WEIGHT" {
value 1;
description
"Segment-list weight is 0.";
}
enum "FIRST_SID_UNRESOLVABLE" {
value 2;
description
"The headend is unable to perform path resolution for the
first SID into one or more outgoing interface(s) and
next-hop(s).";
}
enum "OTHER_SID_UNRESOLVABLE" {
value 3;
description
"The headend is unable to perform SID resolution for any
non-first SID of type 3-through-11 into an MPLS label or
an SRv6 SID.";
}
enum "VERIFICATION_FAIL" {
value 4;
description
"The headend verification fails for any SID for which
verification has been explicitly requested.";
}
}
description
"The list of segment-list invalid reasons.";
reference
"draft-ietf-spring-segment-routing-policy";
}
typedef enlp-type {
type enumeration {
enum "PUSH_IPV4_EXPLICIT_NULL" {
value 0;
description
"Push an IPv4 Explicit NULL label on an unlabeled IPv4
packet but not IPv6 one.";
}
enum "PUSH_IPV6_EXPLICIT_NULL" {
value 1;
description
"Push an IPv6 Explicit NULL label on an unlabeled IPv4
packet but not IPv4 one.";
}
enum "PUSH_IPV46_EXPLICIT_NULL" {
value 2;
description
"Push an IPv4 Explicit NULL label on both unlabeled IPv4
packet and IPv6 packet.";
}
enum "NO_EXPLICIT_NULL" {
value 3;
description
"Do not push an Explicit NULL label.";
}
}
description
"The list of possible ENLP(Explicit NULL Label Policy) values.";
reference
"draft-ietf-idr-segment-routing-te-policy";
}
} // module openconfig-segment-routing-types