# NAME

RRAdvertisedStatusCode.seq - Requesting Router has received advertise message with Status Code option NoPrefixAvail

# TARGET

      Router for DHCP client

# SYNOPSIS

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

# TOPOLOGY

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

> `TN` | `Link-local` | `fe80::200:ff:fe00:a0a0`
> `Ether` | `00:00:00:00:a0:a0`
> `Delegate Prefix` | `3ffe:501:fffc::`
> `Prefix Length` | `48`
> `TN1 (other server)` | `Link-local` | `fe80::200:ff:fe00:a1a1`
> `Ether` | `00:00:00:00:a1:a1`
> `Delegate Prefix` | `3ffe:501:fffc::`
> `Prefix Length` | `48`
> `Host` | `Link-local` | `fe80::200:ff:fe00:101`
> `ether` | `00:00:00:00:01:01`

# INITIALIZATION

1. NUT sets up Prefix Delegation.

    Tester as Server          Target as Client        Tester as Host
        |                           |                           |
        |<--------------------------|                           |
        |   DHCP Solicit message    |                           |
        |                           |                           |

      1. Wait DHCP Solicit message

    Addresse

    Solicit messages

          Src
          NUT link-local address

          Dst
          All_DHCP_Relay_Agents_and_Servers

    All_DHCP_Relay_Agents_and_Servers FF02::1:2

    UDP Ports

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

    DHCP Message

    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)

# TEST PROCEDURE

    Tester as Server          Target as Client        Tester as Host
        |                           |                           |
        |-------------------------->|                           |
        |   DHCP Advertise message  |                           |
        |   w/ Status Code option   |                           |
        |   NoPrefixAvail           |                           |
        |                           |                           |
        |<--------------------------|                           |
        |   Judgment #1             |                           |
        |   DHCP Solicit message    |                           |
        |                           |                           |
        |-------------------------->|                           |
        |   DHCP Advertise message  |                           |
        |   from other server       |                           |
        |                           |                           |
        |<--------------------------|                           |
        |   Judgment #2             |                           |
        |   DHCP Request message    |                           |
        |   to other server         |                           |
        |                           |                           |
        |-------------------------->|                           |
        |   DHCP Reply message      |                           |
        |   from other server       |                           |
        |                           |                           |
        v                           v                           v

      1. Send DHCP Advertise message with Status Code option NoPrefixAvail
      2. Wait DHCP Solicit message again
      3. Send DHCP Advertise message from other server
      4. Wait DHCP Request message sending to other server
      5. Send DHCP Reply message from other server

    Addresses

    Solicit, Request messages

          Src
          NUT link-local address

          Dst
          All_DHCP_Relay_Agents_and_Servers

    All_DHCP_Relay_Agents_and_Servers FF02::1:2

    Advertise message

          Src
          fe80::200:ff:fe00:a0a0

          Dst
          NUT link-local address

    Advertise, Reply message from other server

          Src
          fe80::200:ff:fe00:a1a1

          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 Advertise message with Status Code option including NoPrefixAvail

          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

          Status Code Option

          status-code
          6 NoPrefixAvail (TBD)

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

    DHCP Solicit message

         Same above

    DHCP Advertise message from other server

          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:a1:a1

          Preference Option

          pref-value
          255

          IA_PD Option

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          300

          T2
          480

          IA_PD Prefix Option

          Code
          34 (TBD)

          preferred-lifetime
          600

          valid-lifetime
          1200

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fffc::

    DHCP Request message to other server

          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:a1:a1

          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:fffc::

            Elapsed Time Option  (MUST)

          elapsed-time
          ANY

           Option Request Option (Optional)

    DHCP Reply message from other server

          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:a1:a1

          IA_PD Option

          Code
          33 (TBD)

          IAID
          Unique identifier which client specified

          T1
          300

          T2
          480

          IA_PD Prefix Option

          Code
          34 (TBD)

          preferred-lifetime
          600

          valid-lifetime
          1200

          prefix-length
          48

          IPv6 prefix
          3ffe:501:fffc::

# JUDGEMENT

      1. NUT ignore DHCP Advertise message with Status Code option NoPrefixAvail. DHCP Solicit message is recieved again.

      2. DHCP Request message is recieved sending to other server.

# TERMINATION

      N/A

# REFERENCE

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

    10. Delegating Router Solicitation

    10.1 Requesting router behaviour

       The requesting router creates and transmits a Solicit message as
       described in sections "Creation of Solicit Messages" and
       "Transmission of Solicit Messages" of the DHCP specification [6].
       The requesting router creates an IA_PD and assigns it an IAID.  The
       requesting router MUST include the IA_PD option in the Solicit
       message.

       The requesting router processes any received Advertise messages as
       described in section "Receipt of Advertise Messages" in the DHCP
       specification [6].  The requesting router MAY choose to consider the
       presence of advertised prefixes in its decision about which
       delegating router to respond to.

       The requesting router MUST ignore any Advertise message that includes
       a Status Code option containing the value NoPrefixAvail, with the
       exception that the requesting router MAY display the associated
       status message to the user.

    15. IANA Considerations

       IANA is requested to assign option codes to these options from the
       option-code space as defined in section "DHCPv6 Options" of the
       DHCPv6 specification [6].

       IANA is requested to assign a status code to the NoPrefixAvail status
       code from the status-code space as defined in section "Status Codes"
       of the DHCPv6 specification [6].

    draft-ietf-dhc-dhcpv6-28.txt

    17. DHCP Server Solicitation

    17.1. Client Behavior

    17.1.3. Receipt of Advertise Messages

       The client MUST ignore any Advertise message that includes a Status
       Code option containing the value NoAddrsAvail, with the exception
       that the client MAY display the associated status message to the
       user.

       Upon receipt of one or more valid Advertise messages, the client
       selects one or more Advertise messages based upon the following
       criteria.

        -  Those Advertise messages with the highest server preference value
           are preferred over all other Advertise messages.

        -  Within a group of Advertise messages with the same server
           preference value, a client MAY select those servers whose
           Advertise messages advertise information of interest to the
           client.  For example, the client may choose a server that
           returned an advertisement with configuration options of interest
           to the client.

        -  The client MAY choose a less-preferred server if that server has
           a better set of advertised parameters, such as the available
           addresses advertised in IAs.

       Once a client has selected Advertise message(s), the client will
       typically store information about each server, such as server
       preference value, addresses advertised, when the advertisement was
       received, and so on.

       If the client needs to select an alternate server in the case that a
       chosen server does not respond, the client chooses the next server
       according to the criteria given above.

    A. Appearance of Options in Message Types

       The following table indicates with a "*" the options are allowed in
       each DHCP message type:

            Client Server IA_NA  Option Pref  Time Relay Auth. Server
              ID     ID   IA_TA  Request            Msg.       Unica.
    Solicit   *             *      *           *           *
    Advert.   *      *      *            *     *           *
    Request   *      *      *      *           *           *
    Reply     *      *      *            *     *           *     *

             Status  Rap. User  Vendor Vendor Inter. Recon. Recon.
              Code  Comm. Class Class  Spec.    ID    Msg.  Accept
    Solicit           *     *     *      *                    *
    Advert.    *            *     *      *                    *
    Request                 *     *      *                    *
    Reply      *      *     *     *      *                    *

# SEE ALSO

      perldoc V6evalTool