-- extracted from draft-kkoushik-pce-pcep-mib-01.txt -- at Tue Jul 24 06:08:49 2007 PCE-PCEP-DRAFT-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Counter32, Unsigned32, Gauge32, Integer32, IpAddress, experimental FROM SNMPv2-SMI RowStatus, TimeInterval, TruthValue, TimeStamp, StorageType,TEXTUAL-CONVENTION FROM SNMPv2-TC -- [RFC2579] InetAddressPrefixLength, InetAddressType, InetAddress, InetPortNumber FROM INET-ADDRESS-MIB -- [RFC4001] MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF; pcePcepDraftMIB MODULE-IDENTITY LAST-UPDATED "200707080000Z" --July 8, 2007 ORGANIZATION "Path Computation Element (PCE) Working Group" CONTACT-INFO " A S Kiran Koushik Cisco Systems Inc. Stephan Emile France Telecom DR&D Email: kkoushik@cisco.com Email: emile.stephan@orange-ft.com Email comments directly to the PCE WG Mailing List at pce@ietf.org WG-URL: http://www.ietf.org/html.charters/pce-charter.html " DESCRIPTION "This MIB module defines a collection of objects for managing PCE communication protocol(PCEP)." -- Revision history REVISION "200707081200Z" -- July 8 2007 12:00:00 EST DESCRIPTION " Changes from -00- draft : 1. Clarified the notion of PCEP Client. 2. Added new objects to the PCEP client and session tables to manage PCEP protocol as in section 8 of draft-ietf-pce-pcep-08.txt 3. Did not add all the objects to manage the recommendations in draft-ietf-pce-pcep-08.txt to control the complexity of the MIB." REVISION "200702201200Z" -- 20 Feb 2007 12:00:00 EST DESCRIPTION "draft-00 version" ::= { experimental 9999 } -- -- Textual Conventions used in this MIB module -- PcePcepIdentifier ::= TEXTUAL-CONVENTION DISPLAY-HINT "1d.1d.1d.1d:1d:1d" STATUS current DESCRIPTION "The LDP identifier is a six octet quantity which is used to identify a PCE client." SYNTAX OCTET STRING (SIZE (6)) -- Notifications -- pcePcepNotifications OBJECT IDENTIFIER ::= { pcePcepDraftMIB 0 } pcePcepMIBObjects OBJECT IDENTIFIER ::= { pcePcepDraftMIB 1 } pcePcepConformance OBJECT IDENTIFIER ::= { pcePcepDraftMIB 2 } pcePcepClientObjects OBJECT IDENTIFIER ::= { pcePcepMIBObjects 1 } -- -- PCE Client Objects -- pcePcepClientLastChange OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time of the most recent addition or deletion of an entry to/from the pcePcepClientTable/pcePcepClientStatsTable, or the most recent change in value of any objects in the pcePcepClientTable. If no such changes have occurred since the last re-initialization of the local management subsystem, then this object contains a zero value." ::= { pcePcepClientObjects 1 } pcePcepClientIndexNext OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains an appropriate value to be used for pcePcepClientIndex when creating entries in the pcePcepClientTable. The value 0 indicates that no unassigned entries are available." ::= { pcePcepClientObjects 2 } pcePcepClientTable OBJECT-TYPE SYNTAX SEQUENCE OF PcePcepClientEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information about the PCEP Client." ::= { pcePcepClientObjects 3 } pcePcepClientEntry OBJECT-TYPE SYNTAX PcePcepClientEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents a PCEP client. An entry can be created by a network administrator or by an SNMP agent as instructed by PCEP." INDEX { pcePcepClientPcepId, pcePcepClientIndex } ::= { pcePcepClientTable 1 } PcePcepClientEntry ::= SEQUENCE { pcePcepClientPcepId PcePcepIdentifier, pcePcepClientIndex Unsigned32, pcePcepClientAdminStatus INTEGER, pcePcepClientOperStatus INTEGER, pcePcepClientTcpPort InetPortNumber, pcePcepClientKeepAliveTimer Unsigned32, pcePcepClientStorageType StorageType, pcePcepClientRowStatus RowStatus, pcePcepClientDeadTimer Unsigned32 } pcePcepClientPcepId OBJECT-TYPE SYNTAX PcePcepIdentifier MAX-ACCESS not-accessible STATUS current DESCRIPTION "The PCEP client identifier." ::= { pcePcepClientEntry 1 } pcePcepClientIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index is used to uniquely identify the PCEP client. Before creating a row in this table, the 'pcePcepClientIndexNext' object should be retrieved. That value should be used for the value of this index when creating a row in this table. NOTE: if a value of zero (0) is retrieved, that indicates that no rows can be created in this table at this time." ::= { pcePcepClientEntry 2 } pcePcepClientAdminStatus OBJECT-TYPE SYNTAX INTEGER { enable(1), disable(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The administrative status of this PCEP Client. If this object is changed from 'enable' to 'disable' and this entity has already attempted to establish contact with a Peer, then all contact with that Peer is lost and all information from that Peer needs to be removed from the MIB. (This implies that the network management subsystem should clean up any related entry in the pcePcepPeerTable. This further implies that a 'tear-down' for that session is issued and the session and all information related to that session cease to exist). At this point the operator is able to change values which are related to this entity. When the admin status is set back to 'enable', then this Entity will attempt to establish a new session with the Peer." DEFVAL { enable } ::= { pcePcepClientEntry 4 } pcePcepClientOperStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), enabled(2), disabled(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "The operational status of this PCEP client. The value of unknown(1) indicates that the operational status cannot be determined at this time. The value of unknown should be a transient condition before changing to enabled(2) or disabled(3)." ::= { pcePcepClientEntry 5 } pcePcepClientTcpPort OBJECT-TYPE SYNTAX InetPortNumber MAX-ACCESS read-create STATUS current DESCRIPTION "The TCP Port for PCEP. The default value is the well-known value of this port." -- To be assigned by IANA ::= { pcePcepClientEntry 6 } pcePcepClientKeepAliveTimer OBJECT-TYPE SYNTAX Unsigned32 (1..65535) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The integer value which is the proposed keep alive timer for this PCEP client." ::= { pcePcepClientEntry 7 } pcePcepClientStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row. Conceptual rows having the value 'permanent(4)' need not allow write-access to any columnar objects in the row." DEFVAL{ nonVolatile } ::= { pcePcepClientEntry 8 } pcePcepClientRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. All writable objects in this row may be modified at any time, however, as described in detail in the section entitled, 'Changing Values After Session Establishment', and again described in the DESCRIPTION clause of the pcePcepClientAdminStatus object, if a session has been initiated with a Peer, changing objects in this table will wreak havoc with the session and interrupt traffic. To repeat again: the recommended procedure is to set the pcePcepClientAdminStatus to down, thereby explicitly causing a session to be torn down. Then, change objects in this entry, then set the pcePcepClientAdminStatus to enable, which enables a new session to be initiated." ::= { pcePcepClientEntry 9 } pcePcepClientDeadTimer OBJECT-TYPE SYNTAX Unsigned32 (4..262140) UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The value which indicates a period of time after the expiration of which a PCEP peer declares the session down if no PCEP message has been received. The Deadtimer value is recommended to be 4 times the Keepalive value." ::= { pcePcepClientEntry 10 } -- -- The PCEP Client Statistics Table -- TBD -- -- -- The PCEP Peer Table -- pcePcepSessionObjects OBJECT IDENTIFIER ::= { pcePcepMIBObjects 3 } pcePcepPeerLastChange OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time of the most recent addition or deletion to/from the pcePcepPeerTable/pcePcepSessionTable." ::= { pcePcepSessionObjects 1 } pcePcepPeerTable OBJECT-TYPE SYNTAX SEQUENCE OF PcePcepPeerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information about PCEP peers known by Entities in the pcePcepClientTable. The information in this table is based on information from the Client-Peer interaction during session initialization but is not appropriate for the pcePcepSessionTable, because objects in this table may or may not be used in session establishment." ::= { pcePcepSessionObjects 2 } pcePcepPeerEntry OBJECT-TYPE SYNTAX PcePcepPeerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Information about a single Peer which is related to a Session. This table is augmented by the pcePcepSessionTable." INDEX { pcePcepClientPcepId, pcePcepClientIndex, pcePcepPeerPcepId } ::= { pcePcepPeerTable 1 } PcePcepPeerEntry ::= SEQUENCE { pcePcepPeerPcepId PcePcepIdentifier, pcePcepPeerTransportAddrType InetAddressType, pcePcepPeerTransportAddr InetAddress } pcePcepPeerPcepId OBJECT-TYPE SYNTAX PcePcepIdentifier MAX-ACCESS not-accessible STATUS current DESCRIPTION "The PCEP identifier of this PCE Peer." ::= { pcePcepPeerEntry 1 } pcePcepPeerTransportAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of the Internet address for the pcePcepPeerTransportAddr object. The PCEP specification describes this as being either an IPv4 Transport Address or IPv6 Transport This object specifies how the value of the pcePcepPeerTransportAddr object should be interpreted." ::= { pcePcepPeerEntry 2 } pcePcepPeerTransportAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The Internet address advertised by the peer. The type of this address is specified by the value of the pcePcepPeerTransportAddrType object." ::= { pcePcepPeerEntry 3 } pcePcepSessionMax OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum number of sessions that can be setup on this PCEP client." ::= { pcePcepSessionObjects 4 } -- -- The PCEP Sessions Table -- pcePcepSessionTable OBJECT-TYPE SYNTAX SEQUENCE OF PcePcepSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A table of Sessions between PCEP clients. This table AUGMENTS the pcePcepPeerTable. Each row in this table represents a single session." ::= { pcePcepSessionObjects 3 } pcePcepSessionEntry OBJECT-TYPE SYNTAX PcePcepSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents information on a single session between two PCEP clients. The information contained in a row is read-only." AUGMENTS { pcePcepPeerEntry } ::= { pcePcepSessionTable 1 } PcePcepSessionEntry ::= SEQUENCE { pcePcepSessionStateLastChange TimeStamp, pcePcepSessionState INTEGER, pcePcepSessionKeepAliveHoldTimeRem TimeInterval, pcePcepSessionKeepAliveTime Unsigned32, pcePcepSessionDiscontinuityTime TimeStamp, pcePcepSessionSpeakerRole INTEGER } pcePcepSessionStateLastChange OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time this Session entered its current state as denoted by the pcePcepSessionState object." ::= { pcePcepSessionEntry 1 } pcePcepSessionState OBJECT-TYPE SYNTAX INTEGER { sessionUp(1), keepWait(2), openWait(3), tcpPending(4), idle(5) } MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the session, all of the states 1 to 5 are based on the state machine for session negotiation behavior." ::= { pcePcepSessionEntry 2 } pcePcepSessionKeepAliveHoldTimeRem OBJECT-TYPE SYNTAX TimeInterval MAX-ACCESS read-only STATUS current DESCRIPTION "The keep alive hold time remaining for this session." ::= { pcePcepSessionEntry 3 } pcePcepSessionKeepAliveTime OBJECT-TYPE SYNTAX Unsigned32 (1..65535) UNITS "seconds" MAX-ACCESS read-only STATUS current DESCRIPTION "The negotiated KeepAlive Time which represents the amount of seconds between keep alive messages. The pcePcepClientKeepAliveHoldTimer related to this Session is the value that was proposed as the KeepAlive Time for this session. This value is negotiated during session initialization between the entity's proposed value (i.e., the value configured in pcePcepClientKeepAliveHoldTimer) and the peer's proposed KeepAlive Hold Timer value. This value is the smaller of the two proposed values." ::= { pcePcepSessionEntry 4 } pcePcepSessionDiscontinuityTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime on the most recent occasion at which any one or more of this session's counters suffered a discontinuity. The relevant counters are the specific instances associated with this session of any Counter32 object contained in the pcePcepSessionStatsTable. The initial value of this object is the value of sysUpTime when the entry was created in this table. Also, a command generator can distinguish when a session between a given Entity and Peer goes away and a new session is established. This value would change and thus indicate to the command generator that this is a different session." ::= { pcePcepSessionEntry 5 } pcePcepSessionSpeakerRole OBJECT-TYPE SYNTAX INTEGER { pcc(1), pce(2), pccandpce(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "The value of this object indicates the PCEP speaker role in this session." ::= { pcePcepSessionEntry 6 } -- -- The PCEP Session Statistics Table -- TBD -- --- --- Notifications --- pcePcepSessionUp NOTIFICATION-TYPE OBJECTS { pcePcepSessionState, pcePcepSessionDiscontinuityTime } STATUS current DESCRIPTION "This notification is sent when the value of 'pcePcepSessionState' enters the 'sessionUp(1)' state." ::= { pcePcepNotifications 1 } pcePcepSessionDown NOTIFICATION-TYPE OBJECTS { pcePcepSessionState, pcePcepSessionDiscontinuityTime } STATUS current DESCRIPTION "This notification is sent when the value of 'pcePcepSessionState' leaves the 'sessionUp(1)' state." ::= { pcePcepNotifications 2 } --**************************************************************** -- Module Conformance Statement --**************************************************************** pcePcepGroups OBJECT IDENTIFIER ::= { pcePcepConformance 1 } pcePcepCompliances OBJECT IDENTIFIER ::= { pcePcepConformance 2 } -- -- Full Compliance -- pcePcepModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The Module is implemented with support for read-create and read-write. In other words, both monitoring and configuration are available when using this MODULE-COMPLIANCE." MODULE -- this module MANDATORY-GROUPS { pcePcepGeneralGroup, pcePcepNotificationsGroup } ::= { pcePcepCompliances 1 } -- -- Read-Only Compliance -- pcePcepModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The Module is implemented with support for read-only. In other words, only monitoring is available by implementing this MODULE-COMPLIANCE." MODULE -- this module MANDATORY-GROUPS { pcePcepGeneralGroup, pcePcepNotificationsGroup } ::= { pcePcepCompliances 2 } -- units of conformance pcePcepGeneralGroup OBJECT-GROUP OBJECTS { pcePcepClientLastChange, pcePcepClientIndexNext, pcePcepClientAdminStatus, pcePcepClientOperStatus, pcePcepClientTcpPort, pcePcepClientKeepAliveTimer, pcePcepClientStorageType, pcePcepClientRowStatus, pcePcepPeerLastChange, pcePcepPeerTransportAddrType, pcePcepPeerTransportAddr, pcePcepSessionStateLastChange, pcePcepSessionState, pcePcepSessionKeepAliveHoldTimeRem, pcePcepSessionKeepAliveTime, pcePcepSessionDiscontinuityTime, pcePcepClientDeadTimer, pcePcepSessionMax, pcePcepSessionSpeakerRole } STATUS current DESCRIPTION "Objects that apply to all PCEP MIB implementations." ::= { pcePcepGroups 1 } pcePcepNotificationsGroup NOTIFICATION-GROUP NOTIFICATIONS { pcePcepSessionUp, pcePcepSessionDown } STATUS current DESCRIPTION "The notifications for a PCEP MIB implementation." ::= { pcePcepGroups 2 } END -- -- Copyright (C) The IETF Trust (2007). -- -- 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.