5354
EXPERIMENTAL

Aggregate Server Access Protocol (ASAP) and Endpoint Handlespace Redundancy Protocol (ENRP) Parameters

Authors: R. Stewart, Q. Xie, M. Stillman, M. Tuexen
Date: September 2008
Area: tsv
Working Group: rserpool
Stream: IETF

Abstract

This document details the parameters of the Aggregate Server Access Protocol (ASAP) and Endpoint Handlespace Redundancy Protocol (ENRP) defined within the Reliable Server Pooling (RSerPool) architecture. This memo defines an Experimental Protocol for the Internet community.

RFC 5354: Aggregate Server Access Protocol (ASAP) and Endpoint Handlespace Redundancy Protocol (ENRP) Parameters [RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

EXPERIMENTAL
Network Working Group                                         R. Stewart
Request for Comments: 5354                                        Q. Xie
Category: Experimental                                The Resource Group
                                                             M. Stillman
                                                                   Nokia
                                                               M. Tuexen
                                      Muenster Univ. of Applied Sciences
                                                          September 2008


              <span class="h1">Aggregate Server Access Protocol (ASAP) and</span>
       <span class="h1">Endpoint Handlespace Redundancy Protocol (ENRP) Parameters</span>

Status of This Memo

   This memo defines an Experimental Protocol for the Internet
   community.  It does not specify an Internet standard of any kind.
   Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Abstract

   This document details the parameters of the Aggregate Server Access
   Protocol (ASAP) and Endpoint Handlespace Redundancy Protocol (ENRP)
   defined within the Reliable Server Pooling (RSerPool) architecture.


























<span class="grey">Stewart, et al.               Experimental                      [Page 1]</span>

<span id="page-2" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


Table of Contents

   <a href="#section-1">1</a>. Introduction ....................................................<a href="#page-3">3</a>
      <a href="#section-1.1">1.1</a>. Conventions ................................................<a href="#page-3">3</a>
   <a href="#section-2">2</a>. Parameters in General ...........................................<a href="#page-3">3</a>
   <a href="#section-3">3</a>. ENRP-ASAP Common Parameters .....................................<a href="#page-3">3</a>
      <a href="#section-3.1">3.1</a>. IPv4 Address Parameter .....................................<a href="#page-6">6</a>
      <a href="#section-3.2">3.2</a>. IPv6 Address Parameter .....................................<a href="#page-6">6</a>
      <a href="#section-3.3">3.3</a>. DCCP Transport Parameter ...................................<a href="#page-7">7</a>
      <a href="#section-3.4">3.4</a>. SCTP Transport Parameter ...................................<a href="#page-8">8</a>
      <a href="#section-3.5">3.5</a>. TCP Transport Parameter ....................................<a href="#page-9">9</a>
      <a href="#section-3.6">3.6</a>. UDP Transport Parameter ....................................<a href="#page-9">9</a>
      <a href="#section-3.7">3.7</a>. UDP-Lite Transport Parameter ..............................<a href="#page-10">10</a>
      <a href="#section-3.8">3.8</a>. Pool Member Selection Policy Parameter ....................<a href="#page-11">11</a>
      <a href="#section-3.9">3.9</a>. Pool Handle Parameter .....................................<a href="#page-12">12</a>
      <a href="#section-3.10">3.10</a>. Pool Element Parameter ...................................<a href="#page-12">12</a>
      <a href="#section-3.11">3.11</a>. Server Information Parameter .............................<a href="#page-13">13</a>
      <a href="#section-3.12">3.12</a>. Operation Error Parameter ................................<a href="#page-14">14</a>
           <a href="#section-3.12.1">3.12.1</a>. Unspecified Error .................................<a href="#page-15">15</a>
           <a href="#section-3.12.2">3.12.2</a>. Unrecognized Parameter Error ......................<a href="#page-15">15</a>
           <a href="#section-3.12.3">3.12.3</a>. Unrecognized Message Error ........................<a href="#page-15">15</a>
           <a href="#section-3.12.4">3.12.4</a>. Invalid Values Error ..............................<a href="#page-16">16</a>
           <a href="#section-3.12.5">3.12.5</a>. Non-Unique PE Identifier Error ....................<a href="#page-16">16</a>
           <a href="#section-3.12.6">3.12.6</a>. Inconsistent Pool Policy Error ....................<a href="#page-16">16</a>
           <a href="#section-3.12.7">3.12.7</a>. Lack of Resources Error ...........................<a href="#page-16">16</a>
           <a href="#section-3.12.8">3.12.8</a>. Inconsistent Transport Type Error .................<a href="#page-16">16</a>
           <a href="#section-3.12.9">3.12.9</a>. Inconsistent Data/Control Configuration Error .....<a href="#page-16">16</a>
           <a href="#section-3.12.10">3.12.10</a>. Rejected Due to Security Considerations ..........<a href="#page-16">16</a>
           <a href="#section-3.12.11">3.12.11</a>. Unknown Pool Handle Error ........................<a href="#page-17">17</a>
      <a href="#section-3.13">3.13</a>. Cookie Parameter .........................................<a href="#page-17">17</a>
      <a href="#section-3.14">3.14</a>. PE Identifier Parameter ..................................<a href="#page-17">17</a>
      <a href="#section-3.15">3.15</a>. PE Checksum Parameter ....................................<a href="#page-18">18</a>
      <a href="#section-3.16">3.16</a>. Opaque Transport Parameter ...............................<a href="#page-18">18</a>
   <a href="#section-4">4</a>. Common Message Formats .........................................<a href="#page-18">18</a>
   <a href="#section-5">5</a>. IANA Considerations ............................................<a href="#page-20">20</a>
      <a href="#section-5.1">5.1</a>. A New Table for RSerPool Parameter Types ..................<a href="#page-20">20</a>
      <a href="#section-5.2">5.2</a>. A New Table for RSerPool Error Causes .....................<a href="#page-21">21</a>
   <a href="#section-6">6</a>. Security Considerations ........................................<a href="#page-21">21</a>
   <a href="#section-7">7</a>. Normative References ...........................................<a href="#page-21">21</a>












<span class="grey">Stewart, et al.               Experimental                      [Page 2]</span>

<span id="page-3" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>.  Introduction</span>

   The Aggregate Server Access Protocol (ASAP) [<a href="./rfc5352" title=""Aggregate Server Access Protocol (ASAP)"">RFC5352</a>], in conjunction
   with the Endpoint Handlespace Redundancy Protocol (ENRP) [<a href="./rfc5353" title=""Endpoint Handlespace Redundancy Protocol (ENRP)"">RFC5353</a>],
   provides a high-availability, data-transfer mechanism over IP
   networks.

   Both protocols work together and so share many common parameters used
   in message formats.  This document details the common message
   parameters shared between the two protocols.  This document provides
   parameter formats only; for procedures and message composition,
   please refer to the respective [<a href="./rfc5352" title=""Aggregate Server Access Protocol (ASAP)"">RFC5352</a>] and [<a href="./rfc5353" title=""Endpoint Handlespace Redundancy Protocol (ENRP)"">RFC5353</a>] documents.

<span class="h3"><a class="selflink" id="section-1.1" href="#section-1.1">1.1</a>.  Conventions</span>

   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 [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].

<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>.  Parameters in General</span>

   All parameters described below MUST be in network byte order (aka Big
   Endian, i.e., the most significant byte first) during transmission.

   Please note that messages in both ENRP and ASAP are often composed of
   multiple parameters.  These parameters may also be nested.  In such a
   case, a nested parameter will include the length of the padding
   between the nested parameters but not the last padding.

<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>.  ENRP-ASAP Common Parameters</span>

   Parameters are defined in the following Type-Length-Value (TLV)
   format:

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Parameter Type       |       Parameter Length        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                       Parameter Value                         :
   :                               +-------------------------------:
   :                               |        Padding                :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+







<span class="grey">Stewart, et al.               Experimental                      [Page 3]</span>

<span id="page-4" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


   Parameter Type:  16 bits (unsigned integer)
      The Type field is a 16-bit identifier of the type of parameter.
      It takes a value of 0 to 65534.
      The value of 65535 is reserved for IETF-defined extensions.
      Values, other than those defined in the specific ENRP parameter
      description, are reserved by IETF.  (Additional types, when
      needed, will be defined in the future through appropriate IETF/
      IANA procedures.)
      The Parameter Types are encoded such that the two bits of the
      highest-order specify the action that must be taken if the
      processing endpoint does not recognize the Parameter Type.

      00 Stop processing this ENRP or ASAP message and discard it; do
         not process any further parameters within it.

      01 Stop processing this ENRP or ASAP message and discard it; do
         not process any further parameters within it, and report the
         unrecognized parameter in an 'Unrecognized Parameter' error
         (see <a href="#section-3.12">Section 3.12</a>).

      10 Skip this parameter and continue processing.

      11 Skip this parameter and continue processing, but report the
         unrecognized parameter in an 'Unrecognized Parameter' error
         (see <a href="#section-3.12">Section 3.12</a>).


























<span class="grey">Stewart, et al.               Experimental                      [Page 4]</span>

<span id="page-5" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


      The values of parameter types are defined as follows:

            +-----------------+------------------------------+
            |      Value      | Parameter Type               |
            +-----------------+------------------------------+
            |       0x0       | (Reserved by IETF)           |
            |       0x1       | IPv4 Address                 |
            |       0x2       | IPv6 Address                 |
            |       0x3       | DCCP Transport               |
            |       0x4       | SCTP Transport               |
            |       0x5       | TCP Transport                |
            |       0x6       | UDP Transport                |
            |       0x7       | UDP-Lite                     |
            |       0x8       | Pool Member Selection Policy |
            |       0x9       | Pool Handle                  |
            |       0xa       | Pool Element                 |
            |       0xb       | Server Information           |
            |       0xc       | Operation Error              |
            |       0xd       | Cookie                       |
            |       0xe       | PE Identifier                |
            |       0xf       | PE Checksum                  |
            |       0x10      | Opaque Transport             |
            | 0x11-0xfffffffe | (Available for assignment)   |
            |    0xffffffff   | IETF-defined extensions      |
            +-----------------+------------------------------+

                                   Table 1

   Parameter Length: 16 bits (unsigned integer)
      The Parameter Length field contains the size of the parameter in
      bytes, including the Parameter Type, Parameter Length, and
      Parameter Value fields.  Thus, a parameter with a zero-length
      Parameter Value field would have a Length field of 4.
      The total length of a parameter (including Type, Parameter Length
      and Value fields) MUST be a multiple of 4 bytes.  If the length of
      the parameter is not a multiple of 4 bytes, the sender MUST pad
      the parameter at the end (i.e., after the Parameter Value field)
      with all zero bytes.  The length of this padding is not included
      in the Parameter Length field.  A sender MUST NOT pad with more
      than 3 bytes.  The receiver MUST ignore the padding bytes.

   Parameter Value: variable length.
      The Parameter Value field contains the actual information to be
      transferred in the parameter.

   Parameter Padding: variable length.
      The Parameter Padding, as described above.




<span class="grey">Stewart, et al.               Experimental                      [Page 5]</span>

<span id="page-6" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>.  IPv4 Address Parameter</span>

   This parameter defines a TLV that carries an IPv4 address.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x1             |      Length = 0x8             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        IPv4 Address                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   IPv4 Address: 32 bits (unsigned integer)
      Contains an IPv4 address.  It is binary encoded.

<span class="h3"><a class="selflink" id="section-3.2" href="#section-3.2">3.2</a>.  IPv6 Address Parameter</span>

   This parameter defines a TLV that carries an IPv6 address.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type = 0x2         |          Length = 0x14        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                         IPv6 Address                          |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   IPv6 Address: 128 bits (unsigned integer)
      Contains an IPv6 address.  It is binary encoded.



















<span class="grey">Stewart, et al.               Experimental                      [Page 6]</span>

<span id="page-7" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-3.3" href="#section-3.3">3.3</a>.  DCCP Transport Parameter</span>

   This parameter defines a TLV that describes a user transport using
   Datagram Congestion Control Protocol (DCCP).

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x3             |      Length = variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         DCCP Port             |          (reserved)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      DCCP Service Code                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     IPv4 or IPv6 Address                      :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, DCCP port, reserved fields, and IP
      Address Parameter.

   DCCP Port: 16 bits (unsigned integer)
      The DCCP port number signed to this DCCP user transport.

   DCCP Service Code: 32 bits (unsigned integer)
      The DCCP service code signed to this DCCP user transport.

   IPv4 or IPv6 Address
      Indicates an IPv4 or IPv6 address parameter (as defined above in
      <a href="#section-3.1">Section 3.1</a> and <a href="#section-3.2">Section 3.2</a>) assigned to this DCCP user transport.
      Unlike in an SCTP Transport parameter, only one IP address
      parameter can be present in a DCCP Transport parameter.

   Note: The DCCP Port MUST NOT be used for control information.  For
   this reason, no Transport Use field is provided.  DCCP MUST always be
   treated as a "Data Only" type transport use.














<span class="grey">Stewart, et al.               Experimental                      [Page 7]</span>

<span id="page-8" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-3.4" href="#section-3.4">3.4</a>.  SCTP Transport Parameter</span>

   This parameter defines a TLV that describes a user transport using
   Stream Control Transport Protocol (SCTP).

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x4             |      Length = variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        SCTP Port              |          Transport Use        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     IPv4 or IPv6 Address #1                   :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                              ...                              :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     IPv4 or IPv6 Address #n                   :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, SCTP port, reserved fields, and all IP
      Address Parameters present.

   SCTP Port: 16 bits (unsigned integer)
      The SCTP port number signed to this SCTP user transport.

   Transport Use: 16 bits (unsigned integer)
      This field represents how the pool element intends this transport
      address to be used.  The field MUST be populated with one of the
      following values:

                      +-------------------+--------+
                      |        Type       | Value  |
                      +-------------------+--------+
                      |     DATA ONLY     | 0x0000 |
                      | DATA plus CONTROL | 0x0001 |
                      +-------------------+--------+

   IPv4 or IPv6 Address #1 - #n
      Each indicates an IPv4 or IPv6 address parameter (as defined above
      in <a href="#section-3.1">Section 3.1</a> and <a href="#section-3.2">Section 3.2</a>) assigned to this SCTP user
      transport.  An SCTP Transport parameter may have a mixed list of
      IPv4 and IPv6 addresses and at least one IP address parameter MUST
      be present in an SCTP Transport parameter.





<span class="grey">Stewart, et al.               Experimental                      [Page 8]</span>

<span id="page-9" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-3.5" href="#section-3.5">3.5</a>.  TCP Transport Parameter</span>

   This parameter defines a TLV that describes a user transport using
   TCP protocol.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x5             |      Length = variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         TCP Port              |           (reserved)          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     IPv4 or IPv6 Address                      :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, TCP port, reserved fields, and IP
      Address Parameter.

   TCP Port: 16 bits (unsigned integer)
      The TCP port number signed to this TCP user transport.

   IPv4 or IPv6 Address
      Indicates an IPv4 or IPv6 address parameter (as defined above in
      <a href="#section-3.1">Section 3.1</a> and <a href="#section-3.2">Section 3.2</a>) assigned to this TCP user transport.
      Unlike in an SCTP Transport parameter, only one IP Address
      parameter can be present in a TCP Transport parameter.

   Note: The TCP Port MUST NOT be used for control information.  For
   this reason, no Transport Use field is provided.  TCP MUST always be
   treated as a "Data Only" type transport use.

<span class="h3"><a class="selflink" id="section-3.6" href="#section-3.6">3.6</a>.  UDP Transport Parameter</span>

   This parameter defines a TLV that describes a user transport using
   UDP protocol.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x6             |      Length = variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         UDP Port              |          (reserved)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     IPv4 or IPv6 Address                      :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




<span class="grey">Stewart, et al.               Experimental                      [Page 9]</span>

<span id="page-10" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, UDP port, reserved fields, and IP
      Address Parameter.

   UDP Port: 16 bits (unsigned integer)
      The UDP port number signed to this UDP user transport.

   IPv4 or IPv6 Address
      Indicates an IPv4 or IPv6 address parameter (as defined above in
      <a href="#section-3.1">Section 3.1</a> and <a href="#section-3.2">Section 3.2</a>) assigned to this UDP user transport.
      Unlike in an SCTP Transport parameter, only one IP Address
      parameter can be present in a UDP Transport parameter.

   Note: The UDP Port MUST NOT be used for control information.  For
   this reason, no Transport Use field is provided.  UDP MUST always be
   treated as a "Data Only" type transport use.

<span class="h3"><a class="selflink" id="section-3.7" href="#section-3.7">3.7</a>.  UDP-Lite Transport Parameter</span>

   This parameter defines a TLV that describes a user transport using
   UDP-Lite protocol.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x7             |      Length = variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      UDP-Lite Port            |          (reserved)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                     IPv4 or IPv6 Address                      :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, UDP-Lite port, reserved fields, and IP
      Address Parameter.

   UDP Port: 16 bits (unsigned integer)
      The UDP-Lite port number signed to this UDP-Lite user transport.

   IPv4 or IPv6 Address
      Indicates an IPv4 or IPv6 address parameter (as defined above in
      <a href="#section-3.1">Section 3.1</a> and <a href="#section-3.2">Section 3.2</a>) assigned to this UDP-Lite user
      transport.  Unlike in an SCTP Transport parameter, only one IP
      address parameter can be present in a UDP-Lite transport
      parameter.




<span class="grey">Stewart, et al.               Experimental                     [Page 10]</span>

<span id="page-11" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


   Note: The UDP-Lite Port MUST NOT be used for control information.
   For this reason, no Transport Use field is provided.  UDP-Lite MUST
   always be treated as a "Data Only" type transport use.

<span class="h3"><a class="selflink" id="section-3.8" href="#section-3.8">3.8</a>.  Pool Member Selection Policy Parameter</span>

   This parameter defines a pool member selection policy.  RSerPool
   supports multiple pool member selection policies and also allows the
   definition of new selection policies in the future.

   The enforcement rules and handling procedures of all the policies are
   defined in [<a href="./rfc5352" title=""Aggregate Server Access Protocol (ASAP)"">RFC5352</a>].

   All pool member selection policies, both present and future, MUST use
   the following general parameter format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type = 0x8             |      Length = variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Policy Type                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Policy-specific Data                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, Policy Type, and the Policy-specific
      Data fields.
      Note, the Length field value will NOT include any padding at the
      end of the parameter.

   Policy Type: 32 bits (unsigned integer)
      Specifies the type of selection policy.  The values are defined in
      [<a href="./rfc5356" title=""Reliable Server Pooling Policies"">RFC5356</a>].

   Policy-specific Data:
      The structure and fields for each presently defined policy type
      are described in detail in [<a href="./rfc5356" title=""Reliable Server Pooling Policies"">RFC5356</a>].










<span class="grey">Stewart, et al.               Experimental                     [Page 11]</span>

<span id="page-12" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-3.9" href="#section-3.9">3.9</a>.  Pool Handle Parameter</span>

   This parameter holds a pool handle.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type = 0x9            |       Length=variable         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                          Pool Handle                          :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, and Pool Handle string.
      Note, the value in the Length field will NOT cover any padding at
      the end of the parameter.

   Pool Handle
      Defined as a sequence of (Length - 4) bytes.

<span class="h3"><a class="selflink" id="section-3.10" href="#section-3.10">3.10</a>.  Pool Element Parameter</span>

   This parameter is used in multiple ENRP messages to represent an ASAP
   endpoint (i.e., a Pool Element (PE) in a pool) and the associated
   information, such as its transport address, selection policy, and
   other operational or status information of the PE.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type = 0xa            |       Length=variable         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         PE Identifier                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Home ENRP Server Identifier                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Registration Life                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                      User Transport param                     :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                 Member Selection Policy param                 :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                      ASAP Transport param                     :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




<span class="grey">Stewart, et al.               Experimental                     [Page 12]</span>

<span id="page-13" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of octets,
      including the Type, Length, PE Identifier, Registration Life, User
      Transport, and Member Selection Policy parameters.
      Note, the value in the Length field will NOT cover any padding at
      the end of this Pool Element parameter.

   PE Identifier: 32 bits (unsigned integer)
      Uniquely identifies the PE in the pool.  The PE picks its
      identifier when it starts up.

   Home ENRP Server Identifier: 32 bits (unsigned integer)
      Indicates the current Home ENRP server of this PE.  Set to all 0s
      if the PE's Home ENRP server is undetermined.

   Registration Life: 32 bits (signed integer)
      Indicates the lifetime of the registration in number of seconds.
      A value of -1 indicates infinite lifetime.

   User Transport
      This can be either an DCCP, SCTP, TCP, UDP, UDP-Lite, or Opaque
      Transport parameter (see <a href="#section-3.3">Section 3.3</a>, <a href="#section-3.4">Section 3.4</a>, <a href="#section-3.5">Section 3.5</a>,
      <a href="#section-3.6">Section 3.6</a>, <a href="#section-3.7">Section 3.7</a>, and <a href="#section-3.16">Section 3.16</a>).  A PE MUST have one
      and only one User Transport.

   Member Selection Policy
      Contains one of the defined member selection policy parameters
      (see <a href="#section-3.8">Section 3.8</a>).

   ASAP Transport
      This indicates the ASAP transport address of the PE and MUST be an
      SCTP type transport parameter (see <a href="#section-3.4">Section 3.4</a>).

<span class="h3"><a class="selflink" id="section-3.11" href="#section-3.11">3.11</a>.  Server Information Parameter</span>

   This parameter is used in ENRP to pass basic information of an ENRP
   server.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Type = 0xb            |       Length=variable         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Server ID                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                       Server Transport                        :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




<span class="grey">Stewart, et al.               Experimental                     [Page 13]</span>

<span id="page-14" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of bytes.
      Note, the value in the Length field will NOT cover any padding at
      the end of the parameter.

   Server ID: 32 bits (unsigned integer)
      This is the ID of the ENRP server, as defined in [<a href="./rfc5353" title=""Endpoint Handlespace Redundancy Protocol (ENRP)"">RFC5353</a>].

   Server Transport:
      This is an SCTP Transport Parameter, as defined in <a href="#section-3.4">Section 3.4</a>,
      that contains the network access address(es), SCTP port number,
      etc. of the ENRP server.

<span class="h3"><a class="selflink" id="section-3.12" href="#section-3.12">3.12</a>.  Operation Error Parameter</span>

   This parameter is used in both ENRP and ASAP for a message sender to
   report an error(s) to a message receiver.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          Type = 0xc           |       Length=variable         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                    one or more Error Causes                   :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of bytes.
      Note, the value in the Length field will NOT cover any padding at
      the end of the parameter.

   Error causes are defined as variable-length parameters using the
   following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Cause Code          |       Cause Length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                    Cause-Specific Information                 :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Cause Code: 16 bits (unsigned integer)
      Defines the type of error condition being reported.



<span class="grey">Stewart, et al.               Experimental                     [Page 14]</span>

<span id="page-15" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


      +------------------+-----------------------------------------+
      | Cause Code Value | Cause Code                              |
      +------------------+-----------------------------------------+
      |        0x0       | Unspecified Error                       |
      |        0x1       | Unrecognized Parameter                  |
      |        0x2       | Unrecognized Message                    |
      |        0x3       | Invalid Values                          |
      |        0x4       | Non-unique PE Identifier                |
      |        0x5       | Inconsistent Pooling Policy             |
      |        0x6       | Lack of Resources                       |
      |        0x7       | Inconsistent Transport Type             |
      |        0x8       | Inconsistent Data/Control Configuration |
      |        0x9       | Unknown Pool Handle                     |
      |        0xa       | Rejected due to security considerations |
      |    0xb -0xffff   | (Available for assignment)              |
      +------------------+-----------------------------------------+

                                   Table 2

   Cause Length: 16 bits (unsigned integer)
      Set to the size of the parameter in bytes, including the Cause
      Code, Cause Length, and Cause-Specific Information fields, but not
      including any padding at the end of this error cause TLV.

   Cause-specific Information: variable length
      This field carries the details of the error condition.

   The following subsections (<a href="#section-3.12.1">Section 3.12.1</a> - <a href="#section-3.12.9">Section 3.12.9</a>) define
   specific error causes.

<span class="h4"><a class="selflink" id="section-3.12.1" href="#section-3.12.1">3.12.1</a>.  Unspecified Error</span>

   This error cause is used to report an unspecified error by the
   sender.  There is no cause specific information.

<span class="h4"><a class="selflink" id="section-3.12.2" href="#section-3.12.2">3.12.2</a>.  Unrecognized Parameter Error</span>

   This error cause is used to report an unrecognized parameter.  The
   complete, unrecognized parameter TLV is included as cause-specific
   information.  If a message contains multiple unrecognized parameters,
   multiple error causes are used.

<span class="h4"><a class="selflink" id="section-3.12.3" href="#section-3.12.3">3.12.3</a>.  Unrecognized Message Error</span>

   This error cause is used to report an unrecognized message.  The
   unrecognized message TLV is included as cause-specific information.





<span class="grey">Stewart, et al.               Experimental                     [Page 15]</span>

<span id="page-16" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h4"><a class="selflink" id="section-3.12.4" href="#section-3.12.4">3.12.4</a>.  Invalid Values Error</span>

   This error cause is used to report one or more invalid values found
   in a received parameter.  The offending TLV that contains the invalid
   value(s) is included as cause-specific information.

<span class="h4"><a class="selflink" id="section-3.12.5" href="#section-3.12.5">3.12.5</a>.  Non-Unique PE Identifier Error</span>

   This error cause is used by an ENRP server to indicate to a
   registering PE that the PE Identifier it chooses has already been
   used by another PE in the pool.  There is no cause-specific
   information.

<span class="h4"><a class="selflink" id="section-3.12.6" href="#section-3.12.6">3.12.6</a>.  Inconsistent Pool Policy Error</span>

   This error cause is used by an ENRP server to indicate to a
   registering PE that the pool policy it chooses does not match the
   overall policy of the pool.  A Pool Member Selection Policy TLV (see
   <a href="#section-3.8">Section 3.8</a>) that indicates the overall pool policy is included as
   cause-specific information.

<span class="h4"><a class="selflink" id="section-3.12.7" href="#section-3.12.7">3.12.7</a>.  Lack of Resources Error</span>

   This error cause is used to indicate that the sender does not have
   certain resources to perform a requested function.  There is no cause
   specific information.

<span class="h4"><a class="selflink" id="section-3.12.8" href="#section-3.12.8">3.12.8</a>.  Inconsistent Transport Type Error</span>

   This error cause is used by an ENRP server to indicate to a
   registering PE that the User Transport it chooses does not match the
   overall user transport of the pool.  A Transport TLV that indicates
   the overall pool user transport type is included as cause-specific
   information.

<span class="h4"><a class="selflink" id="section-3.12.9" href="#section-3.12.9">3.12.9</a>.  Inconsistent Data/Control Configuration Error</span>

   This error cause is used by an ENRP server to indicate to a
   registering PE that the Transport Use field in the User Transport it
   sent in its registration is inconsistent to the pool's overall data/
   control channel configuration.  There is no cause-specific
   information.

<span class="h4"><a class="selflink" id="section-3.12.10" href="#section-3.12.10">3.12.10</a>.  Rejected Due to Security Considerations</span>

   This error cause is used by any endpoint to indicate a rejection of a
   request due to a failure in security credentials or authorizations.




<span class="grey">Stewart, et al.               Experimental                     [Page 16]</span>

<span id="page-17" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h4"><a class="selflink" id="section-3.12.11" href="#section-3.12.11">3.12.11</a>.  Unknown Pool Handle Error</span>

   This error cause is used by an ENRP server to indicate to a PE or PU
   that the requested pool is unknown by the server.  There is no cause-
   specific information.

<span class="h3"><a class="selflink" id="section-3.13" href="#section-3.13">3.13</a>.  Cookie Parameter</span>

   This parameter defines a TLV that carries a Cookie.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type = 0xd         |       Length=variable         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                             Cookie                            :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of bytes,
      including the Type, Length, and Cookie.

   Cookie: variable length
      The Cookie is an arbitrary byte string of (Length - 4) bytes.

<span class="h3"><a class="selflink" id="section-3.14" href="#section-3.14">3.14</a>.  PE Identifier Parameter</span>

   This parameter defines a TLV that carries a PE Identifier.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type = 0xe         |         Length=0x8            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         PE Identifier                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   PE Identifier: 32 bits (unsigned integer)
      Uniquely identifies the PE in the pool.  The PE picks its
      identifier when it starts up.  See [<a href="./rfc5352" title=""Aggregate Server Access Protocol (ASAP)"">RFC5352</a>] for recommendations
      on PE identifier generation.








<span class="grey">Stewart, et al.               Experimental                     [Page 17]</span>

<span id="page-18" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-3.15" href="#section-3.15">3.15</a>.  PE Checksum Parameter</span>

   This parameter defines a TLV that carries a PE Checksum.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type = 0xf         |         Length=0x6            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           PE Checksum         |          Padding              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   PE Checksum: 16 bits (unsigned integer)
      An overall checksum of all PEs in the current handlespace owned by
      an ENRP server (which is normally the sender of this TLV).  The
      definition and calculation of this checksum is defined in
      [<a href="./rfc5353" title=""Endpoint Handlespace Redundancy Protocol (ENRP)"">RFC5353</a>].

<span class="h3"><a class="selflink" id="section-3.16" href="#section-3.16">3.16</a>.  Opaque Transport Parameter</span>

   This parameter defines a TLV that carries opaque transport
   information.

   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Type = 0x10        |        Length=variable        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                    Opaque Transport Data                      :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Length: 16 bits (unsigned integer)
      Indicates the entire length of the parameter in number of bytes,
      including the Type, Length, and Opaque Transport Data.

   Opaque Transport Data: variable length
      The Opaque Transport Data is an arbitrary byte string of (Length -
      4) bytes.

<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>.  Common Message Formats</span>

   The figure below illustrates the common format for all ASAP and ENRP
   messages.  Each message is formatted with a Message Type field, a
   message-specific Flag field, a Message Length field, and a Value
   field.




<span class="grey">Stewart, et al.               Experimental                     [Page 18]</span>

<span id="page-19" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Message Type  |   Msg Flags   |        Message Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :                                                               :
   :                        Message Value                          :
   :                                                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Message Type: 8 bits (unsigned integer)
      This field identifies the type of information contained in the
      Message Value field.  It takes a value from 0 to 254.  The value
      of 255 is reserved for future use as an extension field.
      Message Types are encoded such that the two bits of the highest
      order specify the action that must be taken if the message
      receiver does not recognize the Message Type.

      00 Stop processing this message and discard it.

      01 Stop processing this message and discard it, and report the
         unrecognized message in an 'Unrecognized Message' error (see
         <a href="#section-3.12.3">Section 3.12.3</a>).

      10 Reserved.

      11 Reserved.

   Message Flags: 8 bits
      The usage of these bits depends on the message type, as given by
      the Message Type.  Unless otherwise specified, they are set to
      zero on transmit and ignored on receipt.

   Message Length: 16 bits (unsigned integer)
      This value represents the size of the message in bytes, including
      the Message Type, Message Flags, Message Length, and Message Value
      fields.  Therefore, if the Message Value field is zero length, the
      Length field will be set to 4.
      Note, the value in the Message Length field will NOT cover any
      padding at the end of this message.

   Message Value: variable length
      The Message Value field contains the actual information to be
      transferred in the message.  The usage and format of this field is
      dependent on the Message Type.
      The total length of a message (including Type, Length, and Value
      fields) MUST be a multiple of 4 bytes.  If the length of the
      message is not a multiple of 4 bytes, the sender MUST pad the



<span class="grey">Stewart, et al.               Experimental                     [Page 19]</span>

<span id="page-20" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


      message with all zero bytes and this padding is not included in
      the Message Length field.  The sender should never pad with more
      than 3 bytes.  The receiver MUST ignore the padding bytes.

<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>.  IANA Considerations</span>

   This document (<a href="./rfc5354">RFC 5354</a>) is the reference for all registrations
   described in this section.  All registrations have been listed on the
   RSerPool Parameters page.

<span class="h3"><a class="selflink" id="section-5.1" href="#section-5.1">5.1</a>.  A New Table for RSerPool Parameter Types</span>

   RSerPool Parameter Types are maintained by IANA.  Thirteen initial
   values have been assigned by IANA, as described in Table 1.  IANA
   created a new table, "RSerPool Parameter Types":

               +------------+------------------------------+
               |    Value   | Parameter Type               |
               +------------+------------------------------+
               |     0x0    | (Reserved by IETF)           |
               |     0x1    | IPv4 Address                 |
               |     0x2    | IPv6 Address                 |
               |     0x3    | DCCP Transport               |
               |     0x4    | SCTP Transport               |
               |     0x5    | TCP Transport                |
               |     0x6    | UDP Transport                |
               |     0x7    | UDP-Lite                     |
               |     0x8    | Pool Member Selection Policy |
               |     0x9    | Pool Handle                  |
               |     0xa    | Pool Element                 |
               |     0xb    | Server Information           |
               |     0xc    | Operation Error              |
               |     0xd    | Cookie                       |
               |     0xe    | PE Identifier                |
               |     0xf    | PE Checksum                  |
               |    0x10    | Opaque Transport             |
               | 0xffffffff | IETF-defined extensions      |
               |   others   | (Reserved by IETF)           |
               +------------+------------------------------+

   Requests to register an RSerPool Parameter Type in this table should
   be sent to IANA.  The number must be unique.  The "Specification
   Required" policy of [<a href="./rfc5226" title="">RFC5226</a>] MUST be applied.








<span class="grey">Stewart, et al.               Experimental                     [Page 20]</span>

<span id="page-21" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


<span class="h3"><a class="selflink" id="section-5.2" href="#section-5.2">5.2</a>.  A New Table for RSerPool Error Causes</span>

   RSerPool Error Causes are maintained by IANA.  Eleven initial values
   have been assigned by IANA, as described in Table 2.  IANA created a
   new table, "RSerPool Error Causes":

      +------------------+-----------------------------------------+
      | Cause Code Value | Cause Code                              |
      +------------------+-----------------------------------------+
      |        0x0       | Unspecified Error                       |
      |        0x1       | Unrecognized Parameter                  |
      |        0x2       | Unrecognized Message                    |
      |        0x3       | Invalid Values                          |
      |        0x4       | Non-Unique PE Identifier                |
      |        0x5       | Inconsistent Pooling Policy             |
      |        0x6       | Lack of Resources                       |
      |        0x7       | Inconsistent Transport Type             |
      |        0x8       | Inconsistent Data/Control Configuration |
      |        0x9       | Unknown Pool Handle                     |
      |        0xa       | Rejected Due to Security Considerations |
      |      others      | (Reserved by IETF)                      |
      +------------------+-----------------------------------------+

   Requests to register an RSerPool Error Cause in this table should be
   sent to IANA.  The number must be unique.  The "Specification
   Required" policy of [<a href="./rfc5226" title="">RFC5226</a>] MUST be applied.

<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>.  Security Considerations</span>

   This document contains common parameter formats only.  As such, it
   specifies no new security constraints on either ENRP or ASAP.
   Details on ENRP and ASAP security constraints are addressed in
   [<a href="./rfc5353" title=""Endpoint Handlespace Redundancy Protocol (ENRP)"">RFC5353</a>] and [<a href="./rfc5352" title=""Aggregate Server Access Protocol (ASAP)"">RFC5352</a>].

<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>.  Normative References</span>

   [<a id="ref-RFC2119">RFC2119</a>]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.

   [<a id="ref-RFC5226">RFC5226</a>]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", <a href="https://www.rfc-editor.org/bcp/bcp26">BCP 26</a>, <a href="./rfc5226">RFC 5226</a>,
              May 2008.

   [<a id="ref-RFC5352">RFC5352</a>]  Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
              "Aggregate Server Access Protocol (ASAP)", <a href="./rfc5352">RFC 5352</a>,
              September 2008.





<span class="grey">Stewart, et al.               Experimental                     [Page 21]</span>

<span id="page-22" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


   [<a id="ref-RFC5353">RFC5353</a>]  Xie, Q., Stewart, R., Stillman, M., Tuexen, M., and A.
              Silverton, "Endpoint Handlespace Redundancy Protocol
              (ENRP)", <a href="./rfc5353">RFC 5353</a>, September 2008.

   [<a id="ref-RFC5356">RFC5356</a>]  Dreibholz, T. and M. Tuexen, "Reliable Server Pooling
              Policies", <a href="./rfc5356">RFC 5356</a>, September 2008.

Authors' Addresses

   Randall R. Stewart
   The Resource Group
   1700 Pennsylvania Ave NW
   Suite 560
   Washington, DC  20006
   USA

   Phone:
   EMail: [email protected]


   Qiaobing Xie
   The Resource Group
   1700 Pennsylvania Ave NW
   Suite 560
   Washington, D.C.,   20006
   USA

   Phone: +1 224-465-5954
   EMail: [email protected]


   Maureen Stillman
   Nokia
   1167 Peachtree Ct.
   Naperville, IL  60540
   USA

   EMail: [email protected]


   Michael Tuexen
   Muenster Univ. of Applied Sciences
   Stegerwaldstr. 39
   48565 Steinfurt
   Germany

   EMail: [email protected]




<span class="grey">Stewart, et al.               Experimental                     [Page 22]</span>

<span id="page-23" ></span>
<span class="grey"><a href="./rfc5354">RFC 5354</a>             ASAP & ENRP Common Parameters        September 2008</span>


Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a>, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and <a href="https://www.rfc-editor.org/bcp/bcp79">BCP 79</a>.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   <a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   [email protected].












Stewart, et al.               Experimental                     [Page 23]

Additional Resources