draft-ietf-rtgwg-routing-types-13.txt   draft-ietf-rtgwg-routing-types-14.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: March 22, 2018 Futurewei Technologies, Inc. Expires: March 23, 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.
September 18, 2017 September 19, 2017
Routing Area Common YANG Data Types Routing Area Common YANG Data Types
draft-ietf-rtgwg-routing-types-13 draft-ietf-rtgwg-routing-types-14
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 March 22, 2018. This Internet-Draft will expire on March 23, 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 3, line 4 skipping to change at page 3, line 4
2. Overview 2. Overview
This document defines the two models for common routing types, ietf- This document defines the two models for common routing types, ietf-
routing-types and iana-routing-types. The only module imports are routing-types and iana-routing-types. The only module imports are
from [RFC6991]. The ietf-routing-types model contains common routing from [RFC6991]. The ietf-routing-types model 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:
router-id router-id
Router Identifiers are commonly used to identify a nodes in Router Identifiers are commonly used to identify nodes in routing
routing and other control plane protocols. An example usage of and other control plane protocols. An example usage of router-id
router-id can be found in [I-D.ietf-ospf-yang]. can be found in [I-D.ietf-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 [I-D.ietf-bess-l2vpn-yang].
ipv6-route-target ipv6-route-target
IPv6 Route Targets (RTs) are similar to standard Route Targets IPv6 Route Targets (RTs) are similar to standard Route Targets
only they IPv6 Address Specific BGP Extended Communities as only 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
descibed in Section 4.3.1 of [RFC4364]. An example usage can be described in Section 4.3.1 of [RFC4364]. An example usage can be
found in [I-D.ietf-idr-bgp-model]. 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 virtual private networks (VPNs). For
example, in [RFC4364], RDs are commonly used to identify example, in [RFC4364], RDs are commonly used to identify
independent VPNs and VRFs, and more generally, to identify independent VPNs and VRFs, and more generally, to identify
multiple routes to the same prefix. An example usage can be found multiple routes to the same prefix. An example usage can be found
in [I-D.ietf-idr-bgp-model]. in [I-D.ietf-idr-bgp-model].
route-origin route-origin
Route Origin is commonly used to indicate the Site of Origin for Route Origin is commonly used to indicate the Site of Origin for
Routng and forwarding (VRF) information, see [RFC4364], in support Routing and forwarding (VRF) information, see [RFC4364], in
of BGP/MPLS IP virtual private networks (VPNs) and BGP/MPLS support of BGP/MPLS IP virtual private networks (VPNs) and BGP/
Ethernet VPNs [RFC7432]. An example usage can be found in MPLS Ethernet VPNs [RFC7432]. An example usage can be found in
[I-D.ietf-bess-l3vpn-yang]. [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 Routng and forwarding (VRF) information, see [RFC4364], Origin for Routing and forwarding (VRF) information, see
in support of virtual private networks (VPNs). IPv6 Route Origins [RFC4364], in support of virtual private networks (VPNs). IPv6
are IPv6 Address Specific BGP Extended Communities as described in Route Origins are IPv6 Address Specific BGP Extended Communities
[RFC5701]. An IPv6 Route Origin is 20 octets and includes an IPv6 as described in [RFC5701]. An IPv6 Route Origin is 20 octets and
address as the global administrator. includes an IPv6 address as the global 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 from 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 [I-D.ietf-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 [I-D.ietf-pim-yang].
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-18.yang" <CODE BEGINS> file "ietf-routing-types@2017-09-19.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-18 { revision 2017-09-19 {
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 11, line 32 skipping to change at page 11, line 32
+ '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))' + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))'
+ ':' + ':'
+ '(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])'; + '[0-5]?[0-9]{0,3}[0-9])';
} }
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 adminstrator. 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";
reference reference
"RFC5701: IPv6 Address Specific BGP Extended Community "RFC5701: IPv6 Address Specific BGP Extended Community
Attribute"; Attribute";
} }
typedef route-target-type { typedef route-target-type {
skipping to change at page 15, line 20 skipping to change at page 15, line 20
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])'; + '[0-5]?[0-9]{0,3}[0-9])';
} }
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 only allowing for as a standard 8-octet route only allowing for
an IPv6 address as the global adminstrator. 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";
reference reference
"RFC5701: IPv6 Address Specific BGP Extended Community "RFC5701: IPv6 Address Specific BGP Extended Community
Attribute"; Attribute";
} }
/*** Collection of types common to multicast ***/ /*** Collection of types common to multicast ***/
skipping to change at page 22, line 38 skipping to change at page 22, line 38
"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-18.yang" <CODE BEGINS> file "iana-routing-types@2017-09-19.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
skipping to change at page 23, line 24 skipping to change at page 23, line 24
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-18 { revision 2017-09-19 {
description "Initial revision."; description "Initial revision.";
reference "RFC TBD: IANA Routing YANG Data Types"; reference "RFC TBD: IANA Routing YANG Data Types";
} }
/*** 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 {
skipping to change at page 27, line 39 skipping to change at page 27, line 39
} }
enum lcaf { enum lcaf {
value 16387; value 16387;
description "LISP Canonical Address Format (LCAF) description "LISP Canonical Address Format (LCAF)
Address Family"; Address Family";
} }
enum bgp-ls { enum bgp-ls {
value 16388; value 16388;
description "Border Gatway Protocol - Link State (BGP-LS) description "Border Gateway Protocol - Link State (BGP-LS)
Address Family"; Address Family";
} }
enum mac-48 { enum mac-48 {
value 16389; value 16389;
description "IEEE 48-bit Media Access Control (MAC) description "IEEE 48-bit Media Access Control (MAC)
Address Family"; Address Family";
} }
enum mac-64 { enum mac-64 {
skipping to change at page 28, line 27 skipping to change at page 28, line 27
} }
enum trill-mac-40 { enum trill-mac-40 {
value 16393; value 16393;
description "TRILL Final 5 octets of 64-bit MAC description "TRILL Final 5 octets of 64-bit MAC
address Address Family"; address Address Family";
} }
enum ipv6-64 { enum ipv6-64 {
value 16394; value 16394;
description "First 8 octects (64-bits) of an IPv6 description "First 8 octets (64-bits) of an IPv6
address Address Family"; 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 "TRILL Remote Bridge (RBridge) Port ID
Address Family"; Address Family";
} }
enum trill-nickname { enum trill-nickname {
skipping to change at page 29, line 28 skipping to change at page 29, line 28
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-enap-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 "Multicast Virtual Private LAN Service
(VPLS) SAFI"; (VPLS) SAFI";
} }
skipping to change at page 32, line 42 skipping to change at page 32, line 42
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 "Subsequent Address Family Identifiers (SAFI) Parameters" and "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 Address Family Identifiers (SAFI) Parameters" registry, a new "enum"
"identity" statement must be added to the iana-routing-types YANG statement must be added to the iana-routing-types YANG module. The
module. The name of the "identity" is the same as the corresponding name of the "enum" is the same as the corresponding address family or
address family or SAFI only it willl be a valid YANG identifier in SAFI only it will be a valid YANG identifier in all lowercase and
all lowercase and with hyphens separating individual words in with hyphens separating individual words in compound identifiers.
compound identifiers. The following substatements to the "identity" The following substatements to the "enum" statement should be
statement should be defined: defined:
"base": Contains the value "address-family" for address families "val": Contains the IANA assigned value corresponding to the
or "bgp-safi" for subsequent address families. address-family or "bgp-safi" 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 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 data types using the YANG data modeling
language. The definitions themselves have no security impact on the language. The definitions themselves have no security impact on the
Internet, but the usage of these definitions in concrete YANG modules Internet, but the usage of these definitions in concrete YANG modules
 End of changes. 21 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/