--
-- Juniper Enterprise Specific MIB: Chassis MIB
-- 
-- Copyright (c) 1998-2003, Juniper Networks, Inc.
-- All rights reserved.
--
-- The contents of this document are subject to change without notice.
--


JUNIPER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32, Gauge32, Counter32
        FROM SNMPv2-SMI
    DisplayString, TimeStamp, TimeInterval
        FROM SNMPv2-TC
    jnxMibs, jnxChassisTraps, jnxChassisOKTraps
        FROM JUNIPER-SMI;

jnxBoxAnatomy MODULE-IDENTITY

    LAST-UPDATED "200307182153Z" -- Fri Jul 18 21:53:47 2003 UTC
    ORGANIZATION "Juniper Networks, Inc."
    CONTACT-INFO
            "        Juniper Technical Assistance Center
		     Juniper Networks, Inc.
		     1194 N. Mathilda Avenue
		     Sunnyvale, CA 94089
		     E-mail: support@juniper.net"

    DESCRIPTION
            "The MIB modules representing Juniper Networks'
	    implementation of enterprise specific MIBs 
	    supported by a single SNMP agent."
    ::= { jnxMibs 1 }



-- Juniper Box Anatomy MIB
--

-- Top level objects

    jnxBoxClass OBJECT-TYPE 
	SYNTAX		OBJECT IDENTIFIER
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
	        "The class of the box, indicating which product line
		the box is about, for example, 'Internet Router'."
	::= { jnxBoxAnatomy 1 }

    jnxBoxDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name, model, or detailed description of the box,
		indicating which product the box is about, for example
		'M40'."
	::= { jnxBoxAnatomy 2 }

    jnxBoxSerialNo OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The serial number of this subject, blank if unknown 
		or unavailable."
	::= { jnxBoxAnatomy 3 }

    jnxBoxRevision OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The revision of this subject, blank if unknown or
		unavailable."
	::= { jnxBoxAnatomy 4 }

    jnxBoxInstalled OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when the subject was last
		installed, up-and-running.  Zero if unknown or 
		already up-and-running when the agent was up."
	::= { jnxBoxAnatomy 5 }

--
-- Box Containers Table
--

    jnxContainersTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxContainersEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A list of containers entries."
	::= { jnxBoxAnatomy 6 }

    jnxContainersEntry OBJECT-TYPE
	SYNTAX		JnxContainersEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry of containers table."
	INDEX 	{ jnxContainersIndex }
	::= { jnxContainersTable 1 }

    JnxContainersEntry ::= SEQUENCE {
	    jnxContainersIndex		Integer32,
	    jnxContainersView		Integer32,
	    jnxContainersLevel		Integer32,
	    jnxContainersWithin		Integer32,
	    jnxContainersType		OBJECT IDENTIFIER,
	    jnxContainersDescr          DisplayString,
	    jnxContainersCount		Integer32
    }

    jnxContainersIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The index for this entry."
	::= { jnxContainersEntry 1 }

    jnxContainersView OBJECT-TYPE
	SYNTAX		Integer32 (1..63)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The view(s) from which the specific container
		appears.

		This variable indicates that the specific container
		is embedded and accessible from the corresponding
		view(s).

		The value is a bit map represented as a sum.
		If multiple bits are set, the specified
		container(s) are located and accessible from 
		that set of views.

		The various values representing the bit positions
		and its corresponding views are:
		    1   front
		    2   rear
		    4   top
		    8   bottom
		   16   leftHandSide
		   32   rightHandSide

		Note 1: 
		LefHandSide and rightHandSide are referred
		to based on the view from the front.

		Note 2: 
		If the specified containers are scattered 
		around various views, the numbering is according
		to the following sequence:
		    front -> rear -> top -> bottom
			  -> leftHandSide -> rightHandSide
		For each view plane, the numbering sequence is
		first from left to right, and then from up to down.

		Note 3: 
		Even though the value in chassis hardware (e.g. 
		slot number) may be labelled from 0, 1, 2, and up,
		all the indices in MIB start with 1 (not 0) 
		according to network management convention."
	::= { jnxContainersEntry 2 }

    jnxContainersLevel OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The abstraction level of the box or chassis.
		It is enumerated from the outside to the inside, 
		from the outer layer to the inner layer.
		For example, top level (i.e. level 0) refers to 
		chassis frame, level 1 FPC slot within chassis 
		frame, level 2 PIC space within FPC slot."
	::= { jnxContainersEntry 3 }

    jnxContainersWithin OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The index of its next higher level container 
		housing	this entry.  The associated 
		jnxContainersIndex in the jnxContainersTable 
		represents its next higher level container."
	::= { jnxContainersEntry 4 }

    jnxContainersType OBJECT-TYPE
	SYNTAX		OBJECT IDENTIFIER
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The type of this container."
	::= { jnxContainersEntry 5 }

    jnxContainersDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name or detailed description of this
		subject."
	::= { jnxContainersEntry 6 }

    jnxContainersCount OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The maximum number of containers of this level
		per container of the next higher level.  
		e.g. if there are six level 2 containers in 
		level 1 container, then jnxContainersCount for
		level 2 is six."
	::= { jnxContainersEntry 7 }

--
-- Box Contents Table
--

    jnxContentsLastChange OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when the box contents 
		table last changed.  Zero if unknown or already 
		existing when the agent was up."
	::= { jnxBoxAnatomy 7 }

    jnxContentsTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxContentsEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A list of contents entries."
	::= { jnxBoxAnatomy 8 }

    jnxContentsEntry OBJECT-TYPE
	SYNTAX		JnxContentsEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry of contents table."
	INDEX	{ jnxContentsContainerIndex, 
		  jnxContentsL1Index,
		  jnxContentsL2Index,
		  jnxContentsL3Index }
	::= { jnxContentsTable 1 }

    JnxContentsEntry ::= SEQUENCE {
	    jnxContentsContainerIndex	Integer32,
	    jnxContentsL1Index          Integer32,
	    jnxContentsL2Index          Integer32,
	    jnxContentsL3Index          Integer32,
	    jnxContentsType		OBJECT IDENTIFIER,
	    jnxContentsDescr		DisplayString,
	    jnxContentsSerialNo		DisplayString,
	    jnxContentsRevision		DisplayString,
	    jnxContentsInstalled	TimeStamp,
	    jnxContentsPartNo		DisplayString
    }

    jnxContentsContainerIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The associated jnxContainersIndex in the 
		jnxContainersTable."
	::= { jnxContentsEntry 1 }
	
    jnxContentsL1Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level one index of the container
		housing this subject.  Zero if unavailable
		or inapplicable."
	::= { jnxContentsEntry 2 }

    jnxContentsL2Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level two index of the container
		housing this subject.  Zero if unavailable
		or inapplicable."
	::= { jnxContentsEntry 3 }

    jnxContentsL3Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level three index of the container
		housing this subject.  Zero if unavailable
		or inapplicable."
	::= { jnxContentsEntry 4 }

    jnxContentsType OBJECT-TYPE
	SYNTAX		OBJECT IDENTIFIER
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The type of this subject.  zeroDotZero
		if unknown."
	::= { jnxContentsEntry 5 }

    jnxContentsDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name or detailed description of this
		subject."
	::= { jnxContentsEntry 6 }

    jnxContentsSerialNo OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The serial number of this subject, blank if 
		unknown or unavailable."
	::= { jnxContentsEntry 7 }

    jnxContentsRevision OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The revision of this subject, blank if unknown 
		or unavailable."
	::= { jnxContentsEntry 8 }

    jnxContentsInstalled OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when the subject was last 
		installed, up-and-running.  Zero if unknown
		or already up-and-running when the agent was up."
	::= { jnxContentsEntry 9 }

    jnxContentsPartNo OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The part number of this subject, blank if unknown 
		or unavailable."
	::= { jnxContentsEntry 10 }


--
-- Box LED Indicators Table
--

    jnxLEDLastChange OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The value of sysUpTime when the box LED table 
		last changed.  Zero if unknown or already at 
		that state when the agent was up."
	::= { jnxBoxAnatomy 9 }

    jnxLEDTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxLEDEntry
	MAX-ACCESS	not-accessible
	STATUS		deprecated
	DESCRIPTION
		"A list of status entries."
	::= { jnxBoxAnatomy 10 }

    jnxLEDEntry OBJECT-TYPE
	SYNTAX		JnxLEDEntry
	MAX-ACCESS	not-accessible
	STATUS		deprecated
	DESCRIPTION
		"An entry of status table."
	INDEX 	{ jnxLEDAssociateTable,
		  jnxLEDAssociateIndex,
		  jnxLEDL1Index,
		  jnxLEDL2Index,
		  jnxLEDL3Index }
	::= { jnxLEDTable 1 }

    JnxLEDEntry ::= SEQUENCE {
	    jnxLEDAssociateTable	INTEGER,
	    jnxLEDAssociateIndex	Integer32,
	    jnxLEDL1Index		Integer32,
	    jnxLEDL2Index		Integer32,
	    jnxLEDL3Index		Integer32,
	    jnxLEDOriginator		OBJECT IDENTIFIER,
	    jnxLEDDescr			DisplayString,
	    jnxLEDState			INTEGER,
	    jnxLEDStateOrdered		INTEGER
    }

    jnxLEDAssociateTable OBJECT-TYPE
	SYNTAX		INTEGER {
		other(1),
		jnxContainersTable(2),
		jnxContentsTable(3)
	}
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The associated table that this entry is 
		related."
	::= { jnxLEDEntry 1 }

    jnxLEDAssociateIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The index of the associated table that this
		entry is related."
	::= { jnxLEDEntry 2 }

    jnxLEDL1Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The level one index of the associated
		table that this entry is related.  Zero 
		if unavailable or inapplicable."
	::= { jnxLEDEntry 3 }

    jnxLEDL2Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The level two index of the associated
		table that this entry is related.  Zero 
		if unavailable or inapplicable."
	::= { jnxLEDEntry 4 }

    jnxLEDL3Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The level three index of the associated
		table that this entry is related.  Zero
		if unavailable or inapplicable."
	::= { jnxLEDEntry 5 }

    jnxLEDOriginator OBJECT-TYPE
	SYNTAX		OBJECT IDENTIFIER
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The originator of the this entry."
	::= { jnxLEDEntry 6 }

    jnxLEDDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The name or detailed description of this subject."
	::= { jnxLEDEntry 7 }

    jnxLEDState OBJECT-TYPE
	SYNTAX		INTEGER {
		other(1),     -- unknown or unavailable
		green(2),     -- ok, good, normally working,
			      -- or on-line as a standby backup if
			      -- there is an active primary
		yellow(3),    -- alarm, warning, marginally working
		red(4),	      -- alert, failed, not working
		blue(5),      -- ok, on-line as an active primary
		amber(6)      -- alarm, off-line, not running
	}
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The state of the LED indicator."
	::= { jnxLEDEntry 8 }

    jnxLEDStateOrdered OBJECT-TYPE
	SYNTAX		INTEGER {
		blue(1),      -- ok, on-line as an active primary
		green(2),     -- ok, good, normally working,
			      -- or on-line as a standby backup if
			      -- there is an active primary
		amber(3),     -- alarm, off-line, not running
		yellow(4),    -- alarm, warning, marginally working
		red(5),	      -- alert, failed, not working
		other(6)      -- unknown or unavailable
	}
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The state of the LED indicator.  Identical to jnxLEDState, but
                with enums ordered from 'most operational' to 'least
                operational' states."
	::= { jnxLEDEntry 9 }
--
-- Box Filled Status Table
--
-- This table show the empty/filled status of the container in the 
-- box containers table.
--

    jnxFilledLastChange OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when the box filled 
		status table last changed.  Zero if unknown or
		already at that state when the agent was up."
	::= { jnxBoxAnatomy 11 }
	
    jnxFilledTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxFilledEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A list of filled status entries."
	::= { jnxBoxAnatomy 12 }

    jnxFilledEntry OBJECT-TYPE
	SYNTAX		JnxFilledEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry of filled status table."
	INDEX	{ jnxFilledContainerIndex,
		  jnxFilledL1Index,
		  jnxFilledL2Index,
		  jnxFilledL3Index }
	::= { jnxFilledTable 1 }

    JnxFilledEntry ::= SEQUENCE {
	    jnxFilledContainerIndex   	Integer32,
	    jnxFilledL1Index          	Integer32,
	    jnxFilledL2Index          	Integer32,
	    jnxFilledL3Index          	Integer32,
	    jnxFilledDescr              DisplayString,
	    jnxFilledState	    	INTEGER
    }

    jnxFilledContainerIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The associated jnxContainersIndex in the 
		jnxContainersTable."
	::= { jnxFilledEntry 1 }
	
    jnxFilledL1Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level one index of the container
		housing this subject.  Zero if unavailable
		or inapplicable."
	::= { jnxFilledEntry 2 }

    jnxFilledL2Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level two index of the container
		housing this subject.  Zero if unavailable
		or inapplicable."
	::= { jnxFilledEntry 3 }

    jnxFilledL3Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level three index of the container
		housing this subject.  Zero if unavailable
		or inapplicable."
	::= { jnxFilledEntry 4 }

    jnxFilledDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name or detailed description of this
		subject."
	::= { jnxFilledEntry 5 }

    jnxFilledState OBJECT-TYPE
	SYNTAX		INTEGER {
		unknown(1),
		empty(2),
		filled(3)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The filled state of this subject."
	::= { jnxFilledEntry 6 }

--
-- Box Operating Status Table
--
-- This table reveals the operating status of some subjects 
-- of interest in the box contents table.
--

    jnxOperatingTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxOperatingEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A list of operating status entries."
	::= { jnxBoxAnatomy 13 }

    jnxOperatingEntry OBJECT-TYPE
	SYNTAX		JnxOperatingEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry of operating status table."
	INDEX	{ jnxOperatingContentsIndex,
		  jnxOperatingL1Index,
		  jnxOperatingL2Index,
		  jnxOperatingL3Index }
	::= { jnxOperatingTable 1 }

    JnxOperatingEntry ::= SEQUENCE {
	    jnxOperatingContentsIndex   Integer32,
	    jnxOperatingL1Index         Integer32,
	    jnxOperatingL2Index         Integer32,
	    jnxOperatingL3Index         Integer32,
	    jnxOperatingDescr           DisplayString,
	    jnxOperatingState	    	INTEGER,
	    jnxOperatingTemp            Gauge32,
	    jnxOperatingCPU		Gauge32,
	    jnxOperatingISR             Gauge32,
	    jnxOperatingDRAMSize        Integer32,
	    jnxOperatingBuffer          Gauge32,
	    jnxOperatingHeap            Gauge32,
	    jnxOperatingUpTime          TimeInterval,
	    jnxOperatingLastRestart     TimeStamp,
	    jnxOperatingMemory          Integer32,
	    jnxOperatingStateOrdered	INTEGER
    }

    jnxOperatingContentsIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The associated jnxContentsContainerIndex in the 
		jnxContentsTable."
	::= { jnxOperatingEntry 1 }
	
    jnxOperatingL1Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level one index associated with this
		subject.  Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 2 }

    jnxOperatingL2Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level two index associated with this 
		subject.  Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 3 }

    jnxOperatingL3Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level three index associated with this
		subject.  Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 4 }

    jnxOperatingDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name or detailed description of this subject."
	::= { jnxOperatingEntry 5 }

    jnxOperatingState OBJECT-TYPE
	SYNTAX		INTEGER {
		unknown(1),
		running(2),   -- up and running,
			      -- as a active primary
		ready(3),     -- ready to run, not running yet
		reset(4),     -- held in reset, not ready yet
	        runningAtFullSpeed(5),  
			      -- valid for fans only
	        down(6),      -- down or off, for power supply
		standby(7)    -- running as a standby backup
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The operating state of this subject."
	::= { jnxOperatingEntry 6 }

    jnxOperatingTemp OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The temperature in Celsius (degrees C) of this 
		subject.  Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 7 }

    jnxOperatingCPU OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The CPU utilization in percentage of this 
		subject.  Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 8 }
	
    jnxOperatingISR OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The CPU utilization in percentage of this subject
		spending in interrupt service routine (ISR).
		Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 9 }
	
    jnxOperatingDRAMSize OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		deprecated
	DESCRIPTION
		"The DRAM size in bytes of this subject.
		Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 10 }
	
    jnxOperatingBuffer OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The buffer pool utilization in percentage
		of this subject.  Zero if unavailable or 
		inapplicable."
	::= { jnxOperatingEntry 11 }
	
    jnxOperatingHeap OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The heap utilization in percentage of 
		this subject.  Zero if unavailable or 
		inapplicable."
	::= { jnxOperatingEntry 12 }

    jnxOperatingUpTime OBJECT-TYPE
	SYNTAX		TimeInterval
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The time interval in 10-millisecond period
		that this subject has been up and running.  
		Zero if unavailable or inapplicable."
	::= { jnxOperatingEntry 13 }

    jnxOperatingLastRestart OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when this subject 
		last restarted.  Zero if unavailable or 
		inapplicable."
	::= { jnxOperatingEntry 14 }

    jnxOperatingMemory OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The installed memory size in Megabytes 
		of this subject.  Zero if unavailable or
		inapplicable."
	::= { jnxOperatingEntry 15 }

    jnxOperatingStateOrdered OBJECT-TYPE
	SYNTAX		INTEGER {
		running(1),   -- up and running,
			      -- as a active primary
		standby(2),   -- running as a standby backup
		ready(3),     -- ready to run, not running yet
	        runningAtFullSpeed(4),  
			      -- valid for fans only
		reset(5),     -- held in reset, not ready yet
	        down(6),      -- down or off, for power supply
		unknown(7)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The operating state of this subject.  Identical to
                 jnxOperatingState, but with enums ordered from 'most
                 operational' to 'least operational' states."
	::= { jnxOperatingEntry 16 }
	

--
-- Box Redundancy Information Table
--
-- This table shows the internal configuration setting for the 
-- available redundant subsystems or components in the box.
--

    jnxRedundancyTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxRedundancyEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A list of redundancy information entries."
	::= { jnxBoxAnatomy 14 }

    jnxRedundancyEntry OBJECT-TYPE
	SYNTAX		JnxRedundancyEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry in the redundancy information table."
	INDEX	{ jnxRedundancyContentsIndex,
		  jnxRedundancyL1Index,
		  jnxRedundancyL2Index,
		  jnxRedundancyL3Index }
	::= { jnxRedundancyTable 1 }

    JnxRedundancyEntry ::= SEQUENCE {
	    jnxRedundancyContentsIndex       Integer32,
	    jnxRedundancyL1Index             Integer32,
	    jnxRedundancyL2Index             Integer32,
	    jnxRedundancyL3Index             Integer32,
	    jnxRedundancyDescr               DisplayString,
	    jnxRedundancyConfig	     	     INTEGER,
	    jnxRedundancyState	     	     INTEGER,
	    jnxRedundancySwitchoverCount     Counter32,
	    jnxRedundancySwitchoverTime      TimeStamp,
	    jnxRedundancySwitchoverReason    INTEGER,
	    jnxRedundancyKeepaliveHeartbeat  Integer32,
	    jnxRedundancyKeepaliveTimeout    Integer32,
	    jnxRedundancyKeepaliveElapsed    Integer32,
	    jnxRedundancyKeepaliveLoss       Counter32
    }

    jnxRedundancyContentsIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The associated jnxContentsContainerIndex in the 
		jnxContentsTable."
	::= { jnxRedundancyEntry 1 }
 	
    jnxRedundancyL1Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level one index associated with this
		subject.  Zero if unavailable or inapplicable."
	::= { jnxRedundancyEntry 2 }

    jnxRedundancyL2Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level two index associated with this 
		subject.  Zero if unavailable or inapplicable."
	::= { jnxRedundancyEntry 3 }

    jnxRedundancyL3Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level three index associated with this
		subject.  Zero if unavailable or inapplicable."
	::= { jnxRedundancyEntry 4 }

    jnxRedundancyDescr OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name or detailed description of this subject."
	::= { jnxRedundancyEntry 5 }

    jnxRedundancyConfig OBJECT-TYPE
	SYNTAX		INTEGER {
		unknown(1),
		master(2),    -- election priority set as a master
		backup(3),    -- election priority set as a backup
		disabled(4)   -- election disabled
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The election priority of redundancy configuration
		for this subject."
	::= { jnxRedundancyEntry 6 }

    jnxRedundancyState OBJECT-TYPE
	SYNTAX		INTEGER {
		unknown(1),
		master(2),    -- master
		backup(3),    -- backup
		disabled(4)   -- disabled
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The current running state for this subject."
	::= { jnxRedundancyEntry 7 }

    jnxRedundancySwitchoverCount OBJECT-TYPE
	SYNTAX		Counter32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The total number of switchover as perceived by
		this subject since routing engine is up and running.
		The switchover is defined as a change in state of
		jnxRedundancyState from master to backup or vice
		versa.	Its value is reset when the routing engine
		is reset or rebooted."
	::= { jnxRedundancyEntry 8 }

    jnxRedundancySwitchoverTime OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when the jnxRedundancyState
		of this subject was last switched over from master
		to backup or vice versa.  Zero if unknown or never
		switched over since the routing engine is up and
		running."
	::= { jnxRedundancyEntry 9 }

    jnxRedundancySwitchoverReason OBJECT-TYPE
	SYNTAX		INTEGER {
		other(1),		-- others
		neverSwitched(2),	-- never switched
		userSwitched(3),	-- user-initiated switchover
		autoSwitched(4)		-- automatic switchover
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The reason of the last switchover for this subject."
	::= { jnxRedundancyEntry 10 }

    jnxRedundancyKeepaliveHeartbeat OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The period of sending keepalive messages between
		the master and backup subsystems.  It is a system-wide
		preset value in seconds used by internal mastership
		resolution.  Zero if unavailable or inapplicable."
	::= { jnxRedundancyEntry 11 }

    jnxRedundancyKeepaliveTimeout OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The timeout period in seconds, by the keepalive 
		watchdog timer, before initiating a switch over to 
		the backup subsystem.  Zero if unavailable or 
		inapplicable."
	::= { jnxRedundancyEntry 12 }

    jnxRedundancyKeepaliveElapsed OBJECT-TYPE
	SYNTAX		Integer32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The elapsed time in seconds by this subject since 
		receiving the last keepalive message from the other
		subsystems.  Zero if unavailable or inapplicable."
	::= { jnxRedundancyEntry 13 }

    jnxRedundancyKeepaliveLoss OBJECT-TYPE
	SYNTAX		Counter32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The total number of losses on keepalive messages 
		between the master and backup subsystems as perceived
		by this subject since the system is up and running.  
		Zero if unavailable or inapplicable."
	::= { jnxRedundancyEntry 14 }


	
--
-- FRU (Field Replaceable Unit) Status Table
--
-- This table shows the status of the FRUs in the chassis.
--

    jnxFruTable OBJECT-TYPE
	SYNTAX		SEQUENCE OF JnxFruEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"A list of FRU status entries."
	::= { jnxBoxAnatomy 15 }

    jnxFruEntry OBJECT-TYPE
	SYNTAX		JnxFruEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry in the FRU status table."
	INDEX	{ jnxFruContentsIndex,
		  jnxFruL1Index,
		  jnxFruL2Index,
		  jnxFruL3Index }
	::= { jnxFruTable 1 }

    JnxFruEntry ::= SEQUENCE {
	    jnxFruContentsIndex       Integer32,
	    jnxFruL1Index             Integer32,
	    jnxFruL2Index             Integer32,
	    jnxFruL3Index             Integer32,
	    jnxFruName                DisplayString,
	    jnxFruType        	      INTEGER,
	    jnxFruSlot                Integer32,
	    jnxFruState	     	      INTEGER,
	    jnxFruTemp                Gauge32,
	    jnxFruOfflineReason       INTEGER,
	    jnxFruLastPowerOff        TimeStamp,
	    jnxFruLastPowerOn         TimeStamp,
	    jnxFruPowerUpTime         TimeInterval
    }

    jnxFruContentsIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The associated jnxContentsContainerIndex in the 
		jnxContentsTable."
	::= { jnxFruEntry 1 }
 	
    jnxFruL1Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level one index associated with this
		subject.  Zero if unavailable or inapplicable."
	::= { jnxFruEntry 2 }

    jnxFruL2Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level two index associated with this 
		subject.  Zero if unavailable or inapplicable."
	::= { jnxFruEntry 3 }

    jnxFruL3Index OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The level three index associated with this
		subject.  Zero if unavailable or inapplicable."
	::= { jnxFruEntry 4 }

    jnxFruName OBJECT-TYPE
	SYNTAX		DisplayString (SIZE (0..255))
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The name or detailed description of this subject."
	::= { jnxFruEntry 5 }

    jnxFruType OBJECT-TYPE
	SYNTAX		INTEGER {
		other(1),                               -- unknown or others
		clockGenerator(2),                      -- CG
		flexiblePicConcentrator(3),             -- FPC
		switchingAndForwardingModule(4),        -- SFM
		controlBoard(5),                        -- CBD, SCB
		routingEngine(6),                       -- RE
		powerEntryModule(7),                    -- PEM
		frontPanelModule(8),                    -- FPM
		switchInterfaceBoard(9),                -- SIB
		processorMezzanineBoardForSIB(10),      -- SPMB
		portInterfaceCard(11),                  -- PIC
		craftInterfacePanel(12),                -- CIP
		fan(13)                                 -- fan
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The FRU type for this subject."
	::= { jnxFruEntry 6 }

    jnxFruSlot OBJECT-TYPE
	SYNTAX		Integer32 (0..'7fffffff'h)
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The slot number of this subject.  This is equivalent
		to jnxFruL1Index in meaning.  Zero if unavailable or 
		inapplicable."
	::= { jnxFruEntry 7 }

    jnxFruState OBJECT-TYPE
	SYNTAX		INTEGER {
		unknown(1),
		empty(2),
		present(3),
		ready(4),
		announceOnline(5),
		online(6),
		anounceOffline(7),
		offline(8),
		diagnostic(9),
		standby(10)
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The current state for this subject."
	::= { jnxFruEntry 8 }

    jnxFruTemp OBJECT-TYPE
	SYNTAX		Gauge32
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The temperature in Celsius (degrees C) of this 
		subject.  Zero if unavailable or inapplicable."
	::= { jnxFruEntry 9 }

    jnxFruOfflineReason OBJECT-TYPE
	SYNTAX		INTEGER {
		unknown(1),	      -- unknown or other
		none(2),	      -- none	
		error(3),      	      -- error 
		noPower(4),	      -- no power  
		configPowerOff(5),    -- configured to power off
		configHoldInReset(6), -- configured to hold in reset
		cliCommand(7),        -- offlined by cli command
		buttonPress(8),       -- offlined by button press
		cliRestart(9),        -- restarted by cli command
		overtempShutdown(10), -- overtemperature shutdown
		masterClockDown(11),  -- master clock down
		singleSfmModeChange(12),
				      -- single SFM mode change
		packetSchedulingModeChange(13),
				      -- packet scheduling mode change
		physicalRemoval(14),  -- physical removal
		unresponsiveRestart(15), 
				      -- restarting unresponsive board
		sonetClockAbsent(16)  -- sonet out clock absent
	}
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The offline reason of this subject."
	::= { jnxFruEntry 10 }

    jnxFruLastPowerOff OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when this subject was last 
		powered off.  Zero if unavailable or inapplicable."
	::= { jnxFruEntry 11 }

    jnxFruLastPowerOn OBJECT-TYPE
	SYNTAX		TimeStamp
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The value of sysUpTime when this subject was last 
		powered on.  Zero if unavailable or inapplicable."
	::= { jnxFruEntry 12 }

    jnxFruPowerUpTime OBJECT-TYPE
	SYNTAX		TimeInterval
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The time interval in 10-millisecond period
		that this subject has been up and running
		since the last power on time.  Zero if 
		unavailable or inapplicable."
	::= { jnxFruEntry 13 }

--
-- definition of chassis related traps
--
    -- Traps for chassis alarm conditions   

    jnxPowerSupplyFailure NOTIFICATION-TYPE
	OBJECTS		{ jnxContentsContainerIndex,
			  jnxContentsL1Index,
			  jnxContentsL2Index,
			  jnxContentsL3Index,
			  jnxContentsDescr,
			  jnxOperatingState }
	STATUS		current
	DESCRIPTION
		"A jnxPowerSupplyFailure trap signifies that
		the SNMPv2 entity, acting in an agent role, has
		detected that the specified power supply in the
		chassis has been in the failure (bad DC output) 
		condition."
	::= { jnxChassisTraps 1 }

    jnxFanFailure NOTIFICATION-TYPE
	OBJECTS		{ jnxContentsContainerIndex,
			  jnxContentsL1Index,
			  jnxContentsL2Index,
			  jnxContentsL3Index,
			  jnxContentsDescr,
			  jnxOperatingState }
	STATUS		current
	DESCRIPTION
		"A jnxFanFailure trap signifies that the SNMPv2
		entity, acting in an agent role, has detected
		that the specified cooling fan or impeller in 
		the chassis has been in the failure (not spinning) 
		condition."
	::= { jnxChassisTraps 2 }

    jnxOverTemperature NOTIFICATION-TYPE
	OBJECTS		{ jnxContentsContainerIndex,
			  jnxContentsL1Index,
			  jnxContentsL2Index,
			  jnxContentsL3Index,
			  jnxContentsDescr,
			  jnxOperatingTemp }
	STATUS		current
	DESCRIPTION
		"A jnxOverTemperature trap signifies that the 
		SNMPv2 entity, acting in an agent role, has 
		detected that the specified hardware component
		in the chassis has experienced over temperature
		condition."
	::= { jnxChassisTraps 3 }

    jnxRedundancySwitchover NOTIFICATION-TYPE
	OBJECTS		{ jnxRedundancyContentsIndex,
			  jnxRedundancyL1Index,
			  jnxRedundancyL2Index,
			  jnxRedundancyL3Index,
			  jnxRedundancyDescr,
			  jnxRedundancyConfig,
			  jnxRedundancyState,
			  jnxRedundancySwitchoverCount,
			  jnxRedundancySwitchoverTime,
			  jnxRedundancySwitchoverReason }
	STATUS		current
	DESCRIPTION
		"A jnxRedundancySwitchover trap signifies that 
		the SNMPv2 entity, acting in an agent role, has 
		detected that the specified hardware component
		in the chassis has experienced a redundancy 
		switchover event defined as a change in state
		of jnxRedundancyState from master to backup or
		vice versa."
	::= { jnxChassisTraps 4 }

    jnxFruRemoval NOTIFICATION-TYPE
	OBJECTS		{ jnxFruContentsIndex,
			  jnxFruL1Index,
			  jnxFruL2Index,
			  jnxFruL3Index,
			  jnxFruName,
			  jnxFruType,
			  jnxFruSlot }
	STATUS		current
	DESCRIPTION
		"A jnxFruRemoval trap signifies that the SNMPv2 
		entity, acting in an agent role, has detected 
		that the specified FRU (Field Replaceable Unit)
		has been removed from the chassis."
	::= { jnxChassisTraps 5 }

    jnxFruInsertion NOTIFICATION-TYPE
	OBJECTS		{ jnxFruContentsIndex,
			  jnxFruL1Index,
			  jnxFruL2Index,
			  jnxFruL3Index,
			  jnxFruName,
			  jnxFruType,
			  jnxFruSlot }
	STATUS		current
	DESCRIPTION
		"A jnxFruInsertion trap signifies that the SNMPv2 
		entity,	acting in an agent role, has detected that
		the specified FRU (Field Replaceable Unit) has been 
		inserted into the chassis."
	::= { jnxChassisTraps 6 }

    jnxFruPowerOff NOTIFICATION-TYPE
	OBJECTS		{ jnxFruContentsIndex,
			  jnxFruL1Index,
			  jnxFruL2Index,
			  jnxFruL3Index,
			  jnxFruName,
			  jnxFruType,
			  jnxFruSlot,
			  jnxFruOfflineReason,
			  jnxFruLastPowerOff,
			  jnxFruLastPowerOn }
	STATUS		current
	DESCRIPTION
		"A jnxFruPowerOff trap signifies that the SNMPv2 
		entity, acting in an agent role, has detected 
		that the specified FRU (Field Replaceable Unit)
		has been powered off in the chassis."
	::= { jnxChassisTraps 7 }

    jnxFruPowerOn NOTIFICATION-TYPE
	OBJECTS		{ jnxFruContentsIndex,
			  jnxFruL1Index,
			  jnxFruL2Index,
			  jnxFruL3Index,
			  jnxFruName,
			  jnxFruType,
			  jnxFruSlot,
			  jnxFruOfflineReason,
			  jnxFruLastPowerOff,
			  jnxFruLastPowerOn }
	STATUS		current
	DESCRIPTION
		"A jnxFruPowerOn trap signifies that the SNMPv2 
		entity,	acting in an agent role, has detected that
		the specified FRU (Field Replaceable Unit) has been 
		powered on in the chassis."
	::= { jnxChassisTraps 8 }


    -- Traps for chassis alarm cleared conditions

    jnxPowerSupplyOK NOTIFICATION-TYPE
	OBJECTS		{ jnxContentsContainerIndex,
			  jnxContentsL1Index,
			  jnxContentsL2Index,
			  jnxContentsL3Index,
			  jnxContentsDescr,
			  jnxOperatingState }
	STATUS		current
	DESCRIPTION
		"A jnxPowerSupplyOK trap signifies that the 
		SNMPv2 entity, acting in an agent role, has
		detected that the specified power supply in the
		chassis has recovered from the failure (bad DC output) 
		condition."
	::= { jnxChassisOKTraps 1 }

    jnxFanOK NOTIFICATION-TYPE
	OBJECTS		{ jnxContentsContainerIndex,
			  jnxContentsL1Index,
			  jnxContentsL2Index,
			  jnxContentsL3Index,
			  jnxContentsDescr,
			  jnxOperatingState }
	STATUS		current
	DESCRIPTION
		"A jnxFanOK trap signifies that the SNMPv2
		entity, acting in an agent role, has detected that
		the specified cooling fan or impeller in the chassis
		has recovered from the failure (not spinning) condition."
	::= { jnxChassisOKTraps 2 }

    jnxTemperatureOK NOTIFICATION-TYPE
	OBJECTS		{ jnxContentsContainerIndex,
			  jnxContentsL1Index,
			  jnxContentsL2Index,
			  jnxContentsL3Index,
			  jnxContentsDescr,
			  jnxOperatingTemp }
	STATUS		current
	DESCRIPTION
		"A jnxTemperatureOK trap signifies that the 
		SNMPv2 entity, acting in an agent role, has 
		detected that the specified hardware component
		in the chassis has recovered from over temperature
		condition." 
	::= { jnxChassisOKTraps 3 }


END
