Network Working Group R. Stewart Internet-Draft Cisco Systems, Inc. Expires: August 27, 2003 Q. Xie Motorola, Inc. M. Stillman Nokia M. Tuexen Siemens AG February 26, 2003 Aggregate Server Access Protocol (ASAP) and Endpoint Name Resolution Protocol (ENRP) common parameters document draft-ietf-rserpool-common-param-03.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 27, 2003. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract Aggregate Server Access Protocol (ASAP) [4] in conjunction with the Endpoint Name Resolution Protocol (ENRP) [5] provides a high availability data transfer mechanism over IP networks. Both protocols work together and so share many common parameters used Stewart, et al. Expires August 27, 2003 [Page 1] Internet-Draft ASAP & ENRP Common Parameters February 2003 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 ASAP [4] and ENRP [5] documents. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Conventions . . . . . . . . . . . . . . . . . . . . . . . 3 2. Parameters in General . . . . . . . . . . . . . . . . . . 4 3. ENRP-ASAP Common Parameters . . . . . . . . . . . . . . . 5 3.1 IPv4 Address Parameter . . . . . . . . . . . . . . . . . . 6 3.2 IPv6 Address Parameter . . . . . . . . . . . . . . . . . . 7 3.3 SCTP Transport Parameter . . . . . . . . . . . . . . . . . 7 3.4 TCP Transport Parameter . . . . . . . . . . . . . . . . . 8 3.5 UDP Transport Parameter . . . . . . . . . . . . . . . . . 9 3.6 Pool Member Selection Policy Parameter . . . . . . . . . . 10 3.6.1 Round Robin Policy . . . . . . . . . . . . . . . . . . . . 12 3.6.2 Least Used Policy . . . . . . . . . . . . . . . . . . . . 12 3.6.3 Least Used with Degradation Policy . . . . . . . . . . . . 12 3.6.4 Weighted Round Robin Policy . . . . . . . . . . . . . . . 13 3.7 Pool Handle Parameter . . . . . . . . . . . . . . . . . . 13 3.8 Pool Element Parameter . . . . . . . . . . . . . . . . . . 13 3.9 Server Information Parameter . . . . . . . . . . . . . . . 15 3.10 Operation Error Parameter . . . . . . . . . . . . . . . . 16 3.10.1 Unrecognized Parameter Error . . . . . . . . . . . . . . . 17 3.10.2 Unrecognized Message Error . . . . . . . . . . . . . . . . 17 3.11 Cookie Parameter . . . . . . . . . . . . . . . . . . . . . 17 3.12 PE Identifier Parameter . . . . . . . . . . . . . . . . . 18 3.13 Communication Restrictions Parameter . . . . . . . . . . . 18 4. Common Message Formats . . . . . . . . . . . . . . . . . . 20 5. Security Considerations . . . . . . . . . . . . . . . . . 22 Normative References . . . . . . . . . . . . . . . . . . . 23 Authors' Addresses . . . . . . . . . . . . . . . . . . . . 23 Intellectual Property and Copyright Statements . . . . . . 25 Stewart, et al. Expires August 27, 2003 [Page 2] Internet-Draft ASAP & ENRP Common Parameters February 2003 1. Introduction Aggregate Server Access Protocol (ASAP) [4] in conjunction with the Endpoint Name Resolution Protocol (ENRP) [5] 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 ASAP [4] and ENRP [5] documents. 1.1 Conventions The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in RFC2119 [2]. Stewart, et al. Expires August 27, 2003 [Page 3] Internet-Draft ASAP & ENRP Common Parameters February 2003 2. Parameters in General All parameters described below MUST be in Network Byte Order (a.k.a. Big Endian, i.e., the most significant byte first) during transmission. For fields with a length bigger than 4 octets, a number in a pair of parentheses may follow the field name to indicate the length of the field in number of octets. 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. Stewart, et al. Expires August 27, 2003 [Page 4] Internet-Draft ASAP & ENRP Common Parameters February 2003 3. ENRP-ASAP Common Parameters 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 : : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 specific ENRP parameter description are reserved for use by IETF. 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 Parameter Length does not include any padding bytes that may appear at the end of this parameter. Parameter Value: variable-length. The Parameter Value field contains the actual information to be transferred in the parameter. 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 pads 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 SHOULD NOT pad with more than 3 bytes. The receiver MUST ignore the padding bytes. (Editor's note: clarify further that any padding inside in the parameter, such as the padding in sub-param is included in the total Stewart, et al. Expires August 27, 2003 [Page 5] Internet-Draft ASAP & ENRP Common Parameters February 2003 length) The Parameter Types are encoded such that the highest-order two bits 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 Section 3.10). 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 Section 3.10). The values of parameter types are defined as follows: Value Parameter Type ----- ---------- 0x0 - (reserved by IETF) 0x1 - IPv4 Address 0x2 - IPv6 Address 0x3 - SCTP Transport 0x4 - TCP Transport 0x5 - UDP Transport 0x6 - Pool Member Selection Policy 0x7 - Pool Handle 0x8 - Pool Element 0x9 - Server Information 0xa - Operation Error 0xb - Cookie 0xc - PE Identifier 0xd - Communication restrictions others - (reserved by IETF) 3.1 IPv4 Address Parameter This parameter defines a TLV that carries an IPv4 address. Stewart, et al. Expires August 27, 2003 [Page 6] Internet-Draft ASAP & ENRP Common Parameters February 2003 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. 3.2 IPv6 Address Parameter 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 bit (unsigned integer) Contains an IPv6 address. It is binary encoded. 3.3 SCTP Transport Parameter This parameter defines a TLV that describes a user transport using SCTP protocol. Stewart, et al. Expires August 27, 2003 [Page 7] Internet-Draft ASAP & ENRP Common Parameters February 2003 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 interger) 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 ------------------+---------------- CONTROL or DATA | 0x0000 CONTROL ONLY | 0x0001 DATA ONLY | 0x0002 IPv4 or IPv6 Address #1 - #n: Each indicates an IPv4 or IPv6 address parameter (as defined above in Section 3.1 and Section 3.2) assigned to this SCTP user transport. At least one IP address parameter MUST be present in an SCTP transport parameter. 3.4 TCP Transport Parameter Stewart, et al. Expires August 27, 2003 [Page 8] Internet-Draft ASAP & ENRP Common Parameters February 2003 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 = 0x4 | Length = variable | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TCP port | Transport Use | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : 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. Transport use: 16 bits (unsigned interger) 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 ------------------+---------------- CONTROL or DATA | 0x0000 CONTROL ONLY | 0x0001 DATA ONLY | 0x0002 IPv4 or IPv6 Address: Indicates an IPv4 or IPv6 address parameter (as defined above in Section 3.1 and Section 3.2) assigned to this TCP user transport. Unlike in an SCTP transport, only one IP address parameter can be present in a TCP transport parameter. 3.5 UDP Transport Parameter This parameter defines a TLV that describes a user transport using UDP protocol. Stewart, et al. Expires August 27, 2003 [Page 9] Internet-Draft ASAP & ENRP Common Parameters February 2003 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | UDP 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 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 Section 3.1 and Section 3.2) assigned to this UDP user transport. Unlike in an SCTP transport, only one IP address parameter can be present in a UDP transport parameter. Note: A 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. 3.6 Pool Member Selection Policy Parameter This parameter defines a pool member selection policy. RSERPOOL supports multiple pool member selection polices and also allows definition of new selection polices in the future. The enforcement rules and handling procedures of all the policies are defined in Section xxxxx in ASAP [4]. All pool member selection policies, both present and future, MUST use the following general parameter format: Stewart, et al. Expires August 27, 2003 [Page 10] Internet-Draft ASAP & ENRP Common Parameters February 2003 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 fields, and the Policy-specific Data. Note, the value in Length field will NOT cover any padding at the end of the parameter, if there is one. Policy Type: 8 bits (unsigned integer) Specifies the type of selection policy. Currently defined policy types are: Value Policy ----- --------- 0x0 (reserved by IETF) 0x1 Round Robin 0x2 Least Used 0x3 Least Used with Degradation (a.k.a. dog pile) 0x4 Weighted Round Robin others (reserved by IETF) Policy-specific Data: The structure and fields for each presently defined policy types are described in detail in the following subsections. The enforcement rules and handling procedures of these policies are defined in Section xxxxx in ASAP [4]. Stewart, et al. Expires August 27, 2003 [Page 11] Internet-Draft ASAP & ENRP Common Parameters February 2003 3.6.1 Round Robin Policy 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Param Type = 0x6 | Length = 0x8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Policy=0x1 | (reserved) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ Reserved: 24 bits MUST be set to 0's by sender and ignored by the receiver. 3.6.2 Least Used Policy 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Param Type = 0x6 | Length = 0x8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Policy=0x2 | Load | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ Load: 24 bits (signed integer) (TBD) 3.6.3 Least Used with Degradation Policy 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Param Type = 0x6 | Length = 0x8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Policy=0x3 | Load | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ Load: 24 bits (signed integer) (TBD) Stewart, et al. Expires August 27, 2003 [Page 12] Internet-Draft ASAP & ENRP Common Parameters February 2003 3.6.4 Weighted Round Robin Policy 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Param Type = 0x6 | Length = 0x8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Policy=0x4 | Weight | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ Load: 24 bits (signed integer) (TBD) 3.7 Pool Handle Parameter This parameter holds a pool handle (i.e., a pool name). 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : : 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 Length field will NOT cover any padding at the end of the parameter. Pool Handle: defined as a sequence of (Length - 4) bytes. 3.8 Pool Element Parameter This parameter is used in multiple ENRP messages to represent an ASAP endpoint (i.e., a PE in a pool) and the associated information, such as its transport address(es), selection policy, and other operational or status information of the PE. Stewart, et al. Expires August 27, 2003 [Page 13] Internet-Draft ASAP & ENRP Common Parameters February 2003 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PE Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Home ENRP Server Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Registration Life | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : User Transport param #1 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : User Transport param #2 : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : : ..... : : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : User Transport param #k : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : Member Selection Policy param : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length: 16 bits (unsigned integer) Indicates the entire length of the parameter in number of octets, including the Type, Length, PE Identifier, Registration Life, all User Transports, and Member Selection Policy parameters. Note, the value in 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. See Section ???? in [ASAP] for recommendations on PE identifier generation. Home ENRP Server Identifier: 32 bits (unsigned integer) Indicates the current home ENRP server of this PE. Set to all 0's if the PE's home ENRP server is undetermined. Registration Life: 32 bits (signed integer) Indicates the life time of the registration in number of seconds. A value of -1 indicates infinite life time. Stewart, et al. Expires August 27, 2003 [Page 14] Internet-Draft ASAP & ENRP Common Parameters February 2003 User Transport #1-#k: Each of the User Transport parameters in a PE parameter can be either an SCTP, TCP, or UDP type transport parameter (see Section 3.3, Section 3.4, Section 3.5). A PE MUST have at least 1 User Transport and MAY have multiple User Transports. When multiple transports are present, they MAY be of mixed types (i.e., SCTP, TCP, and UDP). Member Selection Policy: Contains one of the defined member selection policy parameters (see Section 3.6). 3.9 Server Information Parameter 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 = 0x9 | Length=variable | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Server ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |M| (reserved) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : Server Transport : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length: 16 bits (unsigned integer) Indicates the entire length of the parameter in number of octets. Note, the value in Length field will NOT cover any padding at the end of the parameter. Server ID: 32 bit (unsiged integer) This is the ID of the ENRP server, as defined in Section xxxxxx in ENRP [5] . Multicast Flag (M): 1 bit If set to '1', indicates the ENRP server is allowed to use multicast for communications. If set to '0', multicast is not used by the server. Stewart, et al. Expires August 27, 2003 [Page 15] Internet-Draft ASAP & ENRP Common Parameters February 2003 Reserved: 31 bits MUST be set to 0's by sender and ignored by the receiver. Server Transport: This is an SCTP Transport Parameter, as defined in Section 3.3 that contains the network access address(es), SCTP port number, etc. of the ENRP server. 3.10 Operation Error Parameter This parameter is used in both ENPR 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 = 0xa | Length=variable | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : : one or more Error Causes : : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Length: 16 bits (unsigned integer) Indicates the entire length of the parameter in number of octets. Note, the value in Length field will NOT cover any padding at the end of the parameter. Error causes are defined as variable-length parameters using the format described in 3.2.1 of RFC2960 [3], i.e.: 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. Stewart, et al. Expires August 27, 2003 [Page 16] Internet-Draft ASAP & ENRP Common Parameters February 2003 Cause Code Value Cause Code --------- ---------------- 1 Unrecognized Parameter 2 Unrecognized Message 3 Invalid Values 4 Non-unique PE Identifier 5 Pooling Policy Inconsistent 6 Lack of Resources other values reserved by IETF 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 (Section 3.10.1 - Section 3.10.2) define specific error causes. 3.10.1 Unrecognized Parameter Error This error cause is used to report an unrecognized parameter. The unrecognized parameter is included as cause specific information. 3.10.2 Unrecognized Message Error This error cause is used to report an unrecognized message. The unrecognized message is included as cause specific information. 3.11 Cookie Parameter 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 = 0xb | Length=variable | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : : : Cookie : : : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Stewart, et al. Expires August 27, 2003 [Page 17] Internet-Draft ASAP & ENRP Common Parameters February 2003 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. 3.12 PE Identifier Parameter 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 = 0xc | 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 Section ???? in [ASAP] for recommendations on PE identifier generation. 3.13 Communication Restrictions Parameter This parameter defines a TLV that can be used by the sender to restrict name server searches to a limited number of transport types. 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=0x8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Control Type | Data Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Control Type: 16 bits (unsigned integer) This field requests the search be restricted to PE's that have a control channel type of the specified value. One of the following values MUST be used: Stewart, et al. Expires August 27, 2003 [Page 18] Internet-Draft ASAP & ENRP Common Parameters February 2003 Type | Value -----------+------------- ANY | 0x0000 SCTP ONLY | 0x0001 TCP ONLY | 0x0002 Data Type: 16 bits (unsigned integer) This field requests the search be restricted to PE's that have a data channel type of the specified type. One of the following values MUST be used: Type | Value -----------+------------- ANY | 0x0000 SCTP ONLY | 0x0001 TCP ONLY | 0x0002 UDP ONLY | 0x0003 Stewart, et al. Expires August 27, 2003 [Page 19] Internet-Draft ASAP & ENRP Common Parameters February 2003 4. Common Message Formats 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. 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 highest-order two bits 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 Section Section 3.10.2). 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 are 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 Stewart, et al. Expires August 27, 2003 [Page 20] Internet-Draft ASAP & ENRP Common Parameters February 2003 Length field will be set to 4. The Message Length field does not count any padding. Note, the value in 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 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. Stewart, et al. Expires August 27, 2003 [Page 21] Internet-Draft ASAP & ENRP Common Parameters February 2003 5. Security Considerations 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 a addressed in ENRP [5] and ASAP [4] . Stewart, et al. Expires August 27, 2003 [Page 22] Internet-Draft ASAP & ENRP Common Parameters February 2003 Normative References [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [3] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., Zhang, L. and V. Paxson, "Stream Control Transmission Protocol", RFC 2960, October 2000. [4] Stewart, R., Xie, Q. and M. Stillman, "Aggregate Server Access Protocol (ASAP)", draft-ietf-rserpool-common-param-01 (work in progress), May 2002. [5] Xie, Q., Stewart, R. and M. Stillman, "Enpoint Name Resolution Protocol (ENRP)", draft-ietf-rserpool-enrp-04 (work in progress), May 2002. Authors' Addresses Randall R. Stewart Cisco Systems, Inc. 8725 West Higgins Road Suite 300 Chicago, IL 60631 USA Phone: +1-815-477-2127 EMail: rrs@cisco.com Qiaobing Xie Motorola, Inc. 1501 W. Shure Drive, #2309 Arlington Heights, IL 60004 USA Phone: +1-847-632-3028 EMail: qxie1@email.mot.com Stewart, et al. Expires August 27, 2003 [Page 23] Internet-Draft ASAP & ENRP Common Parameters February 2003 Maureen Stillman Nokia 127 W. State Street Ithaca, NY 14850 USA Phone: +1-607-273-0724 EMail: maureen.stillman@nokia.com Michael Tuexen Siemens AG Germany Phone: EMail: tuexen@fh-muenster.de Stewart, et al. Expires August 27, 2003 [Page 24] Internet-Draft ASAP & ENRP Common Parameters February 2003 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property 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; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication 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 implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION Stewart, et al. Expires August 27, 2003 [Page 25] Internet-Draft ASAP & ENRP Common Parameters February 2003 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Stewart, et al. Expires August 27, 2003 [Page 26]