summaryrefslogtreecommitdiffstats
path: root/mpls
diff options
context:
space:
mode:
authorMarek Gradzki <mgradzki@cisco.com>2018-03-01 16:44:53 +0100
committerMarek Gradzki <mgradzki@cisco.com>2018-03-01 16:44:56 +0100
commit3cb345044738b742be165a49398779fcd96d5fe4 (patch)
tree2cc07c747a405554b6aa935392fdfc614a6c5529 /mpls
parente4b1d69583f64ba4b804425f06c41aab3b6e4f5e (diff)
Move ietf-routing-types to routing-api
Current routing implementation does not use it, but other features planned for 18.04 (e.g. SRv6) will do. Change-Id: I0124ea27b5d24c1ac2e5ad196dc05df3a970d1c7 Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'mpls')
-rw-r--r--mpls/api/src/main/yang/hc2vpp-ietf-routing-types@2017-02-27.yang725
1 files changed, 0 insertions, 725 deletions
diff --git a/mpls/api/src/main/yang/hc2vpp-ietf-routing-types@2017-02-27.yang b/mpls/api/src/main/yang/hc2vpp-ietf-routing-types@2017-02-27.yang
deleted file mode 100644
index 6d0f853a8..000000000
--- a/mpls/api/src/main/yang/hc2vpp-ietf-routing-types@2017-02-27.yang
+++ /dev/null
@@ -1,725 +0,0 @@
-module hc2vpp-ietf-routing-types {
-
- namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types";
- prefix "rt-types";
-
- import ietf-yang-types {
- prefix "yang";
- }
-
- import ietf-inet-types {
- prefix "inet";
- }
-
- organization "IETF Routing Area Working Group (rtgwg)";
-
- contact
- "Routing Area Working Group - <rtgwg@ietf.org>";
-
- description
- "This module contains a collection of YANG data types
- considered generally useful for routing protocols.";
-
- revision 2017-02-27 {
- description
- "Initial revision.";
- reference
- "RFC TBD: Routing YANG Data Types";
- }
-
- /*** collection of types related to routing ***/
- typedef router-id {
- type yang:dotted-quad;
- description
- "A 32-bit number in the dotted quad format assigned to each
- router. This number uniquely identifies the router within an
- Autonomous System.";
- }
-
- // address-family
- identity address-family {
- description
- "Base identity from which identities describing address
- families are derived.";
- }
-
- identity ipv4 {
- base address-family;
- description
- "This identity represents IPv4 address family.";
- }
-
- identity ipv6 {
- base address-family;
- description
- "This identity represents IPv6 address family.";
- }
-
- //The rest of the values deinfed in the IANA registry
-
- identity nsap {
- base address-family;
- description
- "Address family from IANA registry.";
- }
- identity hdlc {
- base address-family;
- description
- "(8-bit multidrop)
- Address family from IANA registry.";
- }
- identity bbn1822 {
- base address-family;
- description
- "AHIP (BBN report #1822)
- Address family from IANA registry.";
- }
- identity ieee802 {
- base address-family;
- description
- "(includes all 802 media plus Ethernet canonical format)
- Address family from IANA registry.";
- }
- identity e163 {
- base address-family;
- description
- "Address family from IANA registry.";
- }
- identity e164 {
- base address-family;
- description
- "SMDS, Frame Relay, ATM
- Address family from IANA registry.";
- }
- identity f69 {
- base address-family;
- description
- "(Telex)
- Address family from IANA registry.";
- }
- identity x121 {
- base address-family;
- description
- "(X.25, Frame Relay)
- Address family from IANA registry.";
- }
- identity ipx {
- base address-family;
- description
- "Address family from IANA registry.";
- }
- identity appletalk {
- base address-family;
- description
- "Address family from IANA registry.";
- }
- identity decnet-iv {
- base address-family;
- description
- "Decnet IV
- Address family from IANA registry.";
- }
- identity vines {
- base address-family;
- description
- "Banyan Vines
- Address family from IANA registry.";
- }
- identity e164-nsap {
- base address-family;
- description
- "E.164 with NSAP format subaddress
- Address family from IANA registry.";
- }
- identity dns {
- base address-family;
- description
- "Domain Name System
- Address family from IANA registry.";
- }
- identity dn {
- base address-family;
- description
- "Distinguished Name
- Address family from IANA registry.";
- }
- identity as-num {
- base address-family;
- description
- "AS Number
- Address family from IANA registry.";
- }
- identity xtp-v4 {
- base address-family;
- description
- "XTP over IPv4
- Address family from IANA registry.";
- }
- identity xtp-v6 {
- base address-family;
- description
- "XTP over IPv6
- Address family from IANA registry.";
- }
- identity xtp {
- base address-family;
- description
- "XTP native mode XTP
- Address family from IANA registry.";
- }
- identity fc-port {
- base address-family;
- description
- "Fibre Channel World-Wide Port Name
- Address family from IANA registry.";
- }
- identity fc-node {
- base address-family;
- description
- "Fibre Channel World-Wide Node Name
- Address family from IANA registry.";
- }
- identity gwid {
- base address-family;
- description
- "Address family from IANA registry.";
- }
- identity l2vpn {
- base address-family;
- description
- "Address family from IANA registry.";
- }
- identity mpls-tp-section-eid {
- base address-family;
- description
- "MPLS-TP Section Endpoint Identifier
- Address family from IANA registry.";
- }
- identity mpls-tp-lsp-eid {
- base address-family;
- description
- "MPLS-TP LSP Endpoint Identifier
- Address family from IANA registry.";
- }
- identity mpls-tp-pwe-eid {
- base address-family;
- description
- "MPLS-TP Pseudowire Endpoint Identifier
- Address family from IANA registry.";
- }
- identity mt-v4 {
- base address-family;
- description
- "Multi-Topology IPv4.
- Address family from IANA registry.";
- }
- identity mt-v6 {
- base address-family;
- description
- "Multi-Topology IPv6.
- Address family from IANA registry.";
- }
-
- /*** collection of types related to VPN ***/
- typedef route-target {
- type string {
- pattern
- '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|'
- + '[0-5]?\d{0,3}\d):(429496729[0-5]|42949672[0-8]\d|'
- + '4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|'
- + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|'
- + '[0-3]?\d{0,8}\d))|'
- + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|'
- + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|'
- + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|'
- + '(2:(429496729[0-5]|42949672[0-8]\d|4294967[01]\d{2}|'
- + '429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|'
- + '429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[0-3]?\d{0,8}\d):'
- + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|'
- + '[0-5]?\d{0,3}\d))';
- }
- description
- "A route target is an 8-octet BGP extended community
- initially identifying a set of sites in a BGP
- VPN (RFC 4364). However, it has since taken on a more
- general role in BGP route filtering.
- A route target consists of three fields:
- a 2-octet type field, an administrator field,
- and an assigned number field.
- According to the data formats for type 0, 1, and 2 defined in
- RFC4360 and RFC5668, the encoding pattern is defined as:
-
- 0:2-octet-asn:4-octet-number
- 1:4-octet-ipv4addr:2-octet-number
- 2:4-octet-asn:2-octet-number.
-
- Some valid examples are: 0:100:100, 1:1.1.1.1:100, and
- 2:1234567890:203.";
- reference
- "RFC4360: BGP Extended Communities Attribute.
- RFC5668: 4-Octet AS Specific BGP Extended Community.";
- }
-
- typedef route-target-type {
- type enumeration {
- enum "import" {
- value "0";
- description
- "The route target applies to route import.";
- }
- enum "export" {
- value "1";
- description
- "The route target applies to route export.";
- }
- enum "both" {
- value "2";
- description
- "The route target applies to both route import and
- route export.";
- }
- }
- description
- "Indicates the role a route target takes
- in route filtering.";
- reference
- "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs).";
- }
-
- typedef route-distinguisher {
- type string {
- pattern
- '(0:(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|'
- + '[0-5]?\d{0,3}\d):(429496729[0-5]|42949672[0-8]\d|'
- + '4294967[01]\d{2}|429496[0-6]\d{3}|42949[0-5]\d{4}|'
- + '4294[0-8]\d{5}|429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|'
- + '[0-3]?\d{0,8}\d))|'
- + '(1:(((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|'
- + '1\d{2}|2[0-4]\d|25[0-5])):(6553[0-5]|655[0-2]\d|'
- + '65[0-4]\d{2}|6[0-4]\d{3}|[0-5]?\d{0,3}\d))|'
- + '(2:(429496729[0-5]|42949672[0-8]\d|4294967[01]\d{2}|'
- + '429496[0-6]\d{3}|42949[0-5]\d{4}|4294[0-8]\d{5}|'
- + '429[0-3]\d{6}|42[0-8]\d{7}|4[01]\d{8}|[0-3]?\d{0,8}\d):'
- + '(6553[0-5]|655[0-2]\d|65[0-4]\d{2}|6[0-4]\d{3}|'
- + '[0-5]?\d{0,3}\d))|'
- + '(([3-9a-fA-F]|[1-9a-fA-F][\da-fA-F]{1,3}):'
- + '[\da-fA-F]{1,12})';
- }
- description
- "A route distinguisher is an 8-octet value used to distinguish
- routes from different BGP VPNs (RFC 4364). A route
- distinguisher consists of three fields: A 2-octet type field,
- an administrator field, and an assigned number field.
- According to the data formats for type 0, 1, and 2 defined in
- RFC4364, the encoding pattern is defined as:
-
- 0:2-octet-asn:4-octet-number
- 1:4-octet-ipv4addr:2-octet-number
- 2:4-octet-asn:2-octet-number.
- 2-octet-other-hex-number:6-octet-hex-number
-
- Some valid examples are: 0:100:100, 1:1.1.1.1:100, and
- 2:1234567890:203.";
- reference
- "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs).";
- }
-
- /*** collection of types common to multicast ***/
- typedef ipv4-multicast-group-address {
- type inet:ipv4-address {
- pattern '(2((2[4-9])|(3[0-9]))\.).*';
- }
- description
- "This type represents an IPv4 multicast group address,
- which is in the range from 224.0.0.0 to 239.255.255.255.";
- reference
- "RFC1112: Host Extensions for IP Multicasting.";
- }
-
- typedef ipv6-multicast-group-address {
- type inet:ipv6-address {
- pattern
- '(([fF]{2}[0-9a-fA-F]{2}):).*';
- }
- description
- "This type represents an IPv6 multicast group address,
- which is in the range of FF00::/8.";
- reference
- "RFC4291: IP Version 6 Addressing Architecture. Sec 2.7.
- RFC7346: IPv6 Multicast Address Scopes.";
- }
-
- typedef ip-multicast-group-address {
- type union {
- type ipv4-multicast-group-address;
- type ipv6-multicast-group-address;
- }
- description
- "This type represents an IP multicast group address and is IP
- version neutral. The format of the textual representation
- implies the IP version.";
- }
-
- typedef ipv4-multicast-source-address {
- type union {
- type enumeration {
- enum 'any' {
- /*
- ODL does not support * as enum name (how it should be named to java identifier?)
- enum '*' {
- */
- description
- "Any source address.";
- }
- }
- type inet:ipv4-address;
- }
- description
- "Multicast source IPv4 address type.";
- }
-
- typedef ipv6-multicast-source-address {
- type union {
- type enumeration {
- enum 'any' {
- /*
- ODL does not support * as enum name (how it should be named to java identifier?)
- enum '*' {
- */
- description
- "Any source address.";
- }
- }
- type inet:ipv6-address;
- }
- description
- "Multicast source IPv6 address type.";
- }
-
- /*** collection of types common to protocols ***/
- typedef bandwidth-ieee-float32 {
- type string {
- pattern
- '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
- + '1(\.([\da-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|'
- + '1[01]\d|0?\d?\d)?)';
- }
- description
- "Bandwidth in IEEE 754 floating point 32-bit binary format:
- (-1)**(S) * 2**(Exponent-127) * (1 + Fraction),
- where Exponent uses 8 bits, and Fraction uses 23 bits.
- The units are octets per second.
- The encoding format is the external hexadecimal-significand
- character sequences specified in IEEE 754 and C99,
- restricted to be normalized, non-negative, and non-fraction:
- 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D
- where 'h' and 'H' are hexadecimal digits, 'd' and 'D' are
- integers in the range of [0..127].
- When six hexadecimal digits are used for 'hhhhhh' or 'HHHHHH',
- the least significant digit must be an even number.
- 'x' and 'X' indicate hexadecimal; 'p' and 'P' indicate power
- of two.
- Some examples are: 0x0p0, 0x1p10, and 0x1.abcde2p+20";
- reference
- "IEEE Std 754-2008: IEEE Standard for Floating-Point
- Arithmetic.";
- }
-
- typedef link-access-type {
- type enumeration {
- enum "broadcast" {
- description
- "Specify broadcast multi-access network.";
- }
- enum "non-broadcast-multiaccess" {
- description
- "Specify Non-Broadcast Multi-Access (NBMA) network.";
- }
- enum "point-to-multipoint" {
- description
- "Specify point-to-multipoint network.";
- }
- enum "point-to-point" {
- description
- "Specify point-to-point network.";
- }
- }
- description
- "Link access type.";
- }
-
- typedef timer-multiplier {
- type uint8;
- description
- "The number of timer value intervals that should be
- interpreted as a failure.";
- }
-
- typedef timer-value-seconds16 {
- type union {
- type uint16 {
- range "1..65535";
- }
- type enumeration {
- enum "infinity" {
- description "The timer is set to infinity.";
- }
- enum "not-set" {
- description "The timer is not set.";
- }
- }
- }
- units seconds;
- description "Timer value type, in seconds (16 bit range).";
- }
-
- typedef timer-value-seconds32 {
- type union {
- type uint32 {
- range "1..4294967295";
- }
- type enumeration {
- enum "infinity" {
- description "The timer is set to infinity.";
- }
- enum "not-set" {
- description "The timer is not set.";
- }
- }
- }
- units seconds;
- description "Timer value type, in seconds (32 bit range).";
- }
-
- typedef timer-value-milliseconds {
- type union {
- type uint32{
- range "1..4294967295";
- }
- type enumeration {
- enum "infinity" {
- description "The timer is set to infinity.";
- }
- enum "not-set" {
- description "The timer is not set.";
- }
- }
- }
- units milliseconds;
- description "Timer value type, in milliseconds.";
- }
-
- /*** collection of types related to MPLS/GMPLS ***/
- typedef generalized-label {
- type binary;
- description
- "Generalized label. Nodes sending and receiving the
- Generalized Label know the kinds of link they are
- using. Hence, the Generalized Label does not identify
- its type. Instead, nodes are expected to know from
- the context and type of label to expect.";
- reference "RFC3471: Section 3.2";
- }
-
- identity mpls-label-special-purpose-value {
- description
- "Base identity for deriving identities describing
- special-purpose Multiprotocol Label Switching (MPLS) label
- values.";
- reference
- "RFC7274: Allocating and Retiring Special-Purpose MPLS
- Labels.";
- }
-
- identity ipv4-explicit-null-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the IPv4 Explicit NULL Label.";
- reference
- "RFC3032: MPLS Label Stack Encoding. Section 2.1.";
- }
-
- identity router-alert-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the Router Alert Label.";
- reference
- "RFC3032: MPLS Label Stack Encoding. Section 2.1.";
- }
-
- identity ipv6-explicit-null-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the IPv6 Explicit NULL Label.";
- reference
- "RFC3032: MPLS Label Stack Encoding. Section 2.1.";
- }
-
- identity implicit-null-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the Implicit NULL Label.";
- reference
- "RFC3032: MPLS Label Stack Encoding. Section 2.1.";
- }
-
- identity entropy-label-indicator {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the Entropy Label Indicator.";
- reference
- "RFC6790: The Use of Entropy Labels in MPLS Forwarding.
- Sections 3 and 10.1.";
- }
-
- identity gal-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the Generic Associated Channel Label
- (GAL).";
- reference
- "RFC5586: MPLS Generic Associated Channel.
- Sections 4 and 10.";
- }
-
- identity oam-alert-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the OAM Alert Label.";
- reference
- "RFC3429: Assignment of the 'OAM Alert Label' for Multiprotocol
- Label Switching Architecture (MPLS) Operation and Maintenance
- (OAM) Functions.
- Sections 3 and 6.";
- }
-
- identity extension-label {
- base mpls-label-special-purpose-value;
- description
- "This identity represents the Extension Label.";
- reference
- "RFC7274: Allocating and Retiring Special-Purpose MPLS Labels.
- Sections 3.1 and 5.";
- }
-
- typedef mpls-label-special-purpose {
- type identityref {
- base mpls-label-special-purpose-value;
- }
- description
- "This type represents the special-purpose Multiprotocol Label
- Switching (MPLS) label values.";
- reference
- "RFC3032: MPLS Label Stack Encoding.
- RFC7274: Allocating and Retiring Special-Purpose MPLS
- Labels.";
- }
-
- typedef mpls-label-general-use {
- type uint32 {
- range "16..1048575";
- }
- description
- "The 20 bits label values in an MPLS label stack entry,
- specified in RFC3032. This label value does not include
- the encodings of Traffic Class and TTL (time to live).
- The label range specified by this type is for general use,
- with special-purpose MPLS label values excluded.";
- reference
- "RFC3032: MPLS Label Stack Encoding.";
- }
-
-
- typedef mpls-label {
-/*
-TODO: binding generator creates invalid type bindings, so we changed type to uint32.
-Change back after https://jira.opendaylight.org/browse/MDSAL-269 is resolved.
- type union {
- type mpls-label-special-purpose;
- type mpls-label-general-use;
- }
-*/
- type uint32 {
- range "0..1048575";
- }
- description
- "The 20 bits label values in an MPLS label stack entry,
- specified in RFC3032. This label value does not include
- the encodings of Traffic Class and TTL (time to live).";
- reference
- "RFC3032: MPLS Label Stack Encoding.";
- }
-
- /*
- * Groupings
- */
- grouping mpls-label-stack {
- description
- "A grouping that specifies an MPLS label stack.";
- container mpls-label-stack {
- description
- "Container for a list of MPLS label stack entries.";
- list entry {
- key "id";
- description
- "List of MPLS label stack entries.";
- leaf id {
- type uint8;
- description
- "Identifies the sequence of an MPLS label stack entries.
- An entry with smaller ID value is precedes an entry in
- the label stack with a smaller ID.";
- }
- leaf label {
- type rt-types:mpls-label;
- description
- "Label value.";
- }
- leaf ttl {
- type uint8;
- description
- "Time to Live (TTL).";
- reference
- "RFC3032: MPLS Label Stack Encoding.";
- }
- leaf traffic-class {
- type uint8 {
- range "0..7";
- }
- description
- "Traffic Class (TC).";
- reference
- "RFC5462: Multiprotocol Label Switching (MPLS) Label
- Stack Entry: 'EXP' Field Renamed to 'Traffic Class'
- Field.";
- }
- }
- }
- } // mpls-label-stack
-
- grouping vpn-route-targets {
- description
- "A grouping that specifies Route Target import-export rules
- used in the BGP enabled Virtual Private Networks (VPNs).";
- reference
- "RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs).
- RFC4664: Framework for Layer 2 Virtual Private Networks
- (L2VPNs)";
- list vpn-target {
- key route-target;
- description
- "List of Route Targets.";
- leaf route-target {
- type rt-types:route-target;
- description
- "Route Target value";
- }
- leaf route-target-type {
- type rt-types:route-target-type;
- mandatory true;
- description
- "Import/export type of the Route Target.";
- }
- }
- } // vpn-route-targets
-}