-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: Mirror group MIB
-- Reference:
-- Version: V1.1
-- History:
--   2006-01-10 created by xialei
--     Initial version V1.0
-- V1.1 2012/04/28 modified by mouxuanli
--  Modify the description of the object hpnicfMGStatus.
--  Modify the description of the object hpnicfMGMirrorDirection.
--  Add hpnicfMGEgressIfTable, hpnicfMGMirrorVlanTable and hpnicfMGMirrorCpuTable.
-- =================================================================
-- =================================================================
--
-- Import and definition
--
-- =================================================================
HPN-ICF-MIRRORGROUP-MIB DEFINITIONS ::= BEGIN

IMPORTS

    hpnicfCommon
        FROM HPN-ICF-OID-MIB
    RowStatus
        FROM SNMPv2-TC
    Integer32, OBJECT-TYPE, MODULE-IDENTITY, Unsigned32
        FROM SNMPv2-SMI;

    hpnicfMirrGroup MODULE-IDENTITY
        LAST-UPDATED "200601131403Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "This MIB defines objects for managing mirror group."
        REVISION "200601101903Z"
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { hpnicfCommon  68 }

    hpnicfMGInfoObjects OBJECT IDENTIFIER ::= {  hpnicfMirrGroup 1  }

    hpnicfMGObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 1  }

    hpnicfMGTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group entries."
        ::= { hpnicfMGObjects 1 }

    hpnicfMGEntry OBJECT-TYPE
        SYNTAX      HpnicfMGEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirror group to be created."
        INDEX
        {
            hpnicfMGID
        }
      ::= { hpnicfMGTable 1 }

    HpnicfMGEntry ::=
        SEQUENCE
        {
            hpnicfMGID           Integer32,
            hpnicfMGType         INTEGER,
            hpnicfMGStatus       INTEGER,
            hpnicfMGRowStatus    RowStatus
        }

    hpnicfMGID OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An index that uniquely identifies an entry in the mirror group table."
        ::={ hpnicfMGEntry 1 }

    hpnicfMGType OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        local(1),
                        remoteSource(2),
                        remoteDestination(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "GroupType."
        ::={ hpnicfMGEntry 2 }

    hpnicfMGStatus OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        active(1),
                        inactive(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The status of a mirror group.  A mirror group is inactive
            when it was created.

            The status of a mirror group can be changed automatically from inactive
            to active when appropriate conditions were met.  Also, it can be changed
            automatically from active to inactive when these conditions disappeared.

            Followings are conditions for a mirror group to become active:
              group type          conditions
              ============================================================================
              local               any source (mirroring-port, mirroring-VLAN, or mirroring-CPU),
                                  monitor-port
              remoteSource        If one of the three conditions is satisfied,
                                  remoteSource group would be active.
                                  1) any source (mirroring-port, mirroring-VLAN, or mirroring-CPU),
                                     remote-probe VLAN,
                                     configurable reflector-port (which is not supported on some devices)
                                  2) any source (mirroring-port, mirroring-VLAN, or mirroring-CPU),
                                     remote-probe VLAN,
                                     egress-port (which is not supported on some devices)
                                  3) any source (mirroring-port, mirroring-VLAN, or mirroring-CPU),
                                     remote-probe VLAN,
                                     fixed reflector-port(which is not supported on some devices)
              remoteDestination   monitor-port, remote-probe VLAN
            "
        ::={ hpnicfMGEntry 3 }

    hpnicfMGRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGEntry 4 }

    hpnicfMGMirrorIfObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 2  }

    hpnicfMGMirrorIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGMirrorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group mirroring-port entries."
        ::= { hpnicfMGMirrorIfObjects 1 }

    hpnicfMGMirrorIfEntry OBJECT-TYPE
        SYNTAX      HpnicfMGMirrorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirroring-port to be added to
            a mirror group."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGMirrorIfIndex,
            hpnicfMGMirrorDirection
        }
        ::= { hpnicfMGMirrorIfTable 1 }

    HpnicfMGMirrorIfEntry ::=
        SEQUENCE
        {
            hpnicfMGMirrorIfIndex      Integer32,
            hpnicfMGMirrorDirection    INTEGER,
            hpnicfMGMirrorRowStatus    RowStatus
        }

    hpnicfMGMirrorIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "IfIndex of mirror group mirroring-port."
        ::={ hpnicfMGMirrorIfEntry 1 }

    hpnicfMGMirrorDirection OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        inbound(1),
                        outbound(2),
                        both(3)
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Mirror direction of mirroring-port."
        ::={ hpnicfMGMirrorIfEntry 2 }

    hpnicfMGMirrorRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGMirrorIfEntry 3 }

    hpnicfMGMonitorIfObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 3  }

    hpnicfMGMonitorIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGMonitorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group monitor-port entries."
        ::= { hpnicfMGMonitorIfObjects 1 }

    hpnicfMGMonitorIfEntry OBJECT-TYPE
        SYNTAX      HpnicfMGMonitorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a monitor-port to be added to
            a mirror group."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGMonitorIfIndex
        }
        ::= { hpnicfMGMonitorIfTable 1 }

    HpnicfMGMonitorIfEntry ::=
        SEQUENCE
        {
            hpnicfMGMonitorIfIndex      Integer32,
            hpnicfMGMonitorRowStatus    RowStatus
        }

    hpnicfMGMonitorIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "IfIndex of mirror group monitor-port."
        ::={ hpnicfMGMonitorIfEntry 1 }

    hpnicfMGMonitorRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGMonitorIfEntry 2 }

    hpnicfMGReflectorIfObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 4  }

    hpnicfMGReflectorIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGReflectorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group reflector-port entries."
        ::= { hpnicfMGReflectorIfObjects 1 }

    hpnicfMGReflectorIfEntry OBJECT-TYPE
        SYNTAX      HpnicfMGReflectorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a reflector-port to be added to
            a mirror group."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGReflectorIfIndex
        }
        ::= { hpnicfMGReflectorIfTable 1 }

    HpnicfMGReflectorIfEntry ::=
        SEQUENCE
        {
            hpnicfMGReflectorIfIndex      Integer32,
            hpnicfMGReflectorRowStatus    RowStatus
        }

    hpnicfMGReflectorIfIndex OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "IfIndex of mirror group reflector-port."
        ::={ hpnicfMGReflectorIfEntry 1 }

    hpnicfMGReflectorRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGReflectorIfEntry 2 }

    hpnicfMGRprobeVlanObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 5  }

    hpnicfMGRprobeVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGRprobeVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group remote-probe vlan entries."
        ::= { hpnicfMGRprobeVlanObjects 1 }

    hpnicfMGRprobeVlanEntry OBJECT-TYPE
        SYNTAX      HpnicfMGRprobeVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a remote-probe vlan to be added
            to a mirror group.  Details about remote-probe vlan please refer to
            mirror group manual."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGRprobeVlanID
        }
        ::= { hpnicfMGRprobeVlanTable 1 }

    HpnicfMGRprobeVlanEntry ::=
        SEQUENCE
        {
            hpnicfMGRprobeVlanID           Integer32,
            hpnicfMGRprobeVlanRowStatus    RowStatus
        }

    hpnicfMGRprobeVlanID OBJECT-TYPE
        SYNTAX      Integer32(1..4094)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "An index that uniquely identifies an entry in the remote-probe vlan table."
        ::={ hpnicfMGRprobeVlanEntry 1 }

    hpnicfMGRprobeVlanRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGRprobeVlanEntry 2 }

    hpnicfMGEgressIfObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 6  }

    hpnicfMGEgressIfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGEgressIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group egress-port entries."
        ::= { hpnicfMGEgressIfObjects 1 }

    hpnicfMGEgressIfEntry OBJECT-TYPE
        SYNTAX      HpnicfMGEgressIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe an egress-port to be added to
            a mirror group."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGEgressIfIndex
        }
        ::= { hpnicfMGEgressIfTable 1 }

    HpnicfMGEgressIfEntry ::=
        SEQUENCE
        {
            hpnicfMGEgressIfIndex      Integer32,
            hpnicfMGEgressRowStatus    RowStatus
        }

    hpnicfMGEgressIfIndex OBJECT-TYPE
        SYNTAX      Integer32 (0..2147483647)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "IfIndex of mirror group egress-port."
        ::={ hpnicfMGEgressIfEntry 1 }

    hpnicfMGEgressRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGEgressIfEntry 2 }

    hpnicfMGMirrorVlanObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 7  }

    hpnicfMGMirrorVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGMirrorVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group mirroring-VLAN entries."
        ::= { hpnicfMGMirrorVlanObjects 1 }

    hpnicfMGMirrorVlanEntry OBJECT-TYPE
        SYNTAX      HpnicfMGMirrorVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirroring-VLAN to be added to
            a mirror group."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGMirrorVlanID
        }
        ::= { hpnicfMGMirrorVlanTable 1 }

    HpnicfMGMirrorVlanEntry ::=
        SEQUENCE
        {
            hpnicfMGMirrorVlanID           Integer32,
            hpnicfMGMirrorVlanDirection    INTEGER,
            hpnicfMGMirrorVlanRowStatus    RowStatus
        }

    hpnicfMGMirrorVlanID OBJECT-TYPE
        SYNTAX      Integer32(1..4094)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Mirror group mirroring-VLAN ID."
        ::={ hpnicfMGMirrorVlanEntry 1 }

    hpnicfMGMirrorVlanDirection OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        inbound(1),
                        outbound(2),
                        both(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Mirror direction of mirroring-VLAN."
        ::={ hpnicfMGMirrorVlanEntry 2 }

    hpnicfMGMirrorVlanRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGMirrorVlanEntry 3 }

    hpnicfMGMirrorCpuObjects OBJECT IDENTIFIER ::= {  hpnicfMGInfoObjects 8  }

    hpnicfMGMirrorCpuTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF HpnicfMGMirrorCpuEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of mirror group mirroring-CPU entries."
        ::= { hpnicfMGMirrorCpuObjects 1 }

    hpnicfMGMirrorCpuEntry OBJECT-TYPE
        SYNTAX      HpnicfMGMirrorCpuEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirroring-CPU to be added to
            a mirror group."
        INDEX
        {
            hpnicfMGID,
            hpnicfMGMirrorCpuChassis,
            hpnicfMGMirrorCpuSlot
        }
        ::= { hpnicfMGMirrorCpuTable 1 }

    HpnicfMGMirrorCpuEntry ::=
        SEQUENCE
        {
            hpnicfMGMirrorCpuChassis      Unsigned32,
            hpnicfMGMirrorCpuSlot         Unsigned32,
            hpnicfMGMirrorCpuDirection    INTEGER,
            hpnicfMGMirrorCpuRowStatus    RowStatus
        }

    hpnicfMGMirrorCpuChassis OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Chassis ID of mirroring-CPU.  On a centralized device,
             centralized IRF device, or distributed device in standalone mode,
             the value for this node is always zero."
        ::={ hpnicfMGMirrorCpuEntry 1 }

    hpnicfMGMirrorCpuSlot OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Slot ID of mirroring-CPU.  On a centralized device, the value for
             this node is always zero."
        ::={ hpnicfMGMirrorCpuEntry 2 }

    hpnicfMGMirrorCpuDirection OBJECT-TYPE
        SYNTAX      INTEGER
                    {
                        inbound(1),
                        outbound(2),
                        both(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Mirror direction of mirroring-CPU."
        ::={ hpnicfMGMirrorCpuEntry 3 }

    hpnicfMGMirrorCpuRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "RowStatus"
        ::={ hpnicfMGMirrorCpuEntry 4 }


END
