Softwire Working Group Q. Sun
Internet-Draft H. Wang
Intended status: Standards Track Y. Cui
Expires: April 23, 2015 Tsinghua University
I. Farrer
Deutsche Telekom AG
October 20, 2014
YANG Data Model for IPv4-in-IPv6 Softwire
draft-sun-softwire-yang-00
Abstract
This document defines a YANG data model for the configuration and
management of IPv4-in-IPv6 Softwire Concentrators containing a
Network Configuration Protocol (NETCONF) server. The models cover
A+P [RFC6346], encapsulation based softwires.
Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
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
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 23, 2015.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Sun, et al. Expires April 23, 2015 [Page 1]
Internet-Draft YANG for softwire October 2014
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 3
2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Common . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Lightweight 4over6 . . . . . . . . . . . . . . . . . . . 4
2.3. MAP-E . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Softwire YANG Data Model . . . . . . . . . . . . . . . . . . 4
3.1. Common Data Tree . . . . . . . . . . . . . . . . . . . . 4
3.2. Lightweight 4over6 Data Tree . . . . . . . . . . . . . . 4
3.3. MAP-E Data Tree . . . . . . . . . . . . . . . . . . . . . 5
4. Softwire YANG Module . . . . . . . . . . . . . . . . . . . . 7
5. Security Considerations . . . . . . . . . . . . . . . . . . . 14
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 15
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 15
8.1. Normative References . . . . . . . . . . . . . . . . . . 15
8.2. Informative References . . . . . . . . . . . . . . . . . 15
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction
The IETF Softwire Working Group has developed several IPv4-in-IPv6
Softwire mechanisms for different scenarios. This document defines a
YANG data model that can be used to configure and manage the IPv4-in-
IPv6 Softwire Concentrator (Border Router).
Due to the inherent similarities of the data plane forwarding, the
YANG models that are described in this document are for Lightweight
4o6 [I-D.ietf-softwire-lw4over6] and MAP-E [I-D.ietf-softwire-map].
DISCUSSION POINT: Should the draft be extended to include MAP-T, 4rd
and DS-Lite?
The models define several containers. Container "softwire-config"
holds a collection of YANG definitions common to all softwire
configuration. Container "softwire-state" holds YANG definitions for
Sun, et al. Expires April 23, 2015 [Page 2]
Internet-Draft YANG for softwire October 2014
the operational state of the Softwire Concentrator.
The softwire mechanism specifics each have their own indivial YANG
modules:
o Lightweight 4over6
o MAP-E
This approach has been taken so that the model can be easily extended
in the future to support addional softwire mechanism, should this be
necessary.
1.1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
The reader should be familiar with the terms define by the IETF
Softwire working group, and relevant documents and the YANG data
modelling language [RFC6020].
1.2. Tree Diagram
The meaning if the symbols in these diagrams is as follows:
o Brackets "[" and "]" enclose list keys.
o Parentheses "(" and ")" enclose choice and case nodes, and case
nodes are also marked with a colon (":").
o Symbols after data node names: "?" means an optional node, and "*"
denotes a list and leaf-list.
o Abbreviations before data node names: "rw" means configuration
data (read-write), and "ro" means state data (read-only).
2. Objectives
2.1. Common
This YANG model intends to abstract the shared features of different
Concentrators such as softwire type, maximum number of softwires,
etc.
Since different concentrators have specialised functions, the
following sections describe the model objectives for those solutions.
Sun, et al. Expires April 23, 2015 [Page 3]
Internet-Draft YANG for softwire October 2014
The following model is the root of the softwire YANG model. All
functions are listed, but the YANG model uses the "feature" statement
to distinguish different softwire mechanisms.
2.2. Lightweight 4over6
The IPv4-IPv6 address binding information needs to be configured to
Lightweight AFTR so that the state synchronisation can be achieved
between the provisioning system and the lwAFTR.
2.3. MAP-E
The provisioning system or administrator needs to configure the
corret MAP rules on the MAP BR.
3. Softwire YANG Data Model
3.1. Common Data Tree
Figure 1 below describes the softwire data model which is common
between all of the different softwire mechanisms:
+--rw softwire-config
| +--rw enabled? boolean
| +--rw name? string
| +--rw description? string
| +--rw softwire-num-threshold uint32
| +--rw tunnel-mtu uint32
| +--rw lw4over6
| +--rw map-e
+--ro softwire-state
+--ro enabled? boolean
+--ro name? string
+--rw description? string
+--ro tunnel-mtu uint32
+--ro lw4over6
+--ro map-e
Figure 1: Softwire Common Data Model Structure
The mechanism specific models for lw4o6 and MAP-E are described in
detail in the following sections.
3.2. Lightweight 4over6 Data Tree
Figure 2 below defines the softwire data model for Lightweight
4over6:
Sun, et al. Expires April 23, 2015 [Page 4]
Internet-Draft YANG for softwire October 2014
+--rw softwire-config
| +--...
| +--rw lw4over6
| +--rw lwaftrs
| +--rw lwaftr* [id]
| +--rw id uint32
| +--rw lwaftr-ipv6-addr inet:ipv6-address
| +--rw binding-table
| +--rw binding-entry* [id]
| +--rw id uint32
| +--rw binding-ipv4-addr inet:ipv4-address
| +--rw port-set
| | +--rw offset uint8
| | +--rw psid-len uint8
| | +--rw psid inet:port-number
| +--rw binding-ipv6-addr inet:ipv6-address
| +--rw active boolean
+--ro softwire-state
+--...
+--ro lw4over6
+--ro lwaftrs
+--ro lwaftr* [id]
+--ro id uint32
+--ro lwaftr-ipv6-addr inet:ipv6-address
+--ro binding-table
+--ro binding-entry* [id]
+--ro id uint32
+--ro binding-ipv4-addr inet:ipv4-address
+--ro port-set
| +--ro offset uint8
| +--ro psid-len uint8
| +--ro psid inet:port-number
+--ro binding-ipv6-addr inet:ipv6-address
+--ro active boolean
Figure 2: Softwire Lightweight 4over6 Data Model Structure
Node that the "active" item is used to determine whether the binding
entry should be deleted.
3.3. MAP-E Data Tree
Figure 3 below defines the softwire data model for MAP-E:
Sun, et al. Expires April 23, 2015 [Page 5]
Internet-Draft YANG for softwire October 2014
+--rw softwire-config
| +--...
| +--rw map-e
| +--rw map-brs
| +--rw map-br* [id]
| +--rw id unit32
| +--rw br-ipv6-addr inet:ipv6-address
| +--rw map-rule-table
| +--rw map-rule-entry* [id]
| +--rw id uint8
| +--rw IPv6-prefix inet:ipv6-address
| +--rw IPv6-prefix-len uint8
| +--rw IPv4-prefix inet:ipv4-address
| +--rw IPv4-prefix-len uint8
| +--rw port-set
| | +--rw offset uint8
| | +--rw psid-len uint8
| | +--rw psid inet:port-number
| +--rw ea-len uint8
| +--rw active boolean
+--ro softwire-state
+--...
+--ro map-e
+--ro map-brs
+--ro map-br* [id]
+--ro id uint32
+--ro br-ipv6-addr inet:ipv6-address
+--ro map-rule-table
+--ro map-rule-entry* [id]
| +--ro id uint8
| +--ro IPv6-prefix inet:ipv6-address
| +--ro IPv6-prefix-len uint8
| +--ro IPv4-prefix inet:ipv4-address
| +--ro IPv4-prefix-len uint8
| +--ro port-set
| | +--ro offset uint8
| | +--ro psid-len uint8
| | +--ro psid inet:port-number
| +--ro ea-len uint8
| +--ro active boolean
+--ro active-map-rule-num uint8
Figure 3: Softwire MAP-E Data Model Structure
Sun, et al. Expires April 23, 2015 [Page 6]
Internet-Draft YANG for softwire October 2014
4. Softwire YANG Module
This module imports typedefs from [RFC6991].
<CODE BEGINS> file "ietf-softwire@2014-10-20.yang"
module softwire {
namespace "urn:ietf:params:xml:ns:yang:softwire";
prefix "softwire";
import ietf-inet-types { prefix inet; }
organization "softwire";
contact
"
Qi Sun sunqi@csnet1.cs.tsinghua.edu.cn
Hao Wang wangh13@mails.tsinghua.edu.cn
Yong Cui yong@csnet1.cs.tsinghua.edu.cn
Ian Farrer ian.farrer@telekom.de
";
description
"This document defines a YANG data model that can be used to
configure and manage softwire concentrators.
Copyright (c) 2014 IETF Trust and the persons identified
as authors of the code. All rights reserved.
This version of this YANG module is part of RFC XXX; see the RFC
itself for full legal notices.";
revision 2014-10-20 {
description
"Initial revision.";
}
/*
* Typedef
*/
/*
* Features
*/
feature lw4over6 {
description
"Lightweight 4over6 moves the Network Address and Port
Sun, et al. Expires April 23, 2015 [Page 7]
Internet-Draft YANG for softwire October 2014
Translation (NAPT) function from the centralized DS-Lite tunnel
concentrator to the tunnel client located in the Customer
Premises Equipment (CPE). This removes the requirement for a
Carrier Grade NAT function in the tunnel concentrator and
reduces the amount of centralized state that must be held to a
per-subscriber level. In order to delegate the NAPT function
and make IPv4 Address sharing possible, port-restricted IPv4
addresses are allocated to the CPEs.";
reference
"I-D.ietf-softwire-lw4over6";
}
feature map-e {
description
"MAP-E is a mechanism for transporting IPv4 packets across an
IPv6 network using IP encapsulation, and a generic mechanism
for mapping between IPv6 addresses and IPv4 addresses and
transport layer ports.";
reference
"I-D.ietf-softwire-map";
}
/*
* Grouping
*/
grouping port-set {
description
"A range of transport layer ports.";
leaf offset {
type uint8;
default "0";
description
"The number of offset bits.";
}
leaf psid-len {
type uint8;
description
"The length of Port Set Identifier (PSID).";
}
leaf psid {
type inet:port-number;
description
"Algorithmically identifies a set of ports.";
}
}
grouping binding-table {
Sun, et al. Expires April 23, 2015 [Page 8]
Internet-Draft YANG for softwire October 2014
description
"The lwAFTR maintains an address binding table containing the
binding between the lwB4's IPv6 address, the allocated IPv4
address and restricted port-set.";
list binding-entry {
key "id";
leaf id {
type uint32;
}
leaf binding-ipv4-addr {
type inet:ipv4-address;
description
"The IPv4 address assigned to a lwB4, which is used as the
IPv4 External Address for lwB4 local NAPT44. One of three
elemnts constructing a binding entry.";
}
container port-set {
uses port-set;
}
leaf binding-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of the lwB4, which is used to bind the
IPv4 address and port-set.";
}
leaf active {
type boolean;
description
"Used to delete the inactive binding-entries.";
}
}
}
grouping map-rule-table {
description
"The (conceptual) table containing rule Information for
a specific mapping rule. It can also be used for row creation.";
list map-rule-entry {
key "id";
leaf id {
type uint8;
}
leaf IPv6-prefix {
type inet:ipv6-address;
description
"The IPv6 prefix defined in the mapping rule which will be
assigned to CE.";
}
Sun, et al. Expires April 23, 2015 [Page 9]
Internet-Draft YANG for softwire October 2014
leaf IPv6-prefix-len {
type uint8;
description
"The length of the IPv6 prefix defined in the mapping rule.
As a parameter for the mapping rule, it will be also assigned
to CE.";
}
leaf IPv4-prefix {
type inet:ipv4-address;
description
"The IPv4 prefix defined in the mapping rule which will be
assigned to CE.";
}
leaf IPv4-prefix-len {
type uint8;
description
"The length of the IPv4 prefix defined in the mapping
rule. As a parameter for the mapping rule, it will be also
assigned to CE.";
}
container port-set {
uses port-set;
}
leaf ea-len {
type uint8;
description
"The length of the Embedded-Address (EA) defined in
mapping rule which will be assigned to CE.";
}
leaf active {
type boolean;
description
"Used to delete inactive map-rule-entries.";
}
}
}
/*
* Configuration Data Nodes
*/
container softwire-config {
description
"The configuration data for concentrators in softwire. ";
leaf enabled {
type boolean;
default "true";
description
Sun, et al. Expires April 23, 2015 [Page 10]
Internet-Draft YANG for softwire October 2014
"Enable/disable the Softwire concentrator function.";
}
leaf name {
type string;
description
"The name of the softwire concentrator.";
}
leaf description {
type string;
description
"A textual description of the softwire concentrator.";
}
leaf softwire-num-threshold {
type uint32;
description
"The maximum number of tunnels that can be created on
the concentrator.";
}
leaf tunnel-mtu {
type uint32;
description
"The MTU of tunnel payload on the softwire concentrator.";
}
container lw4over6 {
if-feature lw4over6;
description
"Indicate this device supports the Lightweight 4over6 function.
Devices advertise the lw4over6 feature through the capability
exchange mechanism when a NETCONF session is established.";
container lwaftrs {
description
"An AFTR element (Address Family Transition Router element
[RFC6333]), which supports Lightweight 4over6 extension.
An lwAFTR is an IPv4-in-IPv6 tunnel endpoint which maintains
per-subscriber address binding only and does not perform a
NAPT44 function.";
list lwaftr {
key "id";
leaf id {
type uint32;
}
leaf lwaftr-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of the lwAFTR.";
}
container binding-table {
uses binding-table;
Sun, et al. Expires April 23, 2015 [Page 11]
Internet-Draft YANG for softwire October 2014
}
}
}
}
container map-e {
if-feature map-e;
description
"Indicate the devices support the MAP-E function. Devices
advertise the map-e feature through the capability exchange
mechanism when a NETCONF session is established.";
container map-brs {
description
"A MAP enabled router managed by the service provider at
the edge of a MAP domain.
A Border Relay router has at least an IPv6-enabled interface
and an IPv4 interface connected to the native IPv4 network.
A MAP BR may also be referred to simply as a "BR" within the
context of MAP.";
list map-br {
key "id";
leaf id {
type uint32;
}
leaf br-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of the Border Router.";
}
container map-rule-table {
uses map-rule-table;
}
}
}
}
}
/*
* Operational state Data Nodes
*/
container softwire-state {
config false;
description
"The operational state data for concentrators in softwire. ";
leaf enabled {
type boolean;
description
"Indicate if the Softwire concentrator function is enabled/
Sun, et al. Expires April 23, 2015 [Page 12]
Internet-Draft YANG for softwire October 2014
disbaled.";
}
leaf name {
type string;
description
"The name of the softwire concentrator.";
}
leaf description {
type string;
description
"A textual description of the softwire concentrator.";
}
leaf tunnel-mtu {
type uint32;
description
"The MTU of tunnel payload on the softwire concentrator.";
}
container lw4over6 {
if-feature lw4over6;
description
"Indicate the device support the Lightweight 4over6 function.
Device advertise the lw4over6 feature through the capability
exchange mechanism when a NETCONF session is established.";
container lwaftrs {
description
"An AFTR element (Address Family Transition Router element
[RFC6333]), which supports Lightweight 4over6 extension.
An lwAFTR is an IPv4-in-IPv6 tunnel endpoint which maintains
per-subscriber address binding only and does not perform a
NAPT44 function.";
list lwaftr {
key "id";
leaf id {
type uint32;
}
leaf lwaftr-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of the lwAFTR.";
}
container binding-table {
uses binding-table;
}
}
}
}
container map-e {
Sun, et al. Expires April 23, 2015 [Page 13]
Internet-Draft YANG for softwire October 2014
if-feature map-e;
description
"Indicate the device support the MAP-E function. Device
advertise the map-e feature through the capability exchange
mechanism when a NETCONF session is established.";
container map-brs {
description
"A MAP enabled router managed by the service provider at
the edge of a MAP domain.
A Border Relay router has at least an IPv6-enabled interface
and an IPv4 interface connected to the native IPv4 network.
A MAP BR may also be referred to simply as a "BR" within the
context of MAP.";
list map-br {
key "id";
leaf id {
type uint32;
}
leaf br-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of the Border Router.";
}
container map-rule-table {
uses map-rule-table;
leaf active-map-rule-num {
type uint8;
description
"The number of map rules which are active.";
}
}
}
}
}
}
}
<CODE ENDS>
5. Security Considerations
TBD
6. IANA Considerations
TBD
Sun, et al. Expires April 23, 2015 [Page 14]
Internet-Draft YANG for softwire October 2014
7. Acknowledgements
The authors would like to thank Lishan Li for her contributions to
this work.
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A.
Bierman, "Network Configuration Protocol (NETCONF)", RFC
6241, June 2011.
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991,
July 2013.
8.2. Informative References
[I-D.ietf-softwire-lw4over6]
Cui, Y., Qiong, Q., Boucadair, M., Tsou, T., Lee, Y., and
I. Farrer, "Lightweight 4over6: An Extension to the DS-
Lite Architecture", draft-ietf-softwire-lw4over6-11 (work
in progress), October 2014.
[I-D.ietf-softwire-map]
Troan, O., Dec, W., Li, X., Bao, C., Matsushima, S.,
Murakami, T., and T. Taylor, "Mapping of Address and Port
with Encapsulation (MAP)", draft-ietf-softwire-map-11
(work in progress), October 2014.
[I-D.ietf-softwire-map-dhcp]
Mrugalski, T., Troan, O., Farrer, I., Perreault, S., Dec,
W., Bao, C., leaf.yeh.sdo@gmail.com, l., and X. Deng,
"DHCPv6 Options for configuration of Softwire Address and
Port Mapped Clients", draft-ietf-softwire-map-dhcp-09
(work in progress), October 2014.
[RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
Stack Lite Broadband Deployments Following IPv4
Exhaustion", RFC 6333, August 2011.
Sun, et al. Expires April 23, 2015 [Page 15]
Internet-Draft YANG for softwire October 2014
Authors' Addresses
Qi Sun
Tsinghua University
Beijing 100084
P.R. China
Phone: +86-10-6278-5822
Email: sunqi@csnet1.cs.tsinghua.edu.cn
Hao Wang
Tsinghua University
Beijing 100084
P.R. China
Phone: +86-10-6278-5822
Email: wangh13@mails.tsinghua.edu.cn
Yong Cui
Tsinghua University
Beijing 100084
P.R. China
Phone: +86-10-6260-3059
Email: yong@csnet1.cs.tsinghua.edu.cn
Ian Farrer
Deutsche Telekom AG
CTO-ATI,Landgrabenweg 151
Bonn, NRW 53227
Germany
Email: ian.farrer@telekom.de
Sun, et al. Expires April 23, 2015 [Page 16]