rfc8676xml2.original.xml | rfc8676.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<?rfc toc="yes"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc compact="yes"?> | ||||
<?rfc tocdepth="6"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" | |||
<?rfc symrefs="yes"?> | category="std" consensus="yes" docName="draft-ietf-softwire-yang-16" number | |||
<?rfc sortrefs="yes"?> | ="8676" ipr="trust200902" | |||
<?rfc autobreaks="no"?> | obsoletes="" updates="" xml:lang="en" tocInclude="true" symRefs="true" | |||
<?rfc subcompact="no"?> | sortRefs="true" version="3"> | |||
<rfc category="std" docName="draft-ietf-softwire-yang-16" ipr="trust200902"> | <!-- xml2rfc v2v3 conversion 2.34.0 --> | |||
<front> | <front> | |||
<title abbrev="YANG Modules for A+P Softwires">YANG Modules for | <title abbrev="YANG Modules for A+P Softwires">YANG Modules for | |||
IPv4-in-IPv6 Address plus Port (A+P) Softwires</title> | IPv4-in-IPv6 Address plus Port (A&wj;+P) Softwires</title> | |||
<seriesInfo name="RFC" value="8676"/> | ||||
<author fullname="Ian Farrer" initials="I." role="editor" surname="Farrer"> | <author fullname="Ian Farrer" initials="I." role="editor" surname="Farrer"> | |||
<organization>Deutsche Telekom AG</organization> | <organization>Deutsche Telekom AG</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>CTO-ATI, Landgrabenweg 151</street> | <street>CTO-ATI, Landgrabenweg 151</street> | |||
<city>Bonn</city> | <city>Bonn</city> | |||
<region>NRW</region> | <region>NRW</region> | |||
<code>53227</code> | <code>53227</code> | |||
<country>Germany</country> | <country>Germany</country> | |||
</postal> | </postal> | |||
<email>ian.farrer@telekom.de</email> | <email>ian.farrer@telekom.de</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Mohamed Boucadair" initials="M." role="editor" surname="Bo | ||||
<author fullname="Mohamed Boucadair" initials="M." role="editor" | ucadair"> | |||
surname="Boucadair"> | ||||
<organization>Orange</organization> | <organization>Orange</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street></street> | <street/> | |||
<city>Rennes</city> | <city>Rennes</city> | |||
<region/> | ||||
<region></region> | ||||
<code>35000</code> | <code>35000</code> | |||
<country>France</country> | <country>France</country> | |||
</postal> | </postal> | |||
<email>mohamed.boucadair@orange.com</email> | <email>mohamed.boucadair@orange.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="November" year="2019"/> | ||||
<date day="29" month="January" year="2019" /> | <workgroup>Softwires Working Group</workgroup> | |||
<workgroup>Softwire Working Group</workgroup> | ||||
<keyword>A+P</keyword> | <keyword>A+P</keyword> | |||
<keyword>address sharing</keyword> | <keyword>address sharing</keyword> | |||
<keyword>port set</keyword> | <keyword>port set</keyword> | |||
<keyword>Port range</keyword> | <keyword>Port range</keyword> | |||
<keyword>IPv4 service continuity</keyword> | <keyword>IPv4 service continuity</keyword> | |||
<keyword>NETCONF</keyword> | <keyword>NETCONF</keyword> | |||
<keyword>RESTCONF</keyword> | <keyword>RESTCONF</keyword> | |||
<keyword>Programmability</keyword> | <keyword>Programmability</keyword> | |||
<keyword>Dynamic provisioning</keyword> | <keyword>Dynamic provisioning</keyword> | |||
<keyword>automation</keyword> | <keyword>automation</keyword> | |||
<keyword>IPv6</keyword> | <keyword>IPv6</keyword> | |||
<abstract> | <abstract> | |||
<t>This document defines YANG modules for the configuration and | <t>This document defines YANG modules for the configuration and | |||
operation of IPv4-in-IPv6 softwire Border Relays and Customer Premises | operation of IPv4-in-IPv6 softwire Border Relays and Customer Premises | |||
Equipment for the Lightweight 4over6, Mapping of Address and Port with | Equipment for the Lightweight 4over6, Mapping of Address and Port with | |||
Encapsulation (MAP-E), and Mapping of Address and Port using Translation | Encapsulation (MAP-E), and Mapping of Address and Port using Translation | |||
(MAP-T) softwire mechanisms.</t> | (MAP-T) softwire mechanisms.</t> | |||
</abstract> | </abstract> | |||
<note title="Editorial Note (To be removed by RFC Editor)"> | ||||
<t>Please update these statements within this document with the RFC | ||||
number to be assigned to this document:<list style="symbols"> | ||||
<t>"This version of this YANG module is part of RFC XXXX;"</t> | ||||
<t>"RFC XXXX: YANG Modules for IPv4-in-IPv6 Address plus Port | ||||
Softwires";</t> | ||||
<t>"reference: RFC XXXX"</t> | ||||
</list>Please update the "revision" date of the YANG modules.</t> | ||||
</note> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction" title="Introduction"> | <section anchor="introduction" numbered="true" toc="default"> | |||
<t>The IETF Softwire working group has developed several IPv4-in-IPv6 | <name>Introduction</name> | |||
<t>The IETF Softwire Working Group has developed several IPv4-in-IPv6 | ||||
softwire mechanisms to address various deployment contexts and | softwire mechanisms to address various deployment contexts and | |||
constraints. As a companion to the architectural specification | constraints. As a companion to the architectural specification | |||
documents, this document focuses on the provisioning of address plus | documents, this document focuses on the provisioning of Address plus | |||
port (A+P) softwire functional elements: Border Routers (BRs) and | Port (A+P) softwire functional elements: Border Routers (BRs) and | |||
Customer Premises Equipment (CEs, a.k.a., CPE). The softwire mechanisms | Customer Edge (CE) (called "Customer Premises Equipment (CPE)" | |||
covered in this document are Lightweight 4 over 6 (lw4o6) <xref | in <xref target="RFC7596"/>). The softwire mechanisms | |||
target="RFC7596"></xref>, Mapping of Address and Port with Encapsulation | covered in this document are Lightweight 4over6 (lw4o6) <xref target="RFC7 | |||
(MAP-E) <xref target="RFC7597"></xref>, and Mapping of Address and Port | 596" format="default"/>, Mapping of Address and Port with Encapsulation | |||
using Translation (MAP-T) <xref target="RFC7599"></xref>.</t> | (MAP-E) <xref target="RFC7597" format="default"/>, and Mapping of Address | |||
and Port | ||||
<t>This document focuses on A+P mechanisms <xref | using Translation (MAP-T) <xref target="RFC7599" format="default"/>.</t> | |||
target="RFC6346"></xref>; the reader can refer to <xref | <t>This document focuses on A+P mechanisms <xref target="RFC6346" format=" | |||
target="RFC8513"></xref> for a YANG module for DS-Lite <xref | default"/>; the reader can refer to <xref target="RFC8513" format="default"/> fo | |||
target="RFC6333"></xref>.</t> | r a YANG module for Dual-Stack Lite (DS-Lite) <xref target="RFC6333" format="def | |||
ault"/>.</t> | ||||
<t>This document defines YANG modules <xref target="RFC7950"></xref> | <t>This document defines YANG modules <xref target="RFC7950" format="defau | |||
lt"/> | ||||
that can be used to configure and manage A+P softwire elements using the | that can be used to configure and manage A+P softwire elements using the | |||
NETCONF <xref target="RFC6241"></xref>, or RESTCONF <xref | NETCONF <xref target="RFC6241" format="default"/> or RESTCONF <xref target | |||
target="RFC8040"></xref> protocols for:</t> | ="RFC8040" format="default"/> protocols for:</t> | |||
<ul spacing="normal"> | ||||
<t><list hangIndent="22" style="symbols"> | <li>Configuration</li> | |||
<t>Configuration</t> | <li>Operational State</li> | |||
<li>Notifications</li> | ||||
<t>Operational State</t> | </ul> | |||
<t>Notifications</t> | ||||
</list></t> | ||||
</section> | </section> | |||
<section anchor="terminology" numbered="true" toc="default"> | ||||
<section anchor="terminology" title="Terminology"> | <name>Terminology</name> | |||
<t>The reader should be familiar with the concepts and terms defined in | <t>The reader should be familiar with the concepts and terms defined in | |||
<xref target="RFC7596"></xref>, <xref target="RFC7597"></xref>, <xref | <xref target="RFC7596" format="default"/>, <xref target="RFC7597" format=" | |||
target="RFC7599"></xref>, and the YANG data modelling language defined | default"/>, <xref target="RFC7599" format="default"/>, and the YANG data modelin | |||
in <xref target="RFC7950"></xref>.</t> | g language defined | |||
in <xref target="RFC7950" format="default"/>.</t> | ||||
<t>The YANG modules in this document adopt the Network Management | <t>The YANG modules in this document adopt the Network Management | |||
Datastore Architecture (NMDA) <xref target="RFC8342"></xref>. The | Datastore Architecture (NMDA) <xref target="RFC8342" format="default"/>. T | |||
meanings of the symbols used in tree diagrams are defined in <xref | he | |||
target="RFC8340"></xref>.</t> | meanings of the symbols used in tree diagrams are defined in <xref target= | |||
"RFC8340" format="default"/>.</t> | ||||
<t>The document uses the abbrieviation 'BR' as a general term for | <t>The document uses the abbreviation 'BR' as a general term for | |||
softwire tunnel concentrators, including both MAP Border Routers <xref | softwire tunnel concentrators, including both MAP Border Routers <xref tar | |||
target="RFC7597"></xref> and Lightweight 4over6 lWAFTRs <xref | get="RFC7597" format="default"/> and Lightweight 4over6 lwAFTRs <xref target="RF | |||
target="RFC7596"></xref>.</t> | C7596" format="default"/>.</t> | |||
<t>For brevity, "algorithm" is used to refer to the "mapping algorithm" | <t>For brevity, "algorithm" is used to refer to the "mapping algorithm" | |||
defined in <xref target="RFC7597"></xref>.</t> | defined in <xref target="RFC7597" format="default"/>.</t> | |||
<t>A network element may support one or multiple instances of a softwire | <t>A network element may support one or multiple instances of a softwire | |||
mechanism; each of these instances (i.e., binding instances, MAP-E | mechanism; each of these instances (i.e., binding instances, MAP-E | |||
instances, or MAP-T instances) may have its own configuration and | instances, or MAP-T instances) may have its own configuration and | |||
parameters. The term 'algo-instance' is used to denote both MAP-E and | parameters. The term 'algo-instance' is used to denote both MAP-E and | |||
MAP-T instances.</t> | MAP-T instances.</t> | |||
</section> | </section> | |||
<section anchor="overview" numbered="true" toc="default"> | ||||
<section anchor="overview" title="Overview of the Modules"> | <name>Overview of the Modules</name> | |||
<section title="Overall Structure"> | <section numbered="true" toc="default"> | |||
<name>Overall Structure</name> | ||||
<t>The document defines the following two YANG modules for the | <t>The document defines the following two YANG modules for the | |||
configuration and monitoring of softwire functional elements:</t> | configuration and monitoring of softwire functional elements:</t> | |||
<ul empty="true"><li> | ||||
<t><list hangIndent="22" style="hanging"> | <dl newline="true" spacing="normal" indent="3"> | |||
<t hangText="ietf-softwire-ce">Provides configuration and | <dt>ietf-softwire-ce</dt> | |||
<dd>Provides configuration and | ||||
monitoring for softwire CE element. This module is defined as | monitoring for softwire CE element. This module is defined as | |||
augments to the interface YANG module <xref | augments to the interface YANG module <xref target="RFC8343" format= | |||
target="RFC8343"></xref>.</t> | "default"/>.</dd> | |||
<dt>ietf-softwire-br</dt> | ||||
<t hangText="ietf-softwire-br">Provides configuration and | <dd>Provides configuration and | |||
monitoring for softwire BR element.</t> | monitoring for softwire BR element.</dd> | |||
</list></t> | </dl> | |||
</li> | ||||
</ul> | ||||
<t>In addition, the following module is defined:</t> | <t>In addition, the following module is defined:</t> | |||
<ul empty="true"><li> | ||||
<t><list hangIndent="22" style="hanging"> | <dl newline="true" spacing="normal" indent="3"> | |||
<t hangText="ietf-softwire-common">Contains groups of common | <dt>ietf-softwire-common</dt> | |||
functions that are imported into the CE and BR modules.</t> | <dd>Contains groups of common | |||
</list></t> | functions that are imported into the CE and BR modules.</dd> | |||
</dl> | ||||
</li> | ||||
</ul> | ||||
<t>This approach has been taken so that the various modules can be | <t>This approach has been taken so that the various modules can be | |||
easily extended to support additional softwire mechanisms, if | easily extended to support additional softwire mechanisms, if | |||
required.</t> | required.</t> | |||
<t>Within the BR and CE modules, the YANG "feature" statement is used | <t>Within the BR and CE modules, the YANG "feature" statement is used | |||
to distinguish which of the different softwire mechanism(s) is | to distinguish which of the different softwire mechanism(s) is | |||
relevant for a specific element's configuration. For each module, a | relevant for a specific element's configuration. For each module, a | |||
choice statement 'ce-type' is included for either 'binding' or | choice statement 'ce-type' is included for either 'binding' or | |||
'algorithm'. 'Binding' is used for configuring Lightweight 4over6, | 'algorithm'. 'Binding' is used for configuring Lightweight 4over6, | |||
whereas 'algorithm' is used for configuring MAP-T or MAP-E.</t> | whereas 'algorithm' is used for configuring MAP-T or MAP-E.</t> | |||
<t>In the 'algo-instances' container, a choice statement 'data-plane' | <t>In the 'algo-instances' container, a choice statement 'data-plane' | |||
is included to specify MAP-E (encapsulation) or MAP-T (translation). | is included to specify MAP-E (encapsulation) or MAP-T (translation). | |||
<xref target="table_s46_mechanism_choices"></xref> shows how these | <xref target="table_s46_mechanism_choices" format="default"/> shows how these | |||
choices are used to indicate the desired softwire mechanism:</t> | choices are used to indicate the desired softwire mechanism:</t> | |||
<table anchor="table_s46_mechanism_choices" align="center"> | ||||
<texttable anchor="table_s46_mechanism_choices" | <name>Softwire Mechanism Choice Statement Enumeration</name> | |||
title="Softwire Mechanism Choice Statement Enumeration"> | <thead> | |||
<ttcol align="center">S46 Mechanism</ttcol> | <tr> | |||
<th align="center">S46 Mechanism</th> | ||||
<ttcol align="center">ce-type?</ttcol> | <th align="center">ce-type?</th> | |||
<th align="center">data-plane?</th> | ||||
<ttcol align="center">data-plane?</ttcol> | </tr> | |||
</thead> | ||||
<c>Lightweight 4over6</c> | <tbody> | |||
<tr> | ||||
<c>binding</c> | <td align="center">Lightweight 4over6</td> | |||
<td align="center">binding</td> | ||||
<c>n/a</c> | <td align="center">n/a</td> | |||
</tr> | ||||
<c>MAP-E</c> | <tr> | |||
<td align="center">MAP-E</td> | ||||
<c>algorithm</c> | <td align="center">algorithm</td> | |||
<td align="center">encapsulation</td> | ||||
<c>encapsulation</c> | </tr> | |||
<tr> | ||||
<c>MAP-T</c> | <td align="center">MAP-T</td> | |||
<td align="center">algorithm</td> | ||||
<c>algorithm</c> | <td align="center">translation</td> | |||
</tr> | ||||
<c>translation</c> | </tbody> | |||
</texttable> | </table> | |||
<t>NETCONF notifications are also included.</t> | ||||
<t>NETCONF notifications are also included.<list style="empty"> | <aside><t>Earlier draft versions of this specification combined the | |||
<t>Note: Earlier versions of this specification combined the | ||||
softwire mechanisms by their associated technologies rather than | softwire mechanisms by their associated technologies rather than | |||
their function in the architecture. As the document was revised, | their function in the architecture. As the document was revised, | |||
it became apparent that dividing the modules by their role in the | it became apparent that dividing the modules by their role in the | |||
architecture (CE or BR) was a better approach as this follows the | architecture (CE or BR) was a better approach as this follows the | |||
intended function and existing implementation approaches more | intended function and existing implementation approaches more | |||
closely.</t> | closely.</t> | |||
</list></t> | </aside> | |||
</section> | </section> | |||
<section title="Additional Components Configuration"> | <section numbered="true" toc="default"> | |||
<name>Configuration for Additional Components</name> | ||||
<t>The softwire modules only aim to provide configuration relevant for | <t>The softwire modules only aim to provide configuration relevant for | |||
softwires. In order to fully provision a CE element, the following may | softwires. In order to fully provision a CE element, the following may | |||
also be necessary:</t> | also be necessary:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>IPv6 forwarding and routing configuration, to enable the CE to | |||
<t>IPv6 forwarding and routing configuration, enabling the CE to | ||||
obtain one or more IPv6 prefixes for softwire usage. A YANG module | obtain one or more IPv6 prefixes for softwire usage. A YANG module | |||
for routing management is described in <xref | for routing management is described in <xref target="RFC8349" format | |||
target="RFC8349"></xref>.</t> | ="default"/>.</li> | |||
<li>IPv4 routing configuration, to add one or more IPv4 destination | ||||
<t>IPv4 routing configuration, to add one or more IPv4 destination | ||||
prefix(es) reachable via the configured softwire. A YANG module | prefix(es) reachable via the configured softwire. A YANG module | |||
for routing management is described in <xref | for routing management is described in <xref target="RFC8349" format | |||
target="RFC8349"></xref>.</t> | ="default"/>.</li> | |||
<li>Stateful NAT44/NAPT management, to optionally specify a port | ||||
<t>Stateful NAT44/NAPT management, to optionally specify a port | ||||
set (Port Set Identifier (PSID)) along with its length. A YANG | set (Port Set Identifier (PSID)) along with its length. A YANG | |||
module for NAT management is described in <xref | module for NAT management is described in <xref target="RFC8512" for | |||
target="RFC8512"></xref>.</t> | mat="default"/>.</li> | |||
<li>Stateless NAT46 management, which is required by | ||||
<t>Stateless NAT46 management, required by softwire translation | softwire-translation-based mechanisms (i.e., the assignment of a | |||
based mechanisms (i.e., the assignment of a Network-Specific | Network-Specific Prefix to use for IPv4/IPv6 translation). A YANG mo | |||
Prefix to use for IPv4/IPv6 translation). A YANG module for NAT | dule for NAT | |||
management is described in <xref target="RFC8512"></xref>.</t> | management is described in <xref target="RFC8512" format="default"/> | |||
</list></t> | .</li> | |||
</ul> | ||||
<t>As YANG modules for the above functions are already defined in | <t>As YANG modules for the above functions are already defined in | |||
other documents, their functionality is not duplicated here and they | other documents, their functionality is not duplicated here and they | |||
should be referred to, as needed. <xref | should be referred to, as needed. <xref target="lw4o6-ce-example" format | |||
target="lw4o6-ce-example"></xref> provides XML examples of how these | ="default"/> provides XML examples of how these | |||
modules can be used together.</t> | modules can be used together.</t> | |||
<t>The CE must already have minimal IPv6 configuration in place so it | <t>The CE must already have minimal IPv6 configuration in place so it | |||
is reachable by the NETCONF client to obtain softwire configuration. | is reachable by the NETCONF client to obtain softwire configuration. | |||
If additional IPv6 specific configuration is necessary, the YANG | If additional IPv6-specific configuration is necessary, the YANG | |||
modules defined in <xref target="RFC8344"></xref> and <xref | modules defined in <xref target="RFC8344" format="default"/> and <xref t | |||
target="RFC8349"></xref> may be used.</t> | arget="RFC8349" format="default"/> may be used.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ce-tree-diagram" numbered="true" toc="default"> | ||||
<section anchor="ce-tree-diagram" title="Softwire CE YANG Tree Diagram"> | <name>Softwire CE YANG Tree Diagram</name> | |||
<section title="CE Tree Diagram"> | <section numbered="true" toc="default"> | |||
<name>CE Tree Diagram</name> | ||||
<t>The CE module provides configuration and monitoring for all of the | <t>The CE module provides configuration and monitoring for all of the | |||
softwire mechanisms covered in this document (i.e., Lightweight | softwire mechanisms covered in this document (i.e., Lightweight | |||
4over6, MAP-E, and MAP-T).</t> | 4over6, MAP-E, and MAP-T).</t> | |||
<t>This module augments "ietf-interfaces", defined in <xref target="RFC8 | ||||
<t>This module augments "ietf-interfaces", defined in <xref | 343" format="default"/> with an entry for the softwire. This entry | |||
target="RFC8343"></xref> with an entry for the softwire. This entry | ||||
can be referenced to configure IPv4 forwarding features for the | can be referenced to configure IPv4 forwarding features for the | |||
element. This entry is added only if tunnel type (<xref | element. This entry is added only if tunnel type (<xref target="iana" fo | |||
target="iana"></xref>) is set to 'aplusp'.</t> | rmat="default"/>) is set to 'aplusp'.</t> | |||
<t><xref target="tree-diagram-ce" format="default"/> shows the tree stru | ||||
<t><xref target="tree-diagram-ce"></xref> shows the tree structure of | cture of | |||
the softwire CE YANG module:</t> | the softwire CE YANG module:</t> | |||
<figure anchor="tree-diagram-ce"> | ||||
<figure align="center" anchor="tree-diagram-ce" | <name>Softwire CE YANG Tree Diagram</name> | |||
title="Softwire CE YANG Tree Diagram"> | <sourcecode name="" type="yangtree"><![CDATA[ | |||
<artwork><![CDATA[ | ||||
module: ietf-softwire-ce | module: ietf-softwire-ce | |||
augment /if:interfaces/if:interface: | augment /if:interfaces/if:interface: | |||
+--rw softwire-payload-mtu? uint16 | +--rw softwire-payload-mtu? uint16 | |||
+--rw softwire-path-mru? uint16 | +--rw softwire-path-mru? uint16 | |||
+--rw (ce-type)? | +--rw (ce-type)? | |||
+--:(binding) {binding-mode}? | +--:(binding) {binding-mode}? | |||
| +--rw binding-ipv6info? union | | +--rw binding-ipv6info? union | |||
| +--rw br-ipv6-addr inet:ipv6-address | | +--rw br-ipv6-addr inet:ipv6-address | |||
+--:(algo) {map-e or map-t}? | +--:(algo) {map-e or map-t}? | |||
+--rw algo-instances | +--rw algo-instances | |||
skipping to change at line 365 ¶ | skipping to change at line 295 ¶ | |||
+--ro out-icmpv4-error-bytes? | +--ro out-icmpv4-error-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro out-icmpv6-error-packets? | +--ro out-icmpv6-error-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro out-icmpv6-error-bytes? | +--ro out-icmpv6-error-bytes? | |||
yang:zero-based-counter64 | yang:zero-based-counter64 | |||
notifications: | notifications: | |||
+---n softwire-ce-event {binding-mode}? | +---n softwire-ce-event {binding-mode}? | |||
+--ro ce-binding-ipv6-addr-change inet:ipv6-address | +--ro ce-binding-ipv6-addr-change inet:ipv6-address | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="tree-diagram-ce-desc" numbered="true" toc="default"> | ||||
<section anchor="tree-diagram-ce-desc" | <name>Softwire CE Tree Diagram Description</name> | |||
title="Softwire CE Tree Diagram Description"> | ||||
<t>Additional information related to the operation of a CE element is | <t>Additional information related to the operation of a CE element is | |||
provided below:</t> | provided below:</t> | |||
<t><list style="symbols"> | <ul empty="true"><li> | |||
<t>softwire-payload-mtu: optionally used to set the IPv4 MTU for | <dl newline="true" indent="3"> | |||
<dt>softwire-payload-mtu:</dt><dd>optionally used to set the IPv4 Maxi | ||||
mum Transmission Unit (MTU) for | ||||
the softwire. Needed if the softwire implementation is unable to | the softwire. Needed if the softwire implementation is unable to | |||
correctly calculate the correct IPv4 Maximum Transit Unit (MTU) | correctly calculate the correct IPv4 MTU | |||
size automatically.</t> | size automatically.</dd> | |||
<dt>softwire-path-mru:</dt><dd>optionally used to set the maximum IPv6 | ||||
<t>softwire-path-mru: optionally used to set the maximum IPv6 | ||||
softwire packet size that can be received, including the | softwire packet size that can be received, including the | |||
encapsulation/translation overhead. Needed if the softwire | encapsulation/translation overhead. Needed if the softwire | |||
implementation is unable to correctly calculate the correct IPv4 | implementation is unable to correctly calculate the correct IPv4 | |||
payload Maximum Receive Unit (MRU) size automatically (see Section | payload Maximum Receive Unit (MRU) size automatically (see <xref tar | |||
3.2 of <xref target="RFC4213"></xref>).</t> | get="RFC4213" sectionFormat="of" section="3.2" format="default"/>).</dd> | |||
<dt>ce-type:</dt><dd>provides a choice statement allowing the binding | ||||
<t>ce-type: provides a choice statement allowing the binding or | or | |||
algorithmic softwire mechanisms to be selected.</t> | algorithmic softwire mechanisms to be selected.</dd> | |||
</list></t> | </dl> | |||
</li> | ||||
<t>Further details relevant to binding softwire elements are:</t> | </ul> | |||
<t>Further details relevant to binding softwire elements are as follows: | ||||
<t><list style="symbols"> | </t> | |||
<t>binding-ipv6info: used to set the IPv6 binding prefix type to | <ul empty="true"><li> | |||
<dl spacing="normal" newline="true"> | ||||
<dt>binding-ipv6info:</dt><dd>used to set the IPv6 binding prefix type | ||||
to | ||||
identify which IPv6 address to use as the tunnel source. It can be | identify which IPv6 address to use as the tunnel source. It can be | |||
'ipv6-prefix' or 'ipv6-address'.</t> | 'ipv6-prefix' or 'ipv6-address'.</dd> | |||
<dt>br-ipv6-addr:</dt><dd>sets the IPv6 address of the remote BR.</dd> | ||||
<t>br-ipv6-addr: sets the IPv6 address of the remote BR.</t> | </dl> | |||
</list></t> | </li> | |||
</ul> | ||||
<t>Additional details relevant to some of the important algorithmic | <t>Additional details relevant to some of the important algorithmic | |||
elements are provided below:</t> | elements are provided below:</t> | |||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | <dl spacing="normal" newline="true"> | |||
<t>algo-versioning: optionally used to associate a version number | <dt>algo-versioning:</dt><dd>optionally used to associate a version nu | |||
mber | ||||
and/or timestamp to the algorithm. This can be used for | and/or timestamp to the algorithm. This can be used for | |||
logging/data retention purposes <xref target="RFC7422"></xref>. | logging/data retention purposes <xref target="RFC7422" format="defau lt"/>. | |||
The version number is selected to uniquely identify the algorithm | The version number is selected to uniquely identify the algorithm | |||
configuration and a new value written whenever a change is made to | configuration and a new value written whenever a change is made to | |||
the algorithm or a new algo-instance is created.</t> | the algorithm or a new algo-instance is created.</dd> | |||
<dt>forwarding:</dt><dd>specifies whether the rule can be used as a Fo | ||||
<t>forwarding: specifies whether the rule can be used as a Forward | rwarding | |||
Mapping Rule (FMR). If not set, this rule is a Basic Mapping Rule | Mapping Rule (FMR). If not set, this rule is a Basic Mapping Rule | |||
(BMR) only and must not be used for forwarding. Refer to Section | (BMR) only and must not be used for forwarding. Refer to <xref targe | |||
4.1 of <xref target="RFC7598"></xref>.</t> | t="RFC7598" format="default" sectionFormat="of" section="4.1"/>.</dd> | |||
<dt>ea-len:</dt><dd>used to set the length of the Embedded-Address (EA | ||||
<t>ea-len: used to set the length of the Embedded-Address (EA), | ), | |||
which is defined in the mapping rule for a MAP domain.</t> | which is defined in the mapping rule for a MAP domain.</dd> | |||
<dt>data-plane:</dt><dd>provides a choice statement for either | ||||
<t>data-plane: provides a choice statement for either | encapsulation (MAP-E) or translation (MAP-T).</dd> | |||
encapsulation (MAP-E) or translation (MAP-T).</t> | <dt>br-ipv6-addr:</dt><dd>defines the IPv6 address of the BR. This | |||
information is valid for MAP-E.</dd> | ||||
<t>br-ipv6-addr: defines the IPv6 address of the BR. This | <dt>dmr-ipv6-prefix:</dt><dd>defines the Default Mapping Rule (DMR) IP | |||
information is valid for MAP-E.</t> | v6 | |||
prefix of the BR. This information is valid for MAP-T.</dd> | ||||
<t>dmr-ipv6-prefix: defines the Default Mapping Rule (DMR) IPv6 | </dl> | |||
prefix of the BR. This information is valid for MAP-T.</t> | </li> | |||
</list></t> | </ul> | |||
<t>Additional information on the notification node is listed | <t>Additional information on the notification node is listed | |||
below:</t> | below:</t> | |||
<ul empty="true"><li> | ||||
<t><list style="symbols"> | <dl spacing="normal" newline="true"> | |||
<t>ce-binding-ipv6-addr-change: if the CE's binding IPv6 address | <dt>ce-binding-ipv6-addr-change:</dt><dd>if the CE's binding IPv6 addr | |||
changes for any reason, the NETCONF client will be notified.</t> | ess | |||
</list></t> | changes for any reason, the NETCONF client will be notified.</dd> | |||
</dl> | ||||
</li> | ||||
</ul> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="br-tree-diagram" numbered="true" toc="default"> | ||||
<section anchor="br-tree-diagram" title="Softwire BR YANG Tree Diagram"> | <name>Softwire BR YANG Tree Diagram</name> | |||
<section anchor="br-tree-diagram-com" title="BR Tree Diagram"> | <section anchor="br-tree-diagram-com" numbered="true" toc="default"> | |||
<name>BR Tree Diagram</name> | ||||
<t>The BR YANG module provides configuration and monitoring for all of | <t>The BR YANG module provides configuration and monitoring for all of | |||
the softwire mechanisms covered in this document (i.e., Lightweight | the softwire mechanisms covered in this document (i.e., Lightweight | |||
4over6, MAP-E, and MAP-T).</t> | 4over6, MAP-E, and MAP-T).</t> | |||
<t><xref target="br-structure" format="default"/> provides the tree stru | ||||
<t><xref target="br-structure"></xref> provides the tree structure of | cture of | |||
this module:</t> | this module:</t> | |||
<figure align="center" anchor="br-structure" | <figure anchor="br-structure"> | |||
title="Softwire BR YANG Tree"> | <name>Softwire BR YANG Tree</name> | |||
<artwork><![CDATA[ | <sourcecode name="" type="yangtree"><![CDATA[ | |||
module: ietf-softwire-br | module: ietf-softwire-br | |||
+--rw br-instances | +--rw br-instances | |||
+--rw (br-type)? | +--rw (br-type)? | |||
+--:(binding) {binding-mode}? | +--:(binding) {binding-mode}? | |||
| +--rw binding | | +--rw binding | |||
| +--rw bind-instance* [name] | | +--rw bind-instance* [name] | |||
| +--rw name string | | +--rw name string | |||
| +--rw binding-table-versioning | | +--rw binding-table-versioning | |||
| | +--rw version? uint64 | | | +--rw version? uint64 | |||
| | +--rw date? yang:date-and-time | | | +--rw date? yang:date-and-time | |||
| +--rw softwire-num-max uint32 | | +--rw softwire-num-max uint32 | |||
| +--rw softwire-payload-mtu uint16 | | +--rw softwire-payload-mtu uint16 | |||
| +--rw softwire-path-mru uint16 | | +--rw softwire-path-mru uint16 | |||
| +--rw enable-hairpinning? boolean | | +--rw enable-hairpinning? boolean | |||
| +--rw binding-table | | +--rw binding-table | |||
| | +--rw binding-entry* [binding-ipv6info] | | | +--rw binding-entry* [binding-ipv6info] | |||
| | +--rw binding-ipv6info union | | | +--rw binding-ipv6info union | |||
| | +--rw binding-ipv4-addr? | | | +--rw binding-ipv4-addr? | |||
| | | inet:ipv4-address | | | | inet:ipv4-address | |||
| | +--rw port-set | | | +--rw port-set | |||
| | | +--rw psid-offset? uint8 | | | | +--rw psid-offset? uint8 | |||
| | | +--rw psid-len uint8 | | | | +--rw psid-len uint8 | |||
| | | +--rw psid uint16 | | | | +--rw psid uint16 | |||
| | +--rw br-ipv6-addr? | | | +--rw br-ipv6-addr? | |||
| | inet:ipv6-address | | | inet:ipv6-address | |||
| +--rw icmp-policy | | +--rw icmp-policy | |||
| | +--rw icmpv4-errors | | | +--rw icmpv4-errors | |||
| | | +--rw allow-incoming-icmpv4? boolean | | | | +--rw allow-incoming-icmpv4? boolean | |||
| | | +--rw icmpv4-rate? uint32 | | | | +--rw icmpv4-rate? uint32 | |||
| | | +--rw generate-icmpv4-errors? boolean | | | | +--rw generate-icmpv4-errors? boolean | |||
| | +--rw icmpv6-errors | | | +--rw icmpv6-errors | |||
| | +--rw generate-icmpv6-errors? boolean | | | +--rw generate-icmpv6-errors? boolean | |||
| | +--rw icmpv6-rate? uint32 | | | +--rw icmpv6-rate? uint32 | |||
| +--ro traffic-stat | | +--ro traffic-stat | |||
| +--ro discontinuity-time yang:date-and-time | | +--ro discontinuity-time yang:date-and-time | |||
| +--ro sent-ipv4-packets? | | +--ro sent-ipv4-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro sent-ipv4-bytes? | | +--ro sent-ipv4-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro sent-ipv6-packets? | | +--ro sent-ipv6-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro sent-ipv6-bytes? | | +--ro sent-ipv6-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro rcvd-ipv4-packets? | | +--ro rcvd-ipv4-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro rcvd-ipv4-bytes? | | +--ro rcvd-ipv4-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro rcvd-ipv6-packets? | | +--ro rcvd-ipv6-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro rcvd-ipv6-bytes? | | +--ro rcvd-ipv6-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-ipv4-packets? | | +--ro dropped-ipv4-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-ipv4-bytes? | | +--ro dropped-ipv4-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-ipv6-packets? | | +--ro dropped-ipv6-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-ipv6-bytes? | | +--ro dropped-ipv6-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-ipv4-fragments? | | +--ro dropped-ipv4-fragments? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-ipv4-fragment-bytes? | | +--ro dropped-ipv4-fragment-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro ipv6-fragments-reassembled? | | +--ro ipv6-fragments-reassembled? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro ipv6-fragments-bytes-reassembled? | | +--ro ipv6-fragments-bytes-reassembled? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro out-icmpv4-error-packets? | | +--ro out-icmpv4-error-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro out-icmpv4-error-bytes? | | +--ro out-icmpv4-error-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro out-icmpv6-error-packets? | | +--ro out-icmpv6-error-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro out-icmpv6-error-bytes? | | +--ro out-icmpv6-error-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-icmpv4-packets? | | +--ro dropped-icmpv4-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro dropped-icmpv4-bytes? | | +--ro dropped-icmpv4-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro hairpin-ipv4-packets? | | +--ro hairpin-ipv4-packets? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro hairpin-ipv4-bytes? | | +--ro hairpin-ipv4-bytes? | |||
| | yang:zero-based-counter64 | | | yang:zero-based-counter64 | |||
| +--ro active-softwire-num? | | +--ro active-softwire-num? | |||
| uint32 | | uint32 | |||
+--:(algo) {map-e or map-t}? | +--:(algo) {map-e or map-t}? | |||
+--rw algorithm | +--rw algorithm | |||
+--rw algo-instance* [name] | +--rw algo-instance* [name] | |||
+--rw name string | +--rw name string | |||
+--rw enable? boolean | +--rw enable? boolean | |||
+--rw algo-versioning | +--rw algo-versioning | |||
| +--rw version? uint64 | | +--rw version? uint64 | |||
| +--rw date? yang:date-and-time | | +--rw date? yang:date-and-time | |||
+--rw (data-plane)? | +--rw (data-plane)? | |||
| +--:(encapsulation) {map-e}? | | +--:(encapsulation) {map-e}? | |||
| | +--rw br-ipv6-addr inet:ipv6-address | | | +--rw br-ipv6-addr inet:ipv6-address | |||
| +--:(translation) {map-t}? | | +--:(translation) {map-t}? | |||
| +--rw dmr-ipv6-prefix? inet:ipv6-prefix | | +--rw dmr-ipv6-prefix? inet:ipv6-prefix | |||
+--rw ea-len uint8 | +--rw ea-len uint8 | |||
+--rw rule-ipv6-prefix inet:ipv6-prefix | +--rw rule-ipv6-prefix inet:ipv6-prefix | |||
+--rw rule-ipv4-prefix inet:ipv4-prefix | +--rw rule-ipv4-prefix inet:ipv4-prefix | |||
+--rw forwarding boolean | +--rw forwarding boolean | |||
+--rw port-set | +--rw port-set | |||
| +--rw psid-offset? uint8 | | +--rw psid-offset? uint8 | |||
| +--rw psid-len uint8 | | +--rw psid-len uint8 | |||
| +--rw psid uint16 | | +--rw psid uint16 | |||
+--ro traffic-stat | +--ro traffic-stat | |||
+--ro discontinuity-time yang:date-and-time | +--ro discontinuity-time yang:date-and-time | |||
+--ro sent-ipv4-packets? | +--ro sent-ipv4-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro sent-ipv4-bytes? | +--ro sent-ipv4-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro sent-ipv6-packets? | +--ro sent-ipv6-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro sent-ipv6-bytes? | +--ro sent-ipv6-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro rcvd-ipv4-packets? | +--ro rcvd-ipv4-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro rcvd-ipv4-bytes? | +--ro rcvd-ipv4-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro rcvd-ipv6-packets? | +--ro rcvd-ipv6-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro rcvd-ipv6-bytes? | +--ro rcvd-ipv6-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro dropped-ipv4-packets? | +--ro dropped-ipv4-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro dropped-ipv4-bytes? | +--ro dropped-ipv4-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro dropped-ipv6-packets? | +--ro dropped-ipv6-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro dropped-ipv6-bytes? | +--ro dropped-ipv6-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro dropped-ipv4-fragments? | +--ro dropped-ipv4-fragments? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro dropped-ipv4-fragment-bytes? | +--ro dropped-ipv4-fragment-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro ipv6-fragments-reassembled? | +--ro ipv6-fragments-reassembled? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro ipv6-fragments-bytes-reassembled? | +--ro ipv6-fragments-bytes-reassembled? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro out-icmpv4-error-packets? | +--ro out-icmpv4-error-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro out-icmpv4-error-bytes? | +--ro out-icmpv4-error-bytes? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro out-icmpv6-error-packets? | +--ro out-icmpv6-error-packets? | |||
| yang:zero-based-counter64 | | yang:zero-based-counter64 | |||
+--ro out-icmpv6-error-bytes? | +--ro out-icmpv6-error-bytes? | |||
yang:zero-based-counter64 | yang:zero-based-counter64 | |||
notifications: | notifications: | |||
+---n softwire-binding-instance-event {binding-mode}? | +---n softwire-binding-instance-event {binding-mode}? | |||
| +--ro bind-name? | | +--ro bind-name? | |||
| | -> /br-instances/binding/bind-instance/name | | | -> /br-instances/binding/bind-instance/name | |||
| +--ro invalid-entry* leafref | | +--ro invalid-entry* leafref | |||
| +--ro added-entry* inet:ipv6-address | | +--ro added-entry* inet:ipv6-address | |||
| +--ro modified-entry* leafref | | +--ro modified-entry* leafref | |||
+---n softwire-algorithm-instance-event {map-e, map-t}? | +---n softwire-algorithm-instance-event {map-e, map-t}? | |||
+--ro algo-name | +--ro algo-name | |||
| -> /br-instances/algorithm/algo-instance/name | | -> /br-instances/algorithm/algo-instance/name | |||
+--ro invalid-entry-id* | +--ro invalid-entry-id* | |||
| -> /br-instances/algorithm/algo-instance/name | | -> /br-instances/algorithm/algo-instance/name | |||
+--ro added-entry* | +--ro added-entry* | |||
| -> /br-instances/algorithm/algo-instance/name | | -> /br-instances/algorithm/algo-instance/name | |||
+--ro modified-entry* | +--ro modified-entry* | |||
-> /br-instances/algorithm/algo-instance/name | -> /br-instances/algorithm/algo-instance/name | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="tree-diagram-br-desc" numbered="true" toc="default"> | ||||
<section anchor="tree-diagram-br-desc" | <name>Softwire BR Tree Diagram Description</name> | |||
title="Softwire BR Tree Diagram Description"> | <t>The descriptions for leaves that are common with the CE module are | |||
<t>The descriptions for leaves which are common with the CE module are | provided in <xref target="tree-diagram-ce-desc" format="default"/>. Desc | |||
provided in <xref target="tree-diagram-ce-desc"></xref>. Descriptions | riptions | |||
for additional elements are provided below:</t> | for additional elements are provided below:</t> | |||
<ul empty="true" spacing="normal"><li> | ||||
<t><list style="symbols"> | <dl newline="true" indent="3"><dt>binding-table-versioning:</dt><dd>optio | |||
<t>binding-table-versioning: optionally used to associate a | nally used to associate a | |||
version number and/or timestamp to the binding table. This can be | version number and/or timestamp to the binding table. This can be | |||
used for logging or data retention purposes <xref | used for logging or data retention purposes <xref target="RFC7422" f | |||
target="RFC7422"></xref>. The version number is selected to | ormat="default"/>. The version number is selected to | |||
uniquely identify the binding table configuration and a new | uniquely identify the binding table configuration and a new | |||
timestamp value written whenever a change is made to the contents | timestamp value written whenever a change is made to the contents | |||
of the binding table or a new binding table list is created.</t> | of the binding table or a new binding table list is created.</dd> | |||
<dt>binding-entry:</dt><dd>used to define the binding relationship bet | ||||
<t>binding-entry: used to define the binding relationship between | ween | |||
3-tuples {lwB4's IPv6 address/prefix, the allocated IPv4 address, | 3-tuples {lwB4's IPv6 address/prefix, the allocated IPv4 address, | |||
restricted port-set}. For detail information, please refer to | restricted port-set}. For detailed information, please refer t | |||
<xref target="RFC7596"></xref>.</t> | o | |||
<xref target="RFC7596" format="default"/>.</dd> | ||||
<t>softwire-num-max: used to set the maximum number of softwire | <dt>softwire-num-max:</dt><dd>used to set the maximum number of softwi | |||
re | ||||
binding rules that can be created on the lw4o6 element | binding rules that can be created on the lw4o6 element | |||
simultaneously. This paramter must not be set to zero because this | simultaneously. This parameter must not be set to zero because this | |||
is equivalent to disabling the BR instance.</t> | is equivalent to disabling the BR instance.</dd> | |||
<dt>active-softwire-num:</dt><dd>holds the number of softwires current | ||||
<t>active-softwire-num: holds the number of softwires currently | ly | |||
provisioned on the BR element.</t> | provisioned on the BR element.</dd> | |||
<!--- | ||||
<t>active (ro): used to show the status of particular | ||||
binding-entry.</t> | ||||
IF - Commented out as it isn't in the model any more. I forget what the | ||||
intended use for this was. Should it be put back in the model, or can | ||||
this descrtiption be removed? | ||||
</list></t> | ||||
</dl></li> | ||||
</ul> | ||||
<t>Additional information on some of the important notification nodes | <t>Additional information on some of the important notification nodes | |||
is listed below:</t> | is listed below:</t> | |||
<ul empty="true" spacing="normal"><li> | ||||
<t><list style="symbols"> | <dl newline="true" indent="3"><dt>invalid-entry, added-entry, modified-entry:</d | |||
<t>invalid-entry, added-entry, modified-entry: used to notify the | t><dd>used to notify the | |||
NETCONF client that a specific binding entry or MAP rule has | NETCONF client that a specific binding entry or MAP rule has | |||
expired, been invalidated, added, or modified.</t> | expired, been invalidated, added, or modified.</dd> | |||
</list></t> | </dl></li> | |||
</ul> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="ce-yang-module" numbered="true" toc="default"> | ||||
<name>Softwire CE YANG Module</name> | ||||
<t>This module imports the modules defined in <xref target="RFC6991" | ||||
format="default"/>, <xref target="RFC8343" format="default"/>, and <xref | ||||
target="RFC7224" format="default"/>. It also imports the | ||||
'ietf-softwire-common' and 'iana-tunnel-type' modules <xref target="RFC867 | ||||
5" | ||||
format="default"/>.</t> | ||||
<section anchor="ce-yang-module" title="Softwire CE YANG Module"> | <sourcecode name="ietf-softwire-ce@2019-10-28.yang" type="yang" markers="t | |||
<t>This module imports the modules defined in <xref | rue"><![CDATA[ | |||
target="RFC6991"></xref>, <xref target="RFC8343"></xref>, and <xref | ||||
target="RFC7224"></xref>. It also imports the 'ietf-softwire-common' and | ||||
'iana-tunnel-type' modules <xref | ||||
target="I-D.ietf-softwire-iftunnel"></xref>.</t> | ||||
<figure> | ||||
<artwork><![CDATA[<CODE BEGINS>file "ietf-softwire-ce@2019-01-11.yang" | ||||
module ietf-softwire-ce { | module ietf-softwire-ce { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-softwire-ce"; | namespace "urn:ietf:params:xml:ns:yang:ietf-softwire-ce"; | |||
prefix softwire-ce; | prefix softwire-ce; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
reference "Section 4 of RFC 6991"; | reference | |||
"RFC 6991: Common YANG Data Types, Section 4"; | ||||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix if; | prefix if; | |||
reference "RFC 8343: A YANG Data Model for Interface Management"; | reference | |||
"RFC 8343: A YANG Data Model for Interface Management"; | ||||
} | } | |||
import ietf-softwire-common { | import ietf-softwire-common { | |||
prefix softwire-common; | prefix softwire-common; | |||
reference | reference | |||
"RFC XXXX: YANG Modules for IPv4-in-IPv6 Address plus Port | "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port | |||
Softwires"; | Softwires"; | |||
} | } | |||
import iana-tunnel-type { | import iana-tunnel-type { | |||
prefix iana-tunnel-type; | prefix iana-tunnel-type; | |||
reference | reference | |||
"RFC YYYY: Tunnel Interface Types YANG Module"; | "RFC 8675: A YANG Data Model for Tunnel Interface Types"; | |||
} | } | |||
organization | organization | |||
"IETF Softwire Working Group"; | "IETF Softwire Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/softwire/> | "WG Web: <https://datatracker.ietf.org/wg/softwire/> | |||
WG List: <mailto:softwire@ietf.org> | WG List: <mailto:softwire@ietf.org> | |||
Author: Qi Sun | Author: Qi Sun | |||
<mailto:sunqi.ietf@gmail.com> | <mailto:sunqi.ietf@gmail.com> | |||
skipping to change at line 733 ¶ | skipping to change at line 645 ¶ | |||
Author: Sladjana Zoric | Author: Sladjana Zoric | |||
<mailto:sladjana.zoric@telekom.de> | <mailto:sladjana.zoric@telekom.de> | |||
Editor: Mohamed Boucadair | Editor: Mohamed Boucadair | |||
<mailto:mohamed.boucadair@orange.com> | <mailto:mohamed.boucadair@orange.com> | |||
Author: Rajiv Asati | Author: Rajiv Asati | |||
<mailto:rajiva@cisco.com>"; | <mailto:rajiva@cisco.com>"; | |||
description | description | |||
"This document defines a YANG module for the configuration and | "This document defines a YANG module for the configuration and | |||
management of A+P Softwire Customer Premises Equipment (CEs). It | management of A+P Softwire Customer Premises Equipment (CEs). | |||
covers Lightweight 4over6, MAP-E, and MAP-T mechanisms. | It covers Lightweight 4over6, MAP-E, and MAP-T mechanisms. | |||
Copyright (c) 2019 IETF Trust and the persons identified as | Copyright (c) 2019 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (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 8676; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
revision 2019-01-11 { | revision 2019-10-28 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: YANG Modules for IPv4-in-IPv6 Address plus Port | "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port | |||
Softwires"; | (A+P) Softwires"; | |||
} | } | |||
/* | /* | |||
* Features | * Features | |||
*/ | */ | |||
feature binding-mode { | feature binding-mode { | |||
description | description | |||
"Binding is used for configuring the Lightweight 4over6 mechanism. | "Binding is used for configuring the Lightweight 4over6 mechanism. | |||
Binding based softwire mechanisms are IPv4-over-IPv6 tunnelling | Binding-based softwire mechanisms are IPv4-over-IPv6 tunneling | |||
transition mechanisms specifically intended for complete | transition mechanisms specifically intended for complete | |||
independence between the IPv6 subnet prefix (and IPv6 address) | independence between the IPv6 subnet prefix (and IPv6 address) | |||
and IPv4 address, with or without IPv4 address sharing. | and IPv4 address, with or without IPv4 address sharing. | |||
This is accomplished by maintaining state for each softwire | This is accomplished by maintaining state for each softwire | |||
(per-subscriber state) in the central Border Relay (BR) and using | (per-subscriber state) in the central Border Relay (BR) and using | |||
a hub-and-spoke forwarding architecture. In order to delegate the | a hub-and-spoke forwarding architecture. In order to delegate | |||
NAPT function and achieve IPv4 address sharing, port-restricted | the NAPT function and achieve IPv4 address sharing, | |||
IPv4 addresses needs to be allocated to CEs. | port-restricted IPv4 addresses needs to be allocated to CEs. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more binding based softwire instances."; | one or more binding-based softwire instances."; | |||
reference | reference | |||
"RFC7596: Lightweight 4over6: An Extension to the Dual-Stack Lite | "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite | |||
Architecture | Architecture | |||
RFC7597: Mapping of Address and Port with Encapsulation (MAP-E) | RFC 7597: Mapping of Address and Port with Encapsulation (MAP-E) | |||
RFC7599: Mapping of Address and Port using Translation (MAP-T)"; | RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; | |||
} | } | |||
feature map-e { | feature map-e { | |||
description | description | |||
"MAP-E is an IPv6 transition mechanism for transporting IPv4 | "MAP-E is an IPv6 transition mechanism for transporting IPv4 | |||
packets across an IPv6 network using IP encapsulation. MAP-E | packets across an IPv6 network using IP encapsulation. MAP-E | |||
allows for a reduction of the amount of centralized state using | allows for a reduction of the amount of centralized state using | |||
rules to express IPv4/IPv6 address mappings. This introduces an | rules to express IPv4/IPv6 address mappings. This introduces an | |||
algorithmic relationship between the IPv6 subnet and IPv4 | algorithmic relationship between the IPv6 subnet and IPv4 | |||
address. | address. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more MAP-E softwire instances."; | one or more MAP-E softwire instances."; | |||
reference | reference | |||
"RFC7597: Mapping of Address and Port with Encapsulation (MAP-E)"; | "RFC 7597: Mapping of Address and Port with | |||
Encapsulation (MAP-E)"; | ||||
} | } | |||
feature map-t { | feature map-t { | |||
description | description | |||
"MAP-T is an IPv6 transition mechanism for transporting IPv4 | "MAP-T is an IPv6 transition mechanism for transporting IPv4 | |||
packets across an IPv6 network using IP translation. It leverages | packets across an IPv6 network using IP translation. It | |||
a double stateless NAT64 based solution as well as the stateless | leverages a double stateless NAT64-based solution as well as | |||
algorithmic address & transport layer port mapping algorithm | the stateless algorithmic address and transport layer port | |||
defined for MAP-E. | mapping algorithm defined for MAP-E. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more MAP-T softwire instances."; | one or more MAP-T softwire instances."; | |||
reference | reference | |||
"RFC7599: Mapping of Address and Port using Translation (MAP-T)"; | "RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; | |||
} | } | |||
// Binding Entry | // Binding Entry | |||
grouping binding-entry { | grouping binding-entry { | |||
description | description | |||
"The binding BR (Border Relay) maintains an address binding table | "The binding BR (Border Relay) maintains an address binding table | |||
that contains the binding between the CE's IPv6 address, | that contains the binding between the CE's IPv6 address, | |||
the allocated IPv4 address and restricted port-set."; | the allocated IPv4 address, and the restricted port-set."; | |||
leaf binding-ipv6info { | leaf binding-ipv6info { | |||
type union { | type union { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
} | } | |||
description | description | |||
"The IPv6 information for a binding entry. | "The IPv6 information for a binding entry. | |||
When the IPv6 prefix type is used, | When the IPv6 prefix type is used, | |||
the IPv6 source address of the CE is constructed | the IPv6 source address of the CE is constructed | |||
according to the description in RFC7596. | according to the description in RFC 7596. | |||
If the IPv6 address type is used, the CE can use | If the IPv6 address type is used, the CE can use | |||
any valid /128 address from a prefix assigned to | any valid /128 address from a prefix assigned to | |||
the CE."; | the CE."; | |||
reference "Section 5.1 of RFC7596."; | reference | |||
"RFC 7596: Lightweight 4over6: An Extension | ||||
to the Dual-Stack Lite Architecture, Section 5.1"; | ||||
} | } | |||
leaf br-ipv6-addr { | leaf br-ipv6-addr { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The IPv6 address of the binding BR."; | "The IPv6 address of the binding BR."; | |||
} | } | |||
} | } | |||
// configuration and stateful parameters for softwire CE interface | // configuration and stateful parameters for softwire CE interface | |||
skipping to change at line 866 ¶ | skipping to change at line 781 ¶ | |||
"The payload IPv4 MTU for the softwire tunnel."; | "The payload IPv4 MTU for the softwire tunnel."; | |||
} | } | |||
leaf softwire-path-mru { | leaf softwire-path-mru { | |||
type uint16; | type uint16; | |||
units "bytes"; | units "bytes"; | |||
description | description | |||
"The path MRU for the softwire (payload + encapsulation | "The path MRU for the softwire (payload + encapsulation | |||
overhead)."; | overhead)."; | |||
reference | reference | |||
"RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and | "RFC 4213: Basic Transition Mechanisms for IPv6 Hosts and | |||
Routers"; | Routers"; | |||
} | } | |||
choice ce-type { | choice ce-type { | |||
description | description | |||
"Sets the softwire CE mechanism"; | "Sets the softwire CE mechanism"; | |||
case binding { | case binding { | |||
if-feature "binding-mode"; | if-feature "binding-mode"; | |||
description | description | |||
"CE binding configuration"; | "CE binding configuration"; | |||
uses binding-entry; | uses binding-entry; | |||
} | } | |||
skipping to change at line 929 ¶ | skipping to change at line 844 ¶ | |||
"CE notification"; | "CE notification"; | |||
leaf ce-binding-ipv6-addr-change { | leaf ce-binding-ipv6-addr-change { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This notification is generated whenever the CE's binding IPv6 | "This notification is generated whenever the CE's binding IPv6 | |||
address changes for any reason."; | address changes for any reason."; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | ]]></sourcecode> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | </section> | |||
<section anchor="br-yang-module" numbered="true" toc="default"> | ||||
<section anchor="br-yang-module" title="BR Softwire YANG Module"> | <name>BR Softwire YANG Module</name> | |||
<t>This module imports typedefs from <xref target="RFC6991"></xref>. It | <t>This module imports typedefs from <xref target="RFC6991" format="defaul | |||
t"/>. It | ||||
also imports the 'ietf-softwire-common' module.</t> | also imports the 'ietf-softwire-common' module.</t> | |||
<sourcecode name="ietf-softwire-br@2019-10-28.yang" type="yang" markers="t | ||||
<figure> | rue"><![CDATA[ | |||
<artwork><![CDATA[<CODE BEGINS>file "ietf-softwire-br@2019-01-11.yang" | ||||
module ietf-softwire-br { | module ietf-softwire-br { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-softwire-br"; | namespace "urn:ietf:params:xml:ns:yang:ietf-softwire-br"; | |||
prefix softwire-br; | prefix softwire-br; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
reference "Section 4 of RFC 6991"; | reference | |||
"RFC 6991: Common YANG Data Types, Section 4"; | ||||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
reference "Section 3 of RFC 6991"; | reference | |||
"RFC 6991: Common YANG Data Types, Section 3"; | ||||
} | } | |||
import ietf-softwire-common { | import ietf-softwire-common { | |||
prefix softwire-common; | prefix softwire-common; | |||
reference | reference | |||
"RFC XXXX: YANG Modules for IPv4-in-IPv6 Address plus Port | "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port | |||
Softwires"; | (A+P) Softwires"; | |||
} | } | |||
organization | organization | |||
"IETF Softwire Working Group"; | "IETF Softwire Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/softwire/> | "WG Web: <https://datatracker.ietf.org/wg/softwire/> | |||
WG List: <mailto:softwire@ietf.org> | WG List: <mailto:softwire@ietf.org> | |||
Author: Qi Sun | Author: Qi Sun | |||
<mailto:sunqi.ietf@gmail.com> | <mailto:sunqi.ietf@gmail.com> | |||
skipping to change at line 990 ¶ | skipping to change at line 902 ¶ | |||
<mailto:sladjana.zoric@telekom.de> | <mailto:sladjana.zoric@telekom.de> | |||
Editor: Mohamed Boucadair | Editor: Mohamed Boucadair | |||
<mailto:mohamed.boucadair@orange.com> | <mailto:mohamed.boucadair@orange.com> | |||
Author: Rajiv Asati | Author: Rajiv Asati | |||
<mailto:rajiva@cisco.com>"; | <mailto:rajiva@cisco.com>"; | |||
description | description | |||
"This document defines a YANG module for the configuration and | "This document defines a YANG module for the configuration and | |||
management of A+P Softwire Border Routers. It covers Lightweight | management of A+P Softwire Border Routers. It covers Lightweight | |||
4over6, MAP-E, and MAP-T mechanisms. | 4over6, MAP-E, and MAP-T mechanisms. | |||
Copyright (c) 2019 IETF Trust and the persons identified as | Copyright (c) 2019 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (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 8676; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
revision 2019-01-11 { | revision 2019-10-28 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: YANG Modules for IPv4-in-IPv6 Address plus Port | "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port | |||
Softwires"; | (A+P) Softwires"; | |||
} | } | |||
/* | /* | |||
* Groupings | * Groupings | |||
*/ | */ | |||
grouping port-set { | grouping port-set { | |||
description | description | |||
"Describes a set of layer 4 port numbers. | "Describes a set of Layer 4 port numbers. | |||
This may be a simple port range, or use the Port Set | This may be a simple port range, or use the Port Set | |||
Identifier (PSID) algorithm to represent a range of transport | Identifier (PSID) algorithm to represent a range of transport | |||
layer ports which will be used by a NAPT."; | layer ports that will be used by a NAPT."; | |||
leaf psid-offset { | leaf psid-offset { | |||
type uint8 { | type uint8 { | |||
range "0..16"; | range "0..16"; | |||
} | } | |||
description | description | |||
"The number of offset bits. In Lightweight 4over6, | "The number of offset bits. In Lightweight 4over6, | |||
the default value is 0 for assigning one contiguous | the default value is 0 for assigning one contiguous | |||
port range. In MAP-E/T, the default value is 6, | port range. In MAP-E/T, the default value is 6, | |||
which means the system ports (0-1023) are excluded by | which means the system ports (0-1023) are excluded by | |||
default and the assigned port ranges are distributed across | default and the assigned port ranges are distributed across | |||
the entire port space, depending on either psid-len or the | the entire port space, depending on either psid-len or the | |||
number of contiguous ports."; | number of contiguous ports."; | |||
} | } | |||
leaf psid-len { | leaf psid-len { | |||
type uint8 { | type uint8 { | |||
range "0..15"; | range "0..15"; | |||
} | } | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The length of PSID, representing the sharing | "The length of PSID, representing the sharing | |||
ratio for an IPv4 address. This, along with ea-len, can | ratio for an IPv4 address. This, along with ea-len, can | |||
be used to calculate the number of contiguous ports per | be used to calculate the number of contiguous ports per | |||
port range"; | port range"; | |||
} | } | |||
leaf psid { | leaf psid { | |||
type uint16; | type uint16; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"Port Set Identifier (PSID) value, which | "Port Set Identifier (PSID) value, which | |||
identifies a set of ports algorithmically."; | identifies a set of ports algorithmically."; | |||
} | } | |||
skipping to change at line 1072 ¶ | skipping to change at line 984 ¶ | |||
the allocated IPv4 address and restricted port-set."; | the allocated IPv4 address and restricted port-set."; | |||
leaf binding-ipv6info { | leaf binding-ipv6info { | |||
type union { | type union { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
} | } | |||
description | description | |||
"The IPv6 information for a CE binding entry. | "The IPv6 information for a CE binding entry. | |||
When the IPv6 prefix type is used, | When the IPv6 prefix type is used, | |||
the IPv6 source address of the CE is constructed | the IPv6 source address of the CE is constructed | |||
according to the description in RFC7596; | according to the description in RFC 7596; | |||
if the IPv6 address type is used, the CE can use | if the IPv6 address type is used, the CE can use | |||
any valid /128 address from a prefix assigned to | any valid /128 address from a prefix assigned to | |||
the CE."; | the CE."; | |||
reference | reference | |||
"RFC7596: Lightweight 4over6: An Extension to the Dual-Stack | "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack | |||
Lite Architecture"; | Lite Architecture"; | |||
} | } | |||
leaf binding-ipv4-addr { | leaf binding-ipv4-addr { | |||
type inet:ipv4-address; | type inet:ipv4-address; | |||
description | description | |||
"The IPv4 address assigned to the binding CE, | "The IPv4 address assigned to the binding CE, | |||
which is used as the IPv4 external address | which is used as the IPv4 external address | |||
for binding CE local NAPT44."; | for binding CE local NAPT44."; | |||
} | } | |||
container port-set { | container port-set { | |||
description | description | |||
skipping to change at line 1113 ¶ | skipping to change at line 1025 ¶ | |||
} | } | |||
/* | /* | |||
* Features | * Features | |||
*/ | */ | |||
feature binding-mode { | feature binding-mode { | |||
description | description | |||
"Binding is used for configuring the Lightweight 4over6 mechanism. | "Binding is used for configuring the Lightweight 4over6 mechanism. | |||
Binding based softwire mechanisms are IPv4-over-IPv6 tunnelling | Binding-based softwire mechanisms are IPv4-over-IPv6 tunneling | |||
transition mechanisms specifically intended for complete | transition mechanisms specifically intended for complete | |||
independence between the IPv6 subnet prefix (and IPv6 address) | independence between the IPv6 subnet prefix (and IPv6 address) | |||
and IPv4 address, with or without IPv4 address sharing. | and IPv4 address, with or without IPv4 address sharing. | |||
This is accomplished by maintaining state for each softwire | This is accomplished by maintaining state for each softwire | |||
(per-subscriber state) in the central Border Relay (BR) and using | (per-subscriber state) in the central Border Relay (BR) and using | |||
a hub-and-spoke forwarding architecture. In order to delegate the | a hub-and-spoke forwarding architecture. In order to delegate | |||
NAPT function and achieve IPv4 address sharing, port-restricted | the NAPT function and achieve IPv4 address sharing, | |||
IPv4 addresses needs to be allocated to CEs. | port-restricted IPv4 addresses needs to be allocated to CEs. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more binding based softwire instances."; | one or more binding-based softwire instances."; | |||
reference | reference | |||
"RFC7596: Lightweight 4over6: An Extension to the Dual-Stack Lite | "RFC 7596: Lightweight 4over6: An Extension to the Dual-Stack Lite | |||
Architecture | Architecture | |||
RFC7597: Mapping of Address and Port with Encapsulation (MAP-E) | RFC 7597: Mapping of Address and Port with Encapsulation (MAP-E) | |||
RFC7599: Mapping of Address and Port using Translation (MAP-T)"; | RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; | |||
} | } | |||
feature map-e { | feature map-e { | |||
description | description | |||
"MAP-E is an IPv6 transition mechanism for transporting IPv4 | "MAP-E is an IPv6 transition mechanism for transporting IPv4 | |||
packets across an IPv6 network using IP encapsulation. MAP-E | packets across an IPv6 network using IP encapsulation. MAP-E | |||
allows for a reduction of the amount of centralized state using | allows for a reduction of the amount of centralized state using | |||
rules to express IPv4/IPv6 address mappings. This introduces an | rules to express IPv4/IPv6 address mappings. This introduces an | |||
algorithmic relationship between the IPv6 subnet and IPv4 | algorithmic relationship between the IPv6 subnet and IPv4 | |||
address. | address. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more MAP-E softwire instances."; | one or more MAP-E softwire instances."; | |||
reference | reference | |||
"RFC7597: Mapping of Address and Port with Encapsulation (MAP-E)"; | "RFC 7597: Mapping of Address and Port with Encapsulation | |||
(MAP-E)"; | ||||
} | } | |||
feature map-t { | feature map-t { | |||
description | description | |||
"MAP-T is an IPv6 transition mechanism for transporting IPv4 | "MAP-T is an IPv6 transition mechanism for transporting IPv4 | |||
packets across an IPv6 network using IP translation. It leverages | packets across an IPv6 network using IP translation. It | |||
a double stateless NAT64 based solution as well as the stateless | leverages a double stateless NAT64-based solution as well | |||
algorithmic address & transport layer port mapping algorithm | as the stateless algorithmic address and transport layer | |||
defined for MAP-E. | port mapping algorithm defined for MAP-E. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more MAP-T softwire instances."; | one or more MAP-T softwire instances."; | |||
reference | reference | |||
"RFC7599: Mapping of Address and Port using Translation (MAP-T)"; | "RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; | |||
} | } | |||
container br-instances { | container br-instances { | |||
description | description | |||
"BR instances enabled in a network element."; | "BR instances enabled in a network element."; | |||
choice br-type { | choice br-type { | |||
description | description | |||
"Select binding or algorithmic BR functionality."; | "Select binding or algorithmic BR functionality."; | |||
case binding { | case binding { | |||
if-feature "binding-mode"; | if-feature "binding-mode"; | |||
skipping to change at line 1181 ¶ | skipping to change at line 1094 ¶ | |||
description | description | |||
"binding mechanism (binding table) configuration."; | "binding mechanism (binding table) configuration."; | |||
list bind-instance { | list bind-instance { | |||
key "name"; | key "name"; | |||
description | description | |||
"A set of binding instances to be configured."; | "A set of binding instances to be configured."; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The name for the binding BR. It is used to uniquely | "The name for the binding BR. It is used to uniquely | |||
distinguish a binding instance by its name."; | distinguish a binding instance by its name."; | |||
} | } | |||
container binding-table-versioning { | container binding-table-versioning { | |||
description | description | |||
"binding table's version"; | "binding table's version"; | |||
leaf version { | leaf version { | |||
type uint64; | type uint64; | |||
description | description | |||
"Version number for this binding table."; | "Version number for this binding table."; | |||
} | } | |||
leaf date { | leaf date { | |||
type yang:date-and-time; | type yang:date-and-time; | |||
description | description | |||
"Timestamp when the binding table was activated. | "Timestamp when the binding table was activated. | |||
A binding instance may be provided with binding | A binding instance may be provided with binding | |||
entries that may change in time (e.g., increase | entries that may change in time (e.g., increase | |||
the size of the port set). When a party who is the | the size of the port set). When a party who is the | |||
victim of abuse presents an external IP address/port, | victim of abuse presents an external IP address/port, | |||
the version of the binding table is important | the version of the binding table is important | |||
because depending on the version, a distinct customer | because, depending on the version, a distinct | |||
may be identified. | customer may be identified. | |||
The timestamp is used as a key to find the | The timestamp is used as a key to find the | |||
appropriate binding table that was put into effect | appropriate binding table that was put into effect | |||
when an abuse occurred."; | when an abuse occurred."; | |||
reference | reference | |||
"RFC7422: Deterministic Address Mapping to Reduce | "RFC 7422: Deterministic Address Mapping to Reduce | |||
Logging in Carrier-Grade NAT Deployments"; | Logging in Carrier-Grade NAT Deployments"; | |||
} | } | |||
} | } | |||
leaf softwire-num-max { | leaf softwire-num-max { | |||
type uint32 { | type uint32 { | |||
range "1..max"; | range "1..max"; | |||
} | } | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The maximum number of softwires that can be created | "The maximum number of softwires that can be created | |||
on the binding BR."; | on the binding BR."; | |||
skipping to change at line 1234 ¶ | skipping to change at line 1147 ¶ | |||
units "bytes"; | units "bytes"; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The payload IPv4 MTU for binding softwire."; | "The payload IPv4 MTU for binding softwire."; | |||
} | } | |||
leaf softwire-path-mru { | leaf softwire-path-mru { | |||
type uint16; | type uint16; | |||
units "bytes"; | units "bytes"; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The path MRU for binding softwire."; | "The path MRU for binding softwire"; | |||
reference | reference | |||
"RFC4213: Basic Transition Mechanisms for IPv6 Hosts | "RFC 4213: Basic Transition Mechanisms for IPv6 Hosts | |||
and Routers"; | and Routers"; | |||
} | } | |||
leaf enable-hairpinning { | leaf enable-hairpinning { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"Enables/disables support for locally forwarding | "Enables/disables support for locally forwarding | |||
(hairpinning) traffic between two CEs."; | (hairpinning) traffic between two CEs"; | |||
reference "Section 6.2 of RFC7596"; | reference | |||
"RFC 7596: Lightweight 4over6: An Extension to | ||||
the Dual-Stack Lite Architecture, Section 6.2"; | ||||
} | } | |||
container binding-table { | container binding-table { | |||
description | description | |||
"binding table"; | "binding table"; | |||
list binding-entry { | list binding-entry { | |||
key "binding-ipv6info"; | key "binding-ipv6info"; | |||
description | description | |||
"binding entry"; | "binding entry"; | |||
uses binding-entry; | uses binding-entry; | |||
} | } | |||
} | } | |||
container icmp-policy { | container icmp-policy { | |||
description | description | |||
"The binding BR can be configured to process or drop | "The binding BR can be configured to process or drop | |||
incoming ICMP messages, and to generate outgoing ICMP | incoming ICMP messages and to generate outgoing ICMP | |||
error messages."; | error messages."; | |||
container icmpv4-errors { | container icmpv4-errors { | |||
description | description | |||
"ICMPv4 error processing configuration"; | "ICMPv4 error processing configuration"; | |||
leaf allow-incoming-icmpv4 { | leaf allow-incoming-icmpv4 { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"Enables the processing of incoming ICMPv4 | "Enables the processing of incoming ICMPv4 | |||
packets."; | packets."; | |||
reference | reference | |||
"RFC7596: Lightweight 4over6: An Extension to | "RFC 7596: Lightweight 4over6: An Extension to | |||
the Dual-Stack Lite Architecture"; | the Dual-Stack Lite Architecture"; | |||
} | } | |||
leaf icmpv4-rate { | leaf icmpv4-rate { | |||
type uint32; | type uint32; | |||
description | description | |||
"Rate limit threshold in messages per-second | "Rate limit threshold in messages per second | |||
for processing incoming ICMPv4 errors messages"; | for processing incoming ICMPv4 errors messages"; | |||
} | } | |||
leaf generate-icmpv4-errors { | leaf generate-icmpv4-errors { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"Enables the generation of outgoing ICMPv4 error | "Enables the generation of outgoing ICMPv4 error | |||
messages on receipt of an inbound IPv4 packet | messages on receipt of an inbound IPv4 packet | |||
with no matching binding table entry."; | with no matching binding table entry."; | |||
reference "Seciton 5.2 of RFC7596."; | reference | |||
"RFC 7596: Lightweight 4over6: | ||||
An Extension to the Dual-Stack Lite | ||||
Architecture, Section 5.2"; | ||||
} | } | |||
} | } | |||
container icmpv6-errors { | container icmpv6-errors { | |||
description | description | |||
"ICMPv6 error processing configuration"; | "ICMPv6 error processing configuration"; | |||
leaf generate-icmpv6-errors { | leaf generate-icmpv6-errors { | |||
type boolean; | type boolean; | |||
default "true"; | default "true"; | |||
description | description | |||
"Enables the generation of ICMPv6 error messages if | "Enables the generation of ICMPv6 error messages if | |||
no matching binding table entry is found for a | no matching binding table entry is found for a | |||
received packet."; | received packet."; | |||
reference "Section 6.2 of RFC7596."; | reference | |||
"RFC 7596: Lightweight 4over6: | ||||
An Extension to the Dual-Stack Lite | ||||
Architecture, Section 6.2"; | ||||
} | } | |||
leaf icmpv6-rate { | leaf icmpv6-rate { | |||
type uint32; | type uint32; | |||
description | description | |||
"Rate limit threshold in messages per-second | "Rate limit threshold in messages per second | |||
for sending ICMPv6 errors messages"; | for sending ICMPv6 errors messages"; | |||
reference "Section 9 of RFC7596."; | reference | |||
"RFC 7596: Lightweight 4over6: An Extension | ||||
to the Dual-Stack Lite Architecture, Section 9"; | ||||
} | } | |||
} | } | |||
} | } | |||
container traffic-stat { | container traffic-stat { | |||
config false; | config false; | |||
description | description | |||
"Traffic statistics information for the BR."; | "Traffic statistics information for the BR."; | |||
leaf discontinuity-time { | leaf discontinuity-time { | |||
type yang:date-and-time; | type yang:date-and-time; | |||
mandatory true; | mandatory true; | |||
skipping to change at line 1330 ¶ | skipping to change at line 1253 ¶ | |||
"The time of the most recent occasion on which the BR | "The time of the most recent occasion on which the BR | |||
instance suffered a discontinuity. This must be | instance suffered a discontinuity. This must be | |||
initialized when the BR instance is configured | initialized when the BR instance is configured | |||
or rebooted."; | or rebooted."; | |||
} | } | |||
uses softwire-common:traffic-stat; | uses softwire-common:traffic-stat; | |||
leaf dropped-icmpv4-packets { | leaf dropped-icmpv4-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"ICMPv4 packets that are dropped as a result | "ICMPv4 packets that are dropped as a result | |||
of the ICMP policy. Typically, this can be any | of the ICMP policy. Typically, this can be any | |||
incoming ICMPv4 packets if ICMPv4 processing is | incoming ICMPv4 packets if ICMPv4 processing is | |||
disabled or incoming ICMPv4 packets that exceed | disabled or incoming ICMPv4 packets that exceed | |||
the ICMPv4 rate-limit threshold. | the ICMPv4 rate-limit threshold. | |||
Discontinuities in the value of this counter can | Discontinuities in the value of this counter can | |||
occur at re-initialization of the management | occur at re-initialization of the management | |||
system, and at other times as indicated by | system and at other times as indicated by | |||
the value of 'discontinuity-time'."; | the value of 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-icmpv4-bytes { | leaf dropped-icmpv4-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"ICMPv4 messages, in bytes, that are dropped as | "ICMPv4 messages, in bytes, that are dropped as | |||
a result of the ICMP policy. Typically, it | a result of the ICMP policy. Typically, it | |||
can be any incoming ICMPv4 packets if ICMPv4 | can be any incoming ICMPv4 packets if ICMPv4 | |||
processing is disabled or incoming ICMPv4 | processing is disabled or incoming ICMPv4 | |||
packets that exceed the ICMPv4 rate-limit | packets that exceed the ICMPv4 rate-limit | |||
threshold. | threshold. | |||
Discontinuities in the value of this counter can | Discontinuities in the value of this counter can | |||
occur at re-initialization of the management | occur at re-initialization of the management | |||
system, and at other times as indicated by | system and at other times as indicated by | |||
the value of 'discontinuity-time'."; | the value of 'discontinuity-time'."; | |||
} | } | |||
leaf hairpin-ipv4-packets { | leaf hairpin-ipv4-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv4 packets locally routed between two CEs | "IPv4 packets locally routed between two CEs | |||
(hairpinned). | (hairpinned). | |||
Discontinuities in the value of this counter can | Discontinuities in the value of this counter can | |||
occur at re-initialization of the management | occur at re-initialization of the management | |||
system, and at other times as indicated by | system and at other times as indicated by | |||
the value of 'discontinuity-time'."; | the value of 'discontinuity-time'."; | |||
} | } | |||
leaf hairpin-ipv4-bytes { | leaf hairpin-ipv4-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv4 bytes locally routed between two CEs | "IPv4 bytes locally routed between two CEs | |||
(hairpinned). | (hairpinned). | |||
Discontinuities in the value of this counter can | Discontinuities in the value of this counter can | |||
occur at re-initialization of the management | occur at re-initialization of the management | |||
system, and at other times as indicated by | system and at other times as indicated by | |||
the value of 'discontinuity-time'."; | the value of 'discontinuity-time'."; | |||
} | } | |||
leaf active-softwire-num { | leaf active-softwire-num { | |||
type uint32; | type uint32; | |||
config false; | config false; | |||
description | description | |||
"The number of currently active softwires on the | "The number of currently active softwires on the | |||
binding instance. | binding instance. | |||
Discontinuities in the value of this counter can | Discontinuities in the value of this counter can | |||
occur at re-initialization of the management | occur at re-initialization of the management | |||
system, and at other times as indicated by | system and at other times as indicated by | |||
the value of 'discontinuity-time'."; | the value of 'discontinuity-time'."; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
case algo { | case algo { | |||
if-feature "map-e or map-t"; | if-feature "map-e or map-t"; | |||
container algorithm { | container algorithm { | |||
description | description | |||
" A set of parameters used for MAP-E/MAP-T."; | "A set of parameters used for MAP-E/MAP-T"; | |||
list algo-instance { | list algo-instance { | |||
key "name"; | key "name"; | |||
description | description | |||
"Instances of algorithm"; | "Instances of algorithm"; | |||
leaf name { | leaf name { | |||
type string; | type string; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The name is used to uniquely identify an algorithm | "The name is used to uniquely identify an algorithm | |||
instance. | instance. | |||
skipping to change at line 1446 ¶ | skipping to change at line 1369 ¶ | |||
} | } | |||
} | } | |||
/* | /* | |||
* Notifications | * Notifications | |||
*/ | */ | |||
notification softwire-binding-instance-event { | notification softwire-binding-instance-event { | |||
if-feature "binding-mode"; | if-feature "binding-mode"; | |||
description | description | |||
"Notifications for binding instance when an entry is | "Notifications for the binding instance when an entry is | |||
added, modified, or is not valid anymore."; | added, modified, or is not valid anymore."; | |||
leaf bind-name { | leaf bind-name { | |||
type leafref { | type leafref { | |||
path "/br-instances/binding/bind-instance/name"; | path "/br-instances/binding/bind-instance/name"; | |||
} | } | |||
description | description | |||
"The name of the binding-instance that | "The name of the binding-instance that | |||
generated the notification."; | generated the notification."; | |||
} | } | |||
leaf-list invalid-entry { | leaf-list invalid-entry { | |||
type leafref { | type leafref { | |||
path | path "/br-instances/binding/" | |||
"/br-instances/binding/" | + "bind-instance[name=current()/../bind-name]/" | |||
+ "bind-instance[name=current()/../bind-name]/" | + "binding-table/binding-entry/binding-ipv6info"; | |||
+ "binding-table/binding-entry/binding-ipv6info"; | ||||
} | } | |||
description | description | |||
"Notify the client that a specific binding entry has | "Notify the client that a specific binding entry has | |||
expired or is invalid. The binding-ipv6info identifies | expired or is invalid. The binding-ipv6info identifies | |||
an entry."; | an entry."; | |||
} | } | |||
leaf-list added-entry { | leaf-list added-entry { | |||
type inet:ipv6-address; | type inet:ipv6-address; | |||
description | description | |||
"Notify the client that a binding entry has been added. | "Notify the client that a binding entry has been added. | |||
The ipv6 address of that entry is the index. The client | The IPv6 address of that entry is the index. The client | |||
gets other information from the binding BR about the entry | gets other information from the binding BR about the entry | |||
indexed by that ipv6 address."; | indexed by that ipv6 address."; | |||
} | } | |||
leaf-list modified-entry { | leaf-list modified-entry { | |||
type leafref { | type leafref { | |||
path | path "/br-instances/binding/" | |||
"/br-instances/binding/" | + "bind-instance[name=current()/../bind-name]/" | |||
+ "bind-instance[name=current()/../bind-name]/" | + "binding-table/binding-entry/binding-ipv6info"; | |||
+ "binding-table/binding-entry/binding-ipv6info"; | ||||
} | } | |||
description | description | |||
"The binding-table entry that has been modified."; | "The binding table entry that has been modified."; | |||
} | } | |||
} | } | |||
notification softwire-algorithm-instance-event { | notification softwire-algorithm-instance-event { | |||
if-feature "map-e or map-t"; | if-feature "map-e or map-t"; | |||
description | description | |||
"Notifications for algorithm instance when an entry is | "Notifications for an algorithm instance when an entry is | |||
added, modified, or is not valid anymore."; | added, modified, or is not valid anymore."; | |||
leaf algo-name { | leaf algo-name { | |||
type leafref { | type leafref { | |||
path "/br-instances/algorithm/algo-instance/name"; | path "/br-instances/algorithm/algo-instance/name"; | |||
} | } | |||
mandatory true; | mandatory true; | |||
description | description | |||
"algorithmic instance event."; | "Algorithmic instance event."; | |||
} | } | |||
leaf-list invalid-entry { | leaf-list invalid-entry { | |||
type leafref { | type leafref { | |||
path "/br-instances/algorithm/algo-instance/name"; | path "/br-instances/algorithm/algo-instance/name"; | |||
} | } | |||
description | description | |||
"Invalid entry event."; | "Invalid entry."; | |||
} | } | |||
leaf-list added-entry { | leaf-list added-entry { | |||
type leafref { | type leafref { | |||
path "/br-instances/algorithm/algo-instance/name"; | path "/br-instances/algorithm/algo-instance/name"; | |||
} | } | |||
description | description | |||
"Added entry."; | "Added entry."; | |||
} | } | |||
leaf-list modified-entry { | leaf-list modified-entry { | |||
type leafref { | type leafref { | |||
path "/br-instances/algorithm/algo-instance/name"; | path "/br-instances/algorithm/algo-instance/name"; | |||
} | } | |||
description | description | |||
"Modified entry."; | "Modified entry."; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> | ]]></sourcecode> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | </section> | |||
<section anchor="commons-softwire-elements" numbered="true" toc="default"> | ||||
<section anchor="commons-softwire-elements" | <name>Common Softwire Element Groups YANG Module</name> | |||
title="Common Softwire Element Groups YANG Module"> | <t>This module imports typedefs from <xref target="RFC6991" format="defaul | |||
<t>This module imports typedefs from <xref target="RFC6991"></xref>.</t> | t"/>.</t> | |||
<t>The following YANG module contains definitions that are used by both | <t>The following YANG module contains definitions that are used by both | |||
the softwire CE and softwire BR YANG modules.</t> | the softwire CE and softwire BR YANG modules.</t> | |||
<figure> | <sourcecode name="ietf-softwire-common@2019-10-28.yang" type="yang" marker | |||
<artwork><![CDATA[<CODE BEGINS>file "ietf-softwire-common@2019-01-11.yan | s="true"><![CDATA[ | |||
g" | ||||
module ietf-softwire-common { | module ietf-softwire-common { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-softwire-common"; | namespace "urn:ietf:params:xml:ns:yang:ietf-softwire-common"; | |||
prefix softwire-common; | prefix softwire-common; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
reference "Section 4 of RFC 6991"; | reference | |||
"RFC 6991: Common YANG Data Types, Section 4"; | ||||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
reference "Section 3 of RFC 6991"; | reference | |||
"RFC 6991: Common YANG Data Types, Section 3"; | ||||
} | } | |||
organization | organization | |||
"IETF Softwire Working Group"; | "IETF Softwire Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/softwire/> | "WG Web: <https://datatracker.ietf.org/wg/softwire/> | |||
WG List: <mailto:softwire@ietf.org> | WG List: <mailto:softwire@ietf.org> | |||
Author: Qi Sun | Author: Qi Sun | |||
<mailto:sunqi.ietf@gmail.com> | <mailto:sunqi.ietf@gmail.com> | |||
skipping to change at line 1592 ¶ | skipping to change at line 1509 ¶ | |||
Copyright (c) 2019 IETF Trust and the persons identified as | Copyright (c) 2019 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (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 8676; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
revision 2019-01-11 { | revision 2019-10-28 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: YANG Modules for IPv4-in-IPv6 Address plus Port | "RFC 8676: YANG Modules for IPv4-in-IPv6 Address plus Port | |||
Softwires"; | (A+P) Softwires"; | |||
} | } | |||
feature map-e { | feature map-e { | |||
description | description | |||
"MAP-E is an IPv6 transition mechanism for transporting IPv4 | "MAP-E is an IPv6 transition mechanism for transporting IPv4 | |||
packets across an IPv6 network using IP encapsulation. MAP-E | packets across an IPv6 network using IP encapsulation. MAP-E | |||
allows for a reduction of the amount of centralized state using | allows for a reduction of the amount of centralized state using | |||
rules to express IPv4/IPv6 address mappings. This introduces an | rules to express IPv4/IPv6 address mappings. This introduces an | |||
algorithmic relationship between the IPv6 subnet and IPv4 | algorithmic relationship between the IPv6 subnet and IPv4 | |||
address. | address. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more MAP-E softwire instances."; | one or more MAP-E softwire instances."; | |||
reference | reference | |||
"RFC7597: Mapping of Address and Port with Encapsulation (MAP-E)"; | "RFC 7597: Mapping of Address and Port with Encapsulation | |||
(MAP-E)"; | ||||
} | } | |||
feature map-t { | feature map-t { | |||
description | description | |||
"MAP-T is an IPv6 transition mechanism for transporting IPv4 | "MAP-T is an IPv6 transition mechanism for transporting IPv4 | |||
packets across an IPv6 network using IP translation. It leverages | packets across an IPv6 network using IP translation. It | |||
a double stateless NAT64 based solution as well as the stateless | leverages a double stateless NAT64-based solution as well as | |||
algorithmic address & transport layer port mapping algorithm | the stateless algorithmic address and transport layer | |||
defined for MAP-E. | port mapping algorithm defined for MAP-E. | |||
This feature indicates that the network element can function as | This feature indicates that the network element can function as | |||
one or more MAP-T softwire instances."; | one or more MAP-T softwire instances."; | |||
reference | reference | |||
"RFC7599: Mapping of Address and Port using Translation (MAP-T)"; | "RFC 7599: Mapping of Address and Port using Translation (MAP-T)"; | |||
} | } | |||
/* | /* | |||
* Groupings | * Groupings | |||
*/ | */ | |||
grouping algorithm-instance { | grouping algorithm-instance { | |||
description | description | |||
"A collection of parameters that is used fro MAP-E/MAP-T."; | "A collection of parameters that is used for MAP-E/MAP-T."; | |||
leaf enable { | leaf enable { | |||
type boolean; | type boolean; | |||
description | description | |||
"Enable/disable an individual MAP-E or MAP-T rule."; | "Enable/disable an individual MAP-E or MAP-T rule."; | |||
} | } | |||
container algo-versioning { | container algo-versioning { | |||
description | description | |||
"Version number for this algorithm instance"; | "Version number for this algorithm instance"; | |||
leaf version { | leaf version { | |||
type uint64; | type uint64; | |||
skipping to change at line 1660 ¶ | skipping to change at line 1578 ¶ | |||
"A version number for the mapping algorithm | "A version number for the mapping algorithm | |||
rules provided to the algorithm instance"; | rules provided to the algorithm instance"; | |||
} | } | |||
leaf date { | leaf date { | |||
type yang:date-and-time; | type yang:date-and-time; | |||
description | description | |||
"Timestamp when the algorithm instance was activated. | "Timestamp when the algorithm instance was activated. | |||
An algorithm instance may be provided with mapping | An algorithm instance may be provided with mapping | |||
rules that may change in time (for example, increase | rules that may change in time (for example, increase | |||
the size of the port set). When a party who is the victim | the size of the port set). When a party who is the victim | |||
of abuse presents an external IP address/port, the version | of abuse presents an external IP address/port, the version | |||
of the algorithm is important because depending on | of the algorithm is important because depending on | |||
the version, a distinct customer may be identified. | the version, a distinct customer may be identified. | |||
The timestamp is used as a key to find the appropriate | The timestamp is used as a key to find the appropriate | |||
algorithm that was put into effect when an abuse | algorithm that was put into effect when an abuse | |||
occurred. "; | occurred."; | |||
reference | reference | |||
"RFC7422: Deterministic Address Mapping to Reduce | "RFC 7422: Deterministic Address Mapping to Reduce | |||
Logging in Carrier-Grade NAT Deployments"; | Logging in Carrier-Grade NAT Deployments"; | |||
} | } | |||
} | } | |||
choice data-plane { | choice data-plane { | |||
description | description | |||
"Selects MAP-E (encapsulation) or MAP-T | "Selects MAP-E (encapsulation) or MAP-T | |||
(translation)"; | (translation)"; | |||
case encapsulation { | case encapsulation { | |||
if-feature "map-e"; | if-feature "map-e"; | |||
description | description | |||
"encapsulation for MAP-E"; | "encapsulation for MAP-E"; | |||
skipping to change at line 1706 ¶ | skipping to change at line 1624 ¶ | |||
} | } | |||
} | } | |||
} | } | |||
leaf ea-len { | leaf ea-len { | |||
type uint8; | type uint8; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"Embedded Address (EA) bits are the IPv4 EA-bits in the IPv6 | "Embedded Address (EA) bits are the IPv4 EA-bits in the IPv6 | |||
address identifying an IPv4 prefix/address (or part thereof) | address identifying an IPv4 prefix/address (or part thereof) | |||
or a shared IPv4 address (or part thereof) and a port-set | or a shared IPv4 address (or part thereof) and a port-set | |||
identifier. The length of the EA-bits is defined as part of | identifier. The length of the EA-bits is defined as part of | |||
a MAP rule for a MAP domain."; | a MAP rule for a MAP domain."; | |||
} | } | |||
leaf rule-ipv6-prefix { | leaf rule-ipv6-prefix { | |||
type inet:ipv6-prefix; | type inet:ipv6-prefix; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The Rule IPv6 prefix defined in the mapping rule."; | "The Rule IPv6 prefix defined in the mapping rule."; | |||
} | } | |||
leaf rule-ipv4-prefix { | leaf rule-ipv4-prefix { | |||
type inet:ipv4-prefix; | type inet:ipv4-prefix; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"The Rule IPv4 prefix defined in the mapping rule."; | "The Rule IPv4 prefix defined in the mapping rule."; | |||
} | } | |||
leaf forwarding { | leaf forwarding { | |||
type boolean; | type boolean; | |||
mandatory true; | mandatory true; | |||
description | description | |||
"This parameter specifies whether the rule may be used for | "This parameter specifies whether the rule may be used for | |||
forwarding (FMR). If set, this rule is used as an FMR; | forwarding; if set, this rule is used as a Forwarding | |||
if not set, this rule is a Basic Mapping Rule (BMR) only | Mapping Rule (FMR); if not set, this rule is a Basic | |||
and must not be used for forwarding."; | Mapping Rule (BMR) only and must not be used for forwarding."; | |||
} | } | |||
} | } | |||
grouping traffic-stat { | grouping traffic-stat { | |||
description | description | |||
"Traffic statistics"; | "Traffic statistics"; | |||
leaf sent-ipv4-packets { | leaf sent-ipv4-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of decapsulated and forwarded IPv4 packets. | "Number of decapsulated and forwarded IPv4 packets. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf sent-ipv4-bytes { | leaf sent-ipv4-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Decapsulated/translated IPv4 traffic sent, in bytes | "Decapsulated/translated IPv4 traffic sent, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf sent-ipv6-packets { | leaf sent-ipv6-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of encapsulated IPv6 packets sent. | "Number of encapsulated IPv6 packets sent. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf sent-ipv6-bytes { | leaf sent-ipv6-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Encapsulated IPv6 traffic sent, in bytes | "Encapsulated IPv6 traffic sent, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf rcvd-ipv4-packets { | leaf rcvd-ipv4-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of IPv4 packets received. | "Number of IPv4 packets received. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf rcvd-ipv4-bytes { | leaf rcvd-ipv4-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv4 traffic received, in bytes. | "IPv4 traffic received, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf rcvd-ipv6-packets { | leaf rcvd-ipv6-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of IPv4-in-IPv6 packets received. | "Number of IPv4-in-IPv6 packets received. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf rcvd-ipv6-bytes { | leaf rcvd-ipv6-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv4-in-IPv6 traffic received, in bytes. | "IPv4-in-IPv6 traffic received, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-ipv4-packets { | leaf dropped-ipv4-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of IPv4 packets dropped at the | "Number of IPv4 packets dropped at the | |||
Internet-facing interface. | Internet-facing interface. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-ipv4-bytes { | leaf dropped-ipv4-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv4 traffic dropped at the Internet-facing | "IPv4 traffic dropped at the Internet-facing | |||
interface, in bytes. | interface, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-ipv6-packets { | leaf dropped-ipv6-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of IPv4-in-IPv6 packets dropped. | "Number of IPv4-in-IPv6 packets dropped. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-ipv6-bytes { | leaf dropped-ipv6-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv4-in-IPv6 traffic dropped, in bytes. | "IPv4-in-IPv6 traffic dropped, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-ipv4-fragments { | leaf dropped-ipv4-fragments { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of fragmented IPv4 packets dropped. | "Number of fragmented IPv4 packets dropped. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf dropped-ipv4-fragment-bytes { | leaf dropped-ipv4-fragment-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Fragmented IPv4 traffic dropped, in bytes. | "Fragmented IPv4 traffic dropped, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf ipv6-fragments-reassembled { | leaf ipv6-fragments-reassembled { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Number of IPv6 fragments successfully reassembled. | "Number of IPv6 fragments successfully reassembled. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf ipv6-fragments-bytes-reassembled { | leaf ipv6-fragments-bytes-reassembled { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"IPv6 fragments successfully reassembled, in bytes. | "IPv6 fragments successfully reassembled, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf out-icmpv4-error-packets { | leaf out-icmpv4-error-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Internally generated ICMPv4 error packets. | "Internally generated ICMPv4 error packets. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf out-icmpv4-error-bytes { | leaf out-icmpv4-error-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Internally generated ICMPv4 error messages, in bytes. | "Internally generated ICMPv4 error messages, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf out-icmpv6-error-packets { | leaf out-icmpv6-error-packets { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Internally generated ICMPv6 error packets. | "Internally generated ICMPv6 error packets. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
leaf out-icmpv6-error-bytes { | leaf out-icmpv6-error-bytes { | |||
type yang:zero-based-counter64; | type yang:zero-based-counter64; | |||
description | description | |||
"Internally generated ICMPv6 error messages, in bytes. | "Internally generated ICMPv6 error messages, in bytes. | |||
Discontinuities in the value of this counter can occur | Discontinuities in the value of this counter can occur | |||
at re-initialization of the management system, and at | at re-initialization of the management system and at | |||
other times as indicated by the value of | other times as indicated by the value of | |||
'discontinuity-time'."; | 'discontinuity-time'."; | |||
} | } | |||
} | } | |||
} | } | |||
<CODE ENDS> ]]></artwork> | ]]></sourcecode> | |||
</figure> | ||||
</section> | </section> | |||
<section anchor="security" numbered="true" toc="default"> | ||||
<name>Security Considerations</name> | ||||
<section anchor="security" title="Security Considerations"> | <t>The YANG modules defined in this document are designed to be accessed | |||
<t>The YANG modules defined in this document is designed to be accessed | via network management protocols such as NETCONF <xref target="RFC6241" fo | |||
via network management protocols such as NETCONF <xref | rmat="default"/> or RESTCONF <xref target="RFC8040" format="default"/>. The | |||
target="RFC6241"></xref> or RESTCONF <xref target="RFC8040"></xref>. The | ||||
lowest NETCONF layer is the secure transport layer, and the | lowest NETCONF layer is the secure transport layer, and the | |||
mandatory-to-implement secure transport is Secure Shell (SSH) <xref | mandatory-to-implement secure transport is Secure Shell (SSH) <xref target | |||
target="RFC6242"></xref>. The lowest RESTCONF layer is HTTPS, and the | ="RFC6242" format="default"/>. The lowest RESTCONF layer is HTTPS, and the | |||
mandatory-to-implement secure transport is TLS <xref | mandatory-to-implement secure transport is TLS <xref target="RFC8446" form | |||
target="RFC8446"></xref>.</t> | at="default"/>.</t> | |||
<t>The Network Configuration Access Control Model (NACM) <xref target="RFC | ||||
<t>The NETCONF access control model <xref target="RFC8341"></xref> | 8341" format="default"/> | |||
provides the means to restrict access for particular NETCONF or RESTCONF | provides the means to restrict access for particular NETCONF or RESTCONF | |||
users to a preconfigured subset of all available NETCONF or RESTCONF | users to a preconfigured subset of all available NETCONF or RESTCONF | |||
protocol operations and content.</t> | protocol operations and content.</t> | |||
<t>All data nodes defined in the YANG modules which can be created, | <t>All data nodes defined in the YANG modules which can be created, | |||
modified, and deleted (i.e., config true, which is the default) are | modified, and deleted (i.e., config true, which is the default) are | |||
considered sensitive. Write operations (e.g., edit-config) applied to | considered sensitive. Write operations (e.g., edit-config) to | |||
these data nodes without proper protection can negatively affect network | these data nodes without proper protection can have a negative | |||
effect on network | ||||
operations. An attacker who is able to access the BR can undertake | operations. An attacker who is able to access the BR can undertake | |||
various attacks, such as:</t> | various attacks, such as:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>Setting the value of 'br-ipv6-addr' on the CE to point to an | |||
<t>Setting the value of 'br-ipv6-addr' on the CE to point to an | ||||
illegitimate BR so that it can intercept all the traffic sent by a | illegitimate BR so that it can intercept all the traffic sent by a | |||
CE. Illegitimately intercepting users' traffic is an attack with | CE. Illegitimately intercepting users' traffic is an attack with | |||
severe implications on privacy.</t> | severe implications on privacy.</li> | |||
<li>Setting the MTU to a low value, which may increase the number of | ||||
<t>Setting the MTU to a low value, which may increase the number of | fragments ('softwire-payload-mtu').</li> | |||
fragments ('softwire-payload-mtu').</t> | <li>Disabling hairpinning (i.e., setting 'enable-hairpinning' to | |||
'false') to prevent communications between CEs.</li> | ||||
<t>Disabling hairpinning (i.e., setting 'enable-hairpinning' to | <li>Setting 'softwire-num-max' to an arbitrary high value, which may | |||
'false') to prevent communications between CEs.</t> | ||||
<t>Setting 'softwire-num-max' to an arbitrary high value, which may | ||||
be exploited by a misbehaving user to perform a DoS on the binding | be exploited by a misbehaving user to perform a DoS on the binding | |||
BR by mounting a massive number of softwires.</t> | BR by mounting a massive number of softwires.</li> | |||
<li>Setting 'icmpv4-rate' or 'icmpv6-rate' to a low value, which may | ||||
<t>Setting 'icmpv4-rate' or 'icmpv6-rate' to a low value, which may | lead to the deactivation of ICMP messages handling.</li> | |||
lead to the deactivation of ICMP messages handling.</t> | <li>Instructing the BR to install entries, which, in turn, will induce a | |||
<t>Accessing to private data maintained by the BR (e.g., the binding | ||||
table or the algorithm configuration). Such data can be misused to | ||||
track the activity of a host.</t> | ||||
<t>Instructing the BR to install entries which in turn will induce a | ||||
DDoS attack by means of the notifications generated by the BR. This | DDoS attack by means of the notifications generated by the BR. This | |||
DDoS can be softened by defining a notification interval, but given | DDoS can be softened by defining a notification interval, but given | |||
that this interval parameter can be disabled or set to a low value | that this interval parameter can be disabled or set to a low value | |||
by the misbehaving entity, the same problem will be observed.</t> | by the misbehaving entity, the same problem will be observed.</li> | |||
</list></t> | </ul> | |||
<t> Some of the readable data nodes in this YANG module may be considere | ||||
d | ||||
sensitive or vulnerable in some network environments. It is thus | ||||
important to control read access (e.g., via get, get-config, or notification) | ||||
to these data nodes. These subtrees and data nodes can be misused | ||||
to track the activity of a host:</t> | ||||
<ul spacing="normal"><li>the binding Table | ||||
(/br-instances/binding/bind-instance/binding-table) </li> | ||||
<li>the algorithm configuration (/br-instances/algorithm/algo-instance/) | ||||
</li></ul> | ||||
<t>Security considerations related to lw4o6, MAP-T, and MAP-E are | <t>Security considerations related to lw4o6, MAP-T, and MAP-E are | |||
discussed in <xref target="RFC7596"></xref>, <xref target="RFC7597"> | discussed in <xref target="RFC7596" format="default"/>, <xref target="RFC7 | |||
</xref>, and <xref target="RFC7599"></xref> respectively.</t> | 597" format="default"> | |||
</xref>, and <xref target="RFC7599" format="default"/> respectively.</t> | ||||
<t>Security considerations given in <xref target="RFC7950"></xref> are | <t>Security considerations given in <xref target="RFC7950" format="default | |||
"/> are | ||||
also applicable here.</t> | also applicable here.</t> | |||
</section> | </section> | |||
<section anchor="iana" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<t>IANA has assigned the following new tunnel type under the | ||||
tunnelType subregistry of the "ifType Definitions" registry | ||||
maintained in the SMI Numbers registry <xref target="TUNNELTYPE-IANA-REGIS | ||||
TRY" format="default"/>:</t> | ||||
<ul empty="true"><li> | ||||
<dl newline="false" indent="14" spacing="compact"> | ||||
<dt>Decimal:</dt><dd>18</dd> | ||||
<dt>Name:</dt><dd>aplusp</dd> | ||||
<dt>Description:</dt><dd>A+P encapsulation</dd> | ||||
<dt>Reference:</dt><dd>[RFC6346]</dd> | ||||
</dl> | ||||
</li></ul> | ||||
<t>IANA has registered the following in the "ns" | ||||
subregistry within the "IETF XML Registry" <xref target="RFC3688" format=" | ||||
default"/>: | ||||
<section anchor="iana" title="IANA Considerations"> | </t> | |||
<t>This document requests IANA to assign a new tunnel type under the | <ul empty="true"><li> | |||
"tunnelType" sub-registry of the "ifType definitions" registry | <dl newline="false" spacing="compact"> | |||
maintained at <xref target="TUNNELTYPE-IANA-REGISTRY"></xref> and use | <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-softwire-ce</dd> | |||
the following data for the new entry:</t> | <dt>Registrant Contact:</dt><dd>The IESG.</dd> | |||
<dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | ||||
<figure> | </dl> | |||
<artwork align="left"><![CDATA[ Decimal: TDB1 | </li></ul> | |||
Name: aplusp | ||||
Description: A+P encapsulation | ||||
Reference: [RFC6346] | ||||
]]></artwork> | ||||
</figure> | ||||
<t>This document requests IANA to register the following in the "ns" | ||||
subregistry within the "IETF XML Registry" <xref | ||||
target="RFC3688"></xref>: <figure> | ||||
<artwork><![CDATA[ URI: urn:ietf:params:xml:ns:yang:ietf-softw | ||||
ire-ce | ||||
Registrant Contact: The IESG. | ||||
XML: N/A; the requested URI is an XML namespace. | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-softwire-br | ||||
Registrant Contact: The IESG. | ||||
XML: N/A; the requested URI is an XML namespace. | ||||
URI: urn:ietf:params:xml:ns:yang:ietf-softwire-common | ||||
Registrant Contact: The IESG. | ||||
XML: N/A; the requested URI is an XML namespace. ]]></artwork> | ||||
</figure></t> | ||||
<t>This document requests that IANA registers the following YANG modules | ||||
in the "YANG Module Names" subregistry <xref target="RFC7950"></xref> | ||||
within the "YANG Parameters" registry.<figure> | ||||
<artwork><![CDATA[ name: ietf-softwire-ce | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-softwire-ce | ||||
prefix: softwire-ce | ||||
reference: RFC XXXX | ||||
name: ietf-softwire-br | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-softwire-br | ||||
prefix: softwire-br | ||||
reference: RFC XXXX | ||||
name: ietf-softwire-common | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-softwire-common | ||||
prefix: softwire-common | ||||
reference: RFC XXXX ]]></artwork> | ||||
</figure></t> | ||||
</section> | ||||
<section anchor="acknowledgements" title="Acknowledgements"> | ||||
<t>The authors would like to thank Lishan Li, Bert Wijnen, Giles Heron, | ||||
Ole Troan, Andy Wingo and Leo Tietz for their contributions to this | ||||
work.</t> | ||||
<t>Thanks to Sheng Jiang for the review.</t> | ||||
<t>Special thanks to Tom Petch and Martin Bjorklund for the detailed | ||||
review and suggestions.</t> | ||||
</section> | ||||
<section title="Contributing Authors"> | ||||
<t>The following individuals are co-authors:<figure> | ||||
<artwork><![CDATA[ Yong Cui | ||||
Tsinghua University | ||||
Beijing 100084 | ||||
P.R. China | ||||
Phone: +86-10-6260-3059 | ||||
Email: cuiyong@tsinghua.edu.cn | ||||
Qi Sun | ||||
Tsinghua University | ||||
Beijing 100084 | ||||
P.R. China | ||||
Phone: +86-10-6278-5822 | ||||
Email: sunqi.ietf@gmail.com | ||||
Linhui Sun | ||||
Tsinghua University | ||||
Beijing 100084 | ||||
P.R. China | ||||
Phone: +86-10-6278-5822 | ||||
Email: lh.sunlinh@gmail.com | ||||
Sladjana Zechlin | ||||
Deutsche Telekom AG | ||||
Landgrabenweg 151 | ||||
Bonn, NRW 53227 | ||||
Germany | ||||
Email: sladjana.zechlin@telekom.de | ||||
Rajiv Asati | ||||
Cisco Systems, Inc. | ||||
7025 Kit Creek Rd. | ||||
RTP, NC 27709 | ||||
USA | ||||
Email: Rajiva@cisco.com]]></artwork> | ||||
</figure></t> | ||||
<t></t> | ||||
<t></t> | <ul empty="true"><li> | |||
</section> | <dl newline="false" spacing="compact"> | |||
<dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-softwire-br</dd> | ||||
<dt>Registrant Contact:</dt><dd>The IESG.</dd> | ||||
<dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | ||||
</dl></li></ul> | ||||
<section anchor="contributors" title="Contributors"> | <ul empty="true"><li> | |||
<t>The following individual contributed to this document:</t> | <dl newline="false" spacing="compact"> | |||
<dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-softwire-common</dd> | ||||
<dt>Registrant Contact:</dt><dd>The IESG.</dd> | ||||
<dt>XML:</dt><dd>N/A; the requested URI is an XML namespace.</dd> | ||||
</dl></li></ul> | ||||
<t>IANA has registered the following YANG modules | ||||
in the "YANG Module Names" subregistry <xref target="RFC6020" format="defa | ||||
ult"/> | ||||
within the "YANG Parameters" registry.</t> | ||||
<ul empty="true"><li> | ||||
<dl newline="false" spacing="compact"> | ||||
<dt>name:</dt><dd>ietf-softwire-ce</dd> | ||||
<dt>namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-softwire-ce</dd> | ||||
<dt>prefix:</dt><dd>softwire-ce</dd> | ||||
<dt>reference:</dt><dd>RFC 8676</dd> | ||||
</dl></li></ul> | ||||
<figure> | <ul empty="true"><li> | |||
<artwork><![CDATA[ Hao Wang | <dl newline="false" spacing="compact"> | |||
Tsinghua University | <dt>name:</dt><dd>ietf-softwire-br</dd> | |||
Beijing 100084 | <dt>namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-softwire-br</dd | |||
P.R.China | > | |||
Phone: +86-10-6278-5822 | <dt>prefix:</dt><dd>softwire-br</dd> | |||
Email: wangh13@mails.tsinghua.edu.cn | <dt>reference:</dt><dd>RFC 8676</dd> | |||
]]></artwork> | </dl></li></ul> | |||
</figure> | <ul empty="true"><li> | |||
<dl newline="false" spacing="compact"> | ||||
<dt>name:</dt><dd>ietf-softwire-common</dd> | ||||
<dt>namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-softwire-common | ||||
</dd> | ||||
<dt>prefix:</dt><dd>softwire-common</dd> | ||||
<dt>reference:</dt><dd>RFC 8676</dd> | ||||
</dl></li></ul> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <references> | |||
<?rfc include='reference.RFC.3688'?> | <name>References</name> | |||
<references> | ||||
<?rfc include='reference.RFC.8446'?> | <name>Normative References</name> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.6241'?> | ence.RFC.3688.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.6242'?> | ence.RFC.8446.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.8341'?> | ence.RFC.6241.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.8343'?> | ence.RFC.6242.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.7596'?> | ence.RFC.8341.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.7597'?> | ence.RFC.8343.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.7598'?> | ence.RFC.7596.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.7599'?> | ence.RFC.7597.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.7950'?> | ence.RFC.7598.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.8040'?> | ence.RFC.7599.xml"/> | |||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
<?rfc include='reference.RFC.6020'?> | ence.RFC.7950.xml"/> | |||
<xi:include | ||||
<?rfc include='reference.RFC.6991'?> | href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | |||
8040.xml"/> | ||||
<?rfc include='reference.RFC.7224'?> | ||||
<?rfc include='reference.I-D.ietf-softwire-iftunnel'?> | ||||
<reference anchor="TUNNELTYPE-IANA-REGISTRY" | ||||
target="https://www.iana.org/assignments/smi-numbers/smi-number | ||||
s.xhtml#smi-numbers-6"> | ||||
<front> | ||||
<title>tunnelType Definitions</title> | ||||
<author> | ||||
<organization abbrev="IANA">Internet Assigned Numbers | ||||
Authority</organization> | ||||
</author> | ||||
<date /> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
<references title="Informative References"> | ||||
<?rfc include='reference.RFC.8344'?> | ||||
<?rfc include='reference.RFC.6346'?> | ||||
<?rfc include='reference.RFC.8342'?> | ||||
<?rfc include='reference.RFC.8349'?> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
ence.RFC.6020.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6991.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7224.xml"/> | ||||
<!-- <?rfc include='reference.I-D.ietf-softwire-iftunnel'?>; compan | ||||
ion document --> | ||||
<reference anchor='RFC8675' target='https://www.rfc-editor.org/info/rfc8675'> | ||||
<front> | ||||
<title>A YANG Data Model for Tunnel Interface Types</title> | ||||
<?rfc include='reference.RFC.8340'?> | <author initials='M' surname='Boucadair' fullname='Mohamed Boucadair'> | |||
<organization /> | ||||
</author> | ||||
<?rfc include='reference.RFC.7422'?> | <author initials='I' surname='Farrer' fullname='Ian Farrer'> | |||
<organization /> | ||||
</author> | ||||
<?rfc include='reference.RFC.6333'?> | <author initials='R' surname='Asati' fullname='Rajiv Asati'> | |||
<organization /> | ||||
</author> | ||||
<?rfc include='reference.RFC.4213'?> | <date month='November' year='2019' /> | |||
</front> | ||||
<?rfc include='reference.RFC.8513'?> | <seriesInfo name='RFC' value='8675' /> | |||
<seriesInfo name="DOI" value="10.17487/RFC8675"/> | ||||
</reference> | ||||
<?rfc include='reference.RFC.8512'?> | <reference anchor="TUNNELTYPE-IANA-REGISTRY" target="https://www.iana.or | |||
g/assignments/smi-numbers"> | ||||
<front> | ||||
<title>Structure of Management Information (SMI) Numbers (MIB | ||||
Module Registrations)</title> | ||||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8344.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6346.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8342.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8349.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8340.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.7422.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.6333.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.4213.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8513.xml"/> | ||||
<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
ence.RFC.8512.xml"/> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="examples" numbered="true" toc="default"> | ||||
<section anchor="examples" title="Configuration Examples"> | <name>Configuration Examples</name> | |||
<t>The following sections provide examples of how the softwire YANG | <t>The following sections provide examples of how the softwire YANG | |||
modules can be used for configuring softwire elements.</t> | modules can be used for configuring softwire elements.</t> | |||
<section anchor="lw4o6-example" numbered="true" toc="default"> | ||||
<section anchor="lw4o6-example" | <name>Configuration Example for a lw4o6 BR Binding-Table</name> | |||
title="Configuration Example for a lw4o6 BR Binding-Table"> | <t>The lwAFTR maintains an address binding table that contains the | |||
<t>The lwAFTR maintains an address binding table which contains the | ||||
following 3-tuples:</t> | following 3-tuples:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>IPv6 Address for a single lwB4</li> | |||
<t>IPv6 Address for a single lwB4</t> | <li>Public IPv4 Address</li> | |||
<li>Restricted port-set</li> | ||||
<t>Public IPv4 Address</t> | </ul> | |||
<t>Restricted port-set</t> | ||||
</list></t> | ||||
<t>The entry has two functions: the IPv6 encapsulation of inbound IPv4 | <t>The entry has two functions: the IPv6 encapsulation of inbound IPv4 | |||
packets destined to the lwB4 and the validation of outbound | packets destined to the lwB4 and the validation of outbound | |||
IPv4-in-IPv6 packets received from the lwB4 for de-capsulation.</t> | IPv4-in-IPv6 packets received from the lwB4 for decapsulation.</t> | |||
<t>Consider an example for the following lw4o6 binding table | <t>Consider an example for the following lw4o6 binding table | |||
entry:</t> | entry:</t> | |||
<dl newline="false" spacing="normal" indent="28"> | ||||
<dt>lwB4 Binding IPv6 Address:</dt> | ||||
<dd>2001:db8::1</dd> | ||||
<dt>lwB4 Binding IPv4 Address:</dt> | ||||
<dd>192.0.2.1</dd> | ||||
<dt>lwB4 PSID:</dt> | ||||
<dd>0x34</dd> | ||||
<dt>lwB4 PSID Length</dt> | ||||
<dd>8</dd> | ||||
<dt>BR IPv6 Address:</dt> | ||||
<dd>2001:db8:1::2</dd> | ||||
</dl> | ||||
<figure anchor="lw4o6-br-example-xml"> | ||||
<name>lw4o6 Binding Table Configuration XML</name> | ||||
<t><list hangIndent="28" style="hanging"> | <sourcecode name="" type="xml"><![CDATA[ <br-instances> | |||
<t hangText="lwB4 Binding IPv6 Address:">2001:db8::1</t> | ||||
<t hangText="lwB4 Binding IPv4 Address:">192.0.2.1</t> | ||||
<t hangText="lwB4 PSID:">0x34</t> | ||||
<t hangText="lwB4 PSID Length">8</t> | ||||
<t hangText="BR IPv6 Address:">2001:db8:1::2</t> | ||||
</list></t> | ||||
<figure anchor="lw4o6-br-example-xml" | ||||
title="lw4o6 Binding-Table Configuration XML"> | ||||
<artwork><![CDATA[ <br-instances> | ||||
<binding> | <binding> | |||
<bind-instance> | <bind-instance> | |||
<name>mybinding-instance</name> | <name>mybinding-instance</name> | |||
<binding-table> | <binding-table> | |||
<binding-entry> | <binding-entry> | |||
<binding-ipv6info>2001:db8::1</binding-ipv6info> | <binding-ipv6info>2001:db8::1</binding-ipv6info> | |||
<binding-ipv4-addr>192.0.2.1</binding-ipv4-addr> | <binding-ipv4-addr>192.0.2.1</binding-ipv4-addr> | |||
<port-set> | <port-set> | |||
<psid>52</psid> | <psid>52</psid> | |||
<psid-len>8</psid-len> | <psid-len>8</psid-len> | |||
</port-set> | </port-set> | |||
<br-ipv6-addr>2001:db8:1::2</br-ipv6-addr> | <br-ipv6-addr>2001:db8:1::2</br-ipv6-addr> | |||
</binding-entry> | </binding-entry> | |||
</binding-table> | </binding-table> | |||
<softwire-num-max>1024</softwire-num-max> | <softwire-num-max>1024</softwire-num-max> | |||
<softwire-path-mru>1540</softwire-path-mru> | <softwire-path-mru>1540</softwire-path-mru> | |||
<softwire-payload-mtu>1500</softwire-payload-mtu> | <softwire-payload-mtu>1500</softwire-payload-mtu> | |||
</bind-instance> | </bind-instance> | |||
</binding> | </binding> | |||
</br-instances> ]]></artwork> | </br-instances> ]]></sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="map-e-example" numbered="true" toc="default"> | ||||
<section anchor="map-e-example" | <name>Configuration Example for a MAP-E BR</name> | |||
title="Configuration Example for a MAP-E BR"> | ||||
<t>A MAP-E BR is configured with forward mapping rules for the CEs it | <t>A MAP-E BR is configured with forward mapping rules for the CEs it | |||
is serving. In this example (taken from <xref | is serving. In this example (taken from <xref target="RFC7597" format="d | |||
target="RFC7597"></xref>, Appendix A, Example 2), the following | efault"/>, Appendix A, Example 2), the following | |||
parameters are required:</t> | parameters are required:</t> | |||
<ul spacing="normal"> | ||||
<t><list style="symbols"> | <li>Rule IPv6 Prefix</li> | |||
<t>Rule IPv6 Prefix</t> | <li>Rule IPv4 Prefix</li> | |||
<li>Rule EA-bit bit length</li> | ||||
<t>Rule IPv4 Prefix</t> | <li>IPv6 Address of MAP-BR</li> | |||
</ul> | ||||
<t>Rule EA-bit bit length</t> | ||||
<t>IPv6 Address of MAP-BR</t> | ||||
</list></t> | ||||
<t>The mapping rule has two functions: identifying the destination CE | <t>The mapping rule has two functions: identifying the destination CE | |||
IPv6 address for encapsulating inbound IPv4 packets and the validation | IPv6 address for encapsulating inbound IPv4 packets and the validation | |||
of outbound IPv4-in-IPv6 packets received from the CE for | of outbound IPv4-in-IPv6 packets received from the CE for | |||
de-capsulation.</t> | de-capsulation.</t> | |||
<t>The transport type for the data plane also needs to be configured | <t>The transport type for the data plane also needs to be configured | |||
for encapsulation to enable MAP-E and forwarding needs to be | for encapsulation to enable MAP-E and forwarding needs to be | |||
enabled.</t> | enabled.</t> | |||
<t>Consider an example for the following MAP-E Forwarding Mapping | <t>Consider an example for the following MAP-E Forwarding Mapping | |||
Rule:</t> | Rule:</t> | |||
<dl newline="false" spacing="normal" indent="20"> | ||||
<t><list hangIndent="20" style="hanging"> | <dt>Data plane:</dt> | |||
<t hangText="Data plane:">encapsulation</t> | <dd>encapsulation</dd> | |||
<dt>Rule IPv6 Prefix:</dt> | ||||
<t hangText="Rule IPv6 Prefix:">2001:db8::/40</t> | <dd>2001:db8::/40</dd> | |||
<dt>Rule IPv4 Prefix:</dt> | ||||
<t hangText="Rule IPv4 Prefix:">192.0.2.0/24</t> | <dd>192.0.2.0/24</dd> | |||
<dt>Rule EA-bit Length:</dt> | ||||
<t hangText="Rule EA-bit Length:">16</t> | <dd>16</dd> | |||
<dt>BR IPv6 Address:</dt> | ||||
<t hangText="BR IPv6 Address:">2001:db8:ffff::1</t> | <dd>2001:db8:ffff::1</dd> | |||
</list></t> | </dl> | |||
<t><xref target="map-e-example-xml" format="default"/> provides the exam | ||||
<t><xref target="map-e-example-xml"></xref> provides the example MAP-E | ple MAP-E | |||
BR configuration xml.</t> | BR configuration xml.</t> | |||
<figure anchor="map-e-example-xml"> | ||||
<figure anchor="map-e-example-xml" title="MAP-E FMR Configuration XML"> | <name>MAP-E FMR Configuration XML</name> | |||
<artwork><![CDATA[ <br-instances> | <sourcecode name="" type="xml"><![CDATA[ <br-instances> | |||
<algorithm> | <algorithm> | |||
<algo-instance> | <algo-instance> | |||
<name>myalgo-instance</name> | <name>myalgo-instance</name> | |||
<encapsulation> | <encapsulation> | |||
<br-ipv6-addr>2001:db8:ffff::1</br-ipv6-addr> | <br-ipv6-addr>2001:db8:ffff::1</br-ipv6-addr> | |||
</encapsulation> | </encapsulation> | |||
<ea-len>16</ea-len> | <ea-len>16</ea-len> | |||
<rule-ipv4-prefix>192.0.2.0/24</rule-ipv4-prefix> | <rule-ipv4-prefix>192.0.2.0/24</rule-ipv4-prefix> | |||
<rule-ipv6-prefix>2001:db8::/40</rule-ipv6-prefix> | <rule-ipv6-prefix>2001:db8::/40</rule-ipv6-prefix> | |||
<forwarding>true</forwarding> | <forwarding>true</forwarding> | |||
<port-set> | <port-set> | |||
<psid-offset>6</psid-offset> | <psid-offset>6</psid-offset> | |||
<psid-len>8</psid-len> | <psid-len>8</psid-len> | |||
</port-set> | </port-set> | |||
</algo-instance> | </algo-instance> | |||
</algorithm> | </algorithm> | |||
</br-instances> ]]></artwork> | </br-instances> ]]></sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="lw4o6-ce-example" numbered="true" toc="default"> | ||||
<section anchor="lw4o6-ce-example" | <name>lw4o6 CE Configuration Example</name> | |||
title="lw4o6 CE Configuration Example"> | ||||
<t>This section provides XML examples for configuring a lw4o6 CE. | <t>This section provides XML examples for configuring a lw4o6 CE. | |||
Examples for routing and NAT44 are also provided for convienience.</t> | Examples for routing and NAT44 are also provided for convenience.</t> | |||
<t>Consider an example for the following lw4o6 CE configuration:</t> | <t>Consider an example for the following lw4o6 CE configuration:</t> | |||
<dl newline="false" spacing="normal" indent="28"> | ||||
<t><list hangIndent="28" style="hanging"> | <dt>lwB4 Binding IPv6 Address:</dt> | |||
<t hangText="lwB4 Binding IPv6 Address:">2001:db8::1</t> | <dd>2001:db8::1</dd> | |||
<dt>lwB4 Binding IPv4 Address:</dt> | ||||
<t hangText="lwB4 Binding IPv4 Address:">192.0.2.1</t> | <dd>192.0.2.1</dd> | |||
<dt>lwB4 PSID:</dt> | ||||
<t hangText="lwB4 PSID:">0x34</t> | <dd>0x34</dd> | |||
<dt>lwB4 PSID Length</dt> | ||||
<t hangText="lwB4 PSID Length">8</t> | <dd>8</dd> | |||
<dt>BR IPv6 Address:</dt> | ||||
<t hangText="BR IPv6 Address:">2001:db8:1::2</t> | <dd>2001:db8:1::2</dd> | |||
</list></t> | </dl> | |||
<figure anchor="lw4o6-ce-example-xml"> | ||||
<figure anchor="lw4o6-ce-example-xml" | <name>lw4o6 CE Configuration XML</name> | |||
title="lw4o6 CE Configuration XML"> | <sourcecode name="" type="xml"><![CDATA[ | |||
<artwork><![CDATA[ | ||||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> | |||
<interface> | <interface> | |||
<name>lw4o6-wan</name> | <name>lw4o6-wan</name> | |||
<type>iana-tunnel-type:aplusp</type> | <type>iana-tunnel-type:aplusp</type> | |||
<br-ipv6-addr | <br-ipv6-addr | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-softwire-ce"> | xmlns="urn:ietf:params:xml:ns:yang:ietf-softwire-ce"> | |||
2001:db8:1::2 | 2001:db8:1::2 | |||
</br-ipv6-addr> | </br-ipv6-addr> | |||
<binding-ipv6info | <binding-ipv6info | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-softwire-ce"> | xmlns="urn:ietf:params:xml:ns:yang:ietf-softwire-ce"> | |||
2001:db8::1 | 2001:db8::1 | |||
</binding-ipv6info> | </binding-ipv6info> | |||
</interface> | </interface> | |||
</interfaces> | </interfaces> | |||
</config> | </config> | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </figure> | |||
<t>In the example depicted in <xref target="lw4o6-ce-example-xml" format | ||||
<t>In the example depicted in <xref | ="default"/>, the interface name is defined | |||
target="lw4o6-ce-example-xml"></xref>, the interface name is defined | ||||
for the softwire tunnel. This name is then referenced by the routing | for the softwire tunnel. This name is then referenced by the routing | |||
configuration for the IPv4 route. <xref | configuration for the IPv4 route. <xref target="lw4o6-ce-routing-example | |||
target="lw4o6-ce-routing-example-xml"></xref> provides an example | -xml" format="default"/> provides an example | |||
configuration for the CE's IPv4 routing, using the YANG module | configuration for the CE's IPv4 routing using the YANG module | |||
described in <xref target="RFC8349"></xref>.</t> | described in <xref target="RFC8349" format="default"/>.</t> | |||
<figure anchor="lw4o6-ce-routing-example-xml"> | ||||
<figure anchor="lw4o6-ce-routing-example-xml" | <name>lw4o6 CE Routing Configuration XML</name> | |||
title="lw4o6 CE Routing Configuration XML"> | <sourcecode name="" type="xml"><![CDATA[ | |||
<artwork><![CDATA[ | ||||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | <routing xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"> | |||
<control-plane-protocols> | <control-plane-protocols> | |||
<control-plane-protocol> | <control-plane-protocol> | |||
<type>static</type> | <type>static</type> | |||
<name>v4</name> | <name>v4</name> | |||
<static-routes> | <static-routes> | |||
<ipv4 | <ipv4 | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"> | xmlns="urn:ietf:params:xml:ns:yang:ietf-ipv4-unicast-routing"> | |||
<route> | <route> | |||
skipping to change at line 2395 ¶ | skipping to change at line 2229 ¶ | |||
<next-hop> | <next-hop> | |||
<outgoing-interface>lw4o6-wan</outgoing-interface> | <outgoing-interface>lw4o6-wan</outgoing-interface> | |||
</next-hop> | </next-hop> | |||
</route> | </route> | |||
</ipv4> | </ipv4> | |||
</static-routes> | </static-routes> | |||
</control-plane-protocol> | </control-plane-protocol> | |||
</control-plane-protocols> | </control-plane-protocols> | |||
</routing> | </routing> | |||
</config> | </config> | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </figure> | |||
<t><xref target="lw4o6-ce-nat-example-xml" format="default"/> provides a | ||||
<t><xref target="lw4o6-ce-nat-example-xml"></xref> provides an example | n example | |||
configuration for the CE's NAPT44 function, using the YANG module | configuration for the CE's NAPT44 function using the YANG module | |||
described in <xref target="RFC8512"></xref>.</t> | described in <xref target="RFC8512" format="default"/>.</t> | |||
<figure anchor="lw4o6-ce-nat-example-xml"> | ||||
<figure anchor="lw4o6-ce-nat-example-xml" | <name>lw4o6 NAT Configuration XML</name> | |||
title="lw4o6 NAT Configuration XML"> | <sourcecode name="" type="xml"><![CDATA[ | |||
<artwork><![CDATA[ | ||||
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<nat xmlns="urn:ietf:params:xml:ns:yang:ietf-nat"> | <nat xmlns="urn:ietf:params:xml:ns:yang:ietf-nat"> | |||
<instances> | <instances> | |||
<instance> | <instance> | |||
<id>1</id> | <id>1</id> | |||
<policy> | <policy> | |||
<policy-id>1</policy-id> | <policy-id>1</policy-id> | |||
<external-ip-address-pool> | <external-ip-address-pool> | |||
<pool-id>1</pool-id> | <pool-id>1</pool-id> | |||
<external-ip-pool>192.0.2.1</external-ip-pool> | <external-ip-pool>192.0.2.1</external-ip-pool> | |||
skipping to change at line 2466 ¶ | skipping to change at line 2298 ¶ | |||
<index>3</index> | <index>3</index> | |||
<external-src-address>192.0.2.1/32</external-src-address> | <external-src-address>192.0.2.1/32</external-src-address> | |||
<internal-src-address>192.168.1.0/24</internal-src-address> | <internal-src-address>192.168.1.0/24</internal-src-address> | |||
<transport-protocol>1</transport-protocol> | <transport-protocol>1</transport-protocol> | |||
</mapping-entry> | </mapping-entry> | |||
</mapping-table> | </mapping-table> | |||
</instance> | </instance> | |||
</instances> | </instances> | |||
</nat> | </nat> | |||
</config> | </config> | |||
]]></artwork> | ]]></sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="acknowledgements" numbered="false" toc="default"> | ||||
<name>Acknowledgements</name> | ||||
<t>The authors would like to thank Lishan Li, Bert Wijnen, Giles Heron, | ||||
Ole Troan, Andy Wingo, and Leo Tietz for their contributions to this | ||||
work.</t> | ||||
<t>Thanks to Sheng Jiang for the review.</t> | ||||
<t>Special thanks to Tom Petch and Martin Bjorklund for the detailed | ||||
review and suggestions.</t> | ||||
</section> | ||||
<section numbered="false" toc="default"> | ||||
<name>Contributors</name> | ||||
<t>The following individuals are co-authors:</t> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ Yong Cui | ||||
Tsinghua University | ||||
China | ||||
Phone: +86-10-6260-3059 | ||||
Email: cuiyong@tsinghua.edu.cn | ||||
]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Qi Sun | ||||
Tsinghua University | ||||
China | ||||
Phone: +86-10-6278-5822 | ||||
Email: sunqi.ietf@gmail.com | ||||
]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Linhui Sun | ||||
Tsinghua University | ||||
China | ||||
Phone: +86-10-6278-5822 | ||||
Email: lh.sunlinh@gmail.com | ||||
]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Sladjana Zechlin | ||||
Deutsche Telekom AG | ||||
Germany | ||||
Email: sladjana.zechlin@telekom.de | ||||
]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Rajiv Asati | ||||
Cisco Systems, Inc. | ||||
United States of America | ||||
Email: Rajiva@cisco.com]]></artwork> | ||||
<artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
Hao Wang | ||||
Tsinghua University | ||||
China | ||||
Phone: +86-10-6278-5822 | ||||
Email: wangh13@mails.tsinghua.edu.cn]]></artwork> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 251 change blocks. | ||||
955 lines changed or deleted | 935 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/ |