YANG Data Model for IPv4-in-IPv6 Softwire
draft-sun-softwire-yang-01
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
The information below is for an old version of the document.
| Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
|
|
|---|---|---|---|
| Authors | Qi Sun , Hao Wang , Yong Cui , Ian Farrer , Mohamed Boucadair | ||
| Last updated | 2014-12-25 | ||
| Replaced by | draft-ietf-softwire-yang, draft-ietf-softwire-yang, draft-ietf-softwire-yang, draft-ietf-softwire-yang, RFC 8676 | ||
| RFC stream | (None) | ||
| Formats | |||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-sun-softwire-yang-01
Softwire Working Group Q. Sun
Internet-Draft H. Wang
Intended status: Standards Track Y. Cui
Expires: June 28, 2015 Tsinghua University
I. Farrer
Deutsche Telekom AG
M. Boucadair
France Telecom
December 25, 2014
YANG Data Model for IPv4-in-IPv6 Softwire
draft-sun-softwire-yang-01
Abstract
This document defines a YANG data model for the configuration and
management of IPv4-in-IPv6 Softwire Border Routers and Customer
Premises Equipment. It covers Lightweight 4over6, MAP-E and MAP-T
Softwire mechanisms.
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 June 28, 2015.
Sun, et al. Expires June 28, 2015 [Page 1]
Internet-Draft YANG for softwire December 2014
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
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. YANG Modelling of NAT44 Functionality . . . . . . . . . . 4
2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Common . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. Lightweight 4over6 AFTR . . . . . . . . . . . . . . . . . 4
2.3. Lightweight 4over6 B4 . . . . . . . . . . . . . . . . . . 4
2.4. MAP-E . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5. MAP-T . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Softwire YANG Tree Diagrams . . . . . . . . . . . . . . . . . 5
3.1. Common Tree Diagrams . . . . . . . . . . . . . . . . . . 5
3.2. Lightweight 4over6 AFTR Tree Diagrams . . . . . . . . . . 5
3.3. Lightweight 4over6 B4 Tree Diagrams . . . . . . . . . . . 7
3.4. MAP-E Tree Diagrams . . . . . . . . . . . . . . . . . . . 9
3.5. MAP-T Tree Diagrams . . . . . . . . . . . . . . . . . . . 11
4. Softwire YANG Model . . . . . . . . . . . . . . . . . . . . . 12
5. Example of Configure Lw4over6 Binding-Table . . . . . . . . . 26
6. Security Considerations (TBD) . . . . . . . . . . . . . . . . 27
7. IANA Considerations (TBD) . . . . . . . . . . . . . . . . . . 27
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 27
9.1. Normative References . . . . . . . . . . . . . . . . . . 28
9.2. Informative References . . . . . . . . . . . . . . . . . 28
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 29
1. Introduction
The IETF Softwire Working Group has developed several IPv4-in-IPv6
Softwire mechanisms to address various deployment contexts and
constraints. As a companion to the architectural specification
documents, this document focuses on the provisioning aspects for
Sun, et al. Expires June 28, 2015 [Page 2]
Internet-Draft YANG for softwire December 2014
softwire functional elements that are: Border Routers (BRs) and
Customer Premises Equipment (CPEs).
This document defines a YANG data model that can be used for the
configuration and management of IPv4-in-IPv6 Softwire BRs and/or
CPEs. To ensure interoperability in mixed vendor environments, it is
important that the models can be easily reused between different
vendors and implementations.
Due to the inherent similarities of the data plane forwarding, the
configuration and management parameters of the different softwire
mechanisms are defined in the same YANG model. Parameters that are
common to all solutions are abstracted in the common module while
specific parameters are defined in individual modules that are
specific to a given mechanism (see for example,
[I-D.ietf-softwire-unified-cpe]).
Each specific softwire mechanism has their own individual YANG
modules:
o Lightweight 4over6 [I-D.ietf-softwire-lw4over6]
o MAP-E [I-D.ietf-softwire-map]
o MAP-T [I-D.ietf-softwire-map-t]
This model is structured into two root containers:
1. Container "softwire-config" holds the collection of YANG
definitions common to all softwire configuration of BRs and CPEs.
2. Container "softwire-state" holds YANG definitions for the
operational state of the Softwire BRs and CPEs.
This approach has been taken so that the model can be easily extended
in the future to support additional 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 defined in
[I-D.ietf-softwire-lw4over6] [I-D.ietf-softwire-map]
[I-D.ietf-softwire-map-t] , and the YANG data modelling language
[RFC6020].
Sun, et al. Expires June 28, 2015 [Page 3]
Internet-Draft YANG for softwire December 2014
A simplified graphical representation of the data model is provided
in this document. [RFC6087] provides definitions of the symbols used
in these diagrams.
1.2. YANG Modelling of NAT44 Functionality
This documented model does not include NAT-specific provisioning
parameters other than the external IP address and port set which a
softwire client may use for NAT44. Additional NAT-specific
considerations are out of scope.
2. Objectives
This document defines a YANG data model that can be used to configure
and manage BRs and CPEs for the following IPv4-in-IPv6 Softwire
mechanisms: Lightweight 4over6, MAP-E and MAP-T.
For the lightweight 4over6, the configure and manage information of
B4 (CPE) and AFTR (BR) are different. The lw4o6 AFTRs needs to
maintain the binding table of B4s. The lw4o6 B4s need to maintain
the NAPT table of hosts.
For the MAP-T and MAP-T, CPE and BR both need to maintain the map-
rule table. Thus, there is no need to distinguish BR and CPE.
2.1. Common
This common model abstracts the shared features of different BRs and
CPEs such as softwire type, maximum number of softwires, etc.
The following sections of the document are structured with the root
of the softwire YANG model (common to all mechanisms) described
first. The subsequent sections describe the models relevant to the
different softwire mechanisms. All functions are listed, but the
YANG models use the "feature" statement to distinguish among the
different softwire mechanisms.
2.2. Lightweight 4over6 AFTR
The lw4over6 AFTR holds configuration for IPv4-IPv6 address bindings.
This is used for the forwarding of traffic originating from lwB4s.
2.3. Lightweight 4over6 B4
The lw4over6 B4 is configured with the relevant parameters for
establishing the IPv4 in IPv6 tunnel including an IPv6 address for
the lwAFTR and the IPv4 configuration for NAPT44.
Sun, et al. Expires June 28, 2015 [Page 4]
Internet-Draft YANG for softwire December 2014
2.4. MAP-E
MAP-E elements (BR and CPE) are provisioned with the MAP rules
necessary for defining MAP domains and forwarding rules.
2.5. MAP-T
MAP-E elements (BR and CPE) are provisioned with the MAP rules
necessary for defining MAP domains and forwarding rules. MAP-T CPEs
an additional "ipv6-prefix" parameter is also configured.
3. Softwire YANG Tree Diagrams
3.1. Common Tree Diagrams
Figure 1 describes the softwire data model which is common to all of
the different softwire mechanisms listed in Section 1:
+--rw softwire-config
| +--rw enable boolean
| +--rw name? string
| +--rw description? string
| +--rw tunnel-mtu uint32
| +--rw lw4over6-aftr
| +--rw lw4over6-b4
| +--rw map-e
| +--rw map-t
|
+--ro softwire-state
+--ro enable boolean
+--ro name? string
+--ro description? string
+--ro tunnel-mtu uint32
+--ro lw4over6-aftr
+--ro lw4over6-b4
+--ro map-e
+--ro map-t
Figure 1: Softwire Common Data Model Structure
The mechanism specific models for lw4over6-aftr, lw4over6-b4, MAP-E
and MAP-T are described in detail in the following sections.
3.2. Lightweight 4over6 AFTR Tree Diagrams
Figure 2 defines the softwire data model for Lightweight 4over6 AFTR:
Sun, et al. Expires June 28, 2015 [Page 5]
Internet-Draft YANG for softwire December 2014
+--rw softwire-config
| +--...
| +--rw lw4over6-aftr
| +--rw enable boolean
| +--rw lw4over6-aftr-devices
| +--rw lw4over6-aftr-device* [id]
| +--rw id uint32
| +--rw softwire-num-threshold uint32
| +--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 yang:hex-string
| | +--rw psid-len uint8
| +--rw binding-ipv6-addr inet:ipv6-address
| +--rw binding-ipv6-prefix inet:ipv6-prefix
| +--rw active boolean
| +--rw lifetime yang:timestamp
|
+--ro softwire-state
+--...
+--ro lw4over6-aftr
+--ro enable boolean
+--ro lw4over6-aftr-devices
+--ro lw4over6-aftr-device* [id]
+--ro id uint32
+--ro active-softwire-num uint32
+--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 yang:hex-string
| +--ro psid-len uint8
+--ro binding-ipv6-addr inet:ipv6-address
+--ro binding-ipv6-prefix inet:ipv6-prefix
+--ro active boolean
+--ro lifetime yang:timestamp
Figure 2: Softwire Lightweight 4over6 AFTR Data Model Structure
o Node "softwire-num-threshold" is used to set the maximum number of
tunnels that can be created on the lw4over6 device simultaneously.
o Node "active-softwire-num" is used to present the number of
Sun, et al. Expires June 28, 2015 [Page 6]
Internet-Draft YANG for softwire December 2014
tunnels currently provisioned on the device.
o Node "offset" is used to set the number of offset bits in the
PSID.
o Node "psid" is used to algorithmically identify a set of ports
exclusively for a specific softwire.
o Node "active" is used to add or delete a particular binding-entry.
o Node "lifetime" is used to define the lifetime for a particular
binding-table. The value of this parameter is likely to less than
the lease time returned in DHCP for instance.
3.3. Lightweight 4over6 B4 Tree Diagrams
Figure 3 defines the softwire data model for a Lightweight 4over6 B4
element:
Sun, et al. Expires June 28, 2015 [Page 7]
Internet-Draft YANG for softwire December 2014
+--rw softwire-config
| +--...
| +--rw lw4over6-b4
| +--rw enable boolean
| +--rw lw4over6-b4-devices
| +--rw lw4over6-b4-device* [id]
| +--rw id uint32
| +--rw b4-ipv6-addr-format boolean
| +--rw binding-ipv4-addr inet:ipv4-address
| +--rw port-set
| | +--rw offset uint8
| | +--rw psid yang:hex-string
| | +--rw psid-len uint8
| +--rw hint-ipv6-prefix inet:ipv6-prefix
| +--rw aftr-ipv6-addr inet:ipv6-address
| +--rw nat-table
| +--rw nat-entry* [id]
| +--...
|
+--ro softwire-state
+--...
+--ro lw4over6-b4
+--ro enable boolean
+--ro lw4over6-b4-devices
+--ro lw4over6-b4-device* [id]
+--ro id uint32
+--ro b4-ipv6-addr-format boolean
+--ro binding-ipv4-addr inet:ipv4-address
+--ro port-set
| +--ro offset uint8
| +--ro psid yang:hex-string
| +--ro psid-len uint8
+--ro hint-ipv6-prefix inet:ipv6-prefix
+--ro aftr-ipv6-addr inet:ipv6-address
+--ro nat-table
+--ro nat-entry* [id]
+--...
Figure 3: Softwire Lightweight 4over6 B4 Data Model Structure
o Node "b4-ipv6-addr-format" indicates that the default mode for
building the lwB4 IPv6 address is used ([I-D.ietf-softwire-
lw4over6]) if set to "1"; if set to "0", the lwB4 can use any
address from the assigned IPv6 prefix. The default value is "1".
o Node "binding-ipv4-addr" is used to allocate an IPv4 address to
the lwB4.
Sun, et al. Expires June 28, 2015 [Page 8]
Internet-Draft YANG for softwire December 2014
o Node "offset" is used to set the number of offset bits.
o Node "psid" is used to algorithmically identifies a set of ports
exclusively, it is allocated by vendors and calculated by devices.
o Node "hint-ipv6-prefix" is used to perform a longest prefix match
against the active IPv6 addresses configured on the lwB4 so that a
suitable tunnel source address prefix can be selected.
o Node "active" is used to add or delete a particular binding-entry.
o Node "lifetime" is used to define a lifetime for a particular
binding-table. The value of this parameter is likely to be less
than the lease time returned in DHCP for instance.
o Container "nat-table" is not extended. It means that the focus is
on the provisioning of the external IP address and/or port set;
other NAT-specific considerations are out of scope.
3.4. MAP-E Tree Diagrams
Figure 4 defines the softwire data model for MAP-E:
+--rw softwire-config
| +--...
| +--rw map-e
| +--rw enable boolean
| +--rw map-e-devices
| +--rw map-e-device* [id]
| +--rw id unit32
| +--rw map-rules* [id]
| | +--rw id uint8
| | +--rw map-rule-type enumeration
| | +--rw map-rule-table
| | +--rw map-rule-entry* [id]
| | +--rw id uint8
| | +--rw ipv6-prefix inet:ipv6-prefix
| | +--rw ipv6-prefix-len uint8
| | +--rw ipv4-prefix inet:ipv4-prefix
| | +--rw ipv4-prefix-len uint8
| | +--rw port-set
| | | +--rw offset uint8
| | | +--rw psid yang:hex-string
| | | +--rw psid-len uint8
| | +--rw ea-len uint8
| | +--rw active boolean
| +--rw map-e-cpe
| +--rw cpe-ipv6-prefix inet:ipv6-prefix
Sun, et al. Expires June 28, 2015 [Page 9]
Internet-Draft YANG for softwire December 2014
|
+--ro softwire-state
+--...
+--ro map-e
+--ro enable boolean
+--ro map-e-devices
+--ro map-e-device* [id]
+--ro id uint32
+--ro map-rules* [id]
| +--ro id uint8
| +--ro map-rule-type enumeration
| +--ro map-rule-table
| +--ro map-rule-entry* [id]
| | +--ro id uint8
| | +--ro ipv6-prefix inet:ipv6-prefix
| | +--ro ipv6-prefix-len uint8
| | +--ro ipv4-prefix inet:ipv4-prefix
| | +--ro ipv4-prefix-len uint8
| | +--ro port-set
| | | +--ro offset uint8
| | | +--ro psid yang:hex-string
| | | +--ro psid-len uint8
| | +--ro ea-len boolean
| | +--ro active boolean
| +--ro active-map-rule-num uint8
+--ro map-e-cpe
+--ro cpe-ipv6-prefix inet:ipv6-prefix
Figure 4: Softwire MAP-E Data Model Structure
o Node "map-rule-type" is used to define the type of map rule. The
data type is enumeration, which are "BMR" and "FMR".
o Node "offset" is used to set the number of offset bits.
o Node "psid" is used to algorithmically identify a set of ports
exclusively for a specific softwire.
o Node "ea-len" is used to set the length of the Embedded- Address
(EA), which defined in the mapping rule for a MAP domain.
o Node "active" is used to add or delete a particular map-rule-
entry
o Node "active-map-rule-num" is used to present the number of map-
rule-entries running on the device currently.
Sun, et al. Expires June 28, 2015 [Page 10]
Internet-Draft YANG for softwire December 2014
3.5. MAP-T Tree Diagrams
Figure 5 defines the softwire data model for MAP-T:
+--rw softwire-config
| +--...
| +--rw map-t
| +--rw enable boolean
| +--rw map-t-devices
| +--rw map-t-device* [id]
| +--rw id unit32
| +--rw map-rules* [id]
| | +--rw id uint8
| | +--rw map-rule-type enumeration
| | +--rw map-rule-table
| | +--rw map-rule-entry* [id]
| | +--rw id uint8
| | +--rw ipv6-prefix inet:ipv6-prefix
| | +--rw ipv6-prefix-len uint8
| | +--rw ipv4-prefix inet:ipv4-prefix
| | +--rw ipv4-prefix-len uint8
| | +--rw port-set
| | | +--rw offset uint8
| | | +--rw psid yang:hex-string
| | | +--rw psid-len uint8
| | +--rw ea-len uint8
| | +--rw active boolean
| +--rw map-t-cpe
| +--rw cpe-ipv6-prefix inet:ipv6-prefix
|
+--ro softwire-state
+--...
+--ro map-t
+--ro enable boolean
+--ro map-t-devices
+--ro map-t-device* [id]
+--ro id uint32
+--ro map-rules* [id]
| +--ro id uint8
| +--ro map-rule-type enumeration
| +--ro map-rule-table
| +--ro map-rule-entry* [id]
| | +--ro id uint8
| | +--ro ipv6-prefix inet:ipv6-prefix
| | +--ro ipv6-prefix-len uint8
| | +--ro ipv4-prefix inet:ipv4-prefix
| | +--ro ipv4-prefix-len uint8
| | +--ro port-set
Sun, et al. Expires June 28, 2015 [Page 11]
Internet-Draft YANG for softwire December 2014
| | | +--ro offset uint8
| | | +--ro psid yang:hex-string
| | | +--ro psid-len uint8
| | +--ro ea-len boolean
| | +--ro active boolean
| +--ro active-map-rule-num uint8
+--ro map-t-cpe
+--ro cpe-ipv6-prefix inet:ipv6-prefix
Figure 5: Softwire MAP-T Data Model Structure
o Node "map-rule-type" is used to define the type of map rule. The
data type is enumeration, which are "DMR", "BMR" and "FMR".
o Node "offset" is used to set the number of offset bits.
o Node "psid" is used to algorithmically identify a set of ports
exclusively for a specific softwire.
o Node "ea-len" is used to set the length of the Embedded- Address
(EA), which defined in the mapping rule for a MAP domain.
o Node "active" is used to add or delete a particular map-rule-
entry
o Node "active-map-rule-num" is used to present the number of map-
rule-entries running on the device currently.
4. Softwire YANG Model
This module imports typedefs from [RFC6991].
<CODE BEGINS> file "ietf-softwire@2014-12-14.yang"
module softwire {
namespace "urn:ietf:params:xml:ns:yang:softwire";
prefix "softwire";
import ietf-inet-types { prefix inet; }
import ietf-yang-types { prefix yang; }
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
Sun, et al. Expires June 28, 2015 [Page 12]
Internet-Draft YANG for softwire December 2014
Ian Farrer ian.farrer@telekom.de
Mohamed Boucadair mohamed.boucadair@orange.com
Rajiv Asati rajiva@cisco.com
";
description
"This document defines a YANG data model for the configuration and
management of IPv4-in-IPv6 Softwire Border Routers and Customer Premises
Equipment. It covers Lightweight 4over6, MAP-E and MAP-T Softwire
mechanisms.
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-12-14 {
description
"Initial revision.";
}
/*
* Typedef
*/
/*
* Features
*/
feature lw4over6 {
description
"Lightweight 4over6 moves the Network Address and Port
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 lw4over6-aftr {
if-feature lw4over6;
description
"The AFTRs (BRs) for Lightweight 4over6, so-called lwAFTR.
Sun, et al. Expires June 28, 2015 [Page 13]
Internet-Draft YANG for softwire December 2014
It means 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.";
}
feature lw4over6-b4 {
if-feature lw4over6;
description
"The B4s (CPEs) for Lightweight 4over6, so-called lwB4.
It means A B4 element (Basic Bridging BroadBand element [RFC6333]),
which supports Lightweight 4over6 extensions. An lwB4 is a function
implemented on a dual-stack capable node, (either a directly
connected device or a CPE), that supports port-restricted IPv4
address allocation, implements NAPT44 functionality and creates a
tunnel to an lwAFTR.";
}
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";
}
feature map-e-cpe {
if-feature map-e;
description
"The CPEs for MAP-E.";
}
feature map-t {
description
"MAP-T is a mechanism for transporting IPv4 packets across an
IPv6 network using IP translation, and a generic mechanism
for mapping between IPv6 addresses and IPv4 addresses and
transport layer ports.";
reference
"I-D.ietf-softwire-map-t";
}
feature map-t-cpe {
if-feature map-t;
description
Sun, et al. Expires June 28, 2015 [Page 14]
Internet-Draft YANG for softwire December 2014
"The CPEs for MAP-T.";
}
/*
* Grouping
*/
grouping port-set {
description
"A range of transport layer ports.";
leaf offset {
type uint8;
default "6";
description
"The number of offset bits.";
}
leaf psid {
type yang:hex-string;
description
"Port Set Identifier (PSID), which identifies a set of ports
algorithmically.";
}
leaf psid-len {
type uint8;
description
"The length of PSID.";
}
}
grouping binding-table {
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 {
Sun, et al. Expires June 28, 2015 [Page 15]
Internet-Draft YANG for softwire December 2014
uses port-set {
refine offset {
default "0";
}
}
}
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 binding-ipv6-prefix {
type inet:ipv6-prefix;
description
"The IPv6 prefix of the lwB4.";
}
leaf active {
type boolean;
default "1";
description
"Used to add or delete a particular binding-entry.";
leaf lifetime {
type yang:timestamp;
description
"Lifetime for a binding-entry.";
}
}
}
grouping nat-table {
description
"Grouping 'nat-table' is not extended. It means that we are
focusing on the provisioning of external IP address and port set;
other NAT-specific considerations are out of scope."
}
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-prefix;
Sun, et al. Expires June 28, 2015 [Page 16]
Internet-Draft YANG for softwire December 2014
description
"The IPv6 prefix defined in the mapping rule which will be
assigned to CE.";
}
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-prefix;
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 for a MAP domain. This dictates the sharing
ratio (i.e. Maximum number of CE sharing the same IPv4
address) used in MAP domain.";
}
leaf active {
type boolean;
default "1";
description
"Used to add or delete a particular map-rule-entry.";
}
}
}
grouping map-rules {
list map-rules {
key "id";
leaf id {
Sun, et al. Expires June 28, 2015 [Page 17]
Internet-Draft YANG for softwire December 2014
type uint8;
}
leaf map-rule-type {
type enumeration {
enum "BMR";
enum "FMR";
}
}
container map-rule-table {
uses map-rule-table;
}
}
}
/*
* Configuration Data Nodes
*/
container softwire-config {
description
"The configuration data for devices in Softwire. ";
leaf enable {
type boolean;
default "1";
description
"Enable/disable the Softwire function.";
}
leaf name {
type string;
description
"The name of Softwire.";
}
leaf description {
type string;
description
"A textual description of Softwire.";
}
leaf tunnel-mtu {
type uint32;
description
"The MTU of tunnel payload on the Softwire devices.";
}
container lw4over6-aftr {
if-feature lw4over6-aftr;
description
"Indicate this device supports the lwAFTR function. Devices
advertise the lw4over6-aftr feature through the capability
exchange mechanism when a NETCONF session is established.";
Sun, et al. Expires June 28, 2015 [Page 18]
Internet-Draft YANG for softwire December 2014
leaf enable {
type boolean;
default "1";
description
"Enable/disable the lwAFTR function.";
}
container lw4over6-aftr-devices {
description
"Refer to lwAFTRs.";
list lw4over6-aftr-device {
key "id";
leaf id {
type uint32;
}
leaf softwire-num-threshold {
type uint32;
description
"The maximum number of tunnels that can be created on
the lwAFTR.";
}
container binding-table {
uses binding-table;
}
}
}
}
container lw4over6-b4 {
if-feature lw4over6-b4;
description
"Indicate this device supports the lwB4 function. Devices
advertise the lw4over6-b4 feature through the capability
exchange mechanism when a NETCONF session is established.";
leaf enable {
type boolean;
default "1";
description
"Enable/disable the lwB4 function.";
}
container lw4over6-b4-devices {
description
"Refer to lwB4s.";
list lw4over6-b4-device {
key "id";
leaf id {
type uint32;
}
leaf b4-ipv6-addr-format {
type boolean;
Sun, et al. Expires June 28, 2015 [Page 19]
Internet-Draft YANG for softwire December 2014
default "1";
description
"The format of lwB4 IPv6 address. If set to "1" indicates
that the default mode for building the lwB4 IPv6 address
is used ([I-D.ietf-softwire-lw4over6]); if set to "0", the
lwB4 can use any address from the assigned IPv6 prefix.";
}
leaf binding-ipv4-addr {
type inet:ipv4-address;
description
"The allocated IPv4 address of lwB4, which binding with
the port-set.";
}
container port-set {
uses port-set {
refine offset {
default "0";
}
}
}
leaf hint-ipv6-prefix {
type inet:ipv6-prefix;
description
"'hint-ipv6-prefix' is used to longest prefix match.";
}
leaf aftr-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of lwAFTR.";
}
container nat-table {
uses nat-table;
}
}
}
}
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.";
leaf enable {
type boolean;
default "1";
description
"Enable/disable the MAP-E function.";
}
Sun, et al. Expires June 28, 2015 [Page 20]
Internet-Draft YANG for softwire December 2014
container map-e-devices {
description
"Refer to the MAP-E devices, includes BRs and CPEs.";
list map-e-device {
key "id";
leaf id {
type uint32;
}
uses map-rules;
container map-e-cpe {
if-feature map-e-cpe;
leaf cpe-ipv6-prefix {
type inet:ipv6-prefix;
description
"The IPv6 prefix of the MAP-E CPE.";
}
}
}
}
}
container map-t {
if-feature map-t;
description
"Indicate the devices support the MAP-T function. Devices
advertise the map-t feature through the capability exchange
mechanism when a NETCONF session is established.";
leaf enable {
type boolean;
default "1";
description
"Enable/disable the MAP-T function.";
}
container map-t-devices {
description
"Refer to the MAP-T devices, includes BRs and CPEs.";
list map-t-device {
key "id";
leaf id {
type uint32;
}
uses map-rules {
refine map-rule-type {
type enumeration {
enum "DMR";
enum "BMR";
enum "FMR";
}
}
Sun, et al. Expires June 28, 2015 [Page 21]
Internet-Draft YANG for softwire December 2014
}
container map-t-cpe {
if-feature map-t-cpe;
leaf cpe-ipv6-prefix {
type inet:ipv6-prefix;
description
"The IPv6 prefix of the MAP-T CPE.";
}
}
}
}
}
}
/*
* Operational state Data Nodes
*/
container softwire-state {
config false;
description
"The operational state data for devices in softwire. ";
leaf enable {
type boolean;
description
"Status of the Softwire function.";
}
leaf name {
type string;
description
"The name of the softwire devices.";
}
leaf description {
type string;
description
"A textual description of the softwire devices.";
}
leaf tunnel-mtu {
type uint32;
description
"The MTU of tunnel payload on the softwire devices.";
}
container lw4over6-aftr {
if-feature lw4over6-aftr;
description
"Indicate this device supports the lwAFTR function. Devices
advertise the lw4over6-aftr feature through the capability
exchange mechanism when a NETCONF session is established.";
Sun, et al. Expires June 28, 2015 [Page 22]
Internet-Draft YANG for softwire December 2014
leaf enable {
type boolean;
description
"Enable/disable the lwAFTR function.";
}
container lw4over6-aftr-devices {
description
"Refer to lwAFTRs.";
list lw4over6-aftr-device {
key "id";
leaf id {
type uint32;
}
leaf active-softwire-num {
type uint32;
description
"The number of tunnels running on the lw4over6 device.";
}
container binding-table {
uses binding-table;
}
}
}
}
container lw4over6-b4 {
if-feature lw4over6-b4;
description
"Indicate this device supports the lwB4 function. Devices
advertise the lw4over6-b4 feature through the capability
exchange mechanism when a NETCONF session is established.";
leaf enable {
type boolean;
description
"Enable/disable the lwB4 function.";
}
container lw4over6-b4-devices {
description
"Refer to lwB4s.";
list lw4over6-b4-device {
key "id";
leaf id {
type uint32;
}
leaf b4-ipv6-addr-format {
type boolean;
description
"The format of lwB4 IPv6 address. If set to "1" indicates
that the default mode for building the lwB4 IPv6 address
Sun, et al. Expires June 28, 2015 [Page 23]
Internet-Draft YANG for softwire December 2014
is used ([I-D.ietf-softwire-lw4over6]); if set to "0", the
lwB4 can use any address from the assigned IPv6 prefix.";
}
leaf binding-ipv4-addr {
type inet:ipv4-address;
description
"The allocated IPv4 address of lwB4, which binding with
the port-set.";
}
container port-set {
uses port-set;
}
leaf hint-ipv6-prefix {
type inet:ipv6-prefix;
description
"'hint-ipv6-prefix' is used to longest prefix match.";
}
leaf aftr-ipv6-addr {
type inet:ipv6-address;
description
"The IPv6 address of lwAFTR.";
}
container nat-table {
uses nat-table;
}
}
}
}
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.";
leaf enable {
type boolean;
description
"Status of the MAP-E function.";
}
container map-e-devices {
description
"Refer to the MAP-E devices, includes BRs and CPEs.";
list map-e-device {
key "id";
leaf id {
type uint32;
}
leaf map-rule-type {
Sun, et al. Expires June 28, 2015 [Page 24]
Internet-Draft YANG for softwire December 2014
type enumeration {
enum "BMR";
enum "FMR";
}
}
container map-rule-table {
uses map-rule-table;
}
container map-e-cpe {
if-feature map-e-cpe;
leaf cpe-ipv6-prefix {
type cpe-ipv6-prefix;
description
"The IPv6 prefix of the MAP-E CPE.";
}
}
}
}
}
container map-t {
if-feature map-t;
description
"Indicate the devices support the MAP-T function. Devices
advertise the map-t feature through the capability exchange
mechanism when a NETCONF session is established.";
leaf enable {
type boolean;
description
"Status of the MAP-T function.";
}
container map-t-devices {
description
"Refer to the MAP-T devices, includes BRs and CPEs.";
list map-t-device {
key "id";
leaf id {
type uint32;
}
leaf map-rule-type {
type enumeration {
enum "DMR";
enum "BMR";
enum "FMR";
}
}
container map-rule-table {
uses map-rule-table;
}
Sun, et al. Expires June 28, 2015 [Page 25]
Internet-Draft YANG for softwire December 2014
container map-t-cpe {
if-feature map-t-cpe;
leaf dmr-ipv6-prefix {
type inet:ipv6-prefix;
description
"The IPv6 prefix of the DMR (default mapping rule).";
}
leaf cpe-ipv6-prefix {
type inet:ipv6-prefix;
description
"The IPv6 prefix of the MAP-T CPE.";
}
}
}
}
}
}
}
<CODE ENDS>
5. Example of Configure Lw4over6 Binding-Table
The lwAFTR maintains an address binding table which contains the
following 3-tuples:
o IPv6 Address for a single lwB4
o Public IPv4 Address
o Restricted port-set
The entry has two functions: the IPv6 encapsulation of inbound IPv4
packets destined to the lwB4 and the validation of outbound IPv4-in-
IPv6 packets received from the lwB4 for de-capsulation.
Requirement: Add an entry that maintain the relationship between
3-tuples of lwB4 (2001::1) in binding-table, which on the lwAFTR
(2001::2). The data value of this 3-tuples are '2001::1',
'123.1.1.1' and '1234' respectively.
Here is the example binding-table configuration xml:
Sun, et al. Expires June 28, 2015 [Page 26]
Internet-Draft YANG for softwire December 2014
<rpc message-id="101" xmlns:nc="urn:params:xml:ns:yang:ietf-softwire:1.0">
// replace with IANA namespace when assigned.
<edit-config>
<target>
<running/>
</target>
<softwire-config>
<lw4over6-aftr>
<lw4over6-aftr-devices>
<lw4over6-aftr-device>
<aftr-ipv6-addr>2001::2</aftr-ipv6-addr>
<binding-table>
<binding-entry>
<binding-ipv4-addr>123.1.1.1</binding-ipv4-addr>
<port-set>
<psid>1234</psid>
</port-set>
<binding-ipv6-addr>2001::1</binding-ipv6-addr>
<active>1</active>
</binding-entry>
</binding-table>
</lw4over6-aftr-device>
</lw4over6-aftr-devices>
</lw4over6-aftr>
</softwire-config>
Figure 6: Lw4over6 Binding-Table Configuration XML
6. Security Considerations (TBD)
TBD
7. IANA Considerations (TBD)
TBD
8. Acknowledgements
The authors would like to thank Lishan Li and Rajiv Asati for their
contributions to this work.
9. References
Sun, et al. Expires June 28, 2015 [Page 27]
Internet-Draft YANG for softwire December 2014
9.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.
[RFC6021] Schoenwaelder, J., "Common YANG Data Types", RFC 6021,
October 2010.
[RFC6087] Bierman, A., "Guidelines for Authors and Reviewers of YANG
Data Model Documents", RFC 6087, January 2011.
[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.
9.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-13 (work
in progress), November 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-12
(work in progress), November 2014.
[I-D.ietf-softwire-map-t]
Li, X., Bao, C., Dec, W., Troan, O., Matsushima, S., and
T. Murakami, "Mapping of Address and Port using
Translation (MAP-T)", draft-ietf-softwire-map-t-08 (work
in progress), December 2014.
[I-D.ietf-softwire-unified-cpe]
Boucadair, M., Farrer, I., Perreault, S., and S.
Sivakumar, "Unified IPv4-in-IPv6 Softwire CPE", draft-
ietf-softwire-unified-cpe-01 (work in progress), May 2013.
Sun, et al. Expires June 28, 2015 [Page 28]
Internet-Draft YANG for softwire December 2014
[RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual-
Stack Lite Broadband Deployments Following IPv4
Exhaustion", RFC 6333, August 2011.
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
Mohamed Boucadair
France Telecom
Rennes 35000
France
Email: mohamed.boucadair@orange.com
Sun, et al. Expires June 28, 2015 [Page 29]