-- ------------------------------------------------------------
-- HERCULES FastIP MIB - v1.0 30/04/98
-- ------------------------------------------------------------
-- Copyright (c) 3Com Corporation. All Rights Reserved.
-- ------------------------------------------------------------

A3COM00xx-BRIDGE-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE
        FROM RFC-1212
    MacAddress, Timeout, dot1dBasePort
        FROM BRIDGE-MIB
    a3ComBridgeExt
        FROM A3COM0004-GENERIC ;

-- ------------------------------------------------------------
-- Textual Conventions
-- ------------------------------------------------------------

PortList ::= OCTET STRING       -- Each octet within this value
                                -- specifies a set of eight
-- ports, with the first octet specifying ports 1 through 8,
-- the second octet specifying ports 9 through 16, etc.  Within
-- each octet, the most significant bit represents the lowest
-- numbered port, and the least significant bit represents the
-- highest numbered port.  Thus, each port of the bridge is
-- represented by a single bit within the value of this object.
-- If that bit has a value of '1' then that port is included in
-- the set of ports; the port is not included if its bit has a
-- value of '0'.  The default value of this object is a string
-- of ones of appropriate length.

-- ------------------------------------------------------------
-- groups in the 3Com Bridge-Extensions MIB
-- ------------------------------------------------------------

-- a3ComBridgeExt      OBJECT IDENTIFIER ::= { generic 36 }

a3ComDot1dExtended  OBJECT IDENTIFIER ::= { a3ComBridgeExt 1 }
a3ComDot1qVlan      OBJECT IDENTIFIER ::= { a3ComBridgeExt 2 }

a3ComDot1dExtBase   OBJECT IDENTIFIER ::= { a3ComDot1dExtended 1 }
a3ComDot1dGarp      OBJECT IDENTIFIER ::= { a3ComDot1dExtended 2 }
a3ComPriority       OBJECT IDENTIFIER ::= { a3ComDot1dExtended 3 }
a3ComNeighbour      OBJECT IDENTIFIER ::= { a3ComDot1dExtended 4 }

-- ------------------------------------------------------------
-- the a3ComDot1dExtBase group
-- ------------------------------------------------------------

a3ComDot1dGmrpAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The value enabled(1) indicates that GMRP is enabled
            on this device, for all ports, in all VLANs, for
            which it has not been specifically disabled, if GARP
            is also enabled for this device.  When disabled(2),
            GMRP is disabled for all ports, in all VLANs.  The
            default value is disabled(2)."
    ::= { a3ComDot1dExtBase 1 }

a3ComDot1dGvrpAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The value enabled(1) indicates that GVRP is enabled
            on this device, for all ports for which it has not
            been specifically disabled, if GARP is also enabled
            for this device.  When disabled(2), GVRP is
            disabled for all ports on this device.  The default
            value is disabled(2)."
    ::= { a3ComDot1dExtBase 2 }

a3ComGarpJoinTime OBJECT-TYPE
    SYNTAX  Timeout
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The GARP Join Timer interval, in units of 1/100th
            of a second, for all ports on this device.  The
            default value is 20 centiseconds."
    ::= { a3ComDot1dExtBase 3 }

a3ComGarpLeaveTime OBJECT-TYPE
    SYNTAX  Timeout
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The GARP Leave Timer interval, in units of 1/100th
            of a second, for all ports on this device.  The
            default value is 60 centiseconds."
    ::= { a3ComDot1dExtBase 4 }

a3ComGarpLeaveAllTime OBJECT-TYPE
    SYNTAX  Timeout
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The GARP LeaveAll Timer interval, in units of
            1/100th of a second, for all ports on this device.
            The default value is 1000 centiseconds."
    ::= { a3ComDot1dExtBase 5 }

a3ComSingleFdbStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The value enabled(1) indicates that the bridge is
            operating with a single Filtering Database.  When
            disabled(2), the bridge is operating with independent
            Filtering Databases for each VLAN.  This value must
            be enabled(1) and GVRP must be enabled, to support
            3Com FastIP.  The default value is disabled(2)."
    ::= { a3ComDot1dExtBase 6 }

-- ------------------------------------------------------------
-- the a3ComDot1dGarp group
-- ------------------------------------------------------------

-- ------------------------------------------------------------
-- The GARP, GMRP and GVRP Port Configuration Table
-- ------------------------------------------------------------

a3ComPortGarpTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF A3ComPortGarpEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table of GARP, GMRP and GVRP control information
            about every bridge port on this device."
    ::= { a3ComDot1dGarp 1 }

a3ComPortGarpEntry OBJECT-TYPE
    SYNTAX  A3ComPortGarpEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "GARP control information for a bridge port."
    INDEX  { dot1dBasePort }
    ::= { a3ComPortGarpTable 1 }

A3ComPortGarpEntry ::=
    SEQUENCE {
        a3ComPortGmrpAdminStatus
            INTEGER,
        a3ComPortGmrpOperStatus
            INTEGER,
        a3ComPortGvrpAdminStatus
            INTEGER,
        a3ComPortGvrpOperStatus
            INTEGER
    }

a3ComPortGmrpAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2),
                useDefault(3)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The administration state requested for GMRP on
            this port.  The value enabled(1) indicates that GMRP
            should be enabled on this port, in all VLANs, if
            GARP is also enabled for this port.  The value
            disabled(2), indicates that GMRP should be disabled
            on this port, in all VLANs.  The value useDefault(3)
            indicates that GMRP should be enabled on this port,
            in all VLANs, if GARP is enabled for this port, and
            GMRP is also enabled for this device, defined by
            a3ComGmrpOperStatus.
            The default value is disabled(2)."
    ::= { a3ComPortGarpEntry 1 }

a3ComPortGmrpOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The current operational status of GMRP on this
            port."
    ::= { a3ComPortGarpEntry 2 }

a3ComPortGvrpAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2),
                useDefault(3)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The administration state requested for GVRP on
            this port.  The value enabled(1) indicates that GVRP
            should be enabled on this port, if GARP is also
            enabled for this port.  The value disabled(2),
            indicates that GVRP should be disabled on this port.
            The value useDefault(3) indicates that GVRP should
            be enabled on this port, if GARP is enabled for this
            port, and GVRP is also enabled for this device,
            defined by a3ComGvrpOperStatus.
            The default value is disabled(2)."
    ::= { a3ComPortGarpEntry 3 }

a3ComPortGvrpOperStatus OBJECT-TYPE
    SYNTAX  INTEGER {
                enabled(1),
                disabled(2)
            }
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The current operational status of GVRP on this
            port."
    ::= { a3ComPortGarpEntry 4 }

-- ------------------------------------------------------------
-- the a3ComDot1dPriority group
-- ------------------------------------------------------------

-- ------------------------------------------------------------
-- Bridge Priority Table
-- ------------------------------------------------------------

a3ComBridgePriorityTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF A3ComBridgePriorityEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table mapping Incoming User Priority to Outbound
            Access Priority."
    ::= { a3ComPriority 1 }

a3ComBridgePriorityEntry OBJECT-TYPE
    SYNTAX  A3ComBridgePriorityEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "User Priority to Traffic Class mapping."
    INDEX   { a3ComUserPriority }
    ::= { a3ComBridgePriorityTable 1 }

A3ComBridgePriorityEntry ::=
    SEQUENCE {
        a3ComUserPriority
            INTEGER,
        a3ComBridgePriority
            INTEGER
    }

a3ComUserPriority OBJECT-TYPE
    SYNTAX  INTEGER (0..7)
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "The user priority from incoming 802.1Q frames."
    ::= { a3ComBridgePriorityEntry 1 }

a3ComBridgePriority OBJECT-TYPE
    SYNTAX  INTEGER (0..7)
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The transmit priority for outgoing frames."
    ::= { a3ComBridgePriorityEntry 2 }

-- ------------------------------------------------------------
-- the a3ComNeighbour group
-- ------------------------------------------------------------

-- ------------------------------------------------------------
-- The Port Neighbour Table
-- ------------------------------------------------------------

a3ComPortNeighbourTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF A3ComPortNeighbourEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table of Neighbour information for each port
            on this device."
    ::= { a3ComNeighbour 1 }

a3ComPortNeighbourEntry OBJECT-TYPE
    SYNTAX  A3ComPortNeighbourEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "Neighbour information for a port on this device."
    INDEX  { dot1dBasePort }
    ::= { a3ComPortNeighbourTable 1 }

A3ComPortNeighbourEntry ::=
    SEQUENCE {
        a3ComPortForwardUnknownVlans
            INTEGER
    }

a3ComPortForwardUnknownVlans OBJECT-TYPE
    SYNTAX  INTEGER {
                true(1),
                false(2)
            }
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "This is configured statically, by management.
            The value true(1) indicates that traffic for unknown
            VLANs should be forwarded to this port: e.g. the
            neighbour is a switch or a router, that can process
            traffic for VLANs not configured locally by this
            device.  The default value is false(2)."
    ::= { a3ComPortNeighbourEntry 1 }

-- ------------------------------------------------------------
-- the a3ComDot1qVlan group
-- ------------------------------------------------------------

-- ------------------------------------------------------------
-- The Static VLAN Database
-- This is in addition to VLAN creation using ifStackTable.
-- ------------------------------------------------------------

a3ComDot1qVlanStaticTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF A3ComDot1qVlanStaticEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table containing static configuration information
            for each VLAN configured into the bridge by (local
            or network) management."
    ::= { a3ComDot1qVlan 1 }

a3ComDot1qVlanStaticEntry OBJECT-TYPE
    SYNTAX  A3ComDot1qVlanStaticEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "Static information for a VLAN configured into the
            bridge by (local or network) management."
    INDEX   { a3ComDot1qVlanId }
    ::= { a3ComDot1qVlanStaticTable 1 }

A3ComDot1qVlanStaticEntry ::=
    SEQUENCE {
        a3ComDot1qVlanId
            INTEGER,
        a3ComDot1qVlanForbiddenPorts
            PortList
    }

a3ComDot1qVlanId OBJECT-TYPE
    SYNTAX  INTEGER (1..4094)
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "The VLAN identity for which this entry's static
            information applies."
    ::= { a3ComDot1qVlanStaticEntry 1 }

a3ComDot1qVlanForbiddenPorts OBJECT-TYPE
    SYNTAX  PortList
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "The set of ports which are prohibited from joining
            this VLAN by management."
    ::= { a3ComDot1qVlanStaticEntry 2 }

-- ------------------------------------------------------------
-- Dynamic Group Registration Table
-- ------------------------------------------------------------

a3ComDot1qTpGroupTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF A3ComDot1qTpGroupEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "A table containing filtering information for each
            VLAN, configured into the bridge by (local or
            network) management, or learnt by GMRP, specifying
            the set of ports to which frames received on a
            specific VLAN and containing a specific Group
            destination address are allowed to be forwarded."
    ::= { a3ComDot1qVlan 2 }

a3ComDot1qTpGroupEntry OBJECT-TYPE
    SYNTAX  A3ComDot1qTpGroupEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "Filtering information configured into the bridge
            by management, or learnt dynamically, specifying
            the set of ports to which frames received on a
            specific VLAN and containing a specific Group
            destination address are allowed to be forwarded."
    INDEX   { a3ComDot1qVlanId, a3ComDot1qTpGroupAddress }
    ::= { a3ComDot1qTpGroupTable 1 }

A3ComDot1qTpGroupEntry ::=
    SEQUENCE {
        a3ComDot1qTpGroupAddress
            MacAddress,
        a3ComDot1qTpGroupAllowedToGoTo
            PortList,
        a3ComDot1qTpGroupGmrp
            PortList,
        a3ComDot1qTpGroupIgmp
            PortList
    }

a3ComDot1qTpGroupAddress OBJECT-TYPE
    SYNTAX  MacAddress
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
            "The destination Group MAC address in a frame to
            which this entry's filtering information applies."
    ::= { a3ComDot1qTpGroupEntry 1 }

a3ComDot1qTpGroupAllowedToGoTo OBJECT-TYPE
    SYNTAX  PortList
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The complete set of ports in this VLAN, to which
            frames destined for a specific Group MAC address,
            are allowed to be forwarded."
    ::= { a3ComDot1qTpGroupEntry 2 }

a3ComDot1qTpGroupGmrp OBJECT-TYPE
    SYNTAX  PortList
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The set of ports learnt by the stated method, in
            this VLAN, to which frames destined for a specific
            Group MAC address, are allowed to be forwarded."
    ::= { a3ComDot1qTpGroupEntry 3 }

a3ComDot1qTpGroupIgmp OBJECT-TYPE
    SYNTAX  PortList
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The set of ports learnt by the stated method, in
            this VLAN, to which frames destined for a specific
            Group MAC address, are allowed to be forwarded."
    ::= { a3ComDot1qTpGroupEntry 4 }

END
