-- =================================================================
-- Copyright (C) 2006 by HUAWEI 3COM TECHNOLOGIES.  All rights reserved.
--
-- Description: Mirror group MIB
-- Reference:
-- Version: V1.0
-- History:
--   2006-01-10 created by xialei
--     Initial version V1.0
-- =================================================================
-- =================================================================
--
-- Import and definition
--
-- =================================================================
H3C-MIRRORGROUP-MIB DEFINITIONS ::= BEGIN

IMPORTS

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

    h3cMirrGroup MODULE-IDENTITY
        LAST-UPDATED "200601131403Z"
        ORGANIZATION
            "Huawei 3Com Technologies Co., Ltd."
            CONTACT-INFO
            "Platform Team Huawei 3Com Technologies Co., Ltd.
            Hai-Dian District Beijing P.R. China
            http://www.huawei-3com.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
        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 will be 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               mirroring-port, monitor-port
              remoteSource        mirroring-port, remote-probe vlan, reflector-port(may not
                                  be supported by some products)
              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.  Once mirror direction
             was configured for a mirroring-port, it can not be changed
             unless the mirroring-port was removed from mirror group.

             If a mirror port is configured with two mirror directions
             'outbound' and 'inbound', though it is functionally equal
             to 'both', it will be handled as two table items.  If a
             mirror port is configured with mirror direction 'outbound'
             or 'inbound', or both of them, it will not be allowed to
             configure 'both', more details please refer to mirror group
             manual."
        ::= { 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 }

END
