draft-ietf-rtgwg-routing-types-17.txt   rfc8294.txt 
Network Working Group X. Liu Internet Engineering Task Force (IETF) X. Liu
Internet-Draft Jabil Request for Comments: 8294 Jabil
Intended status: Standards Track Y. Qu Category: Standards Track Y. Qu
Expires: April 16, 2018 Futurewei Technologies, Inc. ISSN: 2070-1721 Futurewei Technologies, Inc.
A. Lindem A. Lindem
Cisco Systems Cisco Systems
C. Hopps C. Hopps
Deutsche Telekom Deutsche Telekom
L. Berger L. Berger
LabN Consulting, L.L.C. LabN Consulting, L.L.C.
October 13, 2017 December 2017
Routing Area Common YANG Data Types Common YANG Data Types for the Routing Area
draft-ietf-rtgwg-routing-types-17
Abstract Abstract
This document defines a collection of common data types using the This document defines a collection of common data types using the
YANG data modeling language. These derived common types are designed YANG data modeling language. These derived common types are designed
to be imported by other modules defined in the routing area. to be imported by other modules defined in the routing area.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on April 16, 2018. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8294.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction ....................................................3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology ................................................3
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Overview ........................................................3
3. IETF Routing Types YANG Module . . . . . . . . . . . . . . . 6 3. IETF Routing Types YANG Module ..................................8
4. IANA Routing Types YANG Module . . . . . . . . . . . . . . . 22 4. IANA Routing Types YANG Module .................................27
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 31 5. IANA Considerations ............................................37
5.1. IANA-Maintained iana-routing-types Module . . . . . . . . 32 5.1. IANA-Maintained iana-routing-types Module .................38
6. Security Considerations . . . . . . . . . . . . . . . . . . . 33 6. Security Considerations ........................................39
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 33 7. References .....................................................39
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.1. Normative References ......................................39
8.1. Normative References . . . . . . . . . . . . . . . . . . 34 7.2. Informative References ....................................40
8.2. Informative References . . . . . . . . . . . . . . . . . 34 Acknowledgements ..................................................42
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 Authors' Addresses ................................................43
1. Introduction 1. Introduction
The YANG [RFC6020] [RFC7950] is a data modeling language used to YANG [RFC6020] [RFC7950] is a data modeling language used to model
model configuration data, state data, Remote Procedure Calls, and configuration data, state data, Remote Procedure Calls, and
notifications for network management protocols. The YANG language notifications for network management protocols. The YANG language
supports a small set of built-in data types and provides mechanisms supports a small set of built-in data types and provides mechanisms
to derive other types from the built-in types. to derive other types from the built-in types.
This document introduces a collection of common data types derived This document introduces a collection of common data types derived
from the built-in YANG data types. The derived types are designed to from the built-in YANG data types. The derived types are designed to
be the common types applicable for modeling in the routing area. be the common types applicable for modeling in the routing area.
1.1. Terminology 1.1. Terminology
The terminology for describing YANG data models is found in The terminology for describing YANG data models is found in
[RFC7950]. [RFC7950].
2. Overview 2. Overview
This document defines the two models for common routing types, ietf- This document defines two YANG modules for common routing types:
routing-types and iana-routing-types. The only module imports are ietf-routing-types and iana-routing-types. The only module imports
from [RFC6991]. The ietf-routing-types model contains common routing (ietf-yang-types and ietf-inet-types; see Section 3) are from
[RFC6991]. The ietf-routing-types module contains common routing
types other than those corresponding directly to IANA mappings. types other than those corresponding directly to IANA mappings.
These include: These include the following:
router-id router-id
Router Identifiers are commonly used to identify nodes in routing Router Identifiers are commonly used to identify nodes in routing
and other control plane protocols. An example usage of router-id and other control-plane protocols. An example usage of router-id
can be found in [I-D.ietf-ospf-yang]. can be found in [OSPF-YANG].
route-target route-target
Route Targets (RTs) are commonly used to control the distribution Route Targets (RTs) are commonly used to control the distribution
of virtual routing and forwarding (VRF) information, see of Virtual Routing and Forwarding (VRF) information (see
[RFC4364], in support of BGP/MPLS IP virtual private networks [RFC4364]) in support of BGP/MPLS IP Virtual Private Networks
(VPNs) and BGP/MPLS Ethernet VPNs [RFC7432]. An example usage can (VPNs) and BGP/MPLS Ethernet VPNs [RFC7432]. An example usage can
be found in [I-D.ietf-bess-l2vpn-yang]. be found in [L2VPN-YANG].
ipv6-route-target ipv6-route-target
IPv6 Route Targets (RTs) are similar to standard Route Targets IPv6 Route Targets are similar to standard Route Targets, except
only they are IPv6 Address Specific BGP Extended Communities as that they are IPv6 Address Specific BGP Extended Communities as
described in [RFC5701]. An IPv6 Route Target is 20 octets and described in [RFC5701]. An IPv6 Route Target is 20 octets and
includes an IPv6 address as the global administrator. includes an IPv6 address as the global administrator.
route-target-type route-target-type
This type defines the import and export rules of Route Targets, as This type defines the import and export rules of Route Targets, as
described in Section 4.3.1 of [RFC4364]. An example usage can be described in Section 4.3.1 of [RFC4364].
found in [I-D.ietf-idr-bgp-model].
route-distinguisher route-distinguisher
Route Distinguishers (RDs) are commonly used to identify separate Route Distinguishers (RDs) are commonly used to identify separate
routes in support of virtual private networks (VPNs). For routes in support of VPNs. For example, as described in
example, in [RFC4364], RDs are commonly used to identify [RFC4364], RDs are commonly used to identify independent VPNs and
independent VPNs and VRFs, and more generally, to identify VRFs, and, more generally, to identify multiple routes to the same
multiple routes to the same prefix. An example usage can be found prefix.
in [I-D.ietf-idr-bgp-model].
route-origin route-origin
Route Origin is commonly used to indicate the Site of Origin for A Route Origin is commonly used to indicate the Site of Origin for
Routing and forwarding (VRF) information, see [RFC4364], in VRF information (see [RFC4364]) in support of BGP/MPLS IP VPNs and
support of BGP/MPLS IP virtual private networks (VPNs) and BGP/ BGP/MPLS Ethernet VPNs [RFC7432].
MPLS Ethernet VPNs [RFC7432]. An example usage can be found in
[I-D.ietf-bess-l3vpn-yang].
ipv6-route-origin ipv6-route-origin
An IPv6 Route Origin would also be used to indicate the Site of An IPv6 Route Origin would also be used to indicate the Site of
Origin for Routing and forwarding (VRF) information, see Origin for VRF information (see [RFC4364]) in support of VPNs.
[RFC4364], in support of virtual private networks (VPNs). IPv6 IPv6 Route Origins are IPv6 Address Specific BGP Extended
Route Origins are IPv6 Address Specific BGP Extended Communities Communities as described in [RFC5701]. An IPv6 Route Origin is
as described in [RFC5701]. An IPv6 Route Origin is 20 octets and 20 octets and includes an IPv6 address as the global
includes an IPv6 address as the global administrator. administrator.
ipv4-multicast-group-address ipv4-multicast-group-address
This type defines the representation of an IPv4 multicast group This type defines the representation of an IPv4 multicast group
address, which is in the range from 224.0.0.0 to 239.255.255.255. address, which is in the range of 224.0.0.0 to 239.255.255.255.
An example usage can be found in [I-D.ietf-pim-yang]. An example usage can be found in [PIM-YANG].
ipv6-multicast-group-address ipv6-multicast-group-address
This type defines the representation of an IPv6 multicast group This type defines the representation of an IPv6 multicast group
address, which is in the range of FF00::/8. An example usage can address, which is in the range of ff00::/8. An example usage can
be found in [I-D.ietf-pim-yang]. be found in [PIM-YANG].
ip-multicast-group-address ip-multicast-group-address
This type represents an IP multicast group address and is IP This type represents an IP multicast group address and is IP
version neutral. The format of the textual representation implies version neutral. The format of the textual representation implies
the IP version. An example usage can be found in the IP version. An example usage can be found in [PIM-YANG].
[I-D.ietf-pim-yang].
ipv4-multicast-source-address ipv4-multicast-source-address
IPv4 source address type for use in multicast control protocols. This represents the IPv4 source address type for use in multicast
This type also allows the indication of wildcard sources, i.e., control protocols. This type also allows the indication of
"*". An example of where this type may/will be used is wildcard sources, i.e., "*". An example of where this type
[I-D.ietf-pim-yang]. may/will be used is [PIM-YANG].
ipv6-multicast-source-address ipv6-multicast-source-address
IPv6 source address type for use in multicast control protocols. This represents the IPv6 source address type for use in multicast
This type also allows the indication of wildcard sources, i.e., control protocols. This type also allows the indication of
"*". An example of where this type may/will be used is wildcard sources, i.e., "*". An example of where this type
[I-D.ietf-pim-yang]. may/will be used is [PIM-YANG].
bandwidth-ieee-float32 bandwidth-ieee-float32
Bandwidth in IEEE 754 floating point 32-bit binary format This represents the bandwidth in IEEE 754 floating-point 32-bit
[IEEE754]. Commonly used in Traffic Engineering control plane binary format [IEEE754]. It is commonly used in Traffic
protocols. An example of where this type may/will be used is Engineering control-plane protocols. An example of where this
[I-D.ietf-ospf-yang]. type may/will be used is [OSPF-YANG].
link-access-type link-access-type
This type identifies the IGP link type. An example of where this This type identifies the IGP link type.
type may/will be used is [I-D.ietf-ospf-yang].
timer-multiplier timer-multiplier
This type is used in conjunction with a timer-value type. It is This type is used in conjunction with a timer-value type. It is
generally used to indicate define the number of timer-value generally used to indicate the number of timer-value intervals
intervals that may expire before a specific event must occur. that may expire before a specific event must occur. Examples of
Examples of this include the arrival of any BFD packets, see this include the arrival of any Bidirectional Forwarding Detection
[RFC5880] Section 6.8.4, or hello_interval in [RFC3209]. Example (BFD) packets (see [RFC5880] Section 6.8.4) or hello_interval
of where this type may/will be used is [I-D.ietf-idr-bgp-model] [RFC3209].
and [I-D.ietf-teas-yang-rsvp].
timer-value-seconds16 timer-value-seconds16
This type covers timers which can be set in seconds, not set, or This type covers timers that can be set in seconds, not set, or
set to infinity. This type supports a range of values that can be set to infinity. This type supports a range of values that can be
represented in a uint16 (2 octets). An example of where this type represented in a uint16 (2 octets).
may/will be used is [I-D.ietf-ospf-yang].
timer-value-seconds32 timer-value-seconds32
This type covers timers which can be set in seconds, not set, or This type covers timers that can be set in seconds, not set, or
set to infinity. This type supports a range of values that can be set to infinity. This type supports a range of values that can be
represented in a uint32 (4 octets). An example of where this type represented in a uint32 (4 octets).
may/will be used is [I-D.ietf-teas-yang-rsvp].
timer-value-milliseconds timer-value-milliseconds
This type covers timers which can be set in milliseconds, not set, This type covers timers that can be set in milliseconds, not set,
or set to infinity. This type supports a range of values that can or set to infinity. This type supports a range of values that can
be represented in a uint32 (4 octets). Examples of where this be represented in a uint32 (4 octets).
type may/will be used include [I-D.ietf-teas-yang-rsvp] and
[I-D.ietf-bfd-yang].
percentage percentage
This type defines a percentage with a range of 0-100%. An example This type defines a percentage with a range of 0-100%. An example
usage can be found in [I-D.ietf-idr-bgp-model]. usage can be found in [BGP-Model].
timeticks64 timeticks64
This type is based on the timeticks type defined in [RFC6991] but This type is based on the timeticks type defined in [RFC6991] but
with 64-bit precision. It represents the time in hundredths of a with 64-bit precision. It represents the time in hundredths of a
second between two epochs. An example usage can be found in second between two epochs. An example usage can be found in
[I-D.ietf-idr-bgp-model]. [BGP-Model].
uint24 uint24
This type defines a 24-bit unsigned integer. It is used by This type defines a 24-bit unsigned integer. An example usage can
[I-D.ietf-ospf-yang]. be found in [OSPF-YANG].
generalized-label generalized-label
This type represents a generalized label for Generalized Multi- This type represents a Generalized Label for Generalized
Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label Multiprotocol Label Switching (GMPLS) [RFC3471]. The Generalized
does not identify its type, which is known from the context. An Label does not identify its type, which is known from context. An
example usage can be found in [I-D.ietf-teas-yang-te]. example usage can be found in [TE-YANG].
mpls-label-special-purpose mpls-label-special-purpose
This type represents the special-purpose Multiprotocol Label This type represents the special-purpose MPLS label values
Switching (MPLS) label values [RFC7274]. An example usage can be [RFC7274].
found in [I-D.ietf-mpls-base-yang].
mpls-label-general-use mpls-label-general-use
The 20 bits label values in an MPLS label stack entry, specified The 20-bit label value in an MPLS label stack is specified in
in [RFC3032]. This label value does not include the encodings of [RFC3032]. This label value does not include the encodings of
Traffic Class and TTL (time to live). The label range specified Traffic Class and TTL (Time to Live). The label range specified
by this type is for general use, with special-purpose MPLS label by this type is for general use, with special-purpose MPLS label
values excluded. An example usage can be found in values excluded.
[I-D.ietf-mpls-base-yang].
mpls-label mpls-label
The 20 bits label values in an MPLS label stack entry, specified The 20-bit label value in an MPLS label stack is specified in
in [RFC3032]. This label value does not include the encodings of [RFC3032]. This label value does not include the encodings of
Traffic Class and TTL (time to live). The label range specified Traffic Class and TTL. The label range specified by this type
by this type covers the general use values and the special-purpose covers the general-use values and the special-purpose label
label values. An example usage can be found in values. An example usage can be found in [MPLS-Base-YANG].
[I-D.ietf-mpls-base-yang].
This document defines the following YANG groupings: This document defines the following YANG groupings:
mpls-label-stack mpls-label-stack
This grouping defines a reusable collection of schema nodes This grouping defines a reusable collection of schema nodes
representing an MPLS label stack [RFC3032]. An example usage can representing an MPLS label stack [RFC3032].
be found in [I-D.ietf-mpls-base-yang].
vpn-route-targets vpn-route-targets
This grouping defines a reusable collection of schema nodes This grouping defines a reusable collection of schema nodes
representing Route Target import-export rules used in the BGP representing Route Target import-export rules used in BGP-enabled
enabled Virtual Private Networks (VPNs). [RFC4364][RFC4664]. An VPNs [RFC4364] [RFC4664]. An example usage can be found in
example usage can be found in [I-D.ietf-bess-l2vpn-yang]. [L2VPN-YANG].
The iana-routing-types model contains common routing types The iana-routing-types module contains common routing types
corresponding directly to IANA mappings. These include: corresponding directly to IANA mappings. These include the
following:
address-family address-family
This type defines values for use in address family identifiers. This type defines values for use in Address Family identifiers.
The values are based on the IANA Address Family Numbers Registry The values are based on the IANA "Address Family Numbers" registry
[IANA-ADDRESS-FAMILY-REGISTRY]. An example usage can be found in [IANA-ADDRESS-FAMILY-REGISTRY]. An example usage can be found in
[I-D.ietf-idr-bgp-model]. [BGP-Model].
subsequent-address-family subsequent-address-family
This type defines values for use in subsequent address family This type defines values for use in Subsequent Address Family
(SAFI) identifiers. The values are based on the IANA Subsequent Identifiers (SAFIs). The values are based on the IANA "Subsequent
Address Family Identifiers (SAFI) Parameters Registry Address Family Identifiers (SAFI) Parameters" registry
[IANA-SAFI-REGISTRY]. [IANA-SAFI-REGISTRY].
3. IETF Routing Types YANG Module 3. IETF Routing Types YANG Module
<CODE BEGINS> file "ietf-routing-types@2017-10-13.yang" <CODE BEGINS> file "ietf-routing-types@2017-12-04.yang"
module ietf-routing-types { module ietf-routing-types {
namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types"; namespace "urn:ietf:params:xml:ns:yang:ietf-routing-types";
prefix rt-types; prefix rt-types;
import ietf-yang-types { import ietf-yang-types {
prefix yang; prefix yang;
} }
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization organization
"IETF RTGWG - Routing Area Working Group"; "IETF RTGWG - Routing Area Working Group";
contact contact
"WG Web: <http://tools.ietf.org/wg/rtgwg/> "WG Web: <https://datatracker.ietf.org/wg/rtgwg/>
WG List: <mailto:rtgwg@ietf.org> WG List: <mailto:rtgwg@ietf.org>
Editor: Xufeng Liu Editors: Xufeng Liu
<mailto:Xufeng_Liu@jabail.com> <mailto:Xufeng_Liu@jabail.com>
Yingzhen Qu Yingzhen Qu
<mailto:yingzhen.qu@huawei.com> <mailto:yingzhen.qu@huawei.com>
Acee Lindem Acee Lindem
<mailto:acee@cisco.com> <mailto:acee@cisco.com>
Christian Hopps Christian Hopps
<mailto:chopps@chopps.org> <mailto:chopps@chopps.org>
Lou Berger Lou Berger
<mailto:lberger@labn.com>"; <mailto:lberger@labn.com>";
description description
"This module contains a collection of YANG data types "This module contains a collection of YANG data types
considered generally useful for routing protocols. considered generally useful for routing protocols.
Copyright (c) 2017 IETF Trust and the persons Copyright (c) 2017 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
skipping to change at page 7, line 38 skipping to change at page 8, line 49
considered generally useful for routing protocols. considered generally useful for routing protocols.
Copyright (c) 2017 IETF Trust and the persons Copyright (c) 2017 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC 8294; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
reference "RFC XXXX";
revision 2017-10-13 { revision 2017-12-04 {
description "Initial revision."; description "Initial revision.";
reference "RFC TBD: Routing YANG Data Types"; reference
"RFC 8294: Common YANG Data Types for the Routing Area.
Section 3.";
} }
/*** Identities related to MPLS/GMPLS ***/ /*** Identities related to MPLS/GMPLS ***/
identity mpls-label-special-purpose-value { identity mpls-label-special-purpose-value {
description description
"Base identity for deriving identities describing "Base identity for deriving identities describing
special-purpose Multiprotocol Label Switching (MPLS) label special-purpose Multiprotocol Label Switching (MPLS) label
values."; values.";
reference reference
"RFC7274: Allocating and Retiring Special-Purpose MPLS "RFC 7274: Allocating and Retiring Special-Purpose MPLS
Labels."; Labels.";
} }
identity ipv4-explicit-null-label { identity ipv4-explicit-null-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the IPv4 Explicit NULL Label."; "This identity represents the IPv4 Explicit NULL Label.";
reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; reference
"RFC 3032: MPLS Label Stack Encoding. Section 2.1.";
} }
identity router-alert-label { identity router-alert-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the Router Alert Label."; "This identity represents the Router Alert Label.";
reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; reference
"RFC 3032: MPLS Label Stack Encoding. Section 2.1.";
} }
identity ipv6-explicit-null-label { identity ipv6-explicit-null-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the IPv6 Explicit NULL Label."; "This identity represents the IPv6 Explicit NULL Label.";
reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; reference
"RFC 3032: MPLS Label Stack Encoding. Section 2.1.";
} }
identity implicit-null-label { identity implicit-null-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the Implicit NULL Label."; "This identity represents the Implicit NULL Label.";
reference "RFC3032: MPLS Label Stack Encoding. Section 2.1."; reference
"RFC 3032: MPLS Label Stack Encoding. Section 2.1.";
} }
identity entropy-label-indicator { identity entropy-label-indicator {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the Entropy Label Indicator."; "This identity represents the Entropy Label Indicator.";
reference reference
"RFC6790: The Use of Entropy Labels in MPLS Forwarding. "RFC 6790: The Use of Entropy Labels in MPLS Forwarding.
Sections 3 and 10.1."; Sections 3 and 10.1.";
} }
identity gal-label { identity gal-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the Generic Associated Channel "This identity represents the Generic Associated Channel
Label (GAL)."; (G-ACh) Label (GAL).";
reference reference
"RFC5586: MPLS Generic Associated Channel. "RFC 5586: MPLS Generic Associated Channel.
Sections 4 and 10."; Sections 4 and 10.";
} }
identity oam-alert-label { identity oam-alert-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the OAM Alert Label."; "This identity represents the OAM Alert Label.";
reference reference
"RFC3429: Assignment of the 'OAM Alert Label' for "RFC 3429: Assignment of the 'OAM Alert Label' for
Multiprotocol Label Switching Architecture (MPLS) Multiprotocol Label Switching Architecture (MPLS)
Operation and Maintenance (OAM) Functions. Operation and Maintenance (OAM) Functions.
Sections 3 and 6."; Sections 3 and 6.";
} }
identity extension-label { identity extension-label {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
description description
"This identity represents the Extension Label."; "This identity represents the Extension Label.";
reference reference
"RFC7274: Allocating and Retiring Special-Purpose MPLS "RFC 7274: Allocating and Retiring Special-Purpose MPLS
Labels. Sections 3.1 and 5."; Labels. Sections 3.1 and 5.";
} }
/*** Collection of types related to routing ***/ /*** Collection of types related to routing ***/
typedef router-id { typedef router-id {
type yang:dotted-quad; type yang:dotted-quad;
description description
"A 32-bit number in the dotted quad format assigned to each "A 32-bit number in the dotted-quad format assigned to each
router. This number uniquely identifies the router within router. This number uniquely identifies the router within
an Autonomous System."; an Autonomous System.";
} }
/*** Collection of types related to VPN ***/ /*** Collection of types related to VPNs ***/
typedef route-target { typedef route-target {
type string { type string {
pattern pattern
'(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' '(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|'
+ '42949672[0-8][0-9]|' + '42949672[0-8][0-9]|'
+ '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|' + '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|'
+ '42949[0-5][0-9]{4}|' + '42949[0-5][0-9]{4}|'
skipping to change at page 10, line 27 skipping to change at page 12, line 5
+ '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|' + '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|'
+ '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):' + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):'
+ '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
+ '(6(:[a-fA-F0-9]{2}){6})|' + '(6(:[a-fA-F0-9]{2}){6})|'
+ '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):' + '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):'
+ '[0-9a-fA-F]{1,12})'; + '[0-9a-fA-F]{1,12})';
} }
description description
"A route target is an 8-octet BGP extended community "A Route Target is an 8-octet BGP extended community
initially identifying a set of sites in a BGP initially identifying a set of sites in a BGP VPN
VPN (RFC 4364). However, it has since taken on a more (RFC 4364). However, it has since taken on a more general
general role in BGP route filtering. role in BGP route filtering. A Route Target consists of two
A route target consists of two or three fields: or three fields: a 2-octet Type field, an administrator
a 2-octet type field, an administrator field, field, and, optionally, an assigned number field.
and, optionally, an assigned number field.
According to the data formats for type 0, 1, 2, and 6 According to the data formats for types 0, 1, 2, and 6 as
defined in RFC4360, RFC5668, and RFC7432, the encoding defined in RFC 4360, RFC 5668, and RFC 7432, the encoding
pattern is defined as: pattern is defined as:
0:2-octet-asn:4-octet-number 0:2-octet-asn:4-octet-number
1:4-octet-ipv4addr:2-octet-number 1:4-octet-ipv4addr:2-octet-number
2:4-octet-asn:2-octet-number. 2:4-octet-asn:2-octet-number
6:6-octet-mac-address. 6:6-octet-mac-address
Additionally, a generic pattern is defined for future Additionally, a generic pattern is defined for future
route target types: Route Target types:
2-octet-other-hex-number:6-octet-hex-number 2-octet-other-hex-number:6-octet-hex-number
Some valid examples are: 0:100:100, 1:1.1.1.1:100, Some valid examples are 0:100:100, 1:1.1.1.1:100,
2:1234567890:203 and 6:26:00:08:92:78:00"; 2:1234567890:203, and 6:26:00:08:92:78:00.";
reference reference
"RFC4360: BGP Extended Communities Attribute. "RFC 4360: BGP Extended Communities Attribute.
RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs) RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).
RFC5668: 4-Octet AS Specific BGP Extended Community. RFC 5668: 4-Octet AS Specific BGP Extended Community.
RFC7432: BGP MPLS-Based Ethernet VPN"; RFC 7432: BGP MPLS-Based Ethernet VPN.";
} }
typedef ipv6-route-target { typedef ipv6-route-target {
type string { type string {
pattern pattern
'((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
+ '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
+ '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}' + '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}'
+ '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))' + '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))'
+ ':' + ':'
+ '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
skipping to change at page 11, line 29 skipping to change at page 13, line 23
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)'; + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)';
pattern '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' pattern '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
+ '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))'
+ ':' + ':'
+ '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)'; + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)';
} }
description description
"An IPv6 route target is a 20-octet BGP IPv6 address "An IPv6 Route Target is a 20-octet BGP IPv6 Address
specific extended community serving the same function Specific Extended Community serving the same function
as a standard 8-octet route target only allowing for as a standard 8-octet Route Target, except that it only
an IPv6 address as the global administrator. The format allows an IPv6 address as the global administrator.
is <ipv6-address:2-octet-number>. The format is <ipv6-address:2-octet-number>.
Some valid examples are: 2001:DB8::1:6544 and Two valid examples are 2001:db8::1:6544 and
2001:DB8::5eb1:791:6b37:17958"; 2001:db8::5eb1:791:6b37:17958.";
reference reference
"RFC5701: IPv6 Address Specific BGP Extended Community "RFC 5701: IPv6 Address Specific BGP Extended Community
Attribute"; Attribute.";
} }
typedef route-target-type { typedef route-target-type {
type enumeration { type enumeration {
enum "import" { enum import {
value 0; value 0;
description description
"The route target applies to route import."; "The Route Target applies to route import.";
} }
enum "export" { enum export {
value 1; value 1;
description description
"The route target applies to route export."; "The Route Target applies to route export.";
} }
enum "both" { enum both {
value 2; value 2;
description description
"The route target applies to both route import and "The Route Target applies to both route import and
route export."; route export.";
} }
} }
description description
"Indicates the role a route target takes "Indicates the role a Route Target takes in route filtering.";
in route filtering."; reference
reference "RFC4364: BGP/MPLS IP Virtual Private Networks "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).";
(VPNs).";
} }
typedef route-distinguisher { typedef route-distinguisher {
type string { type string {
pattern pattern
'(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' '(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|'
+ '42949672[0-8][0-9]|' + '42949672[0-8][0-9]|'
+ '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|' + '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|'
skipping to change at page 13, line 4 skipping to change at page 15, line 5
+ '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|' + '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|'
+ '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):' + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):'
+ '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
+ '(6(:[a-fA-F0-9]{2}){6})|' + '(6(:[a-fA-F0-9]{2}){6})|'
+ '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):' + '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):'
+ '[0-9a-fA-F]{1,12})'; + '[0-9a-fA-F]{1,12})';
} }
description description
"A route distinguisher is an 8-octet value used to "A Route Distinguisher is an 8-octet value used to
distinguish routes from different BGP VPNs (RFC 4364). distinguish routes from different BGP VPNs (RFC 4364).
As per RFC 4360, a route distinguisher will have the same A Route Distinguisher will have the same format as a
format as a route target and will consist of two or three Route Target as per RFC 4360 and will consist of
fields including a 2-octet type field, an administrator two or three fields: a 2-octet Type field, an administrator
field, and, optionally, an assigned number field. field, and, optionally, an assigned number field.
According to the data formats for type 0, 1, 2, and 6 According to the data formats for types 0, 1, 2, and 6 as
defined in RFC4360, RFC5668, and RFC7432, the encoding defined in RFC 4360, RFC 5668, and RFC 7432, the encoding
pattern is defined as: pattern is defined as:
0:2-octet-asn:4-octet-number 0:2-octet-asn:4-octet-number
1:4-octet-ipv4addr:2-octet-number 1:4-octet-ipv4addr:2-octet-number
2:4-octet-asn:2-octet-number. 2:4-octet-asn:2-octet-number
6:6-octet-mac-address. 6:6-octet-mac-address
Additionally, a generic pattern is defined for future Additionally, a generic pattern is defined for future
route discriminator types: route discriminator types:
2-octet-other-hex-number:6-octet-hex-number 2-octet-other-hex-number:6-octet-hex-number
Some valid examples are: 0:100:100, 1:1.1.1.1:100, Some valid examples are 0:100:100, 1:1.1.1.1:100,
2:1234567890:203 and 6:26:00:08:92:78:00"; 2:1234567890:203, and 6:26:00:08:92:78:00.";
reference reference
"RFC4360: BGP Extended Communities Attribute. "RFC 4360: BGP Extended Communities Attribute.
RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs) RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).
RFC5668: 4-Octet AS Specific BGP Extended Community. RFC 5668: 4-Octet AS Specific BGP Extended Community.
RFC7432: BGP MPLS-Based Ethernet VPN"; RFC 7432: BGP MPLS-Based Ethernet VPN.";
} }
typedef route-origin { typedef route-origin {
type string { type string {
pattern pattern
'(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' '(0:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0):(429496729[0-5]|'
+ '42949672[0-8][0-9]|' + '42949672[0-8][0-9]|'
+ '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|' + '4294967[01][0-9]{2}|429496[0-6][0-9]{3}|'
+ '42949[0-5][0-9]{4}|' + '42949[0-5][0-9]{4}|'
+ '4294[0-8][0-9]{5}|429[0-3][0-9]{6}|' + '4294[0-8][0-9]{5}|429[0-3][0-9]{6}|'
skipping to change at page 14, line 18 skipping to change at page 16, line 36
+ '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|' + '429[0-3][0-9]{6}|42[0-8][0-9]{7}|4[01][0-9]{8}|'
+ '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):' + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0):'
+ '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
+ '(6(:[a-fA-F0-9]{2}){6})|' + '(6(:[a-fA-F0-9]{2}){6})|'
+ '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):' + '(([3-57-9a-fA-F]|[1-9a-fA-F][0-9a-fA-F]{1,3}):'
+ '[0-9a-fA-F]{1,12})'; + '[0-9a-fA-F]{1,12})';
} }
description description
"A route origin is an 8-octet BGP extended community "A Route Origin is an 8-octet BGP extended community
identifying the set of sites where the BGP route identifying the set of sites where the BGP route
originated (RFC 4364). A route target consists of two originated (RFC 4364). A Route Origin will have the same
or three fields: a 2-octet type field, an administrator format as a Route Target as per RFC 4360 and will consist
field, and, optionally, an assigned number field. of two or three fields: a 2-octet Type field, an
administrator field, and, optionally, an assigned number
field.
According to the data formats for type 0, 1, 2, and 6 According to the data formats for types 0, 1, 2, and 6 as
defined in RFC4360, RFC5668, and RFC7432, the encoding defined in RFC 4360, RFC 5668, and RFC 7432, the encoding
pattern is defined as: pattern is defined as:
0:2-octet-asn:4-octet-number 0:2-octet-asn:4-octet-number
1:4-octet-ipv4addr:2-octet-number 1:4-octet-ipv4addr:2-octet-number
2:4-octet-asn:2-octet-number. 2:4-octet-asn:2-octet-number
6:6-octet-mac-address. 6:6-octet-mac-address
Additionally, a generic pattern is defined for future Additionally, a generic pattern is defined for future
route origin types: Route Origin types:
2-octet-other-hex-number:6-octet-hex-number 2-octet-other-hex-number:6-octet-hex-number
Some valid examples are: 0:100:100, 1:1.1.1.1:100, Some valid examples are 0:100:100, 1:1.1.1.1:100,
2:1234567890:203 and 6:26:00:08:92:78:00"; 2:1234567890:203, and 6:26:00:08:92:78:00.";
reference reference
"RFC4360: BGP Extended Communities Attribute. "RFC 4360: BGP Extended Communities Attribute.
RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs) RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).
RFC5668: 4-Octet AS Specific BGP Extended Community. RFC 5668: 4-Octet AS Specific BGP Extended Community.
RFC7432: BGP MPLS-Based Ethernet VPN"; RFC 7432: BGP MPLS-Based Ethernet VPN.";
} }
typedef ipv6-route-origin { typedef ipv6-route-origin {
type string { type string {
pattern pattern
'((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
+ '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
+ '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}' + '(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}'
+ '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))' + '(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])))'
+ ':' + ':'
skipping to change at page 15, line 18 skipping to change at page 17, line 37
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)'; + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)';
pattern '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' pattern '((([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
+ '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))'
+ ':' + ':'
+ '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|' + '(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|'
+ '6[0-4][0-9]{3}|' + '6[0-4][0-9]{3}|'
+ '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)'; + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0)';
} }
description description
"An IPv6 route origin is a 20-octet BGP IPv6 address "An IPv6 Route Origin is a 20-octet BGP IPv6 Address
specific extended community serving the same function Specific Extended Community serving the same function
as a standard 8-octet route only allowing for as a standard 8-octet route, except that it only allows
an IPv6 address as the global administrator. The format an IPv6 address as the global administrator. The format
is <ipv6-address:2-octet-number>. is <ipv6-address:2-octet-number>.
Some valid examples are: 2001:DB8::1:6544 and Two valid examples are 2001:db8::1:6544 and
2001:DB8::5eb1:791:6b37:17958"; 2001:db8::5eb1:791:6b37:17958.";
reference reference
"RFC5701: IPv6 Address Specific BGP Extended Community "RFC 5701: IPv6 Address Specific BGP Extended Community
Attribute"; Attribute.";
} }
/*** Collection of types common to multicast ***/ /*** Collection of types common to multicast ***/
typedef ipv4-multicast-group-address { typedef ipv4-multicast-group-address {
type inet:ipv4-address { type inet:ipv4-address {
pattern '(2((2[4-9])|(3[0-9]))\.).*'; pattern '(2((2[4-9])|(3[0-9]))\.).*';
} }
description description
"This type represents an IPv4 multicast group address, "This type represents an IPv4 multicast group address,
which is in the range from 224.0.0.0 to 239.255.255.255."; which is in the range of 224.0.0.0 to 239.255.255.255.";
reference "RFC1112: Host Extensions for IP Multicasting."; reference
"RFC 1112: Host Extensions for IP Multicasting.";
} }
typedef ipv6-multicast-group-address { typedef ipv6-multicast-group-address {
type inet:ipv6-address { type inet:ipv6-address {
pattern pattern '(([fF]{2}[0-9a-fA-F]{2}):).*';
'(([fF]{2}[0-9a-fA-F]{2}):).*';
} }
description description
"This type represents an IPv6 multicast group address, "This type represents an IPv6 multicast group address,
which is in the range of FF00::/8."; which is in the range of ff00::/8.";
reference reference
"RFC4291: IP Version 6 Addressing Architecture. Sec 2.7. "RFC 4291: IP Version 6 Addressing Architecture. Section 2.7.
RFC7346: IPv6 Multicast Address Scopes."; RFC 7346: IPv6 Multicast Address Scopes.";
} }
typedef ip-multicast-group-address { typedef ip-multicast-group-address {
type union { type union {
type ipv4-multicast-group-address; type ipv4-multicast-group-address;
type ipv6-multicast-group-address; type ipv6-multicast-group-address;
} }
description description
"This type represents a version-neutral IP multicast group "This type represents a version-neutral IP multicast group
address. The format of the textual representation implies address. The format of the textual representation implies
the IP version."; the IP version.";
} }
typedef ipv4-multicast-source-address { typedef ipv4-multicast-source-address {
type union { type union {
type enumeration { type enumeration {
enum "*" { enum * {
description description
"Any source address."; "Any source address.";
} }
} }
type inet:ipv4-address; type inet:ipv4-address;
} }
description description
"Multicast source IPv4 address type."; "Multicast source IPv4 address type.";
} }
typedef ipv6-multicast-source-address { typedef ipv6-multicast-source-address {
type union { type union {
type enumeration { type enumeration {
enum "*" { enum * {
description description
"Any source address."; "Any source address.";
} }
} }
type inet:ipv6-address; type inet:ipv6-address;
} }
description description
"Multicast source IPv6 address type."; "Multicast source IPv6 address type.";
} }
/*** Collection of types common to protocols ***/ /*** Collection of types common to protocols ***/
typedef bandwidth-ieee-float32 { typedef bandwidth-ieee-float32 {
type string { type string {
pattern pattern
'0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|' '0[xX](0((\.0?)?[pP](\+)?0?|(\.0?))|'
+ '1(\.([0-9a-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|' + '1(\.([0-9a-fA-F]{0,5}[02468aAcCeE]?)?)?[pP](\+)?(12[0-7]|'
+ '1[01][0-9]|0?[0-9]?[0-9])?)'; + '1[01][0-9]|0?[0-9]?[0-9])?)';
} }
description description
"Bandwidth in IEEE 754 floating point 32-bit binary format: "Bandwidth in IEEE 754 floating-point 32-bit binary format:
(-1)**(S) * 2**(Exponent-127) * (1 + Fraction), (-1)**(S) * 2**(Exponent-127) * (1 + Fraction),
where Exponent uses 8 bits, and Fraction uses 23 bits. where Exponent uses 8 bits and Fraction uses 23 bits.
The units are octets per second. The units are octets per second.
The encoding format is the external hexadecimal-significant The encoding format is the external hexadecimal-significant
character sequences specified in IEEE 754 and C99. The character sequences specified in IEEE 754 and ISO/IEC C99.
format is restricted to be normalized, non-negative, and The format is restricted to be normalized, non-negative, and
non-fraction: 0x1.hhhhhhp{+}d, 0X1.HHHHHHP{+}D, or 0x0p0, non-fraction: 0x1.hhhhhhp{+}d, 0X1.HHHHHHP{+}D, or 0x0p0,
where 'h' and 'H' are hexadecimal digits and'd' and 'D' are where 'h' and 'H' are hexadecimal digits and 'd' and 'D' are
integers in the range of [0..127]. integers in the range of [0..127].
When six hexadecimal digits are used for 'hhhhhh' or When six hexadecimal digits are used for 'hhhhhh' or
'HHHHHH', the least significant digit must be an even 'HHHHHH', the least significant digit must be an even
number. 'x' and 'X' indicate hexadecimal; 'p' and 'P' number. 'x' and 'X' indicate hexadecimal; 'p' and 'P'
indicate power of two. Some examples are: 0x0p0, 0x1p10, and indicate a power of two. Some examples are 0x0p0, 0x1p10,
0x1.abcde2p+20"; and 0x1.abcde2p+20.";
reference reference
"IEEE Std 754-2008: IEEE Standard for Floating-Point "IEEE Std 754-2008: IEEE Standard for Floating-Point
Arithmetic."; Arithmetic.
ISO/IEC C99: Information technology - Programming
Languages - C.";
} }
typedef link-access-type { typedef link-access-type {
type enumeration { type enumeration {
enum "broadcast" { enum broadcast {
description description
"Specify broadcast multi-access network."; "Specify broadcast multi-access network.";
} }
enum "non-broadcast-multiaccess" { enum non-broadcast-multiaccess {
description description
"Specify Non-Broadcast Multi-Access (NBMA) network."; "Specify Non-Broadcast Multi-Access (NBMA) network.";
} }
enum "point-to-multipoint" { enum point-to-multipoint {
description description
"Specify point-to-multipoint network."; "Specify point-to-multipoint network.";
} }
enum "point-to-point" { enum point-to-point {
description description
"Specify point-to-point network."; "Specify point-to-point network.";
} }
} }
description description
"Link access type."; "Link access type.";
} }
typedef timer-multiplier { typedef timer-multiplier {
type uint8; type uint8;
description description
"The number of timer value intervals that should be "The number of timer value intervals that should be
interpreted as a failure."; interpreted as a failure.";
} }
typedef timer-value-seconds16 { typedef timer-value-seconds16 {
type union { type union {
type uint16 { type uint16 {
range "1..65535"; range "1..65535";
} }
type enumeration { type enumeration {
enum "infinity" { enum infinity {
description description
"The timer is set to infinity."; "The timer is set to infinity.";
} }
enum "not-set" { enum not-set {
description description
"The timer is not set."; "The timer is not set.";
} }
} }
} }
units "seconds"; units "seconds";
description description
"Timer value type, in seconds (16-bit range)."; "Timer value type, in seconds (16-bit range).";
} }
typedef timer-value-seconds32 { typedef timer-value-seconds32 {
type union { type union {
type uint32 { type uint32 {
range "1..4294967295"; range "1..4294967295";
} }
type enumeration { type enumeration {
enum "infinity" { enum infinity {
description description
"The timer is set to infinity."; "The timer is set to infinity.";
} }
enum "not-set" { enum not-set {
description description
"The timer is not set."; "The timer is not set.";
} }
} }
} }
units "seconds"; units "seconds";
description description
"Timer value type, in seconds (32-bit range)."; "Timer value type, in seconds (32-bit range).";
} }
typedef timer-value-milliseconds { typedef timer-value-milliseconds {
type union { type union {
type uint32 { type uint32 {
range "1..4294967295"; range "1..4294967295";
} }
type enumeration { type enumeration {
enum "infinity" { enum infinity {
description description
"The timer is set to infinity."; "The timer is set to infinity.";
} }
enum "not-set" { enum not-set {
description description
"The timer is not set."; "The timer is not set.";
} }
} }
} }
units "milliseconds"; units "milliseconds";
description description
"Timer value type, in milliseconds."; "Timer value type, in milliseconds.";
} }
typedef percentage { typedef percentage {
type uint8 { type uint8 {
range "0..100"; range "0..100";
} }
description description
"Integer indicating a percentage value"; "Integer indicating a percentage value.";
} }
typedef timeticks64 { typedef timeticks64 {
type uint64; type uint64;
description description
"This type is based on the timeticks type defined in "This type is based on the timeticks type defined in
RFC 6991, but with 64-bit width. It represents the time, RFC 6991, but with 64-bit width. It represents the time,
modulo 2^64, in hundredths of a second between two epochs."; modulo 2^64, in hundredths of a second between two epochs.";
reference "RFC 6991 - Common YANG Data Types"; reference
"RFC 6991: Common YANG Data Types.";
} }
typedef uint24 { typedef uint24 {
type uint32 { type uint32 {
range "0 .. 16777215"; range "0..16777215";
} }
description description
"24-bit unsigned integer"; "24-bit unsigned integer.";
} }
/*** Collection of types related to MPLS/GMPLS ***/ /*** Collection of types related to MPLS/GMPLS ***/
typedef generalized-label { typedef generalized-label {
type binary; type binary;
description description
"Generalized label. Nodes sending and receiving the "Generalized Label. Nodes sending and receiving the
Generalized Label are aware of the link-specific Generalized Label are aware of the link-specific
label context and type."; label context and type.";
reference "RFC3471: Section 3.2"; reference
"RFC 3471: Generalized Multi-Protocol Label Switching (GMPLS)
Signaling Functional Description. Section 3.2.";
} }
typedef mpls-label-special-purpose { typedef mpls-label-special-purpose {
type identityref { type identityref {
base mpls-label-special-purpose-value; base mpls-label-special-purpose-value;
} }
description description
"This type represents the special-purpose Multiprotocol Label "This type represents the special-purpose MPLS label values.";
Switching (MPLS) label values.";
reference reference
"RFC3032: MPLS Label Stack Encoding. "RFC 3032: MPLS Label Stack Encoding.
RFC7274: Allocating and Retiring Special-Purpose MPLS RFC 7274: Allocating and Retiring Special-Purpose MPLS
Labels."; Labels.";
} }
typedef mpls-label-general-use { typedef mpls-label-general-use {
type uint32 { type uint32 {
range "16..1048575"; range "16..1048575";
} }
description description
"The 20-bit label values in an MPLS label stack entry, "The 20-bit label value in an MPLS label stack as specified
specified in RFC3032. This label value does not include in RFC 3032. This label value does not include the
the encodings of Traffic Class and TTL (time to live). encodings of Traffic Class and TTL (Time to Live).
The label range specified by this type is for general use, The label range specified by this type is for general use,
with special-purpose MPLS label values excluded."; with special-purpose MPLS label values excluded.";
reference "RFC3032: MPLS Label Stack Encoding."; reference
"RFC 3032: MPLS Label Stack Encoding.";
} }
typedef mpls-label { typedef mpls-label {
type union { type union {
type mpls-label-special-purpose; type mpls-label-special-purpose;
type mpls-label-general-use; type mpls-label-general-use;
} }
description description
"The 20-bit label values in an MPLS label stack entry, "The 20-bit label value in an MPLS label stack as specified
specified in RFC3032. This label value does not include in RFC 3032. This label value does not include the
the encodings of Traffic Class and TTL (time to live)."; encodings of Traffic Class and TTL.";
reference "RFC3032: MPLS Label Stack Encoding."; reference
"RFC 3032: MPLS Label Stack Encoding.";
} }
/*** Groupings **/ /*** Groupings **/
grouping mpls-label-stack { grouping mpls-label-stack {
description description
"This grouping specifies an MPLS label stack. The label "This grouping specifies an MPLS label stack. The label
stack is encoded as a list of label stack entries. The stack is encoded as a list of label stack entries. The
list key is an identifier which indicates relative list key is an identifier that indicates the relative
ordering of each entry, with the lowest value identifier ordering of each entry, with the lowest-value identifier
corresponding to the top of the label stack."; corresponding to the top of the label stack.";
container mpls-label-stack { container mpls-label-stack {
description description
"Container for a list of MPLS label stack entries."; "Container for a list of MPLS label stack entries.";
list entry { list entry {
key "id"; key "id";
description description
"List of MPLS label stack entries."; "List of MPLS label stack entries.";
leaf id { leaf id {
type uint8; type uint8;
description description
"Identifies the entry in a sequence of MPLS label "Identifies the entry in a sequence of MPLS label
stack entries. An entry with a smaller identifier stack entries. An entry with a smaller identifier
value precedes an entry with a larger identifier value precedes an entry with a larger identifier
value in the label stack. The value of this ID has value in the label stack. The value of this ID has
no semantic meaning other than relative ordering no semantic meaning other than relative ordering
and referencing the entry."; and referencing the entry.";
} }
leaf label { leaf label {
type rt-types:mpls-label; type rt-types:mpls-label;
description description
"Label value."; "Label value.";
} }
leaf ttl { leaf ttl {
type uint8; type uint8;
description description
"Time to Live (TTL)."; "Time to Live (TTL).";
reference "RFC3032: MPLS Label Stack Encoding."; reference
"RFC 3032: MPLS Label Stack Encoding.";
} }
leaf traffic-class { leaf traffic-class {
type uint8 { type uint8 {
range "0..7"; range "0..7";
} }
description description
"Traffic Class (TC)."; "Traffic Class (TC).";
reference reference
"RFC5462: Multiprotocol Label Switching (MPLS) Label "RFC 5462: Multiprotocol Label Switching (MPLS) Label
Stack Entry: 'EXP' Field Renamed to 'Traffic Class' Stack Entry: 'EXP' Field Renamed to 'Traffic Class'
Field."; Field.";
} }
} }
} }
} }
grouping vpn-route-targets { grouping vpn-route-targets {
description description
"A grouping that specifies Route Target import-export rules "A grouping that specifies Route Target import-export rules
used in the BGP enabled Virtual Private Networks (VPNs)."; used in BGP-enabled VPNs.";
reference reference
"RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs). "RFC 4364: BGP/MPLS IP Virtual Private Networks (VPNs).
RFC4664: Framework for Layer 2 Virtual Private Networks RFC 4664: Framework for Layer 2 Virtual Private Networks
(L2VPNs)"; (L2VPNs).";
list vpn-target { list vpn-target {
key "route-target"; key "route-target";
description description
"List of Route Targets."; "List of Route Targets.";
leaf route-target { leaf route-target {
type rt-types:route-target; type rt-types:route-target;
description description
"Route Target value"; "Route Target value.";
} }
leaf route-target-type { leaf route-target-type {
type rt-types:route-target-type; type rt-types:route-target-type;
mandatory true; mandatory true;
description description
"Import/export type of the Route Target."; "Import/export type of the Route Target.";
} }
} }
} }
} }
<CODE ENDS> <CODE ENDS>
4. IANA Routing Types YANG Module 4. IANA Routing Types YANG Module
<CODE BEGINS> file "iana-routing-types@2017-09-19.yang" <CODE BEGINS> file "iana-routing-types@2017-12-04.yang"
module iana-routing-types { module iana-routing-types {
namespace "urn:ietf:params:xml:ns:yang:iana-routing-types"; namespace "urn:ietf:params:xml:ns:yang:iana-routing-types";
prefix iana-rt-types; prefix iana-rt-types;
organization organization
"IANA"; "IANA";
contact contact
" Internet Assigned Numbers Authority "Internet Assigned Numbers Authority
Postal: ICANN Postal: ICANN
4676 Admiralty Way, Suite 330 12025 Waterfront Drive, Suite 300
Marina del Rey, CA 90292 Los Angeles, CA 90094-2536
United States of America
Tel: +1 310 823 9358 Tel: +1 310 301 5800
<mailto:iana@iana.org>"; <mailto:iana@iana.org>";
description description
"This module contains a collection of YANG data types "This module contains a collection of YANG data types
considered defined by IANA and used for routing considered defined by IANA and used for routing
protocols. protocols.
Copyright (c) 2017 IETF Trust and the persons Copyright (c) 2017 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
skipping to change at page 23, line 18 skipping to change at page 27, line 38
protocols. protocols.
Copyright (c) 2017 IETF Trust and the persons Copyright (c) 2017 IETF Trust and the persons
identified as authors of the code. All rights reserved. identified as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject without modification, is permitted pursuant to, and subject
to the license terms contained in, the Simplified BSD License to the license terms contained in, the Simplified BSD License
set forth in Section 4.c of the IETF Trust's Legal Provisions set forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(http://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC 8294; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
reference "RFC XXXX";
revision 2017-09-19 { revision 2017-12-04 {
description "Initial revision."; description "Initial revision.";
reference "RFC TBD: IANA Routing YANG Data Types"; reference
"RFC 8294: Common YANG Data Types for the Routing Area.
Section 4.";
} }
/*** Collection of IANA types related to routing ***/ /*** Collection of IANA types related to routing ***/
/*** IANA address family enumeration ***/ /*** IANA Address Family enumeration ***/
typedef address-family { typedef address-family {
type enumeration { type enumeration {
enum ipv4 { enum ipv4 {
value 1; value 1;
description "IPv4 Address Family"; description
"IPv4 Address Family.";
} }
enum ipv6 { enum ipv6 {
value 2; value 2;
description "IPv6 Address Family"; description
"IPv6 Address Family.";
} }
enum nsap { enum nsap {
value 3; value 3;
description "OSI Network Service Access Point (NSAP) description
Address Family"; "OSI Network Service Access Point (NSAP) Address Family.";
} }
enum hdlc { enum hdlc {
value 4; value 4;
description "High-Level Data Link Control (HDLC) description
Address Family"; "High-Level Data Link Control (HDLC) Address Family.";
} }
enum bbn1822 { enum bbn1822 {
value 5; value 5;
description "Bolt, Beranek, and Newman Report description
1822 (BBN 1822) Address Family"; "Bolt, Beranek, and Newman Report 1822 (BBN 1822)
Address Family.";
} }
enum ieee802 { enum ieee802 {
value 6; value 6;
description "IEEE 802 Committee Address Family (aka, description
MAC address)"; "IEEE 802 Committee Address Family
(aka Media Access Control (MAC) address).";
} }
enum e163 { enum e163 {
value 7; value 7;
description "ITU-T E.163 Address Family"; description
"ITU-T E.163 Address Family.";
} }
enum e164 { enum e164 {
value 8; value 8;
description "ITU-T E.164 (SMDS, Frame Relay, ATM) description
Address Family"; "ITU-T E.164 (Switched Multimegabit Data Service (SMDS),
Frame Relay, ATM) Address Family.";
} }
enum f69 { enum f69 {
value 9; value 9;
description "ITU-T F.69 (Telex) Address Family"; description
"ITU-T F.69 (Telex) Address Family.";
} }
enum x121 { enum x121 {
value 10; value 10;
description "ITU-T X.121 (X.25, Frame Relay) description
Address Family"; "ITU-T X.121 (X.25, Frame Relay) Address Family.";
} }
enum ipx { enum ipx {
value 11; value 11;
description "Novell Internetwork Packet Exchange (IPX) description
Address Family"; "Novell Internetwork Packet Exchange (IPX)
Address Family.";
} }
enum appletalk { enum appletalk {
value 12; value 12;
description "Apple AppleTalk Address Family"; description
"Apple AppleTalk Address Family.";
} }
enum decnet-iv { enum decnet-iv {
value 13; value 13;
description "Digital Equipment DECnet Phase IV description
Address Family"; "Digital Equipment DECnet Phase IV Address Family.";
} }
enum vines { enum vines {
value 14; value 14;
description "Banyan Vines Address Family"; description
"Banyan Vines Address Family.";
} }
enum e164-nsap { enum e164-nsap {
value 15; value 15;
description "ITU-T E.164 with NSAP sub-address description
Address Family"; "ITU-T E.164 with NSAP sub-address Address Family.";
} }
enum dns { enum dns {
value 16; value 16;
description "Domain Name System (DNS) Address description
Family"; "Domain Name System (DNS) Address Family.";
} }
enum distinguished-name { enum distinguished-name {
value 17; value 17;
description "Distinguished Name Address Family"; description
"Distinguished Name Address Family.";
} }
enum as-num { enum as-num {
value 18; value 18;
description "AS Number Address Family"; description
"Autonomous System (AS) Number Address Family.";
} }
enum xtp-v4 { enum xtp-v4 {
value 19; value 19;
description "Xpress Transport Protocol (XTP) over IPv4 description
Address Family"; "Xpress Transport Protocol (XTP) over IPv4
Address Family.";
} }
enum xtp-v6 { enum xtp-v6 {
value 20; value 20;
description "Xpress Transport Protocol (XTP) over IPv6 description
Address Family"; "XTP over IPv6 Address Family.";
} }
enum xtp-native { enum xtp-native {
value 21; value 21;
description "Xpress Transport Protocol (XTP) native mode description
Address Family"; "XTP native mode Address Family.";
} }
enum fc-port { enum fc-port {
value 22; value 22;
description "Fibre Channel (FC) World-Wide Port Name description
Address Family"; "Fibre Channel (FC) World-Wide Port Name Address Family.";
} }
enum fc-node { enum fc-node {
value 23; value 23;
description "Fibre Channel (FC) World-Wide Node Name description
Address Family"; "FC World-Wide Node Name Address Family.";
} }
enum gwid { enum gwid {
value 24; value 24;
description description
"ATM Gateway Identifier (GWID) Number Address Family"; "ATM Gateway Identifier (GWID) Number Address Family.";
} }
enum l2vpn { enum l2vpn {
value 25; value 25;
description "Layer-2 VPN (L2VPN) Address Family"; description
"Layer 2 VPN (L2VPN) Address Family.";
} }
enum mpls-tp-section-eid { enum mpls-tp-section-eid {
value 26; value 26;
description "MPLS-TP Section Endpoint Identifier description
Address Family"; "MPLS Transport Profile (MPLS-TP) Section Endpoint
Identifier Address Family.";
} }
enum mpls-tp-lsp-eid { enum mpls-tp-lsp-eid {
value 27; value 27;
description "MPLS-TP LSP Endpoint Identifier description
Address Family"; "MPLS-TP Label Switched Path (LSP) Endpoint Identifier
Address Family.";
} }
enum mpls-tp-pwe-eid { enum mpls-tp-pwe-eid {
value 28; value 28;
description "MPLS-TP Pseudowire Endpoint Identifier description
Address Family"; "MPLS-TP Pseudowire Endpoint Identifier Address Family.";
} }
enum mt-v4 { enum mt-v4 {
value 29; value 29;
description "Multi-Topology IPv4 Address Family"; description
"Multi-Topology IPv4 Address Family.";
} }
enum mt-v6 { enum mt-v6 {
value 30; value 30;
description "Multi-Topology IPv6 Address Family"; description
"Multi-Topology IPv6 Address Family.";
} }
enum eigrp-common-sf { enum eigrp-common-sf {
value 16384; value 16384;
description "Enhanced Interior Gateway Routing Protocol description
(EIGRP) Common Service Family Address "Enhanced Interior Gateway Routing Protocol (EIGRP)
Family"; Common Service Family Address Family.";
} }
enum eigrp-v4-sf { enum eigrp-v4-sf {
value 16385; value 16385;
description "Enhanced Interior Gateway Routing Protocol description
(EIGRP) IPv4 Service Family Address Family"; "EIGRP IPv4 Service Family Address Family.";
} }
enum eigrp-v6-sf { enum eigrp-v6-sf {
value 16386; value 16386;
description "Enhanced Interior Gateway Routing Protocol description
(EIGRP) IPv6 Service Family Address Family"; "EIGRP IPv6 Service Family Address Family.";
} }
enum lcaf { enum lcaf {
value 16387; value 16387;
description "LISP Canonical Address Format (LCAF) description
Address Family"; "Locator/ID Separation Protocol (LISP)
Canonical Address Format (LCAF) Address Family.";
} }
enum bgp-ls { enum bgp-ls {
value 16388; value 16388;
description "Border Gateway Protocol - Link State (BGP-LS) description
Address Family"; "Border Gateway Protocol - Link State (BGP-LS)
Address Family.";
} }
enum mac-48 { enum mac-48 {
value 16389; value 16389;
description "IEEE 48-bit Media Access Control (MAC) description
Address Family"; "IEEE 48-bit MAC Address Family.";
} }
enum mac-64 { enum mac-64 {
value 16390; value 16390;
description "IEEE 64-bit Media Access Control (MAC) description
Address Family"; "IEEE 64-bit MAC Address Family.";
} }
enum trill-oui { enum trill-oui {
value 16391; value 16391;
description "TRILL IEEE Organizationally Unique description
Identifier (OUI) Address Family"; "Transparent Interconnection of Lots of Links (TRILL)
IEEE Organizationally Unique Identifier (OUI)
Address Family.";
} }
enum trill-mac-24 { enum trill-mac-24 {
value 16392; value 16392;
description "TRILL Final 3 octets of 48-bit MAC description
address Address Family"; "TRILL final 3 octets of 48-bit MAC Address Family.";
} }
enum trill-mac-40 { enum trill-mac-40 {
value 16393; value 16393;
description "TRILL Final 5 octets of 64-bit MAC description
address Address Family"; "TRILL final 5 octets of 64-bit MAC Address Family.";
} }
enum ipv6-64 { enum ipv6-64 {
value 16394; value 16394;
description "First 8 octets (64-bits) of an IPv6 description
address Address Family"; "First 8 octets (64 bits) of IPv6 address
Address Family.";
} }
enum trill-rbridge-port-id { enum trill-rbridge-port-id {
value 16395; value 16395;
description "TRILL Remote Bridge (RBridge) Port ID description
Address Family"; "TRILL Routing Bridge (RBridge) Port ID Address Family.";
} }
enum trill-nickname { enum trill-nickname {
value 16396; value 16396;
description "TRILL Nickname Address Family"; description
"TRILL Nickname Address Family.";
} }
} }
description "Enumeration containing all the IANA description
defined address families."; "Enumeration containing all the IANA-defined
Address Families.";
} }
/*** SAFIs for Multi-Protocol BGP enumeration ***/ /*** Subsequent Address Family Identifiers (SAFIs) ***/
/*** for multiprotocol BGP enumeration ***/
typedef bgp-safi { typedef bgp-safi {
type enumeration { type enumeration {
enum unicast-safi { enum unicast-safi {
value 1; value 1;
description "Unicast SAFI"; description
"Unicast SAFI.";
} }
enum multicast-safi { enum multicast-safi {
value 2; value 2;
description "Multicast SAFI"; description
"Multicast SAFI.";
} }
enum labeled-unicast-safi { enum labeled-unicast-safi {
value 4; value 4;
description "Labeled Unicast SAFI"; description
"Labeled Unicast SAFI.";
} }
enum multicast-vpn-safi { enum multicast-vpn-safi {
value 5; value 5;
description "Multicast VPN SAFI"; description
"Multicast VPN SAFI.";
} }
enum pseudowire-safi { enum pseudowire-safi {
value 6; value 6;
description "Multi-segment Pseudowire VPN SAFI"; description
"Multi-segment Pseudowire VPN SAFI.";
} }
enum tunnel-encap-safi { enum tunnel-encap-safi {
value 7; value 7;
description "Tunnel Encap SAFI"; description
"Tunnel Encap SAFI.";
} }
enum mcast-vpls-safi { enum mcast-vpls-safi {
value 8; value 8;
description "Multicast Virtual Private LAN Service description
(VPLS) SAFI"; "Multicast Virtual Private LAN Service (VPLS) SAFI.";
} }
enum tunnel-safi { enum tunnel-safi {
value 64; value 64;
description "Tunnel SAFI"; description
"Tunnel SAFI.";
} }
enum vpls-safi { enum vpls-safi {
value 65; value 65;
description "Virtual Private LAN Service (VPLS) SAFI"; description
"VPLS SAFI.";
} }
enum mdt-safi { enum mdt-safi {
value 66; value 66;
description "Multicast Distribution Tree (MDT) SAFI"; description
"Multicast Distribution Tree (MDT) SAFI.";
} }
enum v4-over-v6-safi { enum v4-over-v6-safi {
value 67; value 67;
description "IPv4 over IPv6 SAFI"; description
"IPv4 over IPv6 SAFI.";
} }
enum v6-over-v4-safi { enum v6-over-v4-safi {
value 68; value 68;
description "IPv6 over IPv4 SAFI"; description
"IPv6 over IPv4 SAFI.";
} }
enum l1-vpn-auto-discovery-safi { enum l1-vpn-auto-discovery-safi {
value 69; value 69;
description "Layer-1 VPN Auto Discovery SAFI"; description
"Layer 1 VPN Auto-Discovery SAFI.";
} }
enum evpn-safi { enum evpn-safi {
value 70; value 70;
description "Ethernet VPN (EVPN) SAFI"; description
"Ethernet VPN (EVPN) SAFI.";
} }
enum bgp-ls-safi { enum bgp-ls-safi {
value 71; value 71;
description "BGP Link-State (BGP-LS) SAFI"; description
"BGP-LS SAFI.";
} }
enum bgp-ls-vpn-safi { enum bgp-ls-vpn-safi {
value 72; value 72;
description "BGP Link-State (BGP-LS) VPN SAFI"; description
"BGP-LS VPN SAFI.";
} }
enum sr-te-safi { enum sr-te-safi {
value 73; value 73;
description "Segment Routing - Traffic Engineering description
(SR-TE) SAFI"; "Segment Routing - Traffic Engineering (SR-TE) SAFI.";
} }
enum labeled-vpn-safi { enum labeled-vpn-safi {
value 128; value 128;
description "MPLS Labeled VPN SAFI"; description
"MPLS Labeled VPN SAFI.";
} }
enum multicast-mpls-vpn-safi { enum multicast-mpls-vpn-safi {
value 129; value 129;
description "Multicast for BGP/MPLS IP VPN SAFI"; description
"Multicast for BGP/MPLS IP VPN SAFI.";
} }
enum route-target-safi { enum route-target-safi {
value 132; value 132;
description "Route Target SAFI"; description
"Route Target SAFI.";
} }
enum ipv4-flow-spec-safi { enum ipv4-flow-spec-safi {
value 133; value 133;
description "IPv4 Flow Specification SAFI"; description
"IPv4 Flow Specification SAFI.";
} }
enum vpnv4-flow-spec-safi { enum vpnv4-flow-spec-safi {
value 134; value 134;
description "IPv4 VPN Flow Specification SAFI"; description
"IPv4 VPN Flow Specification SAFI.";
} }
enum vpn-auto-discovery-safi { enum vpn-auto-discovery-safi {
value 140; value 140;
description "VPN Auto-Discovery SAFI"; description
"VPN Auto-Discovery SAFI.";
} }
} }
description "Enumeration for BGP Subsequent Address description
Family Identifier (SAFI) - RFC 4760."; "Enumeration for BGP SAFI.";
reference
"RFC 4760: Multiprotocol Extensions for BGP-4.";
} }
} }
<CODE ENDS> <CODE ENDS>
5. IANA Considerations 5. IANA Considerations
RFC Ed.: In this section, replace all occurrences of 'XXXX' with the This document registers the following namespace URIs in the "IETF XML
actual RFC number (and remove this note). Registry" [RFC3688]:
This document registers the following namespace URIs in the IETF XML
registry [RFC3688]:
--------------------------------------------------------------------
URI: urn:ietf:params:xml:ns:yang:ietf-routing-types URI: urn:ietf:params:xml:ns:yang:ietf-routing-types
Registrant Contact: The IESG. Registrant Contact: The IESG.
XML: N/A, the requested URI is an XML namespace. XML: N/A; the requested URI is an XML namespace.
--------------------------------------------------------------------
--------------------------------------------------------------------
URI: urn:ietf:params:xml:ns:yang:iana-routing-types URI: urn:ietf:params:xml:ns:yang:iana-routing-types
Registrant Contact: IANA Registrant Contact: IANA.
XML: N/A, the requested URI is an XML namespace. XML: N/A; the requested URI is an XML namespace.
--------------------------------------------------------------------
This document registers the following YANG modules in the YANG Module
Names registry [RFC6020]:
-------------------------------------------------------------------- This document registers the following YANG modules in the "YANG
name: ietf-routing-types Module Names" registry [RFC6020]:
namespace: urn:ietf:params:xml:ns:yang:ietf-routing-types
prefix: rt-types
reference: RFC XXXX
--------------------------------------------------------------------
-------------------------------------------------------------------- Name: ietf-routing-types
name: iana-routing-types Namespace: urn:ietf:params:xml:ns:yang:ietf-routing-types
namespace: urn:ietf:params:xml:ns:yang:iana-routing-types Prefix: rt-types
prefix: iana-rt-types Reference: RFC 8294
reference: RFC XXXX
-------------------------------------------------------------------- Name: iana-routing-types
Namespace: urn:ietf:params:xml:ns:yang:iana-routing-types
Prefix: iana-rt-types
Reference: RFC 8294
5.1. IANA-Maintained iana-routing-types Module 5.1. IANA-Maintained iana-routing-types Module
This document defines the initial version of the IANA-maintained This document defines the initial version of the IANA-maintained
iana-routing-types YANG module Section 4. iana-routing-types YANG module (Section 4).
The iana-routing-types YANG module is intended to reflect the The iana-routing-types YANG module is intended to reflect the
"Address Family Numbers" registry [IANA-ADDRESS-FAMILY-REGISTRY] and "Address Family Numbers" registry [IANA-ADDRESS-FAMILY-REGISTRY] and
"Subsequent Address Family Identifiers (SAFI) Parameters" registry the "Subsequent Address Family Identifiers (SAFI) Parameters"
[IANA-SAFI-REGISTRY]. registry [IANA-SAFI-REGISTRY].
IANA has added this notes to the "iana-routing-types YANG Module" IANA has added this note to the "iana-routing-types YANG Module"
registry: registry:
Address Families and Subsequent Address Families must not be Address Families and Subsequent Address Families must not be
directly added to the iana-routing-types YANG module. They must directly added to the iana-routing-types YANG module. They must
instead be respectively added to the "Address Family Numbers" instead be respectively added to the "Address Family Numbers" and
and "Subsequent Address Family Identifiers (SAFI) Parameters" "Subsequent Address Family Identifiers (SAFI) Parameters"
registries. registries.
When an Address Family or Subsequent Address Family is respectively When an Address Family or Subsequent Address Family is respectively
added to the "Address Family Numbers" registry or the "Subsequent added to the "Address Family Numbers" registry or the "Subsequent
Address Family Identifiers (SAFI) Parameters" registry, a new "enum" Address Family Identifiers (SAFI) Parameters" registry, a new "enum"
statement must be added to the iana-routing-types YANG module. The statement must be added to the iana-routing-types YANG module. The
name of the "enum" is the same as the corresponding address family or name of the "enum" is the same as the corresponding Address Family or
SAFI only it will be a valid YANG identifier in all lowercase and SAFI, except that it will be a valid YANG identifier in all lowercase
with hyphens separating individual words in compound identifiers. and with hyphens separating individual words in compound identifiers.
The following substatements to the "enum" statement should be The following "enum" statement, and substatements thereof, should be
defined: defined:
"enum": Contains the YANG enum identifier for the address-family "enum": Contains the YANG enum identifier for the "address-family"
or "bgp-safi" for subsequent address families. This may (for Address Families) or "bgp-safi" (for Subsequent
be the same as the address-family or "bgp-safi" or it may Address Families). This may be the same as the
be a shorter version to faciliate YANG identifier usage. "address-family" or "bgp-safi", or it may be a shorter
version to facilitate YANG identifier usage.
"value": Contains the IANA assigned value corresponding to the "value": Contains the IANA-assigned value corresponding to the
address-family or "bgp-safi" for subsequent address "address-family" (for Address Families) or "bgp-safi"
families. (for Subsequent Address Families).
"status": Include only if a registration has been deprecated (use "status": Include only if a registration has been deprecated (use
the value "deprecated") or obsoleted (use the value the value "deprecated") or obsoleted (use the value
"obsolete"). "obsolete").
"description": Replicate the description from the registry, "description": Replicate the description from the registry,
if any. Insert line breaks as needed so that the if any. Insert line breaks as needed so that the
line does not exceed 72 characters. line does not exceed 72 characters.
"reference": Replicate the reference from the registry, if any, "reference": Replicate the reference from the registry, if any,
and add the title of the document. and add the title of the document.
Unassigned or reserved values are not present in these modules. Unassigned or reserved values are not present in these modules.
When the iana-routing-types YANG module is updated, a new "revision" When the iana-routing-types YANG module is updated, a new "revision"
statement must be added in front of the existing revision statements. statement must be added in front of the existing revision statements.
IANA has added this new note to the "Address Family Numbers" and IANA has added this new note to the "Address Family Numbers" and
"Subsequent Address Family Identifiers (SAFI) Parameters" registries: "Subsequent Address Family Identifiers (SAFI) Parameters" registries:
When this registry is modified, the YANG module When this registry is modified, the YANG module iana-routing-types
iana-routing-types must be updated as defined in RFC XXXX. must be updated as defined in RFC 8294.
6. Security Considerations 6. Security Considerations
This document defines common routing type definitions (i.e., typedef This document defines common routing type definitions (i.e., typedef
statements) using the YANG data modeling language. The definitions statements) using the YANG data modeling language. The definitions
themselves have no security or privacy impact on the Internet, but themselves have no security or privacy impact on the Internet, but
the usage of these definitions in concrete YANG modules might have. the usage of these definitions in concrete YANG modules might have.
The security considerations spelled out in the YANG specification The security considerations spelled out in the YANG 1.1 specification
[RFC7950] apply for this document as well. [RFC7950] apply for this document as well.
7. Acknowledgements 7. References
The Routing Area Yang Architecture design team members included Acee
Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries,
Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu.
Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek
Krejci for comments on the model and document text. Thanks to Jeff
Haas and Robert Raszuk for suggestions for additional common routing
types.
8. References
8.1. Normative References 7.1. Normative References
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, <https://www.rfc- DOI 10.17487/RFC3688, January 2004,
editor.org/info/rfc3688>. <https://www.rfc-editor.org/info/rfc3688>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, <https://www.rfc- DOI 10.17487/RFC6020, October 2010,
editor.org/info/rfc6020>. <https://www.rfc-editor.org/info/rfc6020>.
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<https://www.rfc-editor.org/info/rfc6991>. <https://www.rfc-editor.org/info/rfc6991>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[IANA-ADDRESS-FAMILY-REGISTRY] [IANA-ADDRESS-FAMILY-REGISTRY]
"IANA Address Family Registry", "IANA Address Family Numbers Registry",
<https://www.iana.org/assignments/address-family-numbers/ <https://www.iana.org/assignments/
address-family-numbers.xhtml#address-family-numbers-2>. address-family-numbers/>.
[IANA-SAFI-REGISTRY] [IANA-SAFI-REGISTRY]
"IANA Subsequent Address Family Identities (SAFI) "IANA Subsequent Address Family Identifiers (SAFI)
Parameters Registry", <https://www.iana.org/assignments/ Parameters Registry",
safi-namespace/safi-namespace.xhtml#safi-namespace-2>. <https://www.iana.org/assignments/safi-namespace/>.
8.2. Informative References
[IEEE754] IEEE, "IEEE Standard for Floating-Point Arithmetic", IEEE
Std 754-2008, August 2008.
[I-D.ietf-bfd-yang]
Rahman, R., Zheng, L., Jethanandani, M., Networks, J., and
G. Mirsky, "YANG Data Model for Bidirectional Forwarding
Detection (BFD)", draft-ietf-bfd-yang-06 (work in
progress), June 2017.
[I-D.ietf-idr-bgp-model] 7.2. Informative References
Shaikh, A., Shakir, R., Patel, K., Hares, S., D'Souza, K.,
Bansal, D., Clemm, A., Zhdankin, A., Jethanandani, M., and
X. Liu, "BGP Model for Service Provider Networks", draft-
ietf-idr-bgp-model-02 (work in progress), July 2016.
[I-D.ietf-ospf-yang] [IEEE754] IEEE, "IEEE Standard for Floating-Point Arithmetic",
Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, IEEE 754-2008, DOI 10.1109/IEEESTD.2008.4610935.
"Yang Data Model for OSPF Protocol", draft-ietf-ospf-
yang-08 (work in progress), July 2017.
[I-D.ietf-pim-yang] [BGP-Model]
Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu, Shaikh, A., Ed., Shakir, R., Ed., Patel, K., Ed., Hares,
Y., and f. hu, "A YANG data model for Protocol-Independent S., Ed., D'Souza, K., Bansal, D., Clemm, A., Zhdankin, A.,
Multicast (PIM)", draft-ietf-pim-yang-10 (work in Jethanandani, M., and X. Liu, "BGP Model for Service
progress), September 2017. Provider Networks", Work in Progress,
draft-ietf-idr-bgp-model-02, July 2016.
[I-D.ietf-teas-yang-rsvp] [OSPF-YANG]
Beeram, V., Saad, T., Gandhi, R., Liu, X., Bryskin, I., Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem,
and H. Shah, "A YANG Data Model for Resource Reservation "Yang Data Model for OSPF Protocol", Work in Progress,
Protocol (RSVP)", draft-ietf-teas-yang-rsvp-07 (work in draft-ietf-ospf-yang-09, October 2017.
progress), March 2017.
[I-D.ietf-teas-yang-te] [PIM-YANG] Liu, X., McAllister, P., Peter, A., Sivakumar, M., Liu,
Saad, T., Gandhi, R., Liu, X., Beeram, V., Shah, H., and Y., and F. Hu, "A YANG data model for Protocol-Independent
I. Bryskin, "A YANG Data Model for Traffic Engineering Multicast (PIM)", Work in Progress,
Tunnels and Interfaces", draft-ietf-teas-yang-te-08 (work draft-ietf-pim-yang-12, December 2017.
in progress), July 2017.
[I-D.ietf-bess-l2vpn-yang] [TE-YANG] Saad, T., Ed., Gandhi, R., Liu, X., Beeram, V., Shah, H.,
Shah, H., Brissette, P., Chen, I., Hussain, I., Wen, B., and I. Bryskin, "A YANG Data Model for Traffic Engineering
and K. Tiruveedhula, "YANG Data Model for MPLS-based Tunnels and Interfaces", Work in Progress,
L2VPN", draft-ietf-bess-l2vpn-yang-07 (work in progress), draft-ietf-teas-yang-te-09, October 2017.
October 2017.
[I-D.ietf-bess-l3vpn-yang] [L2VPN-YANG]
Jain, D., Patel, K., Brissette, P., Li, Z., Zhuang, S., Shah, H., Ed., Brissette, P., Ed., Chen, I., Ed., Hussain,
Liu, X., Haas, J., Esale, S., and B. Wen, "Yang Data Model I., Ed., Wen, B., Ed., and K. Tiruveedhula, Ed., "YANG
for BGP/MPLS L3 VPNs", draft-ietf-bess-l3vpn-yang-01 (work Data Model for MPLS-based L2VPN", Work in Progress,
in progress), April 2017. draft-ietf-bess-l2vpn-yang-07, September 2017.
[I-D.ietf-mpls-base-yang] [MPLS-Base-YANG]
Raza, K., Gandhi, R., Liu, X., Beeram, V., Saad, T., Saad, T., Raza, K., Gandhi, R., Liu, X., Beeram, V., Shah,
Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG Data H., Bryskin, I., Chen, X., Jones, R., and B. Wen, "A YANG
Model for MPLS Base", draft-ietf-mpls-base-yang-05 (work Data Model for MPLS Base", Work in Progress,
in progress), July 2017. draft-ietf-mpls-base-yang-05, July 2017.
[RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., [RFC3032] Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y.,
Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack
Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001, Encoding", RFC 3032, DOI 10.17487/RFC3032, January 2001,
<https://www.rfc-editor.org/info/rfc3032>. <https://www.rfc-editor.org/info/rfc3032>.
[RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001, Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<https://www.rfc-editor.org/info/rfc3209>. <https://www.rfc-editor.org/info/rfc3209>.
[RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label
Switching (GMPLS) Signaling Functional Description", Switching (GMPLS) Signaling Functional Description",
RFC 3471, DOI 10.17487/RFC3471, January 2003, RFC 3471, DOI 10.17487/RFC3471, January 2003,
<https://www.rfc-editor.org/info/rfc3471>. <https://www.rfc-editor.org/info/rfc3471>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364,
2006, <https://www.rfc-editor.org/info/rfc4364>. February 2006, <https://www.rfc-editor.org/info/rfc4364>.
[RFC4664] Andersson, L., Ed. and E. Rosen, Ed., "Framework for Layer [RFC4664] Andersson, L., Ed., and E. Rosen, Ed., "Framework for
2 Virtual Private Networks (L2VPNs)", RFC 4664, Layer 2 Virtual Private Networks (L2VPNs)", RFC 4664,
DOI 10.17487/RFC4664, September 2006, <https://www.rfc- DOI 10.17487/RFC4664, September 2006,
editor.org/info/rfc4664>. <https://www.rfc-editor.org/info/rfc4664>.
[RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community [RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community
Attribute", RFC 5701, DOI 10.17487/RFC5701, November 2009, Attribute", RFC 5701, DOI 10.17487/RFC5701, November 2009,
<https://www.rfc-editor.org/info/rfc5701>. <https://www.rfc-editor.org/info/rfc5701>.
[RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010, (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
<https://www.rfc-editor.org/info/rfc5880>. <https://www.rfc-editor.org/info/rfc5880>.
[RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating [RFC7274] Kompella, K., Andersson, L., and A. Farrel, "Allocating
and Retiring Special-Purpose MPLS Labels", RFC 7274, and Retiring Special-Purpose MPLS Labels", RFC 7274,
DOI 10.17487/RFC7274, June 2014, <https://www.rfc- DOI 10.17487/RFC7274, June 2014,
editor.org/info/rfc7274>. <https://www.rfc-editor.org/info/rfc7274>.
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432,
2015, <https://www.rfc-editor.org/info/rfc7432>. February 2015, <https://www.rfc-editor.org/info/rfc7432>.
Acknowledgements
The Routing Area YANG Architecture design team members included Acee
Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries,
Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu.
Thanks to Martin Bjorklund, Tom Petch, Stewart Bryant, and Radek
Krejci for comments on the model and document text. Thanks to Jeff
Haas and Robert Raszuk for suggestions for additional common routing
types.
Authors' Addresses Authors' Addresses
Xufeng Liu Xufeng Liu
Jabil Jabil
8281 Greensboro Drive, Suite 200 8281 Greensboro Drive, Suite 200
McLean VA 22102 McLean, VA 22102
USA
EMail: Xufeng_Liu@jabil.com United States of America
Email: Xufeng_Liu@jabil.com
Yingzhen Qu Yingzhen Qu
Futurewei Technologies, Inc. Futurewei Technologies, Inc.
2330 Central Expressway 2330 Central Expressway
Santa Clara CA 95050 Santa Clara, CA 95050
USA United States of America
EMail: yingzhen.qu@huawei.com Email: yingzhen.qu@huawei.com
Acee Lindem Acee Lindem
Cisco Systems Cisco Systems
301 Midenhall Way 301 Midenhall Way
Cary, NC 27513 Cary, NC 27513
USA United States of America
EMail: acee@cisco.com Email: acee@cisco.com
Christian Hopps Christian Hopps
Deutsche Telekom Deutsche Telekom
EMail: chopps@chopps.org Email: chopps@chopps.org
Lou Berger Lou Berger
LabN Consulting, L.L.C. LabN Consulting, L.L.C.
EMail: lberger@labn.net Email: lberger@labn.net
 End of changes. 288 change blocks. 
568 lines changed or deleted 570 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/