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

JUNIPER-VIRTUALCHASSIS-MIB  DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE    FROM SNMPv2-SMI 
    OBJECT-IDENTITY                 FROM SNMPv2-SMI
    NOTIFICATION-TYPE               FROM SNMPv2-SMI
    MacAddress,DisplayString        FROM SNMPv2-TC
    JnxChassisId                    FROM JUNIPER-MIB
    jnxVccpNotifications            FROM JUNIPER-SMI
    jnxExVirtualChassis             FROM JUNIPER-EX-SMI;
    
    jnxVirtualChassisMemberMIB MODULE-IDENTITY
                                      
    LAST-UPDATED "200806170000Z" -- 17 June, 2008
    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 for Virtual Chassis Member.Virtual Chassis Member feature allows a set of
             EX-Series switches to be connected together to form a Virtual Chassis. A virtual chassis
             will give all the features of a real chassis, potentially at a much lower cost points.
             A virtual chassis will be managed as a single box and will appear as a single network
             element to other switches and routers in the network. Some EX-Series switches will have
             the special high speed stacking ports which are used to connect to each other to form a 
             stack. The EX-Series switches can also be connected by the 10GE (or 1GE) network ports to
             form a stack. These can be used by EX-Series switches that don't have dedicated stacking ports.
             Up to a maximum of 10 boxes can be stacked together."

       ::= { jnxExVirtualChassis 1 }

--
-- virtual chassis table
--

    jnxVirtualChassisMemberTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF JnxVirtualChassisMemberEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of virtual chassis Member information entries."
    ::= { jnxVirtualChassisMemberMIB 1 }

    jnxVirtualChassisMemberEntry OBJECT-TYPE
    SYNTAX      JnxVirtualChassisMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the virtual chassis Member information table."
        INDEX   { jnxVirtualChassisMemberId }
    ::= { jnxVirtualChassisMemberTable 1 }

    JnxVirtualChassisMemberEntry ::=
    SEQUENCE {
        jnxVirtualChassisMemberId                         INTEGER,
        jnxVirtualChassisMemberSerialnumber               DisplayString,
        jnxVirtualChassisMemberRole                       INTEGER,
        jnxVirtualChassisMemberMacAddBase                 MacAddress,
        jnxVirtualChassisMemberSWVersion                  DisplayString ,
        jnxVirtualChassisMemberPriority                   INTEGER,
        jnxVirtualChassisMemberUptime                     INTEGER
    }

    jnxVirtualChassisMemberId OBJECT-TYPE
    SYNTAX      INTEGER (0..9)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Identifies the virtual-chassis member."
    ::= {  jnxVirtualChassisMemberEntry 1 }

    jnxVirtualChassisMemberSerialnumber OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
    DESCRIPTION
        "Serial number of the virtual-chassis member."
    ::= {  jnxVirtualChassisMemberEntry 2 }

    jnxVirtualChassisMemberRole OBJECT-TYPE
    SYNTAX        INTEGER {
                    master (1),
                    backup (2),
                    linecard (3)
                    }

    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Specifies whether the virtual-chassis member is of the type:
        master(1), backup(2), linecard (3) "
    ::= {  jnxVirtualChassisMemberEntry 3 }

    jnxVirtualChassisMemberMacAddBase OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Identifies Media Access Control Address base for the virtual-chassis member."
    ::= {  jnxVirtualChassisMemberEntry 4 }

    jnxVirtualChassisMemberSWVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Identifies the JUNOS Base OS Software suite running on the virtual-chassis
        member."
    ::= {  jnxVirtualChassisMemberEntry 5 }

    jnxVirtualChassisMemberPriority OBJECT-TYPE
    SYNTAX      INTEGER (1..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This specifies the priority of the virtual-chassis member which can
        vary from 1 to 255."
    ::= {  jnxVirtualChassisMemberEntry 6 }

    jnxVirtualChassisMemberUptime OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Specifies the virtual-chassis member uptime. "
    ::= {  jnxVirtualChassisMemberEntry 7 }


   -- jnxVirtualChassisPortTable holds the vccp port's admin/operation status


    jnxVirtualChassisPortTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF JnxVirtualChassisPortEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
        "A list of virtual chassis port information entries."
    ::= { jnxVirtualChassisMemberMIB 2 }

    jnxVirtualChassisPortEntry OBJECT-TYPE
    SYNTAX      JnxVirtualChassisPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the virtual chassis port information table."
        INDEX   { jnxVirtualChassisFpcId, jnxVirtualChassisPortName }
    ::= { jnxVirtualChassisPortTable 1 }

    JnxVirtualChassisPortEntry ::=
    SEQUENCE {
        jnxVirtualChassisFpcId                          INTEGER,
        jnxVirtualChassisPortName                       DisplayString,
        jnxVirtualChassisPortAdminStatus                INTEGER,
        jnxVirtualChassisPortOperStatus                 INTEGER
    }
    
   jnxVirtualChassisFpcId OBJECT-TYPE
       SYNTAX      INTEGER (0..9)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Identifies the virtual-chassis member."
    ::= {  jnxVirtualChassisPortEntry 1 }

   jnxVirtualChassisPortName OBJECT-TYPE
      SYNTAX        DisplayString (SIZE(0..127))
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "Indicates the port name of this
             vccp port, which is typically but not limited to, a
             function of the state of individual segments of
             this port."
      ::= { jnxVirtualChassisPortEntry 2 }

   jnxVirtualChassisPortAdminStatus OBJECT-TYPE
      SYNTAX     INTEGER {
                  up(1),
                  down(2),
                  unknown(3)
                }
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Indicates the actual admin status of this
             vccp port, which is typically but not limited to, a
             function of the state of individual segments of
             this port."
      ::= { jnxVirtualChassisPortEntry 3 }

   jnxVirtualChassisPortOperStatus OBJECT-TYPE
      SYNTAX     INTEGER {
                  up(1),
                  down(2),
                  unknown(3)
                }
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Indicates the actual operational status of this
            vccp port, which is typically but not limited to, a
            function of the state of individual segments of
            this port."
      ::= { jnxVirtualChassisPortEntry 4 }
  
  jnxVccpNotificationsPrefix OBJECT-IDENTITY
      STATUS current
      DESCRIPTION 
      "All Virtual Chassis notifications are registered
      under this branch."
      ::= { jnxVccpNotifications 0 }

-- ***********************************************************

-- VCCP NOTIFICATIONS

-- ***********************************************************

jnxVccpPortUp NOTIFICATION-TYPE
    OBJECTS { jnxVirtualChassisPortAdminStatus, 
              jnxVirtualChassisPortOperStatus }
    STATUS  current
    DESCRIPTION
            "A MemberUp trap signifies that the SNMP entity, acting in an
            agent role, has detected that the jnxVirtualChassisPortOperStatus 
            object for one of its communication links left the  down state
            and transitioned into some other state (but not into the
            notPresent state).  This other state is indicated by the
            included value of jnxVirtualChassisPortOperStatus."
    ::= { jnxVccpNotificationsPrefix 1 }

jnxVccpPortDown NOTIFICATION-TYPE
    OBJECTS { jnxVirtualChassisPortAdminStatus, 
              jnxVirtualChassisPortOperStatus }
    STATUS  current
    DESCRIPTION
            "A MemberDown trap signifies that the SNMP entity, acting in an
            agent role, has detected that the jnxVirtualChassisPortOperStatus
            object for one of its communication links left the  down state
            and transitioned into some other state (but not into the
            notPresent state).  This other state is indicated by the
            included value of jnxVirtualChassisPortOperStatus."
    ::= { jnxVccpNotificationsPrefix 2 }

END
