Network Working Group                                       T. Dreibholz
Internet-Draft                              University of Duisburg-Essen
Intended status: Standards Track                                J. Mulik
Expires: July 13, 2008 January 12, 2009                      Delaware State University
                                                        January 10,
                                                           July 11, 2008

    Reliable Server Pooling: Management Information Base using SMIv2
                     draft-ietf-rserpool-mib-05.txt
                     draft-ietf-rserpool-mib-06.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 July 13, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2008). January 12, 2009.

Abstract

   RSerPool [2] [I-D.ietf-rserpool-arch] 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
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 36
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 37
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 37
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 37
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 39
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 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 [1],
   [2], [3], [4], [5]
   [RFC3237], [I-D.ietf-rserpool-arch], [I-D.ietf-rserpool-asap],
   [I-D.ietf-rserpool-enrp], [I-D.ietf-rserpool-policies] and [6].
   [I-D.ietf-rserpool-common-param].  A more informal introduction can
   be found at [18]. [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 [12]. [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 [9], [RFC2578], STD 58, RFC 2579 [10] [RFC2579] and STD 58, RFC 2580 [11].
   [RFC2580].

4.  Structure of the MIB

   The following diagram illustrates the structure of the MIB.

   Structure of MIB

    +--rserpoolMIB(????????)
    |
    +--enrpServers(1)
    |  |
    |  +--enrpServerTable(1)
    |  |  |
    |  |  +--enrpServerEntry(1)
    |  |     |  Index: enrpServerIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- String    enrpServerOperationScope(2)
    |  |     |        Textual Convention: OperationScopeType
    |  |     +-- -R-- Unsigned  enrpServerIdentifier(3)
    |  |     |        Textual Convention: ENRPServerIdentifierType
    |  |     |        Range: 1..2147483647
    |  |     +-- -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
    |  |     +-- -R-- String    enrpServerASAPAnnounceAddr(9)
    |  |     |        Textual Convention: InetAddress
    |  |     |        Size: 0..255
    |  |     +-- -R-- Unsigned  enrpServerENRPAnnouncePort(10)
    |  |     |        Range: 1..65535
    |  |     +-- -R-- EnumVal   enrpServerENRPAnnounceAddrType(11)
    |  |     |        Textual Convention: InetAddressType
    |  |     +-- -R-- String    enrpServerENRPAnnounceAddr(12)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--enrpServerPoolTable(3)
    |  |  |
    |  |  +--enrpServerPoolEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerPoolIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- String    enrpServerPoolHandle(2)
    |  |              Textual Convention: PoolHandleType
    |  |
    |  +--enrpServerPoolElementTable(4)
    |  |  |
    |  |  +--enrpServerPoolElementEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex,
    |  |     |         enrpServerPoolElementIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerPoolElementIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- Unsigned  enrpServerPoolElementIdentifier(2)
    |  |     |        Textual Convention: PoolElementIdentifierType
    |  |     |        Range: 1..2147483647
    |  |     +-- -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
    |  |     +-- -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
    |  |
    |  +--enrpServerASAPAddrTable(5)
    |  |  |
    |  |  +--enrpServerASAPAddrTableEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerPoolIndex,
    |  |     |         enrpServerPoolElementIndex,
    |  |     |         enrpServerASAPAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerASAPAddrTableIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- EnumVal   enrpServerASAPL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     +-- -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
    |  |     +-- -R-- EnumVal   enrpServerUserL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     +-- -R-- String    enrpServerUserL3Addr(3)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--enrpServerENRPAddrTable(7)
    |  |  |
    |  |  +--enrpServerENRPAddrTableEntry(1)
    |  |     |  Index: enrpServerIndex, enrpServerENRPAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerENRPAddrTableIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- EnumVal   enrpServerENRPL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     +-- -R-- String    enrpServerENRPL3Addr(3)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--enrpServerPeerTable(8)
    |  |  |
    |  |  +--enrpServerPeerEntry(1)
    |  |     |  Index: enrpServerPeerIndex
    |  |     |
    |  |     +-- ---- Unsigned  enrpServerPeerIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -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
    |        +-- -R-- EnumVal   enrpServerPeerL3Proto(2)
    |        |        Textual Convention: InetAddressType
    |        +-- -R-- String    enrpServerPeerL3Addr(3)
    |                 Textual Convention: InetAddress
    |                 Size: 0..255
    |
    +--poolElements(2)
    |  |
    |  +--poolElementTable(1)
    |  |  |
    |  |  +--poolElementEntry(1)
    |  |     |  Index: poolElementIndex
    |  |     |
    |  |     +-- ---- Unsigned  poolElementIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- String    poolElementOperationScope(2)
    |  |     |        Textual Convention: OperationScopeType
    |  |     +-- -R-- String    poolElementPoolHandle(3)
    |  |     |        Textual Convention: PoolHandleType
    |  |     +-- -R-- Unsigned  poolElementIdentifier(4)
    |  |     |        Textual Convention: PoolElementIdentifierType
    |  |     |        Range: 1..2147483647
    |  |     +-- -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
    |  |     +-- -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
    |  |
    |  +--poolElementASAPAddrTable(2)
    |  |  |
    |  |  +--poolElementASAPAddrTableEntry(1)
    |  |     |  Index: poolElementIndex, poolElementASAPAddrTableIndex
    |  |     |
    |  |     +-- ---- Unsigned  poolElementASAPAddrTableIndex(1)
    |  |     |        Range: 1..2147483647
    |  |     +-- -R-- EnumVal   poolElementASAPL3Proto(2)
    |  |     |        Textual Convention: InetAddressType
    |  |     +-- -R-- String    poolElementASAPL3Addr(3)
    |  |              Textual Convention: InetAddress
    |  |              Size: 0..255
    |  |
    |  +--poolElementUserAddrTable(6)
    |     |
    |     +--poolElementUserAddrTableEntry(1)
    |        |  Index: poolElementIndex, poolElementUserAddrTableIndex
    |        |
    |        +-- ---- Unsigned  poolElementUserAddrTableIndex(1)
    |        |        Range: 1..2147483647
    |        +-- -R-- EnumVal   poolElementUserL3Proto(2)
    |        |        Textual Convention: InetAddressType
    |        +-- -R-- String    poolElementUserL3Addr(3)
    |                 Textual Convention: InetAddress
    |                 Size: 0..255
    |
    +--poolUsers(3)
    |  |
    |  +--poolUserTable(1)
    |     |
    |     +--poolUserEntry(1)
    |        |  Index: poolUserIndex
    |        |
    |        +-- ---- Unsigned  poolUserIndex(1)
    |        |        Range: 1..2147483647
    |        +-- -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 [20]. [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 "200706181012Z" "200807111012Z" -- June 18, 2007 July 11, 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@exp-math.uni-essen.de 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 "200706181012Z" "200807111012Z" -- June 18, 2007 July 11, 2008
    DESCRIPTION
    "Version 05, published as draft-ietf-rserpool-mib-05.txt."
    ::= { mib-2 xxxxxxxxxx } -- 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)
    }

    -- ## 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 }

    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 }

    -- ## 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 }

    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."
    ::= { poolElementUserAddrTableEntry 2 }

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

    -- ################################################################
    -- #### 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,

    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 }
    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 [7] [RFC2574] and the View-based View-
   based Access Control Model RFC 2575 [8] [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.

9.  References

9.1.  Normative References

   [1]

   [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.

   [2]

   [I-D.ietf-rserpool-arch]
              Tuexen, M., "Architecture for Reliable Server Pooling",
         draft-ietf-rserpool-arch-10
              draft-ietf-rserpool-arch-12 (work in progress), July 2005.

   [3]
              November 2006.

   [I-D.ietf-rserpool-asap]
              Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
              "Aggregate Server Access Protocol (ASAP)",
         draft-ietf-rserpool-asap-13
              draft-ietf-rserpool-asap-20 (work in progress), February 2006.

   [4] May 2008.

   [I-D.ietf-rserpool-enrp]
              Xie, Q., Stewart, R., Stillman, M., Tuexen, M., and A.
              Silverton, "Endpoint Handlespace Redundancy Protocol
              (ENRP)",
         draft-ietf-rserpool-enrp-13 draft-ietf-rserpool-enrp-20 (work in progress), February 2006.

   [5]
              May 2008.

   [I-D.ietf-rserpool-policies]
              Tuexen, M. and T. Dreibholz, "Reliable Server Pooling
              Policies", draft-ietf-rserpool-policies-02 draft-ietf-rserpool-policies-09 (work in
              progress),
         February 2006.

   [6] May 2008.

   [I-D.ietf-rserpool-common-param]
              Stewart, R., Xie, Q., Stillman, M., and M. Tuexen,
              "Aggregate Server Access Protocol (ASAP) and Endpoint
              Handlespace Redundancy  Protocol (ENRP) Parameters",
         draft-ietf-rserpool-common-param-10
              draft-ietf-rserpool-common-param-17 (work in progress),
         February 2006.

   [7]
              May 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.

   [8]

   [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.

   [9]

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

   [10]

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

   [11]

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

   [12]

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

   [13]

   [I-D.dreibholz-rserpool-asap-hropt]
              Dreibholz, T., "Handle Resolution Option for ASAP",
         draft-dreibholz-rserpool-asap-hropt-00
              draft-dreibholz-rserpool-asap-hropt-01 (work in progress),
         June 2007.

   [14]
              January 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-00
              draft-dreibholz-rserpool-delay-01 (work in progress), June 2007.

   [15]
              January 2008.

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

   [16] January 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-00
              draft-dreibholz-rserpool-applic-mobility-03 (work in
              progress),
         March 2006.

   [17] January 2008.

   [I-D.coene-rserpool-applic-ipfix]
              Coene, L., "Reliable Server Pooling Applicability for IP
              Flow Information Exchange", draft-coene-rserpool-applic-ipfix-03
              draft-coene-rserpool-applic-ipfix-05 (work in progress), August 2006.
              January 2008.

9.2.  Informative References

   [18]

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

   [19]

   [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, http://
              duepublico.uni-duisburg-essen.de/servlets/DerivateServlet/
              Derivate-16326/Dre2006-final.pdf, March 2007.

   [20]

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

   [21]

   [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.

   [22]

   [Tencon2005]
              Dreibholz, T. and E. Rathgeb, "The Performance of Reliable
              Server Pooling Systems in Different Server Capacity
              Scenarios", Proceedings of the IEEE TENCON, November 2005.

   [23]

   [Contel2005]
              Dreibholz, T. and E. Rathgeb, "Implementing the Reliable
              Server Pooling Framework", Proceedings of the 8th IEEE
              International Conference on Telecommunications, June 2005.

   [24]

   [ICN2005]  Dreibholz, T., Rathgeb, E., and M. Tuexen, "Load
              Distribution Performance of the Reliable Server Pooling
              Framework", Proceedings of the 4th IEEE International
              Conference on Networking, April 2005.

   [25]

   [Euromicro2005]
              Dreibholz, T. and E. Rathgeb, "RSerPool -- Providing
              Highly Available Services using Unreliable Servers",
              Proceedings Proceedings of the 31st IEEE EuroMirco
              Conference on Software Engineering and Advanced
              Applications, August 2005.

   [26]

   [Euromicro2007]
              Dreibholz, T., Zhou, X., and E. Rathgeb, "A Performance
              Evaluation of RSerPool Server Selection Policies in
              Varying Heterogeneous Capacity Scenarios", Proceedings of
              the 33rd IEEE EuroMirco Conference on Software Engineering
              and Advanced Applications, August 2007.

   [27]

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

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@exp-math.uni-essen.de dreibh@iem.uni-due.de
   URI:   http://www.exp-math.uni-essen.de/~dreibh/   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.

Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).