draft-ietf-rtgwg-routing-types-16.txt   draft-ietf-rtgwg-routing-types-17.txt 
Network Working Group X. Liu Network Working Group X. Liu
Internet-Draft Jabil Internet-Draft Jabil
Intended status: Standards Track Y. Qu Intended status: Standards Track Y. Qu
Expires: April 8, 2018 Futurewei Technologies, Inc. Expires: April 16, 2018 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 5, 2017 October 13, 2017
Routing Area Common YANG Data Types Routing Area Common YANG Data Types
draft-ietf-rtgwg-routing-types-16 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 Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 39 skipping to change at page 1, line 39
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 8, 2018. This Internet-Draft will expire on April 16, 2018.
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 (http://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
skipping to change at page 5, line 34 skipping to change at page 5, line 34
usage can be found in [I-D.ietf-idr-bgp-model]. usage can be found in [I-D.ietf-idr-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]. [I-D.ietf-idr-bgp-model].
uint24 uint24
This type defines a 24-bit unsigned integer. It is used by This type defines a 24-bit unsigned integer. It is used by
target="I-D.ietf-ospf-yang"/>. [I-D.ietf-ospf-yang].
generalized-label generalized-label
This type represents a generalized label for Generalized Multi- This type represents a generalized label for Generalized Multi-
Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label Protocol Label Switching (GMPLS) [RFC3471]. The Generalized Label
does not identify its type, which is known from the context. An does not identify its type, which is known from the context. An
example usage can be found in [I-D.ietf-teas-yang-te]. example usage can be found in [I-D.ietf-teas-yang-te].
mpls-label-special-purpose mpls-label-special-purpose
This type represents the special-purpose Multiprotocol Label This type represents the special-purpose Multiprotocol Label
Switching (MPLS) label values [RFC7274]. An example usage can be Switching (MPLS) label values [RFC7274]. An example usage can be
skipping to change at page 6, line 45 skipping to change at page 6, line 45
[I-D.ietf-idr-bgp-model]. [I-D.ietf-idr-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 (SAFI) identifiers. 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-09-19.yang" <CODE BEGINS> file "ietf-routing-types@2017-10-13.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;
skipping to change at page 7, line 44 skipping to change at page 7, line 44
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). (http://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 XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
reference "RFC XXXX"; reference "RFC XXXX";
revision 2017-09-19 { revision 2017-10-13 {
description "Initial revision."; description "Initial revision.";
reference "RFC TBD: Routing YANG Data Types"; reference "RFC TBD: Routing YANG Data Types";
} }
/*** 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
skipping to change at page 9, line 48 skipping to change at page 9, line 48
an Autonomous System."; an Autonomous System.";
} }
/*** Collection of types related to VPN ***/ /*** Collection of types related to VPN ***/
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}|'
+ '[0-5]?[0-9]{0,3}[0-9]):(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}|'
+ '42[0-8][0-9]{7}|4[01][0-9]{8}|' + '42[0-8][0-9]{7}|4[01][0-9]{8}|'
+ '[0-3]?[0-9]{0,8}[0-9]))|' + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))|'
+ '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|' + '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|'
+ '25[0-5])\.){3}([0-9]|[1-9][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|'
+ '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|' + '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|'
+ '655[0-2][0-9]|' + '655[0-2][0-9]|'
+ '65[0-4][0-9]{2}|6[0-4][0-9]{3}|' + '65[0-4][0-9]{2}|6[0-4][0-9]{3}|'
+ '[0-5]?[0-9]{0,3}[0-9]))|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
+ '(2:(429496729[0-5]|42949672[0-8][0-9]|' + '(2:(429496729[0-5]|42949672[0-8][0-9]|'
+ '4294967[01][0-9]{2}|' + '4294967[01][0-9]{2}|'
+ '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|' + '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|'
+ '4294[0-8][0-9]{5}|' + '4294[0-8][0-9]{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}|'
+ '[0-3]?[0-9]{0,8}[0-9]):' + '[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}|'
+ '[0-5]?[0-9]{0,3}[0-9]))|' + '[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 (RFC 4364). However, it has since taken on a more VPN (RFC 4364). However, it has since taken on a more
general role in BGP route filtering. general role in BGP route filtering.
A route target consists of two or three fields: A route target consists of two or three fields:
skipping to change at page 11, line 15 skipping to change at page 11, line 15
RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs) RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)
RFC5668: 4-Octet AS Specific BGP Extended Community. RFC5668: 4-Octet AS Specific BGP Extended Community.
RFC7432: BGP MPLS-Based Ethernet VPN"; RFC7432: 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]|[01]?[0-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]|[01]?[0-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}|'
+ '[0-5]?[0-9]{0,3}[0-9])'; + '[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}|'
+ '[0-5]?[0-9]{0,3}[0-9])'; + '[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 only allowing for
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 Some valid examples are: 2001:DB8::1:6544 and
2001:DB8::5eb1:791:6b37:17958"; 2001:DB8::5eb1:791:6b37:17958";
skipping to change at page 12, line 25 skipping to change at page 12, line 25
in route filtering."; in route filtering.";
reference "RFC4364: BGP/MPLS IP Virtual Private Networks reference "RFC4364: 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}|'
+ '[0-5]?[0-9]{0,3}[0-9]):(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}|'
+ '42[0-8][0-9]{7}|4[01][0-9]{8}|' + '42[0-8][0-9]{7}|4[01][0-9]{8}|'
+ '[0-3]?[0-9]{0,8}[0-9]))|' + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))|'
+ '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|' + '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|'
+ '25[0-5])\.){3}([0-9]|[1-9][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|'
+ '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|' + '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|'
+ '655[0-2][0-9]|' + '655[0-2][0-9]|'
+ '65[0-4][0-9]{2}|6[0-4][0-9]{3}|' + '65[0-4][0-9]{2}|6[0-4][0-9]{3}|'
+ '[0-5]?[0-9]{0,3}[0-9]))|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
+ '(2:(429496729[0-5]|42949672[0-8][0-9]|' + '(2:(429496729[0-5]|42949672[0-8][0-9]|'
+ '4294967[01][0-9]{2}|' + '4294967[01][0-9]{2}|'
+ '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|' + '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|'
+ '4294[0-8][0-9]{5}|' + '4294[0-8][0-9]{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}|'
+ '[0-3]?[0-9]{0,8}[0-9]):' + '[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}|'
+ '[0-5]?[0-9]{0,3}[0-9]))|' + '[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 As per RFC 4360, a route distinguisher will have the same
format as a route target and will consist of two or three format as a route target and will consist of two or three
fields including a 2-octet type field, an administrator fields including a 2-octet type field, an administrator
skipping to change at page 13, line 39 skipping to change at page 13, line 39
RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs) RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)
RFC5668: 4-Octet AS Specific BGP Extended Community. RFC5668: 4-Octet AS Specific BGP Extended Community.
RFC7432: BGP MPLS-Based Ethernet VPN"; RFC7432: 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}|'
+ '[0-5]?[0-9]{0,3}[0-9]):(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}|'
+ '42[0-8][0-9]{7}|4[01][0-9]{8}|' + '42[0-8][0-9]{7}|4[01][0-9]{8}|'
+ '[0-3]?[0-9]{0,8}[0-9]))|' + '[1-3][0-9]{9}|[1-9][0-9]{0,8}|0))|'
+ '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|' + '(1:((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|'
+ '25[0-5])\.){3}([0-9]|[1-9][0-9]|' + '25[0-5])\.){3}([0-9]|[1-9][0-9]|'
+ '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|' + '1[0-9]{2}|2[0-4][0-9]|25[0-5])):(6553[0-5]|'
+ '655[0-2][0-9]|' + '655[0-2][0-9]|'
+ '65[0-4][0-9]{2}|6[0-4][0-9]{3}|' + '65[0-4][0-9]{2}|6[0-4][0-9]{3}|'
+ '[0-5]?[0-9]{0,3}[0-9]))|' + '[1-5][0-9]{4}|[1-9][0-9]{0,3}|0))|'
+ '(2:(429496729[0-5]|42949672[0-8][0-9]|' + '(2:(429496729[0-5]|42949672[0-8][0-9]|'
+ '4294967[01][0-9]{2}|' + '4294967[01][0-9]{2}|'
+ '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|' + '429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|'
+ '4294[0-8][0-9]{5}|' + '4294[0-8][0-9]{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}|'
+ '[0-3]?[0-9]{0,8}[0-9]):' + '[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}|'
+ '[0-5]?[0-9]{0,3}[0-9]))|' + '[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 target consists of two
or three fields: a 2-octet type field, an administrator or three fields: a 2-octet type field, an administrator
field, and, optionally, an assigned number field. field, and, optionally, an assigned number field.
skipping to change at page 15, line 4 skipping to change at page 15, line 4
RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs) RFC4364: BGP/MPLS IP Virtual Private Networks (VPNs)
RFC5668: 4-Octet AS Specific BGP Extended Community. RFC5668: 4-Octet AS Specific BGP Extended Community.
RFC7432: BGP MPLS-Based Ethernet VPN"; RFC7432: 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]|[01]?[0-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]|[01]?[0-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}|'
+ '[0-5]?[0-9]{0,3}[0-9])'; + '[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}|'
+ '[0-5]?[0-9]{0,3}[0-9])'; + '[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 only allowing for
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 Some valid examples are: 2001:DB8::1:6544 and
2001:DB8::5eb1:791:6b37:17958"; 2001:DB8::5eb1:791:6b37:17958";
skipping to change at page 17, line 16 skipping to change at page 17, line 16
+ '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 C99. The
format is restricted to be normalized, non-negative, and format is restricted to be normalized, non-negative, and
non-fraction: 0x1.hhhhhhp{+}d or 0X1.HHHHHHP{+}D non-fraction: 0x1.hhhhhhp{+}d, 0X1.HHHHHHP{+}D, or 0x0p0,
where 'h' and 'H' are hexadecimal digits, '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 power of two. Some examples are: 0x0p0, 0x1p10, and
0x1.abcde2p+20"; 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.";
} }
skipping to change at page 33, line 38 skipping to change at page 33, line 38
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 must be updated as defined in RFC XXXX. iana-routing-types must be updated as defined in RFC XXXX.
6. Security Considerations 6. Security Considerations
This document defines common data types using the YANG data modeling This document defines common routing type definitions (i.e., typedef
language. The definitions themselves have no security impact on the statements) using the YANG data modeling language. The definitions
Internet, but the usage of these definitions in concrete YANG modules themselves have no security or privacy impact on the Internet, but
might have. The security considerations spelled out in the YANG the usage of these definitions in concrete YANG modules might have.
specification [RFC7950] apply for this document as well. The security considerations spelled out in the YANG specification
[RFC7950] apply for this document as well.
7. Acknowledgements 7. Acknowledgements
The Routing Area Yang Architecture design team members included Acee The Routing Area Yang Architecture design team members included Acee
Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries, Lindem, Anees Shaikh, Christian Hopps, Dean Bogdanovic, Ebben Aries,
Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu. Lou Berger, Qin Wu, Rob Shakir, Xufeng Liu, and Yingzhen Qu.
Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek Thanks to Martin Bjorkland, Tom Petch, Stewart Bryant, and Radek
Krejci for comments on the model and document text. Thanks to Jeff Krejci for comments on the model and document text. Thanks to Jeff
Haas and Robert Raszuk for suggestions for additional common routing Haas and Robert Raszuk for suggestions for additional common routing
 End of changes. 30 change blocks. 
37 lines changed or deleted 38 lines changed or added

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