<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced. 
    An alternate method (rfc include) is described in the references. -->
<!ENTITY rfc0791 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0791.xml">
<!ENTITY rfc1918 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1918.xml">
<!ENTITY rfc1332 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1332.xml">
<!ENTITY rfc2460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY rfc2472 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2472.xml">
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY rfc2661 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2661.xml">
<!ENTITY rfc2865 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2865.xml">
<!ENTITY rfc3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY rfc3588 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3588.xml">
<!ENTITY rfc4213 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4213.xml">
<!ENTITY rfc5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
<!ENTITY rfc6204 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6204.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info"
     docName="On demand IPv4 address provisioning in Dual-Stack PPP deployment scenarios "
     ipr="pre5378Trust200902" submissionType="IETF">
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN" 
    they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->

    <title>draft-fleischhauer-ipv4-addr-saving-01</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Karsten Fleischhauer" initials="K" role="editor"
            surname="Fleischhauer">
      <organization>Deutsche Telekom AG</organization>

      <address>
        <postal>
          <street>Heinrich-Hertz-Strasse 3-7</street>

          <!-- Reorder these if your country does things differently -->

          <city>64295 Darmstadt</city>

          <country>DE</country>
        </postal>

        <phone>+49 6151 58 12831</phone>

        <email>k.fleischhauer@telekom.de</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Olaf Bonne&szlig;" initials="O" surname="Bonne&szlig;">
      <organization>Deutsche Telekom AG</organization>

      <address>
        <postal>
          <street>Winterfeldtstr. 21-27</street>

          <city>10781 Berlin</city>

          <country>DE</country>
        </postal>

        <phone>+49 30 835358826</phone>

        <email>olaf.bonness@telekom.de</email>
      </address>
    </author>

    <date day="07" month="September" year="2011" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
        in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>IPv4, IPv6, IPCP, IPv6CP, PPP, address saving, Dual-Stack, BBF
    WT-242, BBF TR-187</keyword>

    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

    <abstract>
      <t>Today the Dual-Stack approach is the most straightforward and the
      most common way for introducing IPv6 into existing systems and networks.
      However a typical drawback of implementing Dual-Stack is that each node
      will still require at least one IPv4 address. Hence, solely deploying
      Dual-Stack does not provide a sufficient solution to the IPv4 address
      exhaustion problem. Assuming a situation where most of the IP
      communication (e.g. always-on, VoIP etc.) can be provided via IPv6, the
      usage of public IPv4 addresses can significantly be reduced and the
      unused public IPv4 addresses can under certain circumstances be returned
      to the public IPv4 address pool of the service provider. New Dual-Stack
      enabled services can be introduced without increasing the public IPv4
      address demand, when IPv6 will be the preferred network layer protocol.
      This document describes such a solution in a Dual-Stack PPP session
      network scenario and explains the protocol mechanisms which are
      used.</t>
    </abstract>
  </front>

  <middle>
    <section title="Abstract">
      <t>The Dual-Stack approach as defined in <xref target="RFC4213"></xref>
      provides the most straightforward and most common way for introducing
      IPv6 <xref target="RFC2460"></xref> into existing systems and networks.
      However a typical drawback of the Dual-Stack approach is that each
      network node will still require at least one IPv4 <xref
      target="RFC0791"></xref> address. Assuming a situation where most of the
      IP communication (e.g. always-on, VoIP etc.) can be provided via IPv6,
      the usage of public IPv4 addresses can be reduced significantly and the
      unused public IPv4 addresses may be returned to the public IPv4 address
      pool of the provider. This document describes how such a solution can be
      realised in a Dual-Stack PPP session scenario and details the protocol
      mechanisms of the solution which are also thought as contribution to
      <xref target="BBF-WT-242"></xref>.</t>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119">RFC 2119</xref></t>
      </section>
    </section>

    <section anchor="simple_list"
             title="Problem Statement and Purpose of IPv4 address efficiency">
      <t>The Broadband Forum describes in <xref target="BBF-TR-187"></xref> a
      target IPv4/IPv6 Dual-Stack Architecture (assuming native implementation
      of IPv6). TR-187 builds on the capabilities of existing protocols such
      as Point-to-Point Protocol (PPP) <xref target="RFC1332"></xref> and
      Layer 2 Tunnelling Protocol (L2TP) <xref target="RFC2661"></xref> to
      provide IPv6 service in addition to today's IPv4 service. These
      protocols allow the parallel usage of IPv4 and IPv6 within a single PPP
      respectively L2TP session. Usually in such a scenario the service
      provider offers to the customer the usage of public IPv4 and IPv6
      address resources during the duration of the PPP session. Because of the
      potential parallel usage of IPv4 and IPv6 within such a Dual-Stack PPP
      scenario an Public IPv4 address is always provisioned, also in the case
      where most of the communication is transported using IPv6. This document
      extends the sketched Dual-Stack deployment scenario for PPP and L2TPv2
      with a mechanism that allows a temporary assignment and a release of an
      unused IPv4 address within such a Dual-Stack capable PPP session
      scenario. The IPv4 address may also only be provided on-demand later on,
      after initiating the Dual-Stack PPP session with an IPv6 address
      only.</t>

      <section title="Architecture and Communication in a PPP Dual-Stack environment">
        <t>Assuming a Dual-Stack network access via PPP sessions, end devices
        can in general communicate via IPv4 and/or IPv6 transport, depending
        on their own and their IP communication partners capabilities. The
        actual usage of IPv4 or IPv6 or both protocols depends on the
        capabilities of the IP communication endpoints (e.g. protocol stack,
        applications, configuration of the preferences etc.), the network
        itself and also on the used communication services (like e.g. VoIP).
        The later two are mainly in responsibility of the network and service
        provider. The approach, sketched in this document, is based on the
        assumption that the customer starts a Dual-Stack PPP session in
        "IPv6-only" mode and "adds" IPv4 later on only in the case that
        applications or services explicitly request IPv4 connectivity. When
        IPv4 connectivity is not needed during the whole time of PPP network
        connectivity than a continuous provisioning of a global IPv4 address
        to the customer device (e.g. end system, CPE etc.) is not necessary.
        Therefore mechanisms are needed to provision and release public IPv4
        addresses for Dual-Stack PPP sessions dynamically.</t>

        <t>The goal of the solution sketched in this document, is to limit and
        decrease the public IPv4 address pool size of the PPP network access
        provider. Assuming that always-on services are reachable via IPv6, a
        Dual-Stack capable PPP connected device should per default request
        IPv4 address parameters only on demand, when the need for establishing
        IPv4 connectivity has been detected and IPv4 traffic towards the PPP
        WAN interface (e.g. of a CPE) is intended. As already described above
        it is sufficient, when initially only IPv6 address parameters are
        provisioned to the PPP customer endpoint (e.g. end systems, Home
        Gateway, CPE).</t>

        <t>This means that this customer device does not initially start a
        complete Dual-Stack PPP session but an "IPv6 only" PPP session. The
        IPv4 part of the complete Dual-Stack is initiated later on only in the
        case that IPv4 connectivity is explicitly requested.</t>

        <t><figure align="center" anchor="xml_happy_1"
            title="PPP Dual-Stack architecture ">
            <preamble></preamble>

            <artwork align="center"><![CDATA[                             |       +------------+        |
                             |       |  external  |        |
                             |       |  Address   |        |
                             |       |    Pool    |        |
                             |       | Management |        |                                                      
                             |       +------------+        |
                             |      service | provider     |
                             |          AAA | area         |
+---------+                  +--------------|--------------+
| Private |__                               |
|   Host  |_ \                              |
|    1    | \ \IPv4                         |
+---------+  \ \                            |
              \ \               IPv4        |
           IPv6\ \_+---------+ over PPP+---------+  IPv4  +---------+
                \__|   CPE   |---------|   NAS   |--------|  Public |
                 __|  (PPP   |         |  (PPP   |        |   Host  |
                / _|  Peer)  |---------|  Peer)  |--------|    n    |
           IPv6/ / +---------+   IPv6  +---------+  IPv6  +---------+
              / /              over PPP
+---------+  / /IPv4
| Private |_/ / 
|  Host   |__/
|    n    | 
+---------+  

\_______________________/\__________________________________________/
    Private Internet                     Public Internet
         ]]></artwork>
          </figure></t>

        <t>The figure above shows the architecture of a PPP Dual-Stack
        environment for providing Internet access for residential
        customers.</t>

        <t>The abstract topology normally consists of 3 components:</t>

        <t><list style="numbers">
            <t>Private Internet (aka. Customer LAN)</t>

            <t>Public Internet</t>

            <t>Service Provider AAA area</t>
          </list>The Private Internet as defined in <xref
        target="RFC1918"></xref> is the local area network on customer site
        wherein IPv4 and IPv6 communication are provided. The Private Internet
        is an optional part of the PPP Dual-Stack architecture. Within the
        Customer LAN exist one or more private hosts which are connected to
        the local area network interfaces of the Customer Premise Equipment.
        These hosts can have IPv4-only, IPv6-only or Dual-Stack communication
        capabilities. For IPv6 communication inside the Customer LAN Unique
        Local or public IPv6 addresses may be used. For IPv6 communication to
        the public Internet public IPv6 addresses should be used. For IPv4
        communication within the Customer LAN and to the public Internet it is
        assumed that private IPv4 addresses must be used by the private hosts.
        In order to ensure IPv4 communication to the public Internet the CPE
        must hence provide IPv4 Network Address Translation (NAT44)
        functionality and map the private IPv4 addresses of the private hosts
        to a public IPv4 address of the WAN interface of the NAT and vice
        versa. The NAT functionality on the CPE is the border element between
        the private IPv4 Internet (aka. Customer LAN) and the public IPv4
        Internet. In the case of using public IPv6 addresses for the
        communication the CPE and its interfaces are an integral part of the
        public Internet.</t>

        <t>To the public Internet belong the Access Network of the service
        provider and all other networks outside the customer LAN that are
        addressed with global IPv4 and / or IPv6 addresses and can be accessed
        from the private Internet as well as from other systems within the
        public Internet.</t>

        <t>The focus of this draft is directed to the access network of the
        service provider where in our scenario PPP is used between the CPE and
        the NAS in order to provide customer access to the public
        Internet.</t>

        <t>The Service Provider AAA area is a network which consists of
        several systems to control the Network Access Server (NAS) and to
        provide AAA functionalities in order to reduce the load on the NAS.
        Such Service Provider AAA functionalities include also management of
        the public IPv4 and public IPv6 address pools inside the NAS and can
        hence also be integrated directly into the NAS.</t>
      </section>

      <section title="The advantage of the dynamic address assigning feature">
        <t>This approach is based on the assumption that the customer
        initiates a PPP session based on IPv6 and uses IPv4 only if
        applications or services require explicit IPv4 connectivity. A public
        IPv4 address can therefore provided sequentially to different
        customers during the runtime of their PPP connections. This enables a
        smooth migration from IPv4 to IPv6 in comparison to other IPv4-IPv6
        migration approaches (e.g. NAT in service provider network). The
        customer will be provisioned with a public IPv4 address only in the
        case when global IPv4 connectivity is really needed and will not be
        provisioned with an IPv4 address per default when the Dual-Stack PPP
        session is initiated. Furthermore, a provisioned IPv4 address can be
        released (e.g. after a certain time interval) in the case that the CPE
        detects that there is no need any more for global IPv4 connectivity.
        Or in other words, when global IPv4 connectivity is not needed during
        the whole time of the PPP session then a (continuous) provisioning of
        a public IPv4 address to the CPE is not necessary and the provisioning
        of a public IPv4 address can be done on-demand and dynamically.</t>

        <t>The main goal of this mechanism is to limit and decrease the pool
        size for public IPv4 addresses at the service provider site.</t>

        <t>A similar effect in limiting and decreasing the IPv4 address demand
        could also be achieved by using separate PPP sessions for IPv4 and
        IPv6. But in that case the following problems occur:</t>

        <t><list style="symbols">
            <t>For each additional PPP session additional AAA parameters have
            to be created and handled which leads to an extension of AAA
            domains and more complex processes.</t>
          </list><list style="symbols">
            <t>Each additional PPP session will require additional resources
            on the PPP endpoints (e.g. for handling additional customer
            credentials) as well in devices that act as PPP intermediate
            agents.</t>
          </list><list style="symbols">
            <t>Accounting and controlling of traffic classes on an access line
            or customer base will be impeded or at least complicated.</t>
          </list>Because of these reasons the introduction of IPv6 as
        additional network layer protocol on a access line with an additional
        PPP session is not recommended.</t>
      </section>
    </section>

    <section title="Specification">
      <t>As defined in <xref target="RFC2661">RFC 2661</xref> PPP and L2TP
      provide the following main functionalities:</t>

      <t><list style="numbers">
          <t>A method for encapsulating datagrams over serial links.</t>

          <t>A Link Control Protocol (LCP) for establishing, configuring, and
          testing the data-link connection.</t>

          <t>(Optional) Authentication Protocol for one or both peers.</t>

          <t>A family of Network Control Protocols (NCPs) for establishing and
          configuring different network-layer protocols.</t>
        </list>For provisioning of IPv4 or IPv6 communication parameters (e.g.
      addresses, DNS resolver) as network-layer protocols only the NCPs
      Internet Protocol (Version 4) Control Protocol (IPCP) <xref
      target="RFC1332">RFC 1332 </xref> and Internet Protocol (Version 6)
      Control Protocol (IPV6CP) <xref target="RFC2472">RFC 2472</xref> are
      used. Whereas IPCP is responsible for configuring, enabling, and
      disabling the IPv4 protocol modules on both ends of the point-to-point
      link, IPV6CP is responsible for configuring, enabling, and disabling the
      IPv6 protocol modules on both ends of the point-to-point link. Once one
      of both network-layer protocols has been configured, datagrams from this
      network-layer protocol can be sent over the PPP link. Both NCP protocol
      mechanisms are independent from each other (see also requirement WLL-3
      in <xref target="RFC6204"></xref>).</t>

      <t>An implementation wishing to close a dedicated NCP connection (e.g.
      IPCP or IPv6CP) SHOULD transmit a Terminate-Request to the peer. Upon
      reception of a Terminate-Request, a Terminate-Ack MUST be transmitted to
      the sender of the Terminate-Request. The PPP session itself and the
      other NCP connection inside the PPP session will remain existent. Only
      in the case that both NCP connections are closed, the PPP session will
      be terminated.</t>

      <section title="Definition of the participating elements and their functionalities">
        <t>This chapter names the network elements that are involved in the
        message flows to enable the on-demand IPv4 address provisioning
        functionality and describes their functionalities related to this
        mechanism.</t>

        <t>Customer Edge Router (CER aka. CPE)/End System</t>

        <t>This is any device implementing a Dual-Stack PPP stack and acting
        as a PPP client to the PPP server in the service provider network in
        order to achieve connectivity to the service provider network. The PPP
        interface of this device is also called WAN interface <xref
        target="RFC6204"></xref>. In the case of a Customer Edge Router (CER)
        this is a node (e.g. intended for home or small office usage) which
        forwards IPv4 and IPv6 packets those are not explicitly addressed to
        itself . Therefore the demand for IPv4 connectivity of such a Customer
        Edge Router will be triggered either by own applications or by
        receiving IPv4 packets on its customer network facing interfaces that
        are addressed to the public Internet. In the case of an End System,
        this system is a node that intends to send IPv4 and/or IPv6 packets.
        On a End System the IPv4 connectivity demand can only be triggered by
        own applications. However, in both cases the IPv4_idle_timer resides
        on the WAN interface in order to detect IPv4 packets passing the WAN
        interface (incoming/ outgoing) and to measure the related IPv4 idle
        time when no IPv4 packet has been sent or received.</t>

        <t>Network Access Server (NAS)/Layer 2 Network Server (LNS)</t>

        <t>The Network Access Server (NAS) is a device providing local Dual-
        Stack PPP connectivity to the Service Provider network and acting as a
        PPP server to the PPP client on the Customer Edge Router or customer
        end system. Within a RFC 2661 architecture the PPP server within the
        service provider network is the L2TP Network Server (LNS). The address
        pool management can be provided locally on the NAS/LNS or remotely. In
        the case of a local address pool management no information exchange to
        an external address pool management system is needed in order to
        assign or release IPv4 addresses. In the case of an external address
        pool management an information exchange between the NAS/LNS and the
        address pool management system is required.</t>

        <t>External Address Pool Management</t>

        <t>External Address Pool Management is used in the case when no local
        Address Pool Management system is implemented in the NAS/LNS. In this
        case it is necessary that the NAS/LNS communicates with an External
        Address Pool Management System for assigning or releasing IPv4
        addresses. RADIUS as specified in <xref target="RFC2865"></xref> or
        DIAMETER as specified in <xref target="RFC3588"></xref> can be used as
        protocol between NAS/LNS and the External Address Pool Management
        System.</t>
      </section>

      <section title="Assigning IPv4 address parameter on-demand after establishing PPP and IPv6 connectivity">
        <t>A PPP client implementation wishing to open a connection MUST
        transmit a NCP Configure-Request to the PPP server. If every
        Configuration Option received in a NCP Configure-Request is
        recognizable and all values are acceptable, then the PPP server
        implementation MUST transmit a NCP Configure-Ack to the initiator of
        the NCP Configure-Request.</t>

        <t>Applied to the above sketched Dual-Stack PPP session use case the
        configuration and enabling of the IPv6 protocol module can be done
        immediately after a successful LCP data link configuration (and maybe
        successful authentication) of the PPP session.</t>

        <t>Separately from that, the IPv4 protocol module can be configured
        and enabled using IPCP. However this SHALL only be done in the case
        that an IPv4 connectivity demand has been detected on the PPP customer
        end system or CPE (PPP client). Therefore the NAS MUST not initiate
        the negotiation of IPCP.</t>

        <t><figure anchor="xml_happy_2"
            title="Message flow for assigning IPv4 address parameter ">
            <preamble></preamble>

            <artwork align="center"><![CDATA[
      CPE/End System                  NAS              ext.  Address 
         (PPP Peer)                (PPP Peer)         Pool management
             |                         |                      |
        1. ->|                         |                      |
        2.   |-IPCP-Configure-Request->|                      |
        3.   |                         |----Access-Request--->|  
        4.   |                         |<---Access-Accept-----|
        5.   |<-IPCP-Configure-Request-|                      |
        6.   |---IPCP-Configure-Ack--->|                      |
        7.   |<--IPCP-Configure-Nack---|                      |
        8.   |-IPCP-Configure-Request->|                      |
        9.   |<---IPCP-Configure-Ack---|                      |
        10.  |                         |--Accounting-Request->|
        11.  |                         |<---Accounting-Resp.--|
      ]]></artwork>
          </figure></t>

        <t>In the diagram above, the CPE/End System is triggered (1) to set up
        IPv4 connectivity via an already existing PPP session. The CPE/End
        System detects that there is no public IPv4 address for its WAN
        interface available and starts the negotiation of the needed IPv4
        address parameter by sending an IPCP Configure-Request to the NAS (2).
        The NAS will request the corresponding IPv4 connectivity parameters
        (e.g. IPv4 address, DNS resolver address) from a local (e.g. within
        the NAS) or remote database representing the Address Pool Management
        System(e.g. via RADIUS/DIAMETER) (3, 4). After this the PPP peers use
        the standard IPCP procedures to finalize the IPv4 address parameter
        negotiation (5, 6, 7, 8, 9). After the successful provisioning of the
        IPv4 address parameter the CPE/End system has full global IPv4
        connectivity and can proceed with the IPv4 communication. In case of
        an external Address Pool Management, the NAS will send an
        Accounting-Request message (10) to the external Address Pool
        Management System in order to signal the successful negotiation of the
        IPv4 address parameter. The external Address Pool Management System
        will answer with an Accounting-Response (11) message.</t>
      </section>

      <section title="Releasing unused IPv4 address parameters">
        <t>An implementation wishing to close a dedicated NCP connection (e.g.
        IPCP or IPv6CP) SHOULD transmit a Terminate-Request to the peer. Upon
        reception of a NCP Terminate-Request, a Terminate-Ack MUST be
        transmitted to the sender of the Terminate-Request.</t>

        <t>In the PPP Dual-Stack session scenario discussed here, the
        generation of the Terminate-Request message for the IPCP part of the
        PPP Dual-Stack session MUST be triggered by an IPv4 traffic idle timer
        within the PPP client (e.g. end system, CPE). As long as there is
        still an ongoing IPv6 connection within the PPP session, the PPP
        session MUST be kept open. Equivalently, when no IPv6 connectivity is
        detected the IPV6CP session can be terminated again by sending an
        IPv6CP Terminate-Request and accepting this by a Terminate-Ack.
        Afterwards the link layer connectivity and hence the whole PPP
        connection can be terminated by exchanging the LCP Terminate-Request
        and Terminate-Ack messages.</t>

        <t><figure align="center" anchor="xml_happy_3"
            title="Message flow for releasing IPv4 address parameter ">
            <preamble></preamble>

            <artwork align="center"><![CDATA[
      CPE/End System                  NAS              ext.  Address
         (PPP Peer)                (PPP Peer)         Pool Management
             |                         |                      |
        1. ->|                         |                      |
        2.   |--IPCP-Termin.-Request-->|                      |
        3.   |<----IPCP-Termin.-Ack.---|                      |  
        4.   |                         |-Interim-Acc.-Requ.-->|
        5.   |                         |<---Accounting-Resp.--|]]></artwork>
          </figure></t>

        <t>The termination of an IPCP session is illustrated in figure 3
        above. Within this exemplary message flow it is assumed that there is
        still an IPV6CP connection active inside the Dual-Stack PPP session.
        After the expiration of the IPv4 traffic idle timer (1) the CPE/End
        system sends an IPCP terminate request to the peer (2). The request
        will be answered with an Terminate-Ack message (3). The IPv4 address
        can be returned to the local address pool (e.g. within the NAS) or to
        the remote IPv4 address pool by sending Interim-Accounting messages
        (4, 5) (e.g. via RADIUS/DIAMETER).</t>
      </section>

      <section title="Timer Considerations">
        <t>IPv4_Idle_Timer</t>

        <t>The sending of the Terminate-Request message MUST be triggered by
        an IPv4 traffic idle timer within the PPP client (e.g. end system,
        CPE). The timer value MUST be configurable to adopt the mechanism due
        to the needs of the applications which are using IPv4 and with respect
        to an optimization of the IPv4 address saving potential.</t>
      </section>
    </section>

    <!-- This PI places the pagebreak correctly (before the section title) in the text output. -->

    <?rfc needLines="8" ?>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The author and contributors also wish to acknowledge the assistance
      of the following individuals or groups.</t>

      <t>Tina Tsou</t>

      <t>Sven Schmidtke</t>

      <t>Dan Wing</t>

      <t>Vernon Schryer</t>

      <t>Mark Townsley</t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>

      <t>TBD.</t>

      <t>All drafts are required to have an IANA considerations section (see
      <xref target="RFC5226">Guidelines for Writing an IANA Considerations
      Section in RFCs</xref> for a guide). If the draft does not require IANA
      to do anything, the section contains an explicit statement that this is
      the case (as above). If there are no requirements for IANA, the section
      will be removed during conversion into an RFC by the RFC Editor.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>TBD.</t>

      <t>All drafts are required to have a security considerations section.
      See <xref target="RFC3552">RFC 3552</xref> for a guide.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative Reference">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->

      &rfc2119;

      &rfc0791;

      &rfc1918;

      &rfc4213;

      &rfc2460;

      &rfc1332;

      &rfc2661;

      &rfc2472;

      &rfc2865;

      &rfc3588;

      &rfc6204;

      <reference anchor="BBF-WT-242">
        <front>
          <title>Draft WT-242 IPv6 Transition Mechanisms for Broadband
          Networks</title>

          <author fullname="Broadbandforum">
            <organization>Broadbandforum</organization>
          </author>

          <date />
        </front>
      </reference>

      <reference anchor="BBF-TR-187">
        <front>
          <title>Technical Report TR187 IPv6 over PPP Broadband Access (Issue
          1)</title>

          <author fullname="Broadbandforum">
            <organization>Broadbandforum</organization>
          </author>

          <date month="May" year="2010" />
        </front>
      </reference>
    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

      &rfc3552;

      &rfc5226;

      <!-- A reference written by by an organization not a person. -->
    </references>

    <section anchor="app-additional" title="Workplan">
      <t>v00 2011-03-07 KF/OB initial version</t>

      <t>v01 2011-09-06 adding figures + explanation + Feedback IETF80
      &amp;mail discussion</t>

      <t>v02 before IETF 82 review + feedback mail discussion</t>
    </section>

    <!-- Change Log

v00 2011-02-28  KF/OB Initial version

v01 2011-09-06  KF/OB -->

    <!--                adding figures + explanation + Feedback IETF80 & mail discussion-->

    <!---->

    <!--v02 
v03 
v04 
v05 
v06 -->
  </back>
</rfc>

