-- =================================================================
-- Copyright (c) 2004-2013 Hangzhou H3C Tech. Co., Ltd.  All rights reserved.
--
-- 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 h3cMGStatus.
--  Modify the description of the object h3cMGMirrorDirection.
--  Add h3cMGEgressIfTable, h3cMGMirrorVlanTable and h3cMGMirrorCpuTable.
-- =================================================================
-- =================================================================
--
-- Import and definition
--
-- =================================================================
H3C-MIRRORGROUP-MIB DEFINITIONS ::= BEGIN

IMPORTS

    h3cCommon
        FROM HUAWEI-3COM-OID-MIB
    RowStatus
        FROM SNMPv2-TC
    Integer32, OBJECT-TYPE, MODULE-IDENTITY, Unsigned32
        FROM SNMPv2-SMI;

    h3cMirrGroup MODULE-IDENTITY
        LAST-UPDATED "200601131403Z"
        ORGANIZATION
            "Hangzhou H3C Tech. Co., Ltd."
        CONTACT-INFO
            "Platform Team Hangzhou H3C Tech. Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.h3c.com
            Zip:100085
            "
        DESCRIPTION
            "This MIB defines objects for managing mirror group."
        REVISION "200601101903Z"
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { h3cCommon  68 }

    h3cMGInfoObjects OBJECT IDENTIFIER ::= {  h3cMirrGroup 1  }

    h3cMGObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 1  }

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

    h3cMGEntry OBJECT-TYPE
        SYNTAX      H3cMGEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirror group to be created."
        INDEX
        {
            h3cMGID
        }
      ::= { h3cMGTable 1 }

    H3cMGEntry ::=
        SEQUENCE
        {
            h3cMGID           Integer32,
            h3cMGType         INTEGER,
            h3cMGStatus       INTEGER,
            h3cMGRowStatus    RowStatus
        }

    h3cMGID 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."
        ::={ h3cMGEntry 1 }

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

    h3cMGStatus 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
            "
        ::={ h3cMGEntry 3 }

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

    h3cMGMirrorIfObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 2  }

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

    h3cMGMirrorIfEntry OBJECT-TYPE
        SYNTAX      H3cMGMirrorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirroring-port to be added to
            a mirror group."
        INDEX
        {
            h3cMGID,
            h3cMGMirrorIfIndex,
            h3cMGMirrorDirection
        }
        ::= { h3cMGMirrorIfTable 1 }

    H3cMGMirrorIfEntry ::=
        SEQUENCE
        {
            h3cMGMirrorIfIndex      Integer32,
            h3cMGMirrorDirection    INTEGER,
            h3cMGMirrorRowStatus    RowStatus
        }

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

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

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

    h3cMGMonitorIfObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 3  }

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

    h3cMGMonitorIfEntry OBJECT-TYPE
        SYNTAX      H3cMGMonitorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a monitor-port to be added to
            a mirror group."
        INDEX
        {
            h3cMGID,
            h3cMGMonitorIfIndex
        }
        ::= { h3cMGMonitorIfTable 1 }

    H3cMGMonitorIfEntry ::=
        SEQUENCE
        {
            h3cMGMonitorIfIndex      Integer32,
            h3cMGMonitorRowStatus    RowStatus
        }

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

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

    h3cMGReflectorIfObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 4  }

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

    h3cMGReflectorIfEntry OBJECT-TYPE
        SYNTAX      H3cMGReflectorIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a reflector-port to be added to
            a mirror group."
        INDEX
        {
            h3cMGID,
            h3cMGReflectorIfIndex
        }
        ::= { h3cMGReflectorIfTable 1 }

    H3cMGReflectorIfEntry ::=
        SEQUENCE
        {
            h3cMGReflectorIfIndex      Integer32,
            h3cMGReflectorRowStatus    RowStatus
        }

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

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

    h3cMGRprobeVlanObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 5  }

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

    h3cMGRprobeVlanEntry OBJECT-TYPE
        SYNTAX      H3cMGRprobeVlanEntry
        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
        {
            h3cMGID,
            h3cMGRprobeVlanID
        }
        ::= { h3cMGRprobeVlanTable 1 }

    H3cMGRprobeVlanEntry ::=
        SEQUENCE
        {
            h3cMGRprobeVlanID           Integer32,
            h3cMGRprobeVlanRowStatus    RowStatus
        }

    h3cMGRprobeVlanID 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."
        ::={ h3cMGRprobeVlanEntry 1 }

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

    h3cMGEgressIfObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 6  }

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

    h3cMGEgressIfEntry OBJECT-TYPE
        SYNTAX      H3cMGEgressIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe an egress-port to be added to
            a mirror group."
        INDEX
        {
            h3cMGID,
            h3cMGEgressIfIndex
        }
        ::= { h3cMGEgressIfTable 1 }

    H3cMGEgressIfEntry ::=
        SEQUENCE
        {
            h3cMGEgressIfIndex      Integer32,
            h3cMGEgressRowStatus    RowStatus
        }

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

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

    h3cMGMirrorVlanObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 7  }

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

    h3cMGMirrorVlanEntry OBJECT-TYPE
        SYNTAX      H3cMGMirrorVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirroring-VLAN to be added to
            a mirror group."
        INDEX
        {
            h3cMGID,
            h3cMGMirrorVlanID
        }
        ::= { h3cMGMirrorVlanTable 1 }

    H3cMGMirrorVlanEntry ::=
        SEQUENCE
        {
            h3cMGMirrorVlanID           Integer32,
            h3cMGMirrorVlanDirection    INTEGER,
            h3cMGMirrorVlanRowStatus    RowStatus
        }

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

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

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

    h3cMGMirrorCpuObjects OBJECT IDENTIFIER ::= {  h3cMGInfoObjects 8  }

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

    h3cMGMirrorCpuEntry OBJECT-TYPE
        SYNTAX      H3cMGMirrorCpuEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "A list of parameters that describe a mirroring-CPU to be added to
            a mirror group."
        INDEX
        {
            h3cMGID,
            h3cMGMirrorCpuChassis,
            h3cMGMirrorCpuSlot
        }
        ::= { h3cMGMirrorCpuTable 1 }

    H3cMGMirrorCpuEntry ::=
        SEQUENCE
        {
            h3cMGMirrorCpuChassis      Unsigned32,
            h3cMGMirrorCpuSlot         Unsigned32,
            h3cMGMirrorCpuDirection    INTEGER,
            h3cMGMirrorCpuRowStatus    RowStatus
        }

    h3cMGMirrorCpuChassis 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."
        ::={ h3cMGMirrorCpuEntry 1 }

    h3cMGMirrorCpuSlot 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."
        ::={ h3cMGMirrorCpuEntry 2 }

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

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


END
