Network Working Group T. Dreibholz Internet-Draft University of Duisburg-Essen Expires: December 12, 2005 J. Mulik Temple University P. Conrad University of Delaware K. Pinzhoffer Temple University Jun 10, 2005 Reliable Server Pooling: Management Information Base using SMIv2 draft-ietf-rserpool-mib-01.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 December 12, 2005. Copyright Notice Copyright (C) The Internet Society (2005). Abstract RSerPool [20] 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 Dreibholz, et al. Expires December 12, 2005 [Page 1] Internet-Draft RSerPool MIB Jun 2005 implementation. Dreibholz, et al. Expires December 12, 2005 [Page 2] Internet-Draft RSerPool MIB Jun 2005 1. Introduction This memo defines a Management Information Base (MIB) module which describes managed objects for RserPool implementations. The MIB defined in this memo is described using the Structure of Management Information version 2, as defined in RFC1902 [6], RFC1903 [7], and RFC1904 [8]. Dreibholz, et al. Expires December 12, 2005 [Page 3] Internet-Draft RSerPool MIB Jun 2005 2. The SNMP Management Framework The SNMP Management Framework presently consists of five major components: o An overall architecture, described in RFC 2571 [12]. o Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in STD 16, RFC 1155 [1], STD 16, RFC 1212 [3] and RFC 1215 [4]. The second version, called SMIv2, is described in STD 58, RFC 2578 [17], STD 58, RFC 2579 [18] and STD 58, RFC 2580 [19]. o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [2]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [5] and RFC 1906 [10]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [10], RFC 2572 [13] and RFC 2574 [15]. o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [2]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [9]. o A set of fundamental applications described in RFC 2573 [14] and the view-based access control mechanism described in RFC 2575 [16]. A more detailed introduction to the current SNMP Management Framework can be found in RFC 2570 [11]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the Dreibholz, et al. Expires December 12, 2005 [Page 4] Internet-Draft RSerPool MIB Jun 2005 MIB. Dreibholz, et al. Expires December 12, 2005 [Page 5] Internet-Draft RSerPool MIB Jun 2005 3. Structure of the MIB The following diagram illustrates the structure of the MIB. Structure of MIB +--rserpoolMIB(12345) | +--enrpServers(1) | | | +-- -R-- Counter enrpServerCount(1) | | | +--enrpServerTable(2) | | | | | +--enrpServerEntry(1) | | | Index: enrpServerIndex | | | | | +-- ---- INTEGER enrpServerIndex(1) | | | Textual Convention: ENRPServerIndex | | | Range: 1..2147483647 | | +-- -R-- INTEGER enrpServerIdentifier(2) | | | Textual Convention: ENRPServerIdentifier | | | Range: 1..2147483647 | | +-- -R-- INTEGER enrpServerOperationScope(3) | | | Textual Convention: PoolElementIdentifier | | | Range: 1..2147483647 | | +-- -R-- TimeTicks enrpServerUptime(4) | | +-- -R-- String enrpServerDescription(5) | | | Textual Convention: ENRPServerDescription | | | Size: 0..255 | | +-- -R-- INTEGER enrpPort(6) | | | Range: 1..65535 | | +-- -R-- Counter enrpAddrCount(7) | | +-- -R-- Counter peerCount(8) | | +-- -R-- Counter poolCount(9) | | +-- -R-- INTEGER enrpServerASAPAnnouncePort(10) | | | Range: 1..65535 | | +-- -R-- String enrpServerASAPAnnounceAddr(11) | | | Textual Convention: InetAddress | | | Size: 0..255 | | +-- -R-- INTEGER enrpServerENRPAnnouncePort(12) | | | Range: 1..65535 | | +-- -R-- String enrpServerENRPAnnounceAddr(13) | | Textual Convention: InetAddress | | Size: 0..255 | | | +--poolTable(3) Dreibholz, et al. Expires December 12, 2005 [Page 6] Internet-Draft RSerPool MIB Jun 2005 | | | | | +--poolEntry(1) | | | Index: enrpServerIndex, poolIndex | | | | | +-- ---- INTEGER poolIndex(1) | | | Textual Convention: PoolIndex | | | Range: 1..2147483647 | | +-- -R-- Counter poolElementCount(2) | | +-- -R-- String poolHandle(3) | | Textual Convention: PoolHandle | | | +--poolElementTable(4) | | | | | +--poolElementEntry(1) | | | Index: enrpServerIndex, poolIndex, poolElementIndex | | | | | +-- -R-- INTEGER poolElementIndex(1) | | | Textual Convention: PoolElementIndex | | | Range: 1..2147483647 | | +-- -R-- INTEGER asapTransportPort(2) | | | Range: 1..65535 | | +-- -R-- Counter asapTransportAddrCount(3) | | +-- -R-- INTEGER userTransportProtocol(4) | | | Range: 0..255 | | +-- -R-- INTEGER userTransportPort(5) | | | Range: 1..65535 | | +-- -R-- EnumVal userTransportUse(6) | | | Textual Convention: TransportUse | | | Values: dataOnly(0), dataPlusControl(1) | | +-- -R-- Counter userTransportAddrCount(7) | | +-- -R-- INTEGER policyType(8) | | | Textual Convention: PolicyType | | | Range: 0..255 | | +-- -R-- String policyDescr(9) | | | Textual Convention: PolicyDescription | | | Size: 0..255 | | +-- -R-- INTEGER policyWeight(10) | | | Textual Convention: PolicyWeight | | | Range: 0..16777215 | | +-- -R-- INTEGER policyLoad(11) | | | Textual Convention: PolicyLoad | | | Range: 0..16777215 | | +-- -R-- INTEGER policyLoadDegradation(12) | | | Textual Convention: PolicyLoad | | | Range: 0..16777215 | | +-- -R-- TimeTicks registrationLife(13) | | +-- -R-- INTEGER homeENRPServer(14) | | Textual Convention: ENRPServerIdentifier Dreibholz, et al. Expires December 12, 2005 [Page 7] Internet-Draft RSerPool MIB Jun 2005 | | Range: 1..2147483647 | | | +--asapTransportAddrListTable(5) | | | | | +--asapTransportAddrListTableEntry(1) | | | Index: enrpServerIndex, poolIndex, poolElementIndex, | | | asapTransportAddrListTableIndex | | | | | +-- ---- Unsigned asapTransportAddrListTableIndex(1) | | | Range: 1..2147483647 | | +-- -R-- INTEGER networkLayerProtocol(2) | | | Range: 0..255 | | +-- -R-- String networkLayerAddress(3) | | Textual Convention: InetAddress | | Size: 0..255 | | | +--userTransportAddrListTable(6) | | | | | +--userTransportAddrListTableEntry(1) | | | Index: enrpServerIndex, poolIndex, poolElementIndex, | | | userTransportAddrListTableIndex | | | | | +-- ---- Unsigned userTransportAddrListTableIndex(1) | | | Range: 1..2147483647 | | +-- -R-- INTEGER networkLayerProtocol(2) | | | Range: 0..255 | | +-- -R-- String networkLayerAddress(3) | | Textual Convention: InetAddress | | Size: 0..255 | | | +--enrpAddrListTable(7) | | | | | +--enrpAddrListTableEntry(1) | | | Index: enrpIndex, enrpAddrListTableIndex | | | | | +-- ---- Unsigned enrpAddrListTableIndex(1) | | | Range: 1..2147483647 | | +-- -R-- INTEGER networkLayerProtocol(2) | | | Range: 0..255 | | +-- -R-- String networkLayerAddress(3) | | Textual Convention: InetAddress | | Size: 0..255 | | | +--peerTable(8) | | | | | +--peerEntry(1) | | | Index: peerIndex | | | Dreibholz, et al. Expires December 12, 2005 [Page 8] Internet-Draft RSerPool MIB Jun 2005 | | +-- ---- Unsigned peerIndex(1) | | | Range: 1..2147483647 | | +-- -R-- Unsigned peerIdentifier(2) | | +-- -R-- INTEGER peerPort(3) | | | Range: 1..65535 | | +-- -R-- TimeTicks peerLastHeard(4) | | +-- -R-- TimeTicks peerAddrCount(5) | | | +--peerAddrListTable(9) | | | +--peerAddrListTableEntry(1) | | Index: peerIndex, peerAddrListTableIndex | | | +-- ---- Unsigned peerAddrListTableIndex(1) | | Range: 1..2147483647 | +-- -R-- INTEGER networkLayerProtocol(2) | | Range: 0..255 | +-- -R-- String networkLayerAddress(3) | Textual Convention: InetAddress | Size: 0..255 | +--poolElements(2) ... ... ... +--poolUsers(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 Dreibholz, et al. Expires December 12, 2005 [Page 9] Internet-Draft RSerPool MIB Jun 2005 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. 3.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 [21]. Specifically, the ENRP servers branch creates four levels of nesting, as indicated in the following diagram: Nesting of Nameserver Branch Nesting Structure: Level 1: enrpServerTable Level 2: poolTable Level 3: poolElementTable Level 4: asapTransportAddrListTable userTransportAddrListTable Level 2: enrpAddrListTable Level 2: peerTable Level 3: peerAddrListTable 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 poolTable consists of a poolTableEntry, with three elements: a poolIndex, a poolElementCount, and an OCTET STRING representation of the pool handle. The poolElementCount is the number of pool elements registered with this pool handle. The poolIndex is simply an integer that is used to index into the poolTable and the poolElementTable. The value of this integer is between zero and (poolCount - 1). Note that the value of poolIndex Dreibholz, et al. Expires December 12, 2005 [Page 10] Internet-Draft RSerPool MIB Jun 2005 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 poolElementTable. Because the poolElementTable is the "inner" table of the table-in-table structure, its index consists of a pair, as indicated in the clause "INDEX { enrpServerIndex, poolIndex, poolElementIndex }". The fourth element of the ENRP servers branch takes the nesting to one additional level, listing the various addresses associated with a particular poolElement in form of ASAP endpoint addresses and user transport addresses, and thus are indexed by the 4-tuples "INDEX { enrpServerIndex, poolIndex, poolElementIndex, asapTransportAddrListTableIndex }" and "INDEX { enrpServerIndex, poolIndex, poolElementIndex, userTransportAddrListTableIndex }". The ENRP endpoint addresses of an ENRP server are bound to its instance in the enrpAddrListTable by "INDEX { enrpIndex, enrpAddrListTableIndex }". Finally, an ENRP server has a peer table of its known peers. They are bound to a server instance by the peerTable; analogously, the addresses of a peer are bound to a peerTable's entry in the peerAddrListTable. 3.2 Access to managed objects on Pool Elements The construction of the Pool Elements branch is very similar to the ENRP servers branch. But in this case, the nesting step of the enrpServerTable can be omitted and pools and their corresponding pool elements be directly defined. That is, the nesting structure is as follows: Level 1: poolTable Level 2: poolElementTable Level 3: asapTransportAddrListTable userTransportAddrListTable 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. 3.3 Access to managed objects on Pool Users The construction of the Pool Elements branch is analogous to the ENRP servers branch: multiple PU instances can run on the same host. Therefore, it is first necessary to hold a table of them. Level 1: poolUserTable Dreibholz, et al. Expires December 12, 2005 [Page 11] Internet-Draft RSerPool MIB Jun 2005 ... TODO: How should a PU be defined? PH, server table and current address(es)? Dreibholz, et al. Expires December 12, 2005 [Page 12] Internet-Draft RSerPool MIB Jun 2005 4. Definitions RSERPOOL-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, Unsigned32 FROM SNMPv2-SMI InetAddress FROM INET-ADDRESS-MIB; -- ## Module definition ########################################### rserpoolMIB MODULE-IDENTITY LAST-UPDATED "200506100820Z" 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 Email: dreibh@exp-math.uni-essen.de JAIWANT-MULIK PHILLIP-CONRAD KEVIN-PINZHOFFER Postal: 1805, N Broad St. Philadelphia, PA USA 19121 Phones: +1 215 204 7910 Emails: jmulik@temple.edu conrad@acm.org kpinzhof@temple.edu" DESCRIPTION "The MIB module for managing a RSerPool implementation" ::= { mib-2 12345 } -- To be IANA Assigned!!! Dreibholz, et al. Expires December 12, 2005 [Page 13] Internet-Draft RSerPool MIB Jun 2005 -- ## RSerPool type definitions ################################### ENRPServerIdentifier ::= INTEGER (1..4294967295) ENRPServerDescription ::= OCTET STRING (0..255) OperationScope ::= OCTET STRING PoolHandle ::= OCTET STRING PoolElementIdentifier ::= INTEGER (1..4294967295) PolicyType ::= INTEGER (0..255) PolicyDescription ::= OCTET STRING (0..255) PolicyLoad ::= INTEGER (0..16777215) PolicyWeight ::= INTEGER (0..16777215) TransportUse ::= INTEGER { dataOnly(0), dataPlusControl(1) } ENRPServerIndex ::= INTEGER (1..2147483647) PoolIndex ::= INTEGER (1..2147483647) PoolElementIndex ::= INTEGER (1..2147483647) -- ## Top-level definitions ####################################### enrpServers OBJECT IDENTIFIER ::= { rserpoolMIB 1 } poolElements OBJECT IDENTIFIER ::= { rserpoolMIB 2 } poolUsers OBJECT IDENTIFIER ::= { rserpoolMIB 3 } -- ## Definition of the ENRP server table ######################### enrpServerCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of ENRP servers on this host" ::= { enrpServers 1 } enrpServerTable OBJECT-TYPE SYNTAX SEQUENCE OF enrpServerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual table listing of the ENRP servers on this host" ::= { enrpServers 2 } Dreibholz, et al. Expires December 12, 2005 [Page 14] Internet-Draft RSerPool MIB Jun 2005 enrpServerEntry OBJECT-TYPE SYNTAX ENRPServerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual row in enrpServerTable" INDEX { enrpServerIndex } ::= { enrpServerTable 1 } ENRPServerEntry ::= SEQUENCE { enrpServerIndex ENRPServerIndex, enrpServerElementCount Counter32, enrpServerIdentifier ENRPServerIdentifier, enrpServerUptime timeTicks, enrpServerDescription ENRPServerDescription, enrpPort INTEGER, enrpAddrCount Counter32, peerCount Counter32, poolCount Counter32, enrpServerASAPAnnouncePort INTEGER, enrpServerASAPAnnounceAddr InetAddress, enrpServerENRPAnnouncePort INTEGER, enrpServerENRPAnnounceAddr InetAddress } enrpServerIndex OBJECT-TYPE SYNTAX ENRPServerIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is the index to the enrpServerTable" ::= { enrpServerEntry 1 } enrpServerIdentifier OBJECT-TYPE SYNTAX ENRPServerIdentifier MAX-ACCESS read-only STATUS current DESCRIPTION "This is the ENRP server identifier of this row" ::= { enrpServerEntry 2 } enrpServerOperationScope OBJECT-TYPE SYNTAX PoolElementIdentifier MAX-ACCESS read-only STATUS current DESCRIPTION "This is the operation scope of this row" ::= { enrpServerEntry 3 } Dreibholz, et al. Expires December 12, 2005 [Page 15] Internet-Draft RSerPool MIB Jun 2005 enrpServerUptime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "This is the uptime of this row" ::= { enrpServerEntry 4 } enrpServerDescription OBJECT-TYPE SYNTAX ENRPServerDescription MAX-ACCESS read-only STATUS current DESCRIPTION "This is the description of this row" ::= { enrpServerEntry 5 } enrpPort OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the ENRP transport protocol's port number of a pool element" ::= { enrpServerEntry 6 } enrpAddrCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The ENRP address count of this row" ::= { enrpServerEntry 7 } peerCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of peers of this ENRP server" ::= { enrpServerEntry 8 } poolCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of pools of this ENRP server" ::= { enrpServerEntry 9 } Dreibholz, et al. Expires December 12, 2005 [Page 16] Internet-Draft RSerPool MIB Jun 2005 enrpServerASAPAnnouncePort OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the ASAP/UDP port number the announces are sent to" ::= { enrpServerEntry 10 } enrpServerASAPAnnounceAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the ASAP/UDP multicast address the announces are sent to" ::= { enrpServerEntry 11 } enrpServerENRPAnnouncePort OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the ENRP/UDP port number the announces are sent to" ::= { enrpServerEntry 12 } enrpServerENRPAnnounceAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the ENRP/UDP multicast address the announces are sent to" ::= { enrpServerEntry 13 } -- ## Definition of the pool table ################################ poolTable OBJECT-TYPE SYNTAX SEQUENCE OF poolEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual table listing of the pool served by this handlespace" ::= { enrpServers 3 } Dreibholz, et al. Expires December 12, 2005 [Page 17] Internet-Draft RSerPool MIB Jun 2005 poolEntry OBJECT-TYPE SYNTAX PoolEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual row in poolTable" INDEX { enrpServerIndex poolIndex } ::= { poolTable 1 } PoolEntry ::= SEQUENCE { poolIndex PoolIndex, poolElementCount Counter32, poolHandle PoolHandle } poolIndex OBJECT-TYPE SYNTAX PoolIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is the index to the poolTable" ::= { poolEntry 1} poolElementCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of pool elements that belong to this pool handle" ::= { poolEntry 2 } poolHandle OBJECT-TYPE SYNTAX PoolHandle MAX-ACCESS read-only STATUS current DESCRIPTION "The pool handle of this row" ::= { poolEntry 3 } -- ## Definition of the pool element table ######################## poolElementTable OBJECT-TYPE SYNTAX SEQUENCE OF poolElementEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual table listing the PEs per pool handle" Dreibholz, et al. Expires December 12, 2005 [Page 18] Internet-Draft RSerPool MIB Jun 2005 ::= { enrpServers 4 } poolElementEntry OBJECT-TYPE SYNTAX PoolELementEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual row in poolElementTable. Note the compound index element. We are using the table-in-table idea here." INDEX { enrpServerIndex, poolIndex, poolElementIndex } ::= { poolElementTable 1 } PoolElementEntry ::= SEQUENCE { poolElementIndex PoolElementIndex, asapTransportPort INTEGER, asapTransportAddrCount Counter32, userTransportProtocol INTEGER, userTransportPort INTEGER, userTransportUse TransportUse, userTransportAddrCount Counter32, policyType PolicyType, policyDescr PolicyDescription, polcyWeight PolicyWeight, polcyLoad PolicyLoad, polcyLoadDegradation PolicyLoad, registrationLife TimeTicks, homeENRPServer ENRPServerIdentifier } poolElementIndex OBJECT-TYPE SYNTAX PoolElementIndex MAX-ACCESS read-only STATUS current DESCRIPTION "This is the index into the poolElementTable" ::={ poolElementEntry 1 } asapTransportPort OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the ASAP transport protocol's port number of a pool element" ::= { poolElementEntry 2 } Dreibholz, et al. Expires December 12, 2005 [Page 19] Internet-Draft RSerPool MIB Jun 2005 asapTransportAddrCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Counts the number of ASAP network-layer addresses assigned to a pool element" ::= { poolElementEntry 3 } userTransportProtocol OBJECT-TYPE SYNTAX INTEGER (0..255) MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the user transport protocol ID of a pool element" ::= { poolElementEntry 4 } userTransportPort OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the user transport protocol's port number of a pool element" ::= { poolElementEntry 5 } userTransportUse OBJECT-TYPE SYNTAX TransportUse MAX-ACCESS read-only STATUS current DESCRIPTION "Contains the user transport use of a pool element" ::= { poolElementEntry 6 } userTransportAddrCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Counts the number of user transport network-layer addresses assigned to a pool element" ::= { poolElementEntry 7 } policyType OBJECT-TYPE SYNTAX PolicyType Dreibholz, et al. Expires December 12, 2005 [Page 20] Internet-Draft RSerPool MIB Jun 2005 MAX-ACCESS read-only STATUS current DESCRIPTION "The policy type of this pool element" ::= { poolElementEntry 8 } policyDescr OBJECT-TYPE SYNTAX PolicyDescription MAX-ACCESS read-only STATUS current DESCRIPTION "The policy description of this pool element" ::= { poolElementEntry 9 } policyWeight OBJECT-TYPE SYNTAX PolicyWeight MAX-ACCESS read-only STATUS current DESCRIPTION "The policy's weight parameter of this pool element" ::= { poolElementEntry 10 } policyLoad OBJECT-TYPE SYNTAX PolicyLoad MAX-ACCESS read-only STATUS current DESCRIPTION "The policy's load parameter of this pool element" ::= { poolElementEntry 11 } policyLoadDegradation OBJECT-TYPE SYNTAX PolicyLoad MAX-ACCESS read-only STATUS current DESCRIPTION "The policy's load degradation parameter of this pool element" ::= { poolElementEntry 12 } registrationLife OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The registration life of the pool element" ::= { poolElementEntry 13 } Dreibholz, et al. Expires December 12, 2005 [Page 21] Internet-Draft RSerPool MIB Jun 2005 homeENRPServer OBJECT-TYPE SYNTAX ENRPServerIdentifier MAX-ACCESS read-only STATUS current DESCRIPTION "The ID of the home ENRP server of the pool element" ::= { poolElementEntry 14 } -- ## Definition of asap transport address list table ############# asapTransportAddrListTable OBJECT-TYPE SYNTAX SEQUENCE OF asapTransportAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table holds all the IP addresses of a multi-homed host" ::= { enrpServers 5 } asapTransportAddrListTableEntry OBJECT-TYPE SYNTAX ASAPTransportAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the asapTransportAddrList table" INDEX { enrpServerIndex, poolIndex, poolElementIndex, asapTransportAddrListTableIndex } ::= { asapTransportAddrListTable 1 } ASAPTransportAddrListTableEntry ::= SEQUENCE { asapTransportAddrListTableIndex Unsigned32, networkLayerProtocol INTEGER, networkLayerAddress InetAddress } asapTransportAddrListTableIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is the index into the asapTransportAddrListTable" ::= { asapTransportAddrListTableEntry 1 } networkLayerProtocol OBJECT-TYPE SYNTAX INTEGER (0..255) MAX-ACCESS read-only STATUS current DESCRIPTION Dreibholz, et al. Expires December 12, 2005 [Page 22] Internet-Draft RSerPool MIB Jun 2005 "The protocol column in the asapTransportAddrListTable" ::= { asapTransportAddrListTableEntry 2 } networkLayerAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The address column in the asapTransportAddrListTable" ::= { asapTransportAddrListTableEntry 3 } -- ## Definition of user transport address list table ############# userTransportAddrListTable OBJECT-TYPE SYNTAX SEQUENCE OF userTransportAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table holds all the IP addresses of a multi-homed host" ::= { enrpServers 6 } userTransportAddrListTableEntry OBJECT-TYPE SYNTAX UserTransportAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the userTransportAddrList table" INDEX { enrpServerIndex, poolIndex, poolElementIndex, userTransportAddrListTableIndex } ::= { userTransportAddrListTable 1 } UserTransportAddrListTableEntry ::= SEQUENCE { userTransportAddrListTableIndex Unsigned32, networkLayerProtocol INTEGER, networkLayerAddress InetAddress } userTransportAddrListTableIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is the index into the userTransportAddrListTable" ::= { userTransportAddrListTableEntry 1 } Dreibholz, et al. Expires December 12, 2005 [Page 23] Internet-Draft RSerPool MIB Jun 2005 networkLayerProtocol OBJECT-TYPE SYNTAX INTEGER (0..255) MAX-ACCESS read-only STATUS current DESCRIPTION "The protocol column in the userTransportAddrListTable" ::= { userTransportAddrListTableEntry 2 } networkLayerAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The address column in the userTransportAddrListTable" ::= { userTransportAddrListTableEntry 3 } -- ## Definition of ENRP address list table ####################### enrpAddrListTable OBJECT-TYPE SYNTAX SEQUENCE OF enrpAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table holds all the IP addresses of a multi-homed host" ::= { enrpServers 7 } enrpAddrListTableEntry OBJECT-TYPE SYNTAX PeerAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the enrpAddrList table" INDEX { enrpIndex, enrpAddrListTableIndex } ::= { enrpAddrListTable 1 } PeerAddrListTableEntry ::= SEQUENCE { enrpAddrListTableIndex Unsigned32, networkLayerProtocol INTEGER, networkLayerAddress InetAddress } enrpAddrListTableIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current Dreibholz, et al. Expires December 12, 2005 [Page 24] Internet-Draft RSerPool MIB Jun 2005 DESCRIPTION "This is the index into the enrpAddrListTable" ::= { enrpAddrListTableEntry 1 } networkLayerProtocol OBJECT-TYPE SYNTAX INTEGER (0..255) MAX-ACCESS read-only STATUS current DESCRIPTION "The protocol column in the enrpAddrListTable" ::= { enrpAddrListTableEntry 2 } networkLayerAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The address column in the enrpAddrListTable" ::= { enrpAddrListTableEntry 3 } -- ## Definition of peer table #################################### peerTable OBJECT-TYPE SYNTAX SEQUENCE OF peerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual table listing of the peer of this ENRP server" ::= { enrpServers 8 } peerEntry OBJECT-TYPE SYNTAX PeerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The conceptual row in peerTable" INDEX { peerIndex } ::= { peerTable 1 } PeerEntry ::= SEQUENCE { peerIndex Unsigned32, peerIdentifier OCTET STRING, peerPort INTEGER, peerLastHeard TimeTicks peerAddrCount Counter32 } peerIndex OBJECT-TYPE Dreibholz, et al. Expires December 12, 2005 [Page 25] Internet-Draft RSerPool MIB Jun 2005 SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is the index to the peerTable" ::= { peerEntry 1 } peerIdentifier OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The peer ENRP identifier of this row" ::= { peerEntry 2 } peerPort OBJECT-TYPE SYNTAX INTEGER (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "The poort's port number" ::= { peerEntry 3 } peerLastHeard OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The peer last heard information of this row" ::= { peerEntry 4 } peerAddrCount OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The peer address count of this row" ::= { peerEntry 5 } -- ## Definition of peer address list table ####################### peerAddrListTable OBJECT-TYPE SYNTAX SEQUENCE OF peerAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table holds all the IP addresses of a multi-homed host" Dreibholz, et al. Expires December 12, 2005 [Page 26] Internet-Draft RSerPool MIB Jun 2005 ::= { enrpServers 9 } peerAddrListTableEntry OBJECT-TYPE SYNTAX PeerAddrListTableEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in the peerAddrList table" INDEX { peerIndex, peerAddrListTableIndex } ::= { peerAddrListTable 1 } PeerAddrListTableEntry ::= SEQUENCE { peerAddrListTableIndex Unsigned32, networkLayerProtocol INTEGER, networkLayerAddress InetAddress } peerAddrListTableIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is the index into the peerAddrListTable" ::= { peerAddrListTableEntry 1 } networkLayerProtocol OBJECT-TYPE SYNTAX INTEGER (0..255) MAX-ACCESS read-only STATUS current DESCRIPTION "The protocol column in the peerAddrListTable" ::= { peerAddrListTableEntry 2 } networkLayerAddress OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The address column in the peerAddrListTable" ::= { peerAddrListTableEntry 3 } END For sake of brevity and to avoid inadvertant inconsistencies due to typos, we omit the full elaboration of the poolElements and poolUsers branch. However, we repeat for emphasis that the semantics of the two branches are different, as noted earlier in this memo. Dreibholz, et al. Expires December 12, 2005 [Page 27] Internet-Draft RSerPool MIB Jun 2005 5. 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 [15] and the View-based Access Control Model RFC 2575 [16] 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. Dreibholz, et al. Expires December 12, 2005 [Page 28] Internet-Draft RSerPool MIB Jun 2005 6. IANA Considerations IANA will need to assign an OID prefix for the RSerPool MIB. 7. References [1] Rose, M. and K. McCloghrie, "Structure and identification of management information for TCP/IP-based internets", STD 16, RFC 1155, May 1990. [2] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol (SNMP)", STD 15, RFC 1157, May 1990. [3] Rose, M. and K. McCloghrie, "Concise MIB definitions", STD 16, RFC 1212, March 1991. [4] Rose, M., "Convention for defining traps for use with the SNMP", RFC 1215, March 1991. [5] Case, J., McCloghrie, K., McCloghrie, K., Rose, M., and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996. [6] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January 1996. [7] McCloghrie, K., Case, J., Rose, M., and S. Waldbusser, "Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1903, January 1996. [8] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1904, January 1996. [9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996. [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996. [11] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999. Dreibholz, et al. Expires December 12, 2005 [Page 29] Internet-Draft RSerPool MIB Jun 2005 [12] Wijnen, B., Harrington, D., and R. Presuhn, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999. [13] Case, J., Harrington, D., Presuhn, R., and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2572, April 1999. [14] Levi, D., Meyer, P., and B. Stewart, "SNMP Applications", RFC 2573, April 1999. [15] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2574, April 1999. [16] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2575, April 1999. [17] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [18] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [19] McCloghrie, K., Perkins, D., and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [20] Tuexen, M., Xie, Q., Stewart, R., Shore, M., Loughney, J., and A. Silverton, "Architecture for Reliable Server Pooling", draft-ietf-rserpool-arch-09 (work in progress), February 2005. [21] Perkins, D. and E. McGinnis, "Understanding SNMP MIBs", 1997. Dreibholz, et al. Expires December 12, 2005 [Page 30] Internet-Draft RSerPool MIB Jun 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 URI: http://www.exp-math.uni-essen.de/~dreibh/ Jaiwant Mulik Temple University CIS Department Room 303, Computer Building (038-24) 1805 N. Broad St. Philadelphia, PA 19122 US Phone: +1 215 204 3197 Email: jmulik@temple.edu URI: http://unix.temple.edu/~jmulik Phillip Conrad University of Delaware 103 Smith Hall Newark DE 19716 USA Phone: +1 302 831 8622 Email: conrad@acm.org Kevin Pinzhoffer Temple University CIS Department Room 303, Computer Building (038-24) 1805 N. Broad St. Philadelphia, PA 19122 US Phone: +1 215 204 3197 Email: kpinzhof@temple.edu Dreibholz, et al. Expires December 12, 2005 [Page 31] Internet-Draft RSerPool MIB Jun 2005 Intellectual Property Statement 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. Disclaimer of Validity 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 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. Copyright Statement Copyright (C) The Internet Society (2005). 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. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Dreibholz, et al. Expires December 12, 2005 [Page 32]