Network Working Group                                       T. Dreibholz
Internet-Draft                              University of Duisburg-Essen
Intended status: Standards Track                                J. Mulik
Expires: April 10, May 21, 2009                          Delaware State University
                                                         October 7,
                                                       November 17, 2008

    Reliable Server Pooling: Management Information Base using SMIv2
                     draft-ietf-rserpool-mib-07.txt
                     draft-ietf-rserpool-mib-08.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   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 April 10, May 21, 2009.

Abstract

   RSerPool [RFC5351] is a framework to provide reliable server pooling.
   This document defines a SMIv2 compliant Management Information Base
   (MIB) providing access to managed objects in an RSerPool
   implementation.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  The Reliable Server Pooling (RSerPool) Framework . . . . . . .  3
   3.  The Internet-Standard Management Framework . . . . . . . . . .  3
   4.  Structure of the MIB . . . . . . . . . . . . . . . . . . . . .  3
     4.1.  Access to managed objects on ENRP servers  . . . . . . . .  9
     4.2.  Access to managed objects on Pool Elements . . . . . . . . 11
     4.3.  Access to managed objects on Pool Users  . . . . . . . . . 11
   5.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . . 11
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 36 37
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 36 37
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 37
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 37
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 38
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 39 40
   Intellectual Property and Copyright Statements . . . . . . . . . . 41

1.  Introduction

   This memo defines a Management Information Base (MIB) module which
   describes managed objects for RSerPool implementations.

2.  The Reliable Server Pooling (RSerPool) Framework

   For a detailed overview of the documents that describe the current
   Reliable Server Pooling (RSerPool) framework, please refer to
   [RFC3237], [RFC5351], [RFC5352], [RFC5353], [RFC5354], [RFC5355] and
   [RFC5356].  A more informal introduction can be found at
   [RSerPoolPage].

3.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

4.  Structure of the MIB

   The following diagram illustrates the structure of the MIB.

   Structure of MIB

    +--rserpoolMIB(????????)

    +--rserpoolMIB(?????)
    |
    +--enrpServers(1)
    |  |
    |  +--enrpServerTable(1)
    |  |  |
    |  |  +--enrpServerEntry(1)
    |  |     |  Index: enrpServerIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- String    enrpServerOperationScope(2)
    |  |     |        Textual Convention: OperationScopeType
    |  |     +-- -R-- Unsigned  enrpServerIdentifier(3)
    |  |     |        Textual Convention: ENRPServerIdentifierType
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -RW- String    enrpServerDescription(4)
    |  |     |        Size: 0..255
    |  |     +-- -R-- TimeTicks enrpServerUptime(5)
    |  |     +-- -R-- Unsigned  enrpServerPort(6)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- Unsigned  enrpServerASAPAnnouncePort(7)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- EnumVal   enrpServerASAPAnnounceAddrType(8)
    |  |     |        Textual Convention: InetAddressType
    |  |     |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |  |     |                   ipv6z(4), dns(16)
    |  |     +-- -R-- String    enrpServerASAPAnnounceAddr(9)
    |  |     |        Textual Convention: InetAddress
    |  |     |        Size: 0..255
    |  |     +-- -R-- Unsigned  enrpServerENRPAnnouncePort(10)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- EnumVal   enrpServerENRPAnnounceAddrType(11)
    |  |     |        Textual Convention: InetAddressType
    |  |     |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |  |     |                   ipv6z(4), dns(16)
    |  |     +-- -R-- String    enrpServerENRPAnnounceAddr(12)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--enrpServerPoolTable(3)
    |  |  |
    |  |  +--enrpServerPoolEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerPoolIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- String    enrpServerPoolHandle(2)
    |  |              Textual Convention: PoolHandleType
    |  |
    |  +--enrpServerPoolElementTable(4)
    |  |  |
    |  |  +--enrpServerPoolElementEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex,
    |  |     |            enrpServerPoolElementIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerPoolElementIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- Unsigned  enrpServerPoolElementIdentifier(2)
    |  |     |        Textual Convention: PoolElementIdentifierType
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- Unsigned  enrpServerASAPTransportPort(3)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- Unsigned  enrpServerUserTransportProtocol(4)
    |  |     |        Range: 0..255
    |  |     +-- -R-- Unsigned  enrpServerUserTransportPort(5)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- EnumVal   enrpServerUserTransportUse(6)
    |  |     |        Textual Convention: TransportUseType
    |  |     |        Values: dataOnly(0), dataPlusControl(1)
    |  |     +-- -R-- Unsigned  enrpServerPolicyID(7)
    |  |     |        Textual Convention: PolicyIDType
    |  |     |        Range: 0..255
    |  |     +-- -R-- String    enrpServerPolicyDescr(8)
    |  |     |        Size: 0..255
    |  |     +-- -R-- Unsigned  enrpServerPolicyWeight(9)
    |  |     |        Textual Convention: PolicyWeightType
    |  |     |        Range: 0..2147483647 0..-1
    |  |     +-- -R-- Unsigned  enrpServerPolicyLoad(10)
    |  |     |        Textual Convention: PolicyLoadType
    |  |     |        Range: 0..16777215
    |  |     +-- -R-- Unsigned  enrpServerPolicyLoadDegradation(11)
    |  |     |        Textual Convention: PolicyLoadType
    |  |     |        Range: 0..16777215
    |  |     +-- -R-- TimeTicks enrpServerRegistrationLife(12)
    |  |     +-- -R-- Unsigned  enrpServerHomeENRPServer(13)
    |  |              Textual Convention: ENRPServerIdentifierType
    |  |              Range: 1..2147483647 1..-1
    |  |
    |  +--enrpServerASAPAddrTable(5)
    |  |  |
    |  |  +--enrpServerASAPAddrTableEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex,
    |  |     |            enrpServerPoolElementIndex,
    |  |     |            enrpServerASAPAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerASAPAddrTableIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- EnumVal   enrpServerASAPL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |  |     |                   ipv6z(4), dns(16)
    |  |     +-- -R-- String    enrpServerASAPL3Addr(3)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--enrpServerUserAddrTable(6)
    |  |  |
    |  |  +--enrpServerUserAddrTableEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex,
    |  |     |            enrpServerPoolElementIndex,
    |  |     |            enrpServerUserAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerUserAddrTableIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- EnumVal   enrpServerUserL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     |        Values: unknown(0), ipv4(1), ipv6(2),
    |  |     |                   ipv4z(3), ipv6z(4), dns(16)
    |  |     +-- -R-- String    enrpServerUserL3Addr(3)
    |  |     |        Textual Convention: InetAddress
    |  |     |        Size: 0..255
    |  |     +-- -R-- String    enrpServerUserL3Opaque(4)
    |  |              Textual Convention: OpaqueAddressType
    |  |
    |  +--enrpServerENRPAddrTable(7)
    |  |  |
    |  |  +--enrpServerENRPAddrTableEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerENRPAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerENRPAddrTableIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- EnumVal   enrpServerENRPL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |  |     |                   ipv6z(4), dns(16)
    |  |     +-- -R-- String    enrpServerENRPL3Addr(3)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--enrpServerPeerTable(8)
    |  |  |
    |  |  +--enrpServerPeerEntry(1)
    |  |     |  Index: enrpServerPeerIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerPeerIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- Unsigned  enrpServerPeerIdentifier(2)
    |  |     +-- -R-- Unsigned  enrpServerPeerPort(3)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- TimeTicks enrpServerPeerLastHeard(4)
    |  |
    |  +--enrpServerPeerAddrTable(9)
    |     |
    |     +--enrpServerPeerAddrTableEntry(1)
    |        |  Index: enrpServerPeerIndex, enrpServerPeerAddrTableIndex
    |        |
    |        +-- ---- Unsigned  enrpServerPeerAddrTableIndex(1)
    |        |        Range: 1..2147483647 1..-1
    |        +-- -R-- EnumVal   enrpServerPeerL3Proto(2)
    |        |        Textual Convention: InetAddressType
    |        |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |  |     |                   ipv6z(4), dns(16)
    |        +-- -R-- String    enrpServerPeerL3Addr(3)
    |                 Textual Convention: InetAddress
    |                 Size: 0..255
    |
    +--poolElements(2)
    |  |
    |  +--poolElementTable(1)
    |  |  |
    |  |  +--poolElementEntry(1)
    |  |     |  Index: poolElementIndex
    |  |     |
    |  |     +-- ---- Unsigned  poolElementIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- String    poolElementOperationScope(2)
    |  |     |        Textual Convention: OperationScopeType
    |  |     +-- -R-- String    poolElementPoolHandle(3)
    |  |     |        Textual Convention: PoolHandleType
    |  |     +-- -R-- Unsigned  poolElementIdentifier(4)
    |  |     |        Textual Convention: PoolElementIdentifierType
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -RW- String    poolElementDescription(5)
    |  |     |        Size: 0..255
    |  |     +-- -R-- TimeTicks poolElementUptime(6)
    |  |     +-- -R-- Unsigned  poolElementASAPTransportPort(7)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- Unsigned  poolElementUserTransportProtocol(8)
    |  |     |        Range: 0..255
    |  |     +-- -R-- Unsigned  poolElementUserTransportPort(9)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- EnumVal   poolElementUserTransportUse(10)
    |  |     |        Textual Convention: TransportUseType
    |  |     |        Values: dataOnly(0), dataPlusControl(1)
    |  |     +-- -RW- Unsigned  poolElementPolicyID(11)
    |  |     |        Textual Convention: PolicyIDType
    |  |     |        Range: 0..255
    |  |     +-- -RW- String    poolElementPolicyDescr(12)
    |  |     |        Size: 0..255
    |  |     +-- -RW- Unsigned  poolElementPolicyWeight(13)
    |  |     |        Textual Convention: PolicyWeightType
    |  |     |        Range: 0..2147483647 0..-1
    |  |     +-- -R-- Unsigned  poolElementPolicyLoad(14)
    |  |     |        Textual Convention: PolicyLoadType
    |  |     |        Range: 0..16777215
    |  |     +-- -RW- Unsigned  poolElementPolicyLoadDegradation(15)
    |  |     |        Textual Convention: PolicyLoadType
    |  |     |        Range: 0..16777215
    |  |     +-- -RW- TimeTicks poolElementRegistrationLife(16)
    |  |     +-- -R-- Unsigned  poolElementHomeENRPServer(17)
    |  |              Textual Convention: ENRPServerIdentifierType
    |  |              Range: 1..2147483647 1..-1
    |  |
    |  +--poolElementASAPAddrTable(2)
    |  |  |
    |  |  +--poolElementASAPAddrTableEntry(1)
    |  |     |  Index: poolElementIndex, poolElementASAPAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  poolElementASAPAddrTableIndex(1)
    |  |     |        Range: 1..2147483647 1..-1
    |  |     +-- -R-- EnumVal   poolElementASAPL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |  |     |                   ipv6z(4), dns(16)
    |  |     +-- -R-- String    poolElementASAPL3Addr(3)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--poolElementUserAddrTable(6)
    |     |
    |     +--poolElementUserAddrTableEntry(1)
    |        |  Index: poolElementIndex, poolElementUserAddrTableIndex
    |        |
    |        +-- ---- Unsigned  poolElementUserAddrTableIndex(1)
    |        |        Range: 1..2147483647 1..-1
    |        +-- -R-- EnumVal   poolElementUserL3Proto(2)
    |        |        Textual Convention: InetAddressType
    |        |        Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3),
    |        |                   ipv6z(4), dns(16)
    |        +-- -R-- String    poolElementUserL3Addr(3)
    |        |        Textual Convention: InetAddress
    |        |        Size: 0..255
    |        +-- -R-- String    poolElementUserL3Opaque(4)
    |                 Textual Convention: OpaqueAddressType
    |
    +--poolUsers(3)
    |  |
    |  +--poolUserTable(1)
    |     |
    |     +--poolUserEntry(1)
    |        |  Index: poolUserIndex
    |        |
    |        +-- ---- Unsigned  poolUserIndex(1)
    |        |        Range: 1..2147483647 1..-1
    |        +-- -R-- String    poolUserOperationScope(2)
    |        |        Textual Convention: OperationScopeType
    |        +-- -R-- String    poolUserPoolHandle(3)
    |        |        Textual Convention: PoolHandleType
    |        +-- -RW- String    poolUserDescription(4)
    |        |        Size: 0..255
    |        +-- -R-- TimeTicks poolUserUptime(5)
    |
    +--rserpoolMIBConformance(4)
    |
    +--rserpoolMIBCompliances(1)
    |  |
    |  +--rserpoolMIBCompliance(1)
    |
    +--rserpoolMIBGroups(2)
    |
    +--enrpServerGroup(1)
    +--poolElementGroup(2)
    +--poolUserGroup(3)

   As the figure shows, the MIB consists of three main branches:
   "enrpServers", "poolElements" and "poolUsers".  The first branch,
   "enrpServers" is used to access managed objects in the set of ENRP
   servers running on a given host.  While it is assumed that it does
   not make much sense to run multiple ENRP servers for the same
   operation scope on one host, running multiple ENRP servers for
   different operation scopes is very likely when the ENRP server
   processes run on routers.  Therefore, the MIB has to be able to
   manage multiple ENRP servers on the same host. "poolElements" is used
   to access managed objects in the set of Pool Elements that are
   running on a given host and the third branch, "poolUsers" is used to
   access managed objects in the set of Pool Users that are running on a
   given host.  In fact, the structure of the three branches is very
   similar.  Because the two branches are so similar, we describe only
   the first branch in detail, and provide a summary description of the
   second and third branch.  We now proceed with a description of the
   branches.

4.1.  Access to managed objects on ENRP servers

   The first branch describes managed objects at a set of ENRP servers.
   Any given ENRP server of this set will, at a certain moment in time,
   have registration information for a set of active pools.  Each of
   these pools in turn may have a list of pool elements that are
   registered under that pool.  To allow this information to be
   retrieved via SNMP, the ERNP server branch of the RSerPool MIB uses
   the table-in-table technique described in [SNMPMIBS].  Specifically,
   the ENRP servers branch creates four levels of nesting, as indicated
   in the following diagram:

   Nesting of ENRP Server Branch

   Nesting Structure:

    Level 1: enrpServerTable

    Level 2:    enrpServerPoolTable
    Level 3:       enrpServerPoolElementTable
    Level 4:          enrpServerASAPAddrListTable
                      enrpServerUserAddrListTable

    Level 2:    enrpServerENRPAddrListTable

    Level 2:    enrpServerPeerTable
    Level 3:       enrpServerPeerAddrListTable

   The ENRP servers branch contains a table of the host's ENRP server
   instances.  Its purpose is to provide an index to an ENRP server for
   all other tables.  Each "conceptual row" in the enrpServerTable
   contains the server's ENRP Identifier, the number of pools, PEs and
   peers, the amount of ENRP endpoint addresses, the server's uptime and
   a textual description of the server.  The poolTable contains a single
   entry for each pool that is currently registered.  Each "conceptual
   row" in the enrpServerPoolTable consists of a
   enrpServerPoolTableEntry, with two elements: a enrpServerPoolIndex
   and an OCTET STRING representation of the pool handle.  The
   enrpServerPoolIndex is simply an integer that is used to index into
   the enrpServerPoolTable and the enrpServerPoolElementTable.  The
   value of this integer is between zero and (poolCount - 1).  Note that
   the value of enrpServerPoolIndex is defined as "not-accessible" in
   the MAX-ACCESS clause; this is a standard technique used when
   defining a table-in-table data structure.  The third element on the
   ENRP servers branch is the enrpServerPoolElementTable.  Because the
   enrpServerPoolElementTable is the "inner" table of the table-in-table
   structure, its index consists of a pair, as indicated in the clause
   "INDEX { enrpServerIndex, enrpServerPoolIndex,
   enrpServerPoolElementIndex }".  The fourth element of the ENRP
   servers branch takes the nesting to one additional level, listing the
   various addresses associated with a particular enrpServerPoolElement
   in form of ASAP endpoint addresses and user transport addresses, and
   thus are indexed by the 4-tuples "INDEX { enrpServerIndex,
   enrpServerPoolIndex, enrpServerPoolElementIndex,
   enrpServerASAPAddrListTableIndex }" and "INDEX { enrpServerIndex,
   enrpServerPoolIndex, enrpServerPoolElementIndex,
   enrpServerUserAddrListTableIndex }".  The ENRP endpoint addresses of
   an ENRP server are bound to its instance in the
   enrpServerENRPAddrListTable by "INDEX { enrpServerIndex,
   enrpServerENRPAddrListTableIndex }".  Finally, an ENRP server has a
   peer table of its known peers.  They are bound to a server instance
   by the enrpServerPeerTable; analogously, the addresses of a peer are
   bound to a peerTable's entry in the peerAddrListTable.

4.2.  Access to managed objects on Pool Elements

   The construction of the Pool Elements branch is very similar to the
   pool elements table of the ENRP servers branch.  But instead of
   grouping the pool elements into pools (which does not make sense
   here), the pool elements table is the top of the hierarchy and each
   pool element entry specifies its operation scope and pool handle.
   That is, the nesting structure is as follows:

    Level 1:    poolElementTable
    Level 2:       poolElementASAPAddrListTable
                   poolElementUserAddrListTable

   The description of the contained structures is the same as for the
   ENRP servers branch.

   TODO: There should be the server table (ENRP servers learned by their
   announces) plus the multicast address the PE expects the announces to
   be sent to.

4.3.  Access to managed objects on Pool Users

   For the pool users branch, it is only necessary to list the pool
   users, including their operation scope and pool handle.

   TODO: There should be the server table (ENRP servers learned by their
   announces) plus the multicast address the PE expects the announces to
   be sent to.

5.  Definitions

     RSERPOOL-MIB DEFINITIONS ::= BEGIN
     IMPORTS
     MODULE-IDENTITY,
     OBJECT-TYPE,
     mib-2,
     TimeTicks,
     Unsigned32
     FROM SNMPv2-SMI
     TEXTUAL-CONVENTION
     FROM SNMPv2-TC
     MODULE-COMPLIANCE, OBJECT-GROUP
     FROM SNMPv2-CONF
     InetAddressType, InetAddress
     FROM INET-ADDRESS-MIB;

     -- ## Module definition ###########################################
     rserpoolMIB MODULE-IDENTITY
     LAST-UPDATED "200810061012Z" "200811131012Z" -- October 06, November 13, 2008
     ORGANIZATION "IEM-TdR, UNIVERSITY OF DUISBURG-ESSEN"
     CONTACT-INFO
     " THOMAS-DREIBHOLZ

     Postal:  University of Duisburg-Essen
     Institute for Experimental Mathematics
     Ellernstrasse 29
     D-45326 Essen
     Germany
     Phone: +49-201-183-7637
     Fax: +49-201-183-7673
     Email: dreibh@iem.uni-due.de

     JAIWANT-MULIK

     Postal:  Delaware State University
     CIS Department
     1200 N. DuPont Hw
     Dover, DE
     USA 19904
     Phone: +1-302-857-7910
     Fax: +1-302-857-6552
     Email: jaiwant@mulik.com"
     DESCRIPTION
     "The MIB module for managing a RSerPool implementation"
     REVISION "200810061012Z" "200811131012Z" -- October 06, November 13, 2008
     DESCRIPTION
     "Version 07, 08, published as draft-ietf-rserpool-mib-07.txt." draft-ietf-rserpool-mib-08.txt."
     ::= { mib-2 xxxxxxxxxx xxxxxxxx } -- To be IANA Assigned!!!
     -- ## RSerPool type definitions ###################################
     ENRPServerIdentifierType ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "x"
     STATUS       current
     DESCRIPTION  "The ID of an ENRP server"
     SYNTAX       Unsigned32 (1..4294967295)

     OperationScopeType ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION  "The ID of an operation scope"
     SYNTAX       OCTET STRING

     PoolHandleType ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION  "The pool handle"
     SYNTAX       OCTET STRING

     PoolElementIdentifierType ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "x"
     STATUS       current
     DESCRIPTION  "The pool element ID"
     SYNTAX       Unsigned32 (1..4294967295)

     PolicyIDType ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "x"
     STATUS       current
     DESCRIPTION  "The ID of the pool policy"
     SYNTAX       Unsigned32 (0..255)

     PolicyLoadType ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "d"
     STATUS       current
     DESCRIPTION  "The load status of a pool element"
     SYNTAX       Unsigned32 (0..16777215)

     PolicyWeightType ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "d"
     STATUS       current
     DESCRIPTION  "The weight of a pool element"
     SYNTAX       Unsigned32 (0..4294967295)

     TransportUseType ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION "The load status of a pool element"
     SYNTAX       INTEGER {
     dataOnly(0),
     dataPlusControl(1)
     }
     OpaqueAddressType ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION  "Opaque address"
     SYNTAX       OCTET STRING

     -- ## Top-level definitions #######################################
     enrpServers  OBJECT IDENTIFIER ::= { rserpoolMIB 1 }
     poolElements OBJECT IDENTIFIER ::= { rserpoolMIB 2 }
     poolUsers    OBJECT IDENTIFIER ::= { rserpoolMIB 3 }

     -- ################################################################
     -- #### ENRP Servers Section                                   ####
     -- ################################################################

     -- ## Definition of the ENRP server table #########################
     enrpServerTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The table listing of ENRP servers."
     ::= { enrpServers 1 }

     enrpServerEntry OBJECT-TYPE
     SYNTAX     ENRPServerEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An ENRP server entry in the table listing of ENRP
     servers."
     INDEX { enrpServerIndex }
     ::= { enrpServerTable 1 }

     ENRPServerEntry ::= SEQUENCE {
     enrpServerIndex                Unsigned32,
     enrpServerOperationScope       OperationScopeType,
     enrpServerIdentifier           ENRPServerIdentifierType,
     enrpServerDescription          OCTET STRING,
     enrpServerUptime               TimeTicks,
     enrpServerPort                 Unsigned32,
     enrpServerASAPAnnouncePort     Unsigned32,
     enrpServerASAPAnnounceAddrType InetAddressType,
     enrpServerASAPAnnounceAddr     InetAddress,
     enrpServerENRPAnnouncePort     Unsigned32,
     enrpServerENRPAnnounceAddrType InetAddressType,
     enrpServerENRPAnnounceAddr     InetAddress }

     enrpServerIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An integer to uniquely identify an ENRP server."
     ::= { enrpServerEntry 1 }

     enrpServerOperationScope OBJECT-TYPE
     SYNTAX     OperationScopeType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The definition of the operation scope of this ENRP server."
     ::= { enrpServerEntry 2 }

     enrpServerIdentifier OBJECT-TYPE
     SYNTAX     ENRPServerIdentifierType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ENRP server identifier of this ENRP server."
     ::= { enrpServerEntry 3 }

     enrpServerDescription OBJECT-TYPE
     SYNTAX     OCTET STRING (SIZE (0..255))
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "A textual description of this ENRP server, e.g. its location
     and a contact address of its administrator."
     ::= { enrpServerEntry 4 }

     enrpServerUptime OBJECT-TYPE
     SYNTAX     TimeTicks
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ENRP service uptime of this ENRP server."
     ::= { enrpServerEntry 5 }

     enrpServerPort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The SCTP port number of the ENRP protocol endpoint of
     this ENRP server."
     ::= { enrpServerEntry 6 }

     enrpServerASAPAnnouncePort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The destination UDP port number ASAP multicast announce
     messages are sent to."
     ::= { enrpServerEntry 7 }

     enrpServerASAPAnnounceAddrType OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol ASAP multicast
     announce messages are sent over."
     ::= { enrpServerEntry 8 }

     enrpServerASAPAnnounceAddr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The destination multicast IP address ASAP multicast
     announce messages are sent to."
     ::= { enrpServerEntry 9 }

     enrpServerENRPAnnouncePort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The destination UDP port number ENRP multicast announce
     messages are sent to."
     ::= { enrpServerEntry 10 }

     enrpServerENRPAnnounceAddrType OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol ENRP multicast
     announce messages are sent over."
     ::= { enrpServerEntry 11 }
     enrpServerENRPAnnounceAddr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The destination multicast IP address ENRP multicast
     announce messages are sent to."
     ::= { enrpServerEntry 12 }

     -- ## Definition of the pool table ################################
     enrpServerPoolTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerPoolEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The table listing of pools."
     ::= { enrpServers 3 }

     enrpServerPoolEntry OBJECT-TYPE
     SYNTAX     ENRPServerPoolEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The pool entry in the table listing of pools."
     INDEX { enrpServerIndex, enrpServerPoolIndex }
     ::= { enrpServerPoolTable 1 }

     ENRPServerPoolEntry ::= SEQUENCE {
     enrpServerPoolIndex  Unsigned32,
     enrpServerPoolHandle PoolHandleType }

     enrpServerPoolIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An integer to uniquely identify a pool."
     ::= { enrpServerPoolEntry 1 }

     enrpServerPoolHandle OBJECT-TYPE
     SYNTAX     PoolHandleType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool handle of this pool."
     ::= { enrpServerPoolEntry 2 }
     -- ## Definition of the pool element table ########################
     enrpServerPoolElementTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerPoolElementEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The table listing of pool elements."
     ::= { enrpServers 4 }

     enrpServerPoolElementEntry OBJECT-TYPE
     SYNTAX     ENRPServerPoolElementEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A pool element in the table listing of pool elements."
     INDEX { enrpServerIndex,
     enrpServerPoolIndex,
     enrpServerPoolElementIndex }
     ::= { enrpServerPoolElementTable 1 }

     ENRPServerPoolElementEntry ::= SEQUENCE {
     enrpServerPoolElementIndex       Unsigned32,
     enrpServerPoolElementIdentifier  PoolElementIdentifierType,
     enrpServerASAPTransportPort      Unsigned32,
     enrpServerUserTransportProtocol  Unsigned32,
     enrpServerUserTransportPort      Unsigned32,
     enrpServerUserTransportUse       TransportUseType,
     enrpServerPolicyID               PolicyIDType,
     enrpServerPolicyDescr            OCTET STRING,
     enrpServerPolicyWeight           PolicyWeightType,
     enrpServerPolicyLoad             PolicyLoadType,
     enrpServerPolicyLoadDegradation  PolicyLoadType,
     enrpServerRegistrationLife       TimeTicks,
     enrpServerHomeENRPServer         ENRPServerIdentifierType }

     enrpServerPoolElementIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An integer to uniquely identify a pool element. Note,
     that uniqueness of a pool element identifier in the pool
     is not enforced, therefore this index is required here!"
     ::={ enrpServerPoolElementEntry 1 }

     enrpServerPoolElementIdentifier OBJECT-TYPE
     SYNTAX     PoolElementIdentifierType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool element identifier of this pool element."
     ::={ enrpServerPoolElementEntry 2 }

     enrpServerASAPTransportPort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The SCTP port number of the ASAP endpoint of this pool
     element."
     ::= { enrpServerPoolElementEntry 3 }

     enrpServerUserTransportProtocol OBJECT-TYPE
     SYNTAX     Unsigned32 (0..255)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The transport protocol number of the service endpoint
     of this pool element."
     ::= { enrpServerPoolElementEntry 4 }

     enrpServerUserTransportPort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The transport protocol's port number of the service
     endpoint of this pool element."
     ::= { enrpServerPoolElementEntry 5 }

     enrpServerUserTransportUse OBJECT-TYPE
     SYNTAX     TransportUseType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The transport use of the service endpoint of this pool
     element."
     ::= { enrpServerPoolElementEntry 6 }

     enrpServerPolicyID OBJECT-TYPE
     SYNTAX     PolicyIDType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool policy of this pool element."
     ::= { enrpServerPoolElementEntry 7 }

     enrpServerPolicyDescr OBJECT-TYPE
     SYNTAX     OCTET STRING (SIZE (0..255))
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The textual description of the pool policy of this pool
     element."
     ::= { enrpServerPoolElementEntry 8 }

     enrpServerPolicyWeight OBJECT-TYPE
     SYNTAX     PolicyWeightType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool policy's weight parameter for this pool element."
     ::= { enrpServerPoolElementEntry 9 }

     enrpServerPolicyLoad OBJECT-TYPE
     SYNTAX     PolicyLoadType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool policy's load status for this pool element."
     ::= { enrpServerPoolElementEntry 10 }

     enrpServerPolicyLoadDegradation OBJECT-TYPE
     SYNTAX     PolicyLoadType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool policy's load degradation parameter for this pool
     element."
     ::= { enrpServerPoolElementEntry 11 }

     enrpServerRegistrationLife OBJECT-TYPE
     SYNTAX     TimeTicks
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The registration life of this pool element."
     ::= { enrpServerPoolElementEntry 12 }

     enrpServerHomeENRPServer OBJECT-TYPE
     SYNTAX     ENRPServerIdentifierType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ID of the home ENRP server of this pool element."
     ::= { enrpServerPoolElementEntry 13 }

     -- ## Definition of the ASAP transport address list table #########
     enrpServerASAPAddrTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerASAPAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of all IP addresses of the ASAP transport
     endpoint."
     ::= { enrpServers 5 }

     enrpServerASAPAddrTableEntry  OBJECT-TYPE
     SYNTAX     ENRPServerASAPAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An IP address of the ASAP transport endpoint."
     INDEX { enrpServerIndex,
     enrpServerPoolIndex,
     enrpServerPoolElementIndex,
     enrpServerASAPAddrTableIndex }
     ::= { enrpServerASAPAddrTable 1 }

     ENRPServerASAPAddrTableEntry ::= SEQUENCE {
     enrpServerASAPAddrTableIndex Unsigned32,
     enrpServerASAPL3Proto            InetAddressType,
     enrpServerASAPL3Addr             InetAddress }

     enrpServerASAPAddrTableIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for the IP address of an ASAP transport
     endpoint."
     ::= { enrpServerASAPAddrTableEntry 1 }

     enrpServerASAPL3Proto OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol (IPv4 or IPv6) of an IP address of
     an ASAP transport endpoint."
     ::= { enrpServerASAPAddrTableEntry 2 }

     enrpServerASAPL3Addr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The IP address of an ASAP transport endpoint."
     ::= { enrpServerASAPAddrTableEntry 3 }

     -- ## Definition of the user transport address list table #########
     enrpServerUserAddrTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerUserAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of all IP addresses of the user
     transport endpoint."
     ::= { enrpServers 6 }

     enrpServerUserAddrTableEntry  OBJECT-TYPE
     SYNTAX     ENRPServerUserAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An IP address of the user transport endpoint."
     INDEX { enrpServerIndex,
     enrpServerPoolIndex,
     enrpServerPoolElementIndex,
     enrpServerUserAddrTableIndex }
     ::= { enrpServerUserAddrTable 1 }

     ENRPServerUserAddrTableEntry ::= SEQUENCE {
     enrpServerUserAddrTableIndex Unsigned32,
     enrpServerUserL3Proto  InetAddressType,
     enrpServerUserL3Addr   InetAddress   InetAddress,
     enrpServerUserL3Opaque OpaqueAddressType }

     enrpServerUserAddrTableIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for the IP address of an user transport
     endpoint."
     ::= { enrpServerUserAddrTableEntry 1 }
     enrpServerUserL3Proto OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol (IPv4 or IPv6) of an IP address of
     an user transport endpoint."
     ::= { enrpServerUserAddrTableEntry 2 }

     enrpServerUserL3Addr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The IP address of an user transport endpoint."
     ::= { enrpServerUserAddrTableEntry 3 }

     enrpServerUserL3Opaque OBJECT-TYPE
     SYNTAX     OpaqueAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The opaque address of an user transport endpoint."
     ::= { enrpServerUserAddrTableEntry 4 }

     -- ## Definition of ENRP address list table #######################
     enrpServerENRPAddrTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerENRPAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of all IP addresses of the ENRP
     transport endpoint."
     ::= { enrpServers 7 }

     enrpServerENRPAddrTableEntry  OBJECT-TYPE
     SYNTAX     ENRPServerENRPAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An IP address of the ENRP transport endpoint."
     INDEX { enrpServerIndex,
     enrpServerENRPAddrTableIndex }
     ::= { enrpServerENRPAddrTable 1 }

     ENRPServerENRPAddrTableEntry ::= SEQUENCE {
     enrpServerENRPAddrTableIndex Unsigned32,
     enrpServerENRPL3Proto            InetAddressType,
     enrpServerENRPL3Addr             InetAddress }

     enrpServerENRPAddrTableIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for the IP address of an ENRP transport
     endpoint."
     ::= { enrpServerENRPAddrTableEntry 1 }

     enrpServerENRPL3Proto OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol (IPv4 or IPv6) of an IP address of
     an ENRP transport endpoint."
     ::= { enrpServerENRPAddrTableEntry 2 }

     enrpServerENRPL3Addr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The IP address of an ENRP transport endpoint."
     ::= { enrpServerENRPAddrTableEntry 3 }

     -- ## Definition of peer table ####################################
     enrpServerPeerTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerPeerEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The table listing of a peer table."
     ::= { enrpServers 8 }

     enrpServerPeerEntry OBJECT-TYPE
     SYNTAX     ENRPServerPeerEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A peer entry in the table listing of a peer table."
     INDEX { enrpServerPeerIndex }
     ::= { enrpServerPeerTable 1 }
     ENRPServerPeerEntry ::= SEQUENCE {
     enrpServerPeerIndex      Unsigned32,
     enrpServerPeerIdentifier Unsigned32,
     enrpServerPeerPort       Unsigned32,
     enrpServerPeerLastHeard  TimeTicks }

     enrpServerPeerIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for a peer entry in the table listing
     of a peer table."
     ::= { enrpServerPeerEntry 1 }

     enrpServerPeerIdentifier OBJECT-TYPE
     SYNTAX     Unsigned32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ENRP identifier of this peer."
     ::= { enrpServerPeerEntry 2 }

     enrpServerPeerPort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The SCTP port number of the ENRP transport endpoint of this peer."
     ::= { enrpServerPeerEntry 3 }

     enrpServerPeerLastHeard OBJECT-TYPE
     SYNTAX     TimeTicks
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The time since the reception of the last ENRP Peer Presence
     message of this peer."
     ::= { enrpServerPeerEntry 4 }

     -- ## Definition of peer address list table #######################
     enrpServerPeerAddrTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF ENRPServerPeerAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of the peer endpoint addresses."
     ::= { enrpServers 9 }

     enrpServerPeerAddrTableEntry  OBJECT-TYPE
     SYNTAX     ENRPServerPeerAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of all IP addresses of the ENRP
     transport endpoint of a peer referenced by peerIndex."
     INDEX { enrpServerPeerIndex,
     enrpServerPeerAddrTableIndex }
     ::= { enrpServerPeerAddrTable 1 }

     ENRPServerPeerAddrTableEntry ::= SEQUENCE {
     enrpServerPeerAddrTableIndex Unsigned32,
     enrpServerPeerL3Proto            InetAddressType,
     enrpServerPeerL3Addr             InetAddress }

     enrpServerPeerAddrTableIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for the IP address of a peer ENRP
     transport endpoint."
     ::= { enrpServerPeerAddrTableEntry 1 }

     enrpServerPeerL3Proto OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol (IPv4 or IPv6) of an IP address of
     a peer ENRP transport endpoint."
     ::= { enrpServerPeerAddrTableEntry 2 }

     enrpServerPeerL3Addr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The IP address of a peer ENRP transport endpoint."
     ::= { enrpServerPeerAddrTableEntry 3 }

     -- ################################################################
     -- #### Pool Elements Section                                  ####
     -- ################################################################

     -- ## Definition of the pool element table ########################
     poolElementTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF PoolElementEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The table listing of pool elements."
     ::= { poolElements 1 }

     poolElementEntry OBJECT-TYPE
     SYNTAX     PoolElementEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A pool element in the table listing of pool elements."
     INDEX { poolElementIndex }
     ::= { poolElementTable 1 }

     PoolElementEntry ::= SEQUENCE {
     poolElementIndex                 Unsigned32,
     poolElementOperationScope        OperationScopeType,
     poolElementPoolHandle            PoolHandleType,
     poolElementIdentifier            PoolElementIdentifierType,
     poolElementDescription           OCTET STRING,
     poolElementUptime                TimeTicks,
     poolElementASAPTransportPort     Unsigned32,
     poolElementUserTransportProtocol Unsigned32,
     poolElementUserTransportPort     Unsigned32,
     poolElementUserTransportUse      TransportUseType,
     poolElementPolicyID              PolicyIDType,
     poolElementPolicyDescr           OCTET STRING,
     poolElementPolicyWeight          PolicyWeightType,
     poolElementPolicyLoad            PolicyLoadType,
     poolElementPolicyLoadDegradation PolicyLoadType,
     poolElementRegistrationLife      TimeTicks,
     poolElementHomeENRPServer        ENRPServerIdentifierType }

     poolElementIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An integer to uniquely identify a pool element. Note,
     that uniqueness of a pool element identifier in the pool
     is not enforced, therefore this index is required here!"
     ::={ poolElementEntry 1 }

     poolElementOperationScope OBJECT-TYPE
     SYNTAX     OperationScopeType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The operation scope of this pool element."
     ::= { poolElementEntry 2 }

     poolElementPoolHandle OBJECT-TYPE
     SYNTAX     PoolHandleType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool handle of this pool element."
     ::={ poolElementEntry 3 }

     poolElementIdentifier OBJECT-TYPE
     SYNTAX     PoolElementIdentifierType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool element identifier of this pool element."
     ::={ poolElementEntry 4 }

     poolElementDescription OBJECT-TYPE
     SYNTAX     OCTET STRING (SIZE (0..255))
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "A textual description of this pool element, e.g. its location
     and a contact address of its administrator."
     ::= { poolElementEntry 5 }

     poolElementUptime OBJECT-TYPE
     SYNTAX     TimeTicks
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ENRP service uptime of this pool element."
     ::= { poolElementEntry 6 }

     poolElementASAPTransportPort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The SCTP port number of the ASAP endpoint of this pool
     element."
     ::= { poolElementEntry 7 }

     poolElementUserTransportProtocol OBJECT-TYPE
     SYNTAX     Unsigned32 (0..255)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The transport protocol number of the service endpoint
     of this pool element."
     ::= { poolElementEntry 8 }

     poolElementUserTransportPort OBJECT-TYPE
     SYNTAX     Unsigned32 (1..65535)
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The transport protocol's port number of the service
     endpoint of this pool element."
     ::= { poolElementEntry 9 }

     poolElementUserTransportUse OBJECT-TYPE
     SYNTAX     TransportUseType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The transport use of the service endpoint of this pool
     element."
     ::= { poolElementEntry 10 }

     poolElementPolicyID OBJECT-TYPE
     SYNTAX     PolicyIDType
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "The pool policy of this pool element."
     ::= { poolElementEntry 11 }

     poolElementPolicyDescr OBJECT-TYPE
     SYNTAX     OCTET STRING (SIZE (0..255))
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "The textual description of the pool policy of this pool
     element."
     ::= { poolElementEntry 12 }
     poolElementPolicyWeight OBJECT-TYPE
     SYNTAX     PolicyWeightType
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "The pool policy's weight parameter for this pool element.
     This field is read/write."
     ::= { poolElementEntry 13 }

     poolElementPolicyLoad OBJECT-TYPE
     SYNTAX     PolicyLoadType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool policy's load status for this pool element."
     ::= { poolElementEntry 14 }

     poolElementPolicyLoadDegradation OBJECT-TYPE
     SYNTAX     PolicyLoadType
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "The pool policy's load degradation parameter for this pool
     element."
     ::= { poolElementEntry 15 }

     poolElementRegistrationLife OBJECT-TYPE
     SYNTAX     TimeTicks
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "The registration life of this pool element."
     ::= { poolElementEntry 16 }

     poolElementHomeENRPServer OBJECT-TYPE
     SYNTAX     ENRPServerIdentifierType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ID of the home ENRP server of this pool element."
     ::= { poolElementEntry 17 }

     -- ## Definition of the ASAP transport address list table #########
     poolElementASAPAddrTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF PoolElementASAPAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of all IP addresses of the ASAP transport
     endpoint."
     ::= { poolElements 2 }

     poolElementASAPAddrTableEntry  OBJECT-TYPE
     SYNTAX     PoolElementASAPAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An IP address of the ASAP transport endpoint."
     INDEX { poolElementIndex,
     poolElementASAPAddrTableIndex }
     ::= { poolElementASAPAddrTable 1 }

     PoolElementASAPAddrTableEntry ::= SEQUENCE {
     poolElementASAPAddrTableIndex Unsigned32,
     poolElementASAPL3Proto            InetAddressType,
     poolElementASAPL3Addr             InetAddress }

     poolElementASAPAddrTableIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for the IP address of an ASAP transport
     endpoint."
     ::= { poolElementASAPAddrTableEntry 1 }

     poolElementASAPL3Proto OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol (IPv4 or IPv6) of an IP address of
     an ASAP transport endpoint."
     ::= { poolElementASAPAddrTableEntry 2 }

     poolElementASAPL3Addr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The IP address of an ASAP transport endpoint."
     ::= { poolElementASAPAddrTableEntry 3 }

     -- ## Definition of the user transport address list table #########
     poolElementUserAddrTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF PoolElementUserAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A table listing of all IP addresses of the user
     transport endpoint."
     ::= { poolElements 6 }

     poolElementUserAddrTableEntry  OBJECT-TYPE
     SYNTAX     PoolElementUserAddrTableEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An IP address of the user transport endpoint."
     INDEX { poolElementIndex,
     poolElementUserAddrTableIndex }
     ::= { poolElementUserAddrTable 1 }

     PoolElementUserAddrTableEntry ::= SEQUENCE {
     poolElementUserAddrTableIndex Unsigned32,
     poolElementUserL3Proto        InetAddressType,
     poolElementUserL3Addr             InetAddress         InetAddress,
     poolElementUserL3Opaque       OpaqueAddressType }

     poolElementUserAddrTableIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A unique identifier for the IP address of an user transport
     endpoint."
     ::= { poolElementUserAddrTableEntry 1 }

     poolElementUserL3Proto OBJECT-TYPE
     SYNTAX     InetAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The network-layer protocol (IPv4 or IPv6) of an IP address of
     an user transport endpoint." endpoint. Set to unknown for opaque address."
     ::= { poolElementUserAddrTableEntry 2 }

     poolElementUserL3Addr OBJECT-TYPE
     SYNTAX     InetAddress
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The IP address of an user transport endpoint."
     ::= { poolElementUserAddrTableEntry 3 }

     poolElementUserL3Opaque OBJECT-TYPE
     SYNTAX     OpaqueAddressType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The opaque address of an user transport endpoint."
     ::= { poolElementUserAddrTableEntry 4 }

     -- ################################################################
     -- #### Pool Users Section                                     ####
     -- ################################################################

     -- ## Definition of the pool user table ###########################
     poolUserTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF PoolUserEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "The table listing of pool users."
     ::= { poolUsers 1 }

     poolUserEntry OBJECT-TYPE
     SYNTAX     PoolUserEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "A pool user in the table listing of pool users."
     INDEX { poolUserIndex }
     ::= { poolUserTable 1 }

     PoolUserEntry ::= SEQUENCE {
     poolUserIndex          Unsigned32,
     poolUserOperationScope OperationScopeType,
     poolUserPoolHandle     PoolHandleType,
     poolUserDescription    OCTET STRING,
     poolUserUptime         TimeTicks }

     poolUserIndex OBJECT-TYPE
     SYNTAX     Unsigned32 (1..4294967295)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
     "An integer to uniquely identify a pool user."
     ::={ poolUserEntry 1 }

     poolUserOperationScope OBJECT-TYPE
     SYNTAX     OperationScopeType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The operation scope of this pool user."
     ::= { poolUserEntry 2 }

     poolUserPoolHandle OBJECT-TYPE
     SYNTAX     PoolHandleType
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The pool handle of this pool user."
     ::={ poolUserEntry 3 }

     poolUserDescription OBJECT-TYPE
     SYNTAX     OCTET STRING (SIZE (0..255))
     MAX-ACCESS read-write
     STATUS     current
     DESCRIPTION
     "A textual description of this pool user, e.g. its location
     and a contact address of its administrator."
     ::= { poolUserEntry 4 }

     poolUserUptime OBJECT-TYPE
     SYNTAX     TimeTicks
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
     "The ENRP service uptime of this pool user."
     ::= { poolUserEntry 5 }

     -- ## MIB conformance and compliance ############################# ##############################
     rserpoolMIBConformance OBJECT IDENTIFIER ::= { rserpoolMIB 4 }

     rserpoolMIBCompliances OBJECT IDENTIFIER ::= {
     rserpoolMIBConformance 1
     }
     rserpoolMIBGroups      OBJECT IDENTIFIER ::= {
     rserpoolMIBConformance 2
     }
     rserpoolMIBCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
     "The compliance statement for SNMP entities which
     implement RSerPool."
     MODULE  -- this module
     MANDATORY-GROUPS { enrpServerGroup,
     poolElementGroup,
     poolUserGroup }
     ::= { rserpoolMIBCompliances 1 }

     enrpServerGroup OBJECT-GROUP
     OBJECTS { enrpServerOperationScope,
     enrpServerIdentifier,
     enrpServerDescription,
     enrpServerUptime,
     enrpServerPort,
     enrpServerASAPAnnouncePort,
     enrpServerASAPAnnounceAddr,
     enrpServerASAPAnnounceAddrType,
     enrpServerENRPAnnounceAddrType,
     enrpServerENRPAnnouncePort,
     enrpServerENRPAnnounceAddr,

     enrpServerPoolHandle,
     enrpServerPoolElementIdentifier,

     enrpServerASAPTransportPort,
     enrpServerUserTransportProtocol,
     enrpServerUserTransportUse,
     enrpServerUserTransportPort,
     enrpServerPolicyID,
     enrpServerPolicyDescr,
     enrpServerPolicyWeight,
     enrpServerPolicyLoad,
     enrpServerPolicyLoadDegradation,
     enrpServerRegistrationLife,
     enrpServerHomeENRPServer,

     enrpServerASAPL3Proto,
     enrpServerASAPL3Addr,

     enrpServerUserL3Proto,
     enrpServerUserL3Addr,
     enrpServerUserL3Opaque,

     enrpServerENRPL3Proto,
     enrpServerENRPL3Addr,
     enrpServerPeerIdentifier,
     enrpServerPeerPort,
     enrpServerPeerLastHeard,
     enrpServerPeerL3Proto,
     enrpServerPeerL3Addr }
     STATUS current
     DESCRIPTION "The group of ENRP servers"
     ::= { rserpoolMIBGroups 1 }

     poolElementGroup OBJECT-GROUP
     OBJECTS { poolElementOperationScope,
     poolElementPoolHandle,
     poolElementIdentifier,
     poolElementDescription,
     poolElementUptime,
     poolElementASAPTransportPort,
     poolElementUserTransportProtocol,
     poolElementUserTransportPort,
     poolElementUserTransportUse,
     poolElementPolicyID,
     poolElementPolicyDescr,
     poolElementPolicyWeight,
     poolElementPolicyLoad,
     poolElementPolicyLoadDegradation,
     poolElementRegistrationLife,
     poolElementHomeENRPServer,

     poolElementASAPL3Proto,
     poolElementASAPL3Addr,

     poolElementUserL3Proto,
    poolElementUserL3Addr
     poolElementUserL3Addr,
     poolElementUserL3Opaque }
     STATUS current
     DESCRIPTION "The group of pool elements"
     ::= { rserpoolMIBGroups 2 }

     poolUserGroup OBJECT-GROUP
     OBJECTS { poolUserOperationScope,
     poolUserPoolHandle,
     poolUserDescription,
     poolUserUptime }
     STATUS current
     DESCRIPTION "The group of pool users"
     ::= { rserpoolMIBGroups 3 }

     END

6.  Security Considerations

   SNMPv1 by itself is not a secure environment.  Even if the network
   itself is secure (for example by using IPSec), there is no control as
   to who on the secure network is allowed to access and GET/SET (read/
   change/create/delete) the objects in this MIB.

   It is recommended that the implementers consider the security
   features as provided by the SNMPv3 framework.  Specifically, the use
   of the User-based Security Model RFC 2574 [RFC2574] and the View-
   based Access Control Model RFC 2575 [RFC2575] is recommended.

   It is then a customer/user responsibility to ensure that the SNMP
   entity giving access to an instance of this MIB, is properly
   configured to give access to the objects only to those principals
   (users) that have legitimate rights to indeed GET or SET (change/
   create/delete) them.

7.  IANA Considerations

   IANA will need to assign an OID prefix for the RSerPool MIB.

8.  Acknowledgments

   The authors would like to express a special note of thanks to Phillip
   Conrad and Kevin Pinzhoffer for their efforts in the early formation
   of this draft.  Also, the authors would like to thank Nihad Cosic,
   Dirk Hoffstadt, Michael Kohnen, Jobin Pulinthanath, Randall Stewart,
   Michael Tuexen and Xing Zhou for their support.

9.  References

9.1.  Normative References

   [RFC3237]  Tuexen, M., Xie, Q., Stewart, R., Shore, M., Ong, L.,
              Loughney, J., and M. Stillman, "Requirements for Reliable
              Server Pooling", RFC 3237, January 2002.

   [RFC5351]  Lei, P., Ong, L., Tuexen, M., and T. Dreibholz, "An
              Overview of Reliable Server Pooling Protocols", RFC 5351,
              September 2008.

   [RFC5352]  Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
              "Aggregate Server Access Protocol (ASAP)", RFC 5352,
              September 2008.

   [RFC5353]  Xie, Q., Stewart, R., Stillman, M., Tuexen, M., and A.
              Silverton, "Endpoint Handlespace Redundancy Protocol
              (ENRP)", RFC 5353, September 2008.

   [RFC5354]  Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
              "Aggregate Server Access Protocol (ASAP) and Endpoint
              Handlespace Redundancy Protocol (ENRP) Parameters",
              RFC 5354, September 2008.

   [RFC5355]  Stillman, M., Gopal, R., Guttman, E., Sengodan, S., and M.
              Holdrege, "Threats Introduced by Reliable Server Pooling
              (RSerPool) and Requirements for Security in Response to
              Threats", RFC 5355, September 2008.

   [RFC5356]  Dreibholz, T. and M. Tuexen, "Reliable Server Pooling
              Policies", RFC 5356, September 2008.

   [RFC2574]  Blumenthal, U. and B. Wijnen, "User-based Security Model
              (USM) for version 3 of the Simple Network Management
              Protocol (SNMPv3)", RFC 2574, April 1999.

   [RFC2575]  Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
              Access Control Model (VACM) for the Simple Network
              Management Protocol (SNMP)", RFC 2575, April 1999.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, April 1999.

   [RFC2580]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, December 2002.

9.2.  Informative References

   [RSerPoolPage]
              Dreibholz, T., "Thomas Dreibholz's RSerPool Page", URL:
               http://tdrwww.exp-math.uni-essen.de/dreibholz/rserpool/.

   [Dre2006]  Dreibholz, T., "Reliable Server Pooling -- Evaluation,
              Optimization and Extension of a Novel IETF Architecture",
              Ph.D. Thesis University of Duisburg-Essen, Faculty of
              Economics, Institute for Computer Science and Business
              Information Systems, URL: http://
              duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/
              Derivate-16326/Dre2006-final.pdf, March 2007.

   [LCN2005]  Dreibholz, T. and E. Rathgeb, "On the Performance of
              Reliable Server Pooling Systems", Proceedings of the 30th
              IEEE Local Computer Networks Conference, November 2005.

   [IJHIT2008]
              Dreibholz, T. and E. Rathgeb, "An Evalulation of the Pool
              Maintenance Overhead in Reliable Server Pooling Systems",
              International Journal of Hybrid Information Technology
              (IJHIT) Volume 1, Number 2, April 2008.

   [Infocom2005]
              Dreibholz, T. and E. Rathgeb, "An Application
              Demonstration of the Reliable Server Pooling Framework",
              Proceedings of the 24th IEEE Infocom, March 2005.

   [SNMPMIBS]
              Perkins, D. and E. McGinnis, "Understanding SNMP MIBs",
              1997.

   [I-D.dreibholz-rserpool-asap-hropt]
              Dreibholz, T., "Handle Resolution Option for ASAP",
              draft-dreibholz-rserpool-asap-hropt-01
              draft-dreibholz-rserpool-asap-hropt-03 (work in progress),
              January
              October 2008.

   [I-D.dreibholz-rserpool-delay]
              Dreibholz, T. and X. Zhou, "Definition of a Delay
              Measurement Infrastructure and Delay-Sensitive  Least-Used
              Policy for Reliable Server Pooling",
              draft-dreibholz-rserpool-delay-02 (work in progress),
              July 2008.

   [I-D.dreibholz-rserpool-applic-distcomp]
              Dreibholz, T., "Applicability of Reliable Server Pooling
              for Real-Time Distributed  Computing",
              draft-dreibholz-rserpool-applic-distcomp-05 (work in
              progress), July 2008.

   [I-D.dreibholz-rserpool-applic-mobility]
              Dreibholz, T. and J. Pulinthanath, "Applicability of
              Reliable Server Pooling for SCTP-Based Endpoint Mobility",
              draft-dreibholz-rserpool-applic-mobility-04 (work in
              progress), July 2008.

   [I-D.coene-rserpool-applic-ipfix]
              Dreibholz, T., Coene, L., and P. Conrad, "Reliable Server
              Pooling Applicability for IP Flow Information Exchange",
              draft-coene-rserpool-applic-ipfix-06 (work in progress),
              July 2008.

Authors' Addresses

   Thomas Dreibholz
   University of Duisburg-Essen, Institute for Experimental Mathematics
   Ellernstrasse 29
   45326 Essen, Nordrhein-Westfalen
   Germany

   Phone: +49-201-1837637
   Fax:   +49-201-1837673
   Email: dreibh@iem.uni-due.de
   URI:   http://www.iem.uni-due.de/~dreibh/

   Jaiwant Mulik
   Delaware State University
   CIS Department
   Room 306A, Science Center North
   1200 N. DuPont Hwy
   Dover, DE  19904
   USA

   Phone: +1-302-857-7910
   Fax:   +1-302-857-6552
   Email: jaiwant@mulik.com
   URI:   http://netlab.cis.desu.edu

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, 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 BCP 78 and BCP 79.

   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
   http://www.ietf.org/ipr.

   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
   ietf-ipr@ietf.org.