# NAME

      RRReleaseRetransmit.seq - Requesting Router retransmits Release messages until recieving Reply message.

# TARGET

      Router for DHCP client

# SYNOPSIS

RRReleaseRetransmit.seq [-tooloption ...] -pkt RRReleaseRetransmit.def -tooloption : v6eval tool option

# TOPOLOGY

>        TN
>         |                     ISP site
>       --+----+--------------- Link0
>              |
>             NUT     Host
>              |       |        Customer site
>       -------+-------+------- Link1 3ffe:501:fff2:XXXX::/64

> `TN` | `Link-local` | `fe80::200:ff:fe00:a0a0`
> `Ether` | `00:00:00:00:a0:a0`
> `Delegate Prefix` | `3ffe:501:fff2::`
> `Prefix Length` | `48`
> `Host` | `Link-local` | `fe80::200:ff:fe00:101`
> `ether` | `00:00:00:00:01:01`

1. NUT sets up Prefix Delegation.
2. NUT sets up Router Advertisement to the interface by the side of downstream.

    Tester as Server          Target as Client        Tester as Host
        |                           |                           |
        |<--------------------------|                           |
        |   DHCP Solicit message    |                           |
        |                           |                           |
        |-------------------------->|                           |
        |   DHCP Advertise message  |                           |
        |                           |                           |
        |<--------------------------|                           |
        |   DHCP Request message    |                           |
        |                           |                           |
        |-------------------------->|                           |
        |   DHCP Reply message      |                           |
        |                           |                           |
        |   Stop dhcp process to    |                           |
        |  release delegated prefix |                           |
        |                           |                           |
        |<--------------------------|                           |
        |   DHCP Release message    |                           |
        |                           |                           |

      1. Wait DHCP Solicit message
      2. Send DHCP Advertise message
      3. Wait DHCP Request message
      4. Send DHCP Reply message
      5. Wait DHCP Release message

    Addresses

    Solicit, Request, Release messages

          Src
          NUT link-local address

          Dst
          All_DHCP_Relay_Agents_and_Servers

    All_DHCP_Relay_Agents_and_Servers FF02::1:2

    Advertise, Reply message

          Src
          fe80::200:ff:fe00:a0a0

          Dst
          NUT link-local address

    UDP Ports

          Clients listen for DHCP messages on UDP port 546
          Server listen for DHCP messages on UDP port 547

    DHCP Messages

    DHCP Solicit message

          msg-type
          SOLICIT(1)

          transaction-id
          The transaction ID for this message exchange

          options

          Client Identifier Option (MUST)

          IA_PD Option (MUST)

          Code
          33 (TBD)

          IAID
          The unique identifier which client specified

          T1
          ANY

          T2
          ANY

          Elapsed Time Option (MUST)

          elapsed-time
          ANY

          Option Request Option (Optional)

    DHCP Advertise message

          msg-type
          ADVERTISE(2)

          transaction-id
          The same transaction ID previous message

          options

          Client Identifier Option

          Server Identifier Option

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          40

          T2
          64

          IA_PD Prefix Option

          Code
          34 (TBD)

          preferred-lifetime
          80

          valid-lifetime
          120

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fff2::

    DHCP Request message with IA_PD option

          msg-type
          REQUEST(3)

          transaction-id
          The transaction ID for this message exchange

          options

          Client Identifier Option  (MUST)

          Server Identifier Option  (MUST)

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option  (MUST)

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          ANY

          T2
          ANY

          IA_PD Prefix Option (Optional)

          Code
          34 (TBD)

          preferred-lifetime
          ANY

          valid-lifetime
          ANY

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fff2::

            Elapsed Time Option  (MUST)

          elapsed-time
          ANY

           Option Request Option (Optional)

    DHCP Reply message with IA_PD option including IA_Prefix option

          msg-type
          REPLY(7)

          transaction-id
          The same transaction ID previous message

          options

          Client Identifier Option

          Server Identifier Option

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          40

          T2
          64

          Code
          34 (TBD)

          preferred-lifetime
          80

          valid-lifetime
          120

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fff2::

    DHCP Release message with IA_PD option including IA_PD Prefix option

          msg-type
          RELEASE(8)

          transaction-id
          The transaction ID for this message exchange

          options

          Client Identifier Option (MUST)

          Server Identifier Option  (MUST)

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option (MUST)

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          ANY

          T2
          ANY

          IA_PD Prefix Option (MUST)

          Code
          34 (TBD)

          Code
          34 (TBD)

          preferred-lifetime
          ANY

          valid-lifetime
          ANY

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fff2::

            Elapsed Time Option (MUST)

          elapsed-time
          ANY

# TEST PROCEDURE

    Tester as PE              Target as CPE             Tester as client
        |                           |                           |
        |             :             |                           |
        |  Wait REL_TIMEOUT passed  |                           |
        |             :             |                           |
        |                           |                           |
        |<--------------------------|                           |
        |   Judgment #1             |                           |
        |   DHCP Release message    |                           |
        |                           |                           |
        |-------------------------->|                           |
        |   DHCP Reply message      |                           |
        | w/ Status Code: NoBinding |                           |
        |                           |                           |
        |             :             |                           |
        |  Wait REL_TIMEOUT passed  |                           |
        |             :             |                           |
        |                           |                           |
        |<--------------------------|                           |
        |   Judgment #2             |                           |
        |   No DHCP Release message |                           |
        |                           |                           |
        |                           |<--------------------------|
        |                           |    Router Solicitation    |
        |                           |                           |
        |                           |(------------------------> |
        |                           |    Judgment #3            |
        |                           |  No Router Advertisement  |
        |                           |     or                    |
        |                           |  Router Advertisement     |
        |                           |  with ValidLifetime 0     |
        |                           |                           |
        v                           v

      1. Wait DHCP Release message again or not
      2. Send DHCP Reply message with Status Code option including status code NoBinding
      3. No DHCP Release message
      4. Send Router Solicitation
      5. No Router Advertisement or wait Router Advertisement with ValidLifetime zero

    Addresses

    Release message

          Src
          NUT link-local address

          Dst
          All_DHCP_Relay_Agents_and_Servers

    All_DHCP_Relay_Agents_and_Servers FF02::1:2

    Reply message

          Src
          fe80::200:ff:fe00:a0a0

          Dst
          NUT link-local address

    UDP Ports

          Clients listen for DHCP messages on UDP port 546
          Server listen for DHCP messages on UDP port 547

    DHCP Messages

    DHCP Release message with IA_PD option including IA_PD Prefix option

          msg-type
          RELEASE(8)

          transaction-id
          The transaction ID for this message exchange

          options

          Client Identifier Option (MUST)

          Server Identifier Option  (MUST)

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option (MUST)

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          ANY

          T2
          ANY

          IA_PD Prefix Option (MUST)

          Code
          34 (TBD)

          Code
          34 (TBD)

          preferred-lifetime
          ANY

          valid-lifetime
          ANY

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fff2::

            Elapsed Time Option (MUST)

          elapsed-time
          ANY

    DHCP Reply message with Status Code option including status code Success

          msg-type
          REPLY(7)

          transaction-id
          The same transaction ID previous message

          options

          Client Identifier Option

          Server Identifier Option

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          40

          T2
          64

          Code
          34 (TBD)

          preferred-lifetime
          80

          valid-lifetime
          120

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fff2::

          Status Code Option

          status-code
          0 Success

          status-message
          0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56

    DHCP Reply message with Status Code option including status code NoBinding

          msg-type
          REPLY(7)

          transaction-id
          The same transaction ID previous message

          options

          Client Identifier Option

          Server Identifier Option

          DUID Contents type
          1 Link-layer address plus time

          hardware type
          1 Ether

          time
          Time which the server included

          link-layer address
          00:00:00:00:a0:a0

          IA_PD Option

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          0

          T2
          0

          Status Code Option

          status-code
          3 NoBinding

          status-message
          0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56

# JUDGEMENT

      1. DHCP Release message is recieved again or not.

      2. DHCP Release message is not recieved.

      3. Router Advertisement is not recieved, or Router Advertisement is recieved with  ValidLifetime zero.

# TERMINATION

      N/A

# REFERENCE

    draft-ietf-dhc-dhcpv6-opt-prefix-delegation-01.txt

    11. Requesting router initiated prefix delegation

       A requesting router uses the same message exchanges as described in
       section "DHCP Client-Initiated Configuration Exchange" of the DHCP
       specification [6] to obtain or update prefix(es) from a delegating
       router.  The requesting router and the delegating router use the
       IA_PD Prefix option to exchange information about prefix(es) in much
       the same way IA Address options are used for assigned addresses.

    11.1 Requesting router behaviour

       The requesting router uses a Release message to return a delegated
       prefix to a delegating router.  The prefixes to be released MUST be
       included in the IA_PDs.

    draft-ietf-dhc-dhcpv6-28.txt

    14. Reliability of Client Initiated Message Exchanges

       see the retransmission mechanism

    15. Message Validation

    15.9. Release Message

       Clients MUST discard any received Release messages.

       Servers MUST discard any received Release message that fails to meet
       any of the following conditions:

        -  the message MUST include a Server Identifier option

        -  the contents of the Server Identifier option MUST match the
           server's identifier

        -  the message MUST include a Client Identifier option

    18. DHCP Client-Initiated Configuration Exchange

    18.1. Client Behavior

       A client uses Request, Renew, Rebind, Release and Decline messages
       during the normal life cycle of addresses.  It uses Confirm to
       validate addresses when it may have moved to a new link.  It uses
       Information-Request messages when it needs configuration information
       but no addresses.

       If the client has a source address of sufficient scope that can be
       used by the server as a return address and the client has received
       a Server Unicast option (section 22.12) from the server, the client
       SHOULD unicast any Request, Renew, Release and Decline messages to
       the server.

       DISCUSSION:

          Use of unicast may avoid delays due to relaying of messages
          by relay agents as well as avoid overhead and duplicate
          responses by servers due to delivery of client messages to
          multiple servers.  Requiring the client to relay all DHCP
          messages through a relay agent enables the inclusion of
          relay agent options in all messages sent by the client.  The
          server should enable the use of unicast only when relay
          agent options will not be used.

    18.1.6. Creation and Transmission of Release Messages

       To release one or more addresses, a client sends a Release message to
       the server.

       The client sets the "msg-type" field to RELEASE. The client generates
       a transaction ID and places this value in the "transaction-id" field.

       The client places the identifier of the server that allocated the
       address(es) in a Server Identifier option.

       The client MUST include a Client Identifier option to identify itself
       to the server.  The client includes options containing the IAs for
       the addresses it is releasing in the "options" field.  The addresses
       to be released MUST be included in the IAs.  Any addresses for the
       IAs the client wishes to continue to use MUST NOT be in added to the
       IAs.

       The client MUST NOT use any of the addresses it is releasing as
       the source address in the Release message or in any subsequently
       transmitted message.

       Because Release messages may be lost, the client should retransmit
       the Release if no Reply is received.  However, there are scenarios
       where the client may not wish to wait for the normal retransmission
       timeout before giving up (e.g., on power down).  Implementations
       SHOULD retransmit one or more times, but MAY choose to terminate the
       retransmission procedure early.

       The client transmits the message according to section 14, using the
       following parameters:

          IRT   REL_TIMEOUT

          MRT   0

          MRC   REL_MAX_MRC

          MRD   0

       The client MUST stop using all of the addresses being released as
       soon as the client begins the Release message exchange process.  If
       addresses are released but the Reply from a DHCP server is lost,
       the client will retransmit the Release message, and the server may
       respond with a Reply indicating a status of NoBinding.  Therefore,
       the client does not treat a Reply message with a status of NoBinding
       in a Release message exchange as if it indicates an error.

       Note that if the client fails to release the addresses, each address
       assigned to the IA will be reclaimed by the server when the valid
       lifetime of that address expires.

    18.1.8. Receipt of Reply Messages

       When the client receives a valid Reply message in response to a
       Release message, the client considers the Release event completed,
       regardless of the Status Code option(s) returned by the server.

    5.5. Transmission and Retransmission Parameters

       This section presents a table of values used to describe the message
       transmission behavior of clients and servers.

          Parameter     Default  Description
       -------------------------------------
       REL_TIMEOUT       1 sec   Initial Release timeout
       REL_MAX_RC        5       MAX Release attempts

    24.2. DHCP Message Types

       IANA is requested to record the following message types (defined
       in section 5.3).  IANA is requested to maintain a registry of DHCP
       message types.

          RELEASE               8

    A. Appearance of Options in Message Types

       The following table indicates with a "*" the options are allowed in
       each DHCP message type:
     <BR
            Client Server IA_NA  Option Pref  Time Relay Auth. Server
              ID     ID   IA_TA  Request            Msg.       Unica.
    Release   *      *      *      *           *           *

             Status  Rap. User  Vendor Vendor Inter. Recon. Recon.
              Code  Comm. Class Class  Spec.    ID    Msg.  Accept
    Release                 *     *      *

# SEE ALSO

      perldoc V6evalTool