-- extracted from draft-danenberg-sonet-ces-mpls-mib-00.txt -- at Fri Feb 23 06:04:13 2001 MPLS-CEM-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, experimental, Integer32, Counter32, Unsigned32, Counter64, Gauge32 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, TruthValue, RowStatus, StorageType, TimeStamp, DisplayString FROM SNMPv2-TC InterfaceIndex, InterfaceIndexOrZero FROM IF-MIB MplsLSPID, MplsLabel FROM MPLS-LSR-MIB MplsLsrId, MplsTunnelIndex, MplsTunnelInstanceIndex FROM MPLS-TE-MIB; mplsCemMIB MODULE-IDENTITY LAST-UPDATED "200102211200Z" -- 21 Feb 2001 12:00:00 EST ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group" CONTACT-INFO " Dave Danenberg Postal: Litchfield Communications, Inc. 76 Westbury Park Rd Princeton Building East Watertown, CT 06795 Tel: +1-860-945-1573 x3180 Danenberg et al Expires August 2001 12 Internet Draft MPLS CEM MIB February 2001 Email: dave_danenberg@litchfieldcomm.com Thomas D. Nadeau Postal: Cisco Systems, Inc. 250 Apollo Drive Chelmsford, MA 01824 Tel: +1-978-244-3051 Email: tnadeau@cisco.com Andrew G. Malis Postal: Vivace Networks, Inc. 2730 Orchard Parkway San Jose, CA 95134 Email: Andy.Malis@vivacenetworks.com Scott Park Postal: Litchfield Communications, Inc. 76 Westbury Park Rd Princeton Building East Watertown, CT 06795 Tel: +1-860-945-1573 x3185 Email: scott_park@litchfieldcomm.com The MPLS Working Group (email distribution mpls@uu.net)" DESCRIPTION "This MIB contains managed object definitions for Circuit Emulation over MPLS as in: Malis, A., Vogelsang, S., and Martini, L. 'SONET/SDH Circuit Emulation Service Over MPLS (CEM) encapsulation', Internet Draft , February 2001. This MIB is dependant on the MIBs as defined by T. Nadeau, C. Srinivasan, and A. Viswanathan and " -- Revision history. REVISION "200102141200Z " -- 14 Feb 2001 12:00:00 EST DESCRIPTION "Initial version for closed review." REVISION "200102221200Z " -- 22 Feb 2001 12:00:00 EST DESCRIPTION "Updates, cleanup, and clarifications after review amongst authors." ::= { experimental 9999 } -- Top level components of this MIB. -- Traps mplsCemNotifications OBJECT IDENTIFIER ::= { mplsCemMIB 0 } mplsCemNotifyPrefix OBJECT IDENTIFIER ::= { mplsCemNotifications 0 } Danenberg et al Expires August 2001 13 Internet Draft MPLS CEM MIB February 2001 -- Tables, Scalars mplsCemObjects OBJECT IDENTIFIER ::= { mplsCemMIB 1 } -- Conformance -- mplsCemConformance OBJECT IDENTIFIER ::= { mplsCemMIB 2 } -- MPLS CEM Virtual Connection (VC) Table. mplsCemVcIndexNext OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains an appropriate value to be used for mplsCemVcIndex when creating entries in the mplsCemVcTable. The value 0 indicates that no unassigned entries are available. To obtain the value of mplsCemVcIndex for a new entry in the mplsCemVcTable, the manager issues a management protocol retrieval operation to obtain the current value of mplsCemVcIndex. After each retrieval operation, the agent should modify the value to reflect the next unassigned index. After a manager retrieves a value the agent will determine through its local policy when this index value will be made available for reuse." ::= { mplsCemObjects 1 } mplsCemVcTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsCemVcEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies information for connecting SONET paths and MPLS Tunnels." ::= { mplsCemObjects 2 } mplsCemVcEntry OBJECT-TYPE SYNTAX MplsCemVcEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents a connection for CEM. It is indexed by : - The mplsCemVcIndex. Uniquely identifying a singular CEM connection or a group. If a group, individual CEM connections are identified by the Instance. - The mplsCemVcInstance." INDEX { mplsCemVcIndex, mplsCemVcInstance } Danenberg et al Expires August 2001 14 Internet Draft MPLS CEM MIB February 2001 ::= { mplsCemVcTable 1 } MplsCemVcEntry ::= SEQUENCE { mplsCemVcIndex Unsigned32, mplsCemVcInstance Unsigned32, mplsCemVcSonetPathIfIndex InterfaceIndexOrZero, mplsCemVcLabel MplsLabel, mplsCemVcPriority Unsigned32, mplsCemVcName DisplayString, mplsCemVcDescr DisplayString, mplsCemVcCreateTime TimeStamp, mplsCemVcUpTime TimeTicks, mplsCemVcInTunnelIndex MplsTunnelIndex, mplsCemVcInTunnelInstance MplsTunnelInstanceIndex, mplsCemVcInTunnelIngLSR MplsLsrId, mplsCemVcInTunnelLclLSR MplsLsrId, mplsCemVcOutTunnelIndex MplsTunnelIndex, mplsCemVcOutTunnelInstance MplsTunnelInstanceIndex, mplsCemVcOutTunnelLclLSR MplsLsrId, mplsCemVcOutTunnelEgrLSR MplsLsrId, mplsCemVcPktLength Unsigned32, mplsCemVcExpBits Unsigned32, mplsCemVcPktResequence TruthValue, mplsCemVcEnableDBA BITS, mplsCemVcJtrBfrDepth Unsigned32, mplsCemVcErrorAction INTEGER, mplsCemVcDownAction INTEGER, mplsCemVcIntegrateToDown1 Unsigned32, mplsCemVcIntegrateToDown2 Unsigned32, mplsCemVcIntegrateToUp1 Unsigned32, mplsCemVcIntegrateToUp2 Unsigned32, mplsCemVcApsEnable TruthValue, mplsCemVcApsCriteria BITS, mplsCemVcDefects BITS, mplsCemVcApsHoldoffTimer Unsigned32, mplsCemVcApsRevertTimer Unsigned32, mplsCemVcApsStatus INTEGER, mplsCemVcLdpVcIdLength Unsigned32, mplsCemVcLdpGroupId Unsigned32, mplsCemVcLdpOptParam1 Unsigned32, mplsCemVcLdpOptParam2 Unsigned32, mplsCemVcTrapEnable TruthValue, mplsCemVcAdminStatus INTEGER, mplsCemVcOperStatus INTEGER, mplsCemVcRowStatus RowStatus, mplsCemVcStorageType StorageType } mplsCemVcIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS accessible-for-notify Danenberg et al Expires August 2001 15 Internet Draft MPLS CEM MIB February 2001 STATUS current DESCRIPTION "Primary index for the conceptual row identifying a group of CEM VCs." ::= { mplsCemVcEntry 1 } mplsCemVcInstance OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Uniquely identifies an instance of a CEM VC. It is useful to identify multiple instances for the purpose of backup VCs." ::= { mplsCemVcEntry 2 } mplsCemVcSonetPathIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "This is a unique index within the ifTable. It represents the interface index for the SONET path. A value of zero indicates an ifIndex that has yet to be configured or has since disappeared." ::= { mplsCemVcEntry 3 } mplsCemVcLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "The incoming and outgoing label for this VC. This value is placed in the Label field of the outgoing MPLS shim header." ::= { mplsCemVcEntry 4 } mplsCemVcPriority OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Used when resources on a tunnel or backup tunnel are overbooked. The agent (connection admission control) can sort CEM VC entries that share an overbooked tunnel. Lower mplsCemVcPriority values have higher priority. VCs dropped will be set 'dormant' (as indicated in mplsCemVcOperStatus)." ::= { mplsCemVcEntry 5 } mplsCemVcName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current Danenberg et al Expires August 2001 16 Internet Draft MPLS CEM MIB February 2001 DESCRIPTION "The canonical name assigned to the CEM VC. This name can be used to refer to the CEM VC on the LSRs console port." ::= { mplsCemVcEntry 6 } mplsCemVcDescr OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "A textual string containing information about the CEM VC. If there is no description this object contains a zero length string." ::= { mplsCemVcEntry 7 } mplsCemVcCreateTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-create STATUS current DESCRIPTION "System time when theis CEM VC was created." ::= { mplsCemVcEntry 8 } mplsCemVcUpTime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "Number of consecutive ticks this CEM VC has been 'up' as observed in mplsCemVcOperStatus." ::= { mplsCemVcEntry 9 } -- The following 8 objects represent the indexes for the -- inbound and outbound tunnels for this CEM VC. mplsCemVcInTunnelIndex OBJECT-TYPE SYNTAX MplsTunnelIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for inbound tunnel" REFERENCE "Srinivasan, C., Viswanathan, A., and T. Nadeau, MPLS Traffic Engineering Management Information Base Using SMIv2 , November 2000." ::= { mplsCemVcEntry 10 } mplsCemVcInTunnelInstance OBJECT-TYPE SYNTAX MplsTunnelInstanceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for inbound tunnel" ::= { mplsCemVcEntry 11 } mplsCemVcInTunnelIngLSR OBJECT-TYPE SYNTAX MplsLsrId Danenberg et al Expires August 2001 17 Internet Draft MPLS CEM MIB February 2001 MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for inbound tunnel" ::= { mplsCemVcEntry 12 } mplsCemVcInTunnelLclLSR OBJECT-TYPE SYNTAX MplsLsrId MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for inbound tunnel" ::= { mplsCemVcEntry 13 } mplsCemVcOutTunnelIndex OBJECT-TYPE SYNTAX MplsTunnelIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for outbound tunnel" ::= { mplsCemVcEntry 14 } mplsCemVcOutTunnelInstance OBJECT-TYPE SYNTAX MplsTunnelInstanceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for outbound tunnel" ::= { mplsCemVcEntry 15 } mplsCemVcOutTunnelLclLSR OBJECT-TYPE SYNTAX MplsLsrId MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for outbound tunnel" ::= { mplsCemVcEntry 16 } mplsCemVcOutTunnelEgrLSR OBJECT-TYPE SYNTAX MplsLsrId MAX-ACCESS read-create STATUS current DESCRIPTION "Part of set of indexes for outbound tunnel" ::= { mplsCemVcEntry 17 } mplsCemVcPktLength OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This is the packet or payload length for this CEM VC. It is fixed and applies to inbound and outbound packets carrying user payload. Note: DBA packets have their own length and are not effected by this." ::= { mplsCemVcEntry 18 } mplsCemVcExpBits OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This value is placed in the EXP bit field of the Danenberg et al Expires August 2001 18 Internet Draft MPLS CEM MIB February 2001 outbound MPLS shim header (with the VC Label). These EXP bits convey to the LSR the PHB to be applied to these packets." REFERENCE "Faucher, F, et al, MPLS Support of Differentiated Services Feb 2001." ::= { mplsCemVcEntry 19 } mplsCemVcPktResequence OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Reports if implementation provides packet re-sequencing. With this, as inbound packets are queued in the jitter buffer, out of order packets are re-sequenced. The maximum sequence number differential (order correction can occur within) is dependant on the depth of the jitter buffer. See mplsCemVcJtrBfrDepth." ::= { mplsCemVcEntry 20 } mplsCemVcEnableDBA OBJECT-TYPE SYNTAX BITS { allOnesOnAis(0), allZerosOnUnequipped(1) } MAX-ACCESS read-create STATUS current DESCRIPTION "Any bits set here MUST enable the DBA (dynamic bandwidth allocation) feature for the specified condition. Setting allOnesOnAis will cause CEM packet payload suppression when AIS is detected on the associated SONET path. Similarly, allZerosOnUnequipped will cause payload suppression when the SONET path is un-equipped. During these conditions, CEM packets will continue to be sent, but with indicators set in the CEM header instructing the remote to play all ones or zeros onto its SONET path. Note: some implementations may not support this feature." ::= { mplsCemVcEntry 21 } mplsCemVcJtrBfrDepth OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This setting configures the number of packet buffers reserved for this CEM VC. (This object would not apply in implementations that support CEM VC groups, but cannot process inbound packets on CEM VCs that are currently in standby.) This object essentially sets the maximum amount of time allowed between CEM packets before the jitter buffer empties. This variable should be set based on the SONET path width (speed) and the Danenberg et al Expires August 2001 19 Internet Draft MPLS CEM MIB February 2001 amount of delay variation expected to be introduced by the network. Like bandwidth, jitter buffers are likely to be a limited resource to be managed." ::= { mplsCemVcEntry 22 } mplsCemVcErrorAction OBJECT-TYPE SYNTAX INTEGER { playAllOnes(1), playAllZeros(2), playPseudoRandom(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "These are the actions to take when inbound packets are missing due to gap in sequence numbers (uncorrectable via available re-sequencing), jitter buffer underruns, or packets with bad CEM headers. These patterns are sent (played) on the SONET path. These settings are used for immediate errors and (unless the mplsCemVcDownAction is 'none') are not in effect once the CEM VC is 'down'." ::= { mplsCemVcEntry 23 } mplsCemVcDownAction OBJECT-TYPE SYNTAX INTEGER { errorAction(1), playAllOnes(2), playAllZeros(3), playPseudoRandom(4) } MAX-ACCESS read-create STATUS current DESCRIPTION "These are the actions to take once the CEM VC has been declared 'down' (as observed in mplsCemVcOperStatus). These patterns are sent (played) on the SONET path. See Integration Timers for events causing CEM VC 'down'. If 'errorAction' is selected, then the mplsCemVcErrorAction settings stay in effect even after the CEM VC is 'down'." ::= { mplsCemVcEntry 24 } -- -- The following 4 timers work together to integrate (filter) -- errors and the lack of errors on the CEM VC. Errors are: -- missing packet, packet out of sequence, CEM header error, -- jitter buffer error. Example of usage : -- -- When an error occurs, Down1 and Down2 start counting, if -- no errors occur within Down2, Down1 is cancelled. If errors -- do occur within Down2, the Down2 timer is restarted. The CEM -- VC is 'down' if Down1 expires - then Up1 starts counting. -- If an error occurs within Up1, Up1 is restarted. The CEM VC -- is 'up' if Up1 expires. Based on this, Down2 must be less -- than Down1. Up2 timer usage is for further study. Danenberg et al Expires August 2001 20 Internet Draft MPLS CEM MIB February 2001 -- -- Other usage of these integration objects is for further study. -- For example, these objects may be moved to their own new table -- where rows in the new table would be referenced in the CEM VC -- table to support separate integration of the various CEM errors -- (buffer errors, missing packets, CEM header errors). -- mplsCemVcIntegrateToDown1 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "See comment above - units are microseconds." ::= { mplsCemVcEntry 25 } mplsCemVcIntegrateToDown2 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "See comment above - units are microseconds." ::= { mplsCemVcEntry 26 } mplsCemVcIntegrateToUp1 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "See comment above - units are microseconds." ::= { mplsCemVcEntry 27 } mplsCemVcIntegrateToUp2 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "See comment above - units are microseconds." ::= { mplsCemVcEntry 28 } mplsCemVcApsEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Enables this CEM VC (as part of a group) to be used for APS. A CEM VC group is created when a unique CEM VC index (in mplsCemVcTable) has multiple instances. Setting mplsCemVcApsEnable to 'false' may be useful when a CEM VC is suspect, being debugged, or not fully configured. Note: some implementations may not support APS." ::= { mplsCemVcEntry 29 } mplsCemVcApsCriteria OBJECT-TYPE SYNTAX BITS { cemError(0), cemErrorStbyOK(256), revertive(512), hunt(1024) Danenberg et al Expires August 2001 21 Internet Draft MPLS CEM MIB February 2001 } MAX-ACCESS read-create STATUS current DESCRIPTION "Bits set here represent defects and modes for switching the SONET path from the active CEM VC to another within this VC's group. Defects include: CEM errors (jitter buffer errors, missing packets, bad CEM headers). Separating these CEM defects into individually selectable bits, or adding other types of defect indications (e.g. OAM status) is for future study. Modes: The 'cemErrorStbyOK' mode setting is useful in APS network configurations where CEM traffic is not present on standby inbound VCs. Therefore they are expected to have CEM errors, but are still to be considered as viable switch- over candidates. cemErrorStbyOK essentially masks CEM errors when this CEM VC is in standby. 'revertive' mode is useful for non-preferred CEM VCs where you may want to switch back to a preferred VC that has no defects while the currently active VC also has no defects (see mplsCemVcApsRevertTimer). 'revertive' should NOT be used when standby VCs have no defect indications available. If 'revertive' is not set, then manual reversion is possible by simply setting the active CEM VC's admin status 'down', then 'up'. Preferred should NOT have 'revertive' set. 'hunt' mode is useful when standby VCs offer no defect indications (see mplsCemVcApsHoldOffTimer). 'hunt' should not be used when standby VCs have available defect indications. Hunting assumes standby VCs are good, if not the down timers will determine it's bad, and hunting continues. 'hunt' and 'revertive' are mutually exclusive." ::= { mplsCemVcEntry 30 } mplsCemVcDefects OBJECT-TYPE SYNTAX BITS { cemError(0) } MAX-ACCESS read-only STATUS current DESCRIPTION "Current state of these CEM VC defects. The cemError indicator is a summary of any error associated with processing inbound CEM packets. Separately displaying CEM errors types (buffer errors, missing packets, and header errors) are for future study. Also other bits here may be defined here to show results of error trend analysis. These bits MUST be aligned with mplsCemVcApsCriteria bits so mplsCemVcApsCriteria can Danenberg et al Expires August 2001 22 Internet Draft MPLS CEM MIB February 2001 be used as a mask. Note: other defect indications (e.g. from OAM) are for future study." ::= { mplsCemVcEntry 31 } mplsCemVcApsHoldoffTimer OBJECT-TYPE -- units are in seconds SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "Used to hold-off an APS switch after the CEM VC has been determined 'down'. The purpose is to allow potential recovery schemes within lower communications layers a chance to recover. Also useful in 'hunt' mode to hold off switching to the next CEM VC (slows oscillation when all VCs are down)." ::= { mplsCemVcEntry 32 } mplsCemVcApsRevertTimer OBJECT-TYPE -- units are in seconds SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "If this CEM VC is active and 'up', then this timer is used in conjunction with 'revertive' (if set above). The reversion would be delayed for this time." ::= { mplsCemVcEntry 33 } mplsCemVcApsStatus OBJECT-TYPE SYNTAX INTEGER { active(1), standby(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "If part of a CEM VC group, this indicates if the CEM VC has been selected (via APS algorithm/protocol) to connect the associated Tunnel to the SONET path. If not part of a group, then always 'active'." ::= { mplsCemVcEntry 34 } mplsCemVcLdpVcIdLength OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "For use by LDP signaling" ::= { mplsCemVcEntry 35 } mplsCemVcLdpGroupId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create Danenberg et al Expires August 2001 23 Internet Draft MPLS CEM MIB February 2001 STATUS current DESCRIPTION "For use by LDP signaling" ::= { mplsCemVcEntry 36 } mplsCemVcLdpOptParam1 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "For use by LDP signaling" ::= { mplsCemVcEntry 37 } mplsCemVcLdpOptParam2 OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "For use by LDP signaling" ::= { mplsCemVcEntry 38 } mplsCemVcTrapEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "If this object is true, generation of mplsCemVcUp and mplsCemVcDown traps aare enabled for this CEM VC, otherwise these traps are not emitted." DEFVAL { false } ::= { mplsCemVcEntry 39} mplsCemVcAdminStatus OBJECT-TYPE SYNTAX INTEGER { up(1), -- ready to pass packets down(2), testing(3) -- in some test mode } MAX-ACCESS read-create STATUS current DESCRIPTION "The desired operational status of this CEM VC." ::= { mplsCemVcEntry 40 } mplsCemVcOperStatus OBJECT-TYPE SYNTAX INTEGER { up(1), -- ready to pass packets down(2), testing(3), -- in some test mode unknown(4), -- status cannot be determined dormant(5), notPresent(6), -- some component is missing lowerLayerDown(7) -- down due to the state of -- lower layer interfaces Danenberg et al Expires August 2001 24 Internet Draft MPLS CEM MIB February 2001 } MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the actual operational status of this CEM VC." ::= { mplsCemVcEntry 41 } mplsCemVcRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row." ::= { mplsCemVcEntry 42 } mplsCemVcStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object." ::= { mplsCemVcEntry 43 } -- End of MPLS CEM Virtual Connection (VC) Table -- MPLS CEM VC Performance Table. mplsCemVcPerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsCemVcPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides per CEM VC performance information. Note: outbound errors are not being considered. It is assumed (at this time) that CEM packets will be forwarded as they are generated. i.e., it is assumed that there are no local outbound packet congestion issues. HC (high capacity) counters are needed for packet counts due to the high speeds expected with CEM. A SONET path of width 48 can rollover a non-HC counter in a few minutes." ::= { mplsCemObjects 3 } mplsCemVcPerfEntry OBJECT-TYPE SYNTAX MplsCemVcPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by the agent for every mplsCemVcEntry. It is an extension to mplsCemVcEntry." AUGMENTS { mplsCemVcEntry } Danenberg et al Expires August 2001 25 Internet Draft MPLS CEM MIB February 2001 ::= { mplsCemVcPerfTable 1 } MplsCemVcPerfEntry ::= SEQUENCE { mplsCemVcPerfTotalInPacketsHC Counter64, mplsCemVcPerfTotalOutPacketsHC Counter64, mplsCemVcPerfDbaInPacketsHC Counter64, mplsCemVcPerfDbaOutPacketsHC Counter64, mplsCemVcPerfInNegPtrAdjustHC Counter64, mplsCemVcPerfInPosPtrAdjustHC Counter64, mplsCemVcPerfOutNegPtrAdjustHC Counter64, mplsCemVcPerfOutPosPtrAdjustHC Counter64, mplsCemVcPerfCrctHdrErrors Counter32, mplsCemVcPerfUncrctHdrErrors Counter32, mplsCemVcPerfMissingPkts Counter32, mplsCemVcPerfPktsOoseq Counter32, mplsCemVcPerfJtrBfrUnderruns Counter32, mplsCemVcPerfJtrBfrOverruns Counter32, mplsCemVcPerfDiscontinuityTime TimeStamp } mplsCemVcPerfTotalInPacketsHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of inbound packets received." ::= { mplsCemVcPerfEntry 1 } mplsCemVcPerfTotalOutPacketsHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of outbound packets sent." ::= { mplsCemVcPerfEntry 2 } mplsCemVcPerfDbaInPacketsHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of DBA packets received." ::= { mplsCemVcPerfEntry 3 } mplsCemVcPerfDbaOutPacketsHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of DBA packets sent." ::= { mplsCemVcPerfEntry 4 } mplsCemVcPerfInNegPtrAdjustHC OBJECT-TYPE SYNTAX Counter64 Danenberg et al Expires August 2001 26 Internet Draft MPLS CEM MIB February 2001 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of negative pointer adjustments made on the SONET path based on CEM pointer adjustments received." ::= { mplsCemVcPerfEntry 5 } mplsCemVcPerfInPosPtrAdjustHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of postive pointer adjustments made on the SONET path based on CEM pointer adjustments received." ::= { mplsCemVcPerfEntry 6 } mplsCemVcPerfOutNegPtrAdjustHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of negative pointer adjustments seen on the SONET path and encoded onto sent CEM packets." ::= { mplsCemVcPerfEntry 7 } mplsCemVcPerfOutPosPtrAdjustHC OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of positive pointer adjustments seen on the SONET path and encoded onto sent CEM packets." ::= { mplsCemVcPerfEntry 8 } mplsCemVcPerfCrctHdrErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of correctable CEM header errors detected on inbound CEM packets." ::= { mplsCemVcPerfEntry 9 } mplsCemVcPerfUncrctHdrErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of uncorrectable CEM header errors detected on inbound CEM packets." ::= { mplsCemVcPerfEntry 10 } mplsCemVcPerfMissingPkts OBJECT-TYPE SYNTAX Counter32 Danenberg et al Expires August 2001 27 Internet Draft MPLS CEM MIB February 2001 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of missing packets (as detected via CEM header sequence number gaps)." ::= { mplsCemVcPerfEntry 11 } mplsCemVcPerfPktsOoseq OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of packets detected out of sequence (via CEM header sequence numbers), but were able to be re-sequenced. That is, the differential in sequence numbers was less than the jitter buffer depth. Note: some implementations may not support this feature (see mplsCemVcPktResequence). Any packets so far out of sequence that a re-sequencer can not correct for would be counted as missing packet." ::= { mplsCemVcPerfEntry 12 } mplsCemVcPerfJtrBfrUnderruns OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of times the jitter buffer transitioned to empty." ::= { mplsCemVcPerfEntry 13 } mplsCemVcPerfJtrBfrOverruns OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of packets received while jitter buffer is full." ::= { mplsCemVcPerfEntry 14 } mplsCemVcPerfDiscontinuityTime 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 segment's Counter32 or Counter64 suffered a discontinuity. If no such discontinuities have occurred since the last re- initialization of the local management subsystem, then this object contains a zero value." ::= { mplsCemVcPerfEntry 15 } -- End MPLS CEM VC Performance Table -- MPLS CEM Mapping Table. Danenberg et al Expires August 2001 28 Internet Draft MPLS CEM MIB February 2001 mplsCemMappingTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsCemMappingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table maps an inbound Tunnel/VcLabel to a CEM VC." ::= { mplsCemObjects 4 } mplsCemMappingEntry OBJECT-TYPE SYNTAX MplsCemMappingEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents the inbound connection between a Tunnel/VcLabel and CEM VC/instance. It is indexed by the same 4 indexes that index the inbound Tunnel, then adds the VC Label as a 5th index. The Tunnel referenced here is in the mplsTunnelTable. - The mplsCemMappingInTunnelIndex uniquely identifies a singular Tunnel or a group. If a group, individual Tunnels are identified by the Instance. - The mplsCemMappingInTunnelInstance. - ID (normally an IP address) for the ingress LSR, mplsCemMappingInTunnelIngressLSR. - ID (normally an IP address) of the Local (egress) LSR, mplsCemMappingInTunnelLocalLSR, - and the VC Label, mplsCemMappingVcLabel." INDEX { mplsCemMappingInTunnelIndex, mplsCemMappingInTunnelInstance, mplsCemMappingInTunnelIngressLSR, mplsCemMappingInTunnelLocalLSR, mplsCemMappingVcLabel } ::= { mplsCemMappingTable 1 } MplsCemMappingEntry ::= SEQUENCE { mplsCemMappingInTunnelIndex MplsTunnelIndex, mplsCemMappingInTunnelInstance MplsTunnelInstanceIndex, mplsCemMappingInTunnelIngressLSR MplsLsrId, mplsCemMappingInTunnelLocalLSR MplsLsrId, mplsCemMappingVcLabel MplsLabel, mplsCemMappingVcIndex Integer32, mplsCemMappingVcInstance Integer32, mplsCemMappingRowStatus RowStatus, mplsCemMappingStorageType StorageType } Danenberg et al Expires August 2001 29 Internet Draft MPLS CEM MIB February 2001 mplsCemMappingInTunnelIndex OBJECT-TYPE SYNTAX MplsTunnelIndex MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Primary index for the conceptual row identifying a group of Tunnel/VcLabel to CEM VC mappings." ::= { mplsCemMappingEntry 1 } mplsCemMappingInTunnelInstance OBJECT-TYPE SYNTAX MplsTunnelInstanceIndex MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Uniquely identifies an instance of a mapping" ::= { mplsCemMappingEntry 2 } mplsCemMappingInTunnelIngressLSR OBJECT-TYPE SYNTAX MplsLsrId MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Uniquely identifies an ingress LSR" ::= { mplsCemMappingEntry 3 } mplsCemMappingInTunnelLocalLSR OBJECT-TYPE SYNTAX MplsLsrId MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Uniquely identifies the local LSR" ::= { mplsCemMappingEntry 4 } mplsCemMappingVcLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS accessible-for-notify STATUS current DESCRIPTION "Identifies a unique label on this tunnel" ::= { mplsCemMappingEntry 5 } mplsCemMappingVcIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "Index for entry (or group of entries, in the case of backup VCs) in the mplsCemVcTable. This value can also be thought of as the Circuit ID." ::= { mplsCemMappingEntry 6 } mplsCemMappingVcInstance OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create Danenberg et al Expires August 2001 30 Internet Draft MPLS CEM MIB February 2001 STATUS current DESCRIPTION "Identifies a unique member within a CEM VC group. (This could of course be a group of one.)" ::= { mplsCemMappingEntry 7 } mplsCemMappingRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row." ::= { mplsCemMappingEntry 8 } mplsCemMappingStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object." ::= { mplsCemMappingEntry 9 } -- End of MPLS CEM Mapping Table -- MPLS Tunnel Extension Table mplsCemTunnelExtTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsCemTunnelExtEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is an extension to the mplsTunnelTable. This table exists to configure parameters useful for CEM APS." ::= { mplsCemObjects 5 } mplsCemTunnelExtEntry OBJECT-TYPE SYNTAX MplsCemTunnelExtEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents a Tunnel used for CEM VCs. The Tunnel referenced here is in the mplsTunnelTable. It is indexed by the same 4 indexes of the inbound Tunnel: - The mplsCemTunnelExtIndex uniquely identifies a singular Tunnel or a group. If a group, individual Tunnels are identified by the Instance. - The mplsCemTunnelExtInstance. - ID (normally an IP address) for the ingress LSR, mplsCemTunnelExtIngressLSR. Danenberg et al Expires August 2001 31 Internet Draft MPLS CEM MIB February 2001 - ID (normally an IP address) of the Local (egress) LSR, mplsCemTunnelExtLocalLSR. In the mplsTunnelTable, this index would be referred to as the Egress LSR ID. Since CEM is always at a tunnel termination, the egress LSR is always the local (edge) LSR. The local agent creates an entry here for every entry created in the mplsCemMappingTable." INDEX { mplsCemTunnelExtIndex, mplsCemTunnelExtInstance, mplsCemTunnelExtIngressLSR, mplsCemTunnelExtLocalLSR } ::= { mplsCemTunnelExtTable 1 } MplsCemTunnelExtEntry::= SEQUENCE { mplsCemTunnelExtApsEnable TruthValue, mplsCemTunnelExtApsCriteria BITS, mplsCemTunnelExtDefects BITS, mplsCemTunnelExtApsHoldoffTimer Unsigned32, mplsCemTunnelExtApsRevertTimer Unsigned32, mplsCemTunnelExtApsViaCemVcIndex Unsigned32, mplsCemTunnelExtApsViaCemVcInstance Unsigned32, mplsCemTunnelExtStorageType StorageType } mplsCemTunnelExtApsEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Enables this Tunnel (as part of a group) to be used for APS. Remember a Tunnel group is created when a unique Tunnel index (in mplsTunnelTable) has multiple instances. Tunnel disabling may be useful when a Tunnel is suspect, being debugged, or not fully configured. Note: some implementations may not support APS." ::= { mplsCemTunnelExtEntry 1 } mplsCemTunnelExtApsCriteria OBJECT-TYPE SYNTAX BITS { cemVcCriteria(0), revertive(512), hunt(1024) } MAX-ACCESS read-write STATUS current DESCRIPTION "Bits set here represent defects and modes for switching all VCs within this Tunnel to another Tunnel that has no APS defects. Currently, only CEM defects are available. Separating and individually selecting CEM defects (buffer Danenberg et al Expires August 2001 32 Internet Draft MPLS CEM MIB February 2001 errors, header errors, etc.) is for future study. Also, for future study: determining a Tunnel's state of usefulness via other indications (such as OAM). If 'cemVcCriteria' is set, mplsCemTunnelExtApsViaCemVc is used to index the CEM VC for which defects are included. The purpose of this is in situations when CEM VCs can generate better defects than Tunnels (for example: buffer errors). Revertive and Hunt modes: 'revertive' is useful for non-primary Tunnels where you may want to switch back to a primary Tunnel that has no defects while the currently active also has no defects (see mplsCemTunnelExtApsRevertTimer). 'revertive' should NOT be used when standby Tunnels have no available defect indications. If 'revertive' is not set, then manual reversion is possible by simply setting the active Tunnel's admin status 'down', then 'up'. 'hunt' is useful when standby Tunnels offer no defect indications (see mplsCemTunnelExtApsHoldOffTimer). 'hunt' should not be used when standby Tunnels have available defect indications. Hunting assumes standby Tunnels are good, if not the down timers will determine it's bad, and hunting continues. 'hunt' and 'revertive' are mutually exclusive. Note: criteria defect bits here MUST align with mplsCemTunnelExtDefects so it can be used as a mask." ::= { mplsCemTunnelExtEntry 6 } mplsCemTunnelExtDefects OBJECT-TYPE SYNTAX BITS { cemVcCriteria(0) } MAX-ACCESS read-only STATUS current DESCRIPTION "Current state of Tunnel defect indications. Other bits here may be defined here to show results of error trend analysis. Note: These bits MUST be aligned with mplsCemTunnelExtApsCriteria bits so mplsCemTunnelExtApsCriteria can be used as a mask. Note: other defect indications (e.g. from OAM) are for future study." ::= { mplsCemTunnelExtEntry 7 } mplsCemTunnelExtApsHoldoffTimer OBJECT-TYPE -- units are in seconds SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current Danenberg et al Expires August 2001 33 Internet Draft MPLS CEM MIB February 2001 DESCRIPTION "Primarily used to hold-off an APS switch after the Tunnel has been determined 'down'. The purpose is to allow potential recovery schemes within lower communications layers a chance to recover. Also useful in 'hunt' mode to hold off switching to the next Tunnel (slows oscillation when all Tunnels are down)." ::= { mplsCemTunnelExtEntry 8 } mplsCemTunnelExtApsRevertTimer OBJECT-TYPE -- units are in seconds SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "If this Tunnel is active and 'up', then this timer is used in conjunction with 'revertive' (if set above). The reversion would be delayed for this time." ::= { mplsCemTunnelExtEntry 9 } mplsCemTunnelExtApsViaCemVcIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "Index of the CEM VC from which APS defect criteria are included with this Tunnel's APS criteria." ::= { mplsCemTunnelExtEntry 10 } mplsCemTunnelExtApsViaCemVcInstance OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "Instance of the CEM VC from which APS defect criteria are included with this Tunnel's APS criteria." ::= { mplsCemTunnelExtEntry 11 } mplsCemTunnelExtStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-write STATUS current DESCRIPTION "This variable indicates the storage type for this object." ::= { mplsCemTunnelExtEntry 12 } -- End of MPLS Tunnel Extension Table -- MPLS CEM Tunnel Extension Performance Table mplsCemTunnelExtPerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsCemTunnelExtPerfEntry MAX-ACCESS not-accessible Danenberg et al Expires August 2001 34 Internet Draft MPLS CEM MIB February 2001 STATUS current DESCRIPTION "This table is an extension to the mplsTunnelTable. It provides per Tunnel performance information." ::= { mplsCemObjects 6 } mplsCemTunnelExtPerfEntry OBJECT-TYPE SYNTAX MplsCemTunnelExtPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by the agent for every mplsCemTunnelExtEntry. It is an extension to mplsCemTunnelExtEntry." AUGMENTS { mplsCemTunnelExtEntry } ::= { mplsCemTunnelExtPerfTable 1 } MplsCemTunnelExtPerfEntry ::= SEQUENCE { mplsCemTunnelExtPerfFailedLabelLookups Counter32, mplsCemTunnelExtPerfLastFailedLookup MplsLabel } mplsCemTunnelExtPerfFailedLabelLookups OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of packets with unexpected labels received. This count is based on inbound VC labels seen that are not configured for this Tunnel." ::= { mplsCemTunnelExtPerfEntry 1 } mplsCemTunnelExtPerfLastFailedLookup OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-only STATUS current DESCRIPTION "Contains label from the packet that last failed a label lookup on this Tunnel." ::= { mplsCemTunnelExtPerfEntry 2 } -- End of MPLS Tunnel Extension Performance Table -- MPLS CEM SONET Path Extension Table. mplsCemSonetPathExtTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsCemSonetPathExtEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table associates a SONET path with a CEM VC Danenberg et al Expires August 2001 35 Internet Draft MPLS CEM MIB February 2001 (or CEM VC group) and provides the starting time-slot of the SONET path. It as assumed that the transmit and receive sides of the SONET path have the same starting time-slots. It is also assumed that STSn paths have contiguous time-slots." ::= { mplsCemObjects 7 } mplsCemSonetPathExtEntry OBJECT-TYPE SYNTAX MplsCemSonetPathExtEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table is indexed by the SONET path ifIndex. An entry to this table is created by the agent when an entry is created in the mplsCemVcTable." INDEX { mplsCemSonetPathExtSonetIfIndex } ::= { mplsCemSonetPathExtTable 1 } MplsCemSonetPathExtEntry ::= SEQUENCE { mplsCemSonetPathExtVcIndex Unsigned32, mplsCemSonetPathExtTimeSlot Unsigned32, mplsCemSonetPathExtStorageType StorageType } mplsCemSonetPathExtVcIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "Index to entry in the mplsCemVcTable." ::= { mplsCemSonetPathExtEntry 1 } mplsCemSonetPathExtTimeSlot OBJECT-TYPE SYNTAX Unsigned32 (1..192) MAX-ACCESS read-write STATUS current DESCRIPTION "Starting time-slot for this SONET path within the SONET line and section. For OC-48, this value could range from 1 to 48. The SONET path width must be taken into consideration here, for example, in an OC-48 an STS-3c could not start at time-slot 47." ::= { mplsCemSonetPathExtEntry 2 } mplsCemSonetPathExtStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-write STATUS current DESCRIPTION "This variable indicates the storage type for this object." ::= { mplsCemSonetPathExtEntry 3 } Danenberg et al Expires August 2001 36 Internet Draft MPLS CEM MIB February 2001 -- End of MPLS CEM SONET Path Extension Table. -- Notifications - CEM VC mplsCemTrapEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "If this object is true, then it enables the generation of mplsCemVcUp and mplsCemVcDown traps, otherwise these traps are not emitted. These traps are also individually enabled for each CEM VC." DEFVAL { false } ::= { mplsCemObjects 8 } mplsCemVcUp NOTIFICATION-TYPE OBJECTS { mplsCemVcIndex, mplsCemVcInstance, mplsCemVcOperStatus, mplsCemVcAdminStatus, mplsCemVcSonetPathIfIndex } STATUS current DESCRIPTION "This notification is generated when a mplsCemVcOperStatus object for one of the configured CEM VC entries is about to leave the down state and transition into some other state (but not into the notPresent state). This other state is indicated by the included value of mplsCemVcOperStatus." ::= { mplsCemNotifyPrefix 1 } mplsCemVcDown NOTIFICATION-TYPE OBJECTS { mplsCemVcIndex, mplsCemVcInstance, mplsCemVcOperStatus, mplsCemVcAdminStatus, mplsCemVcSonetPathIfIndex } STATUS current DESCRIPTION "This notification is generated when a mplsCemVcOperStatus object for one of the configured CEM VC entries is about to enter the down state and transition into some other state (but not from the notPresent state). This other state is indicated by the included value of mplsCemVcOperStatus." ::= { mplsCemNotifyPrefix 2 } mplsCemVcApsFrom NOTIFICATION-TYPE OBJECTS { mplsCemVcIndex, mplsCemVcInstance, Danenberg et al Expires August 2001 37 Internet Draft MPLS CEM MIB February 2001 mplsCemVcOperStatus, mplsCemVcAdminStatus, mplsCemVcSonetPathIfIndex } STATUS current DESCRIPTION "This notification is generated when the CEM VC APS mechanism has initiated a switch from the specified Index/Instance to find a 'good' CEM VC within the same group. To reduce the number of Traps, it is recommended to only generate mplsCemVcApsFrom when first initiating attempt to find a good CEM VC instance. That is, do not generate Traps if the APS mechanism is continuing to switch looking for an CEM VC group member that is good." ::= { mplsCemNotifyPrefix 3 } mplsCemVcApsTo NOTIFICATION-TYPE OBJECTS { mplsCemVcIndex, mplsCemVcInstance, mplsCemVcOperStatus, mplsCemVcAdminStatus, mplsCemVcSonetPathIfIndex } STATUS current DESCRIPTION "This notification is generated when the CEM VC APS mechanism has switched to and settled on a CEM VC Index and Instance that is 'good' (whether from a bad VC or when reverting)." ::= { mplsCemNotifyPrefix 4 } -- Note: generating Traps for Tunnel (bulk VC) APS switching is -- for further study. -- End of notifications. END -- -- "Copyright (C) The Internet Society (2001). All Rights Reserved. This -- -- document and translations of it may be copied and furnished to -- others, and derivative works that comment on or otherwise explain it -- or assist in its implementation may be prepared, copied, published -- and distributed, in whole or in part, without restriction of any -- kind, provided that the above copyright notice and this paragraph are -- -- included on all such copies and derivative works. However, this -- document itself may not be modified in any way, such as by removing -- the copyright notice or references to the Internet Society or other -- Internet organizations, except as needed for the purpose of -- developing Internet standards in which case the procedures for -- copyrights defined in the Internet Standards process must be -- followed, or as required to translate it into languages other than -- English. -- -- The limited permissions granted above are perpetual and will not be -- revoked by the Internet Society or its successors or assigns. -- -- This document and the information contained herein is provided on an -- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING -- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING -- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION -- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF -- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. --