-- **********************************************************************
-- 
-- Comments:            The MIB is used in conjunction with Angel version
--                      of the Gerry agent software.
--
-- History:
--   Date      Author           Comment
--   ----      ------           -------
--  10Oct2002  Alvin Cummings   portInfo mib created.
--
-- **********************************************************************
--      Copyright (C) 3Com Corporation. All rights reserved.
-- **********************************************************************

A3COM0503-PORTINFO DEFINITIONS ::= BEGIN

    IMPORTS
        OBJECT-TYPE FROM RFC-1212
        TruthValue, RowStatus FROM SNMPv2-TC
        VlanIndex FROM Q-BRIDGE-MIB
        MacAddress FROM BRIDGE-MIB
        ifIndex FROM RFC1213-MIB
        a3ComVlanGroup FROM GENERIC-3COM-VLAN-MIB-1-0-7
        ;
    
VlanList ::= OCTET STRING
--         Each octet within this value specifies a set of eight
--         vlans, with the first octet specifying vlans 1 through
--         8, the second octet specifying vlans 9 through 16, etc.
--         Within each octet, the most significant bit represents
--         represents the lowest numbered vlan.  Thus, each vlan
--         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 vlan is included in the set of vlans; the vlan
--         is not included if its bit has a value of '0'.

-- -------------------------------------------------------------
-- The portInfo Table
-- -------------------------------------------------------------

portInfoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF PortInfoEntry
    ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "A table indexed by ifIndex of a port. 
         This can be a font-panel/module port e.g. 101
     or an aggregator 15512."
    ::= { a3ComVlanGroup 3 }


portInfoEntry OBJECT-TYPE
    SYNTAX      PortInfoEntry
    ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "Bridge information for a port"
    INDEX { ifIndex }
    ::= { portInfoTable 1 }



PortInfoEntry ::=
    SEQUENCE {
        portInfoEgressVlans
        VlanList,
        portInfoForbiddenEgressVlans
        VlanList,
        portInfoUntaggedVlans
        VlanList,
    portInfoStpPortPriority
        INTEGER,
        portInfoStpPortEnable
        INTEGER,    
        portInfoPvid
            VlanIndex,
        portInfoAcceptableFrameTypes
            INTEGER,
        portInfoIngressFiltering
            TruthValue
    }


portInfoEgressVlans OBJECT-TYPE
    SYNTAX      VlanList
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "The set of vlans on which this port is allowed
        to transmit traffic."
    REFERENCE
        "3fc..."
    ::= { portInfoEntry 1 }


portInfoForbiddenEgressVlans OBJECT-TYPE
    SYNTAX      VlanList
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "The set of vlans on which this port is forbidden 
        to transmit."
    REFERENCE
        "3fc..."
    ::= { portInfoEntry 2 }


portInfoUntaggedVlans OBJECT-TYPE
    SYNTAX      VlanList
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "The set of vlans on which this port transmits
        untagged frames."
    REFERENCE
        "3fc..."
    ::= { portInfoEntry 3 }


portInfoStpPortPriority OBJECT-TYPE
    SYNTAX      INTEGER (0..255)
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "The value of the priority field which is
         contained in the first (in network byte order)
         octet of the (2 octet long) Port ID.  The other
         octet of the Port ID is given by the value of
         dot1dStpPort.."
    REFERENCE
            "IEEE 802.1D-1990: Section 4.5.5.1"
    ::= { portInfoEntry 4 }


portInfoStpPortEnable OBJECT-TYPE
    SYNTAX      INTEGER {
                enabled(1),
                disabled(2)
        }
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
            "The enabled/disabled status of the port."
    REFERENCE
            "IEEE 802.1D-1990: Section 4.5.5.2"
    ::= { portInfoEntry 5 }


portInfoPvid OBJECT-TYPE
    SYNTAX      VlanIndex
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "The PVID, the VLAN ID assigned to untagged frames or
        Prority-Tagged frames received on this port."
    REFERENCE
        "IEEE 802.1Q/D11 Section 12.10.1.1"
    DEFVAL      { 1 }
    ::= { portInfoEntry 6 }


portInfoAcceptableFrameTypes OBJECT-TYPE
    SYNTAX      INTEGER {
                    admitAll(1),
                    admitOnlyVlanTagged(2)
                }
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "When this is admitOnlyVlanTagged(2) the device will
        discard untagged frames or Prority-Tagged frames
        received on this port.  When admitAll(1), untagged
        frames or Prority-Tagged frames received on this port
        will be accepted and assigned to the PVID for this port.

        This control does not affect VLAN independent BPDU
        frames, such as GVRP and STP.  It does affect VLAN
        dependent BPDU frames, such as GMRP."
    REFERENCE
        "IEEE 802.1Q/D11 Section 12.10.1.3"
    DEFVAL      { admitAll }
    ::= { portInfoEntry 7 }


portInfoIngressFiltering OBJECT-TYPE
    SYNTAX      TruthValue
    ACCESS      read-write
    STATUS      current
    DESCRIPTION
        "When this is true(1) the device will discard incoming
        frames for VLANs which do not include this Port in its
        Member set.  When false(2), the port will accept all
        incoming frames.

        This control does not affect VLAN independent BPDU
        frames, such as GVRP and STP.  It does affect VLAN
        dependent BPDU frames, such as GMRP."
    REFERENCE
        "IEEE 802.1Q/D11 Section 12.10.1.4"
    DEFVAL      { false }
    ::= { portInfoEntry 8 }


-- -------------------------------------------------------------
-- The portInfoFdbTable Table
-- -------------------------------------------------------------

portInfoFdbTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF PortInfoFdbEntry
      ACCESS      not-accessible
      STATUS      mandatory
      DESCRIPTION "This table contains the static unicast
      addresses for each port in the bridge."
      ::= { a3ComVlanGroup 4 }


portInfoFdbEntry OBJECT-TYPE
      SYNTAX      PortInfoFdbEntry
      ACCESS      not-accessible
      STATUS      mandatory
      DESCRIPTION "Information about a specific unicast MAC address."
      INDEX       {portInfoFdbIndex, portInfoFdbVlan, portInfoFdbAddress}
      ::= {portInfoFdbTable 1}


PortInfoFdbEntry ::= SEQUENCE {
                  portInfoFdbIndex           INTEGER,
                  portInfoFdbVlan                VlanIndex,
                  portInfoFdbAddress             MacAddress,
                  portInfoFdbStatus              RowStatus
                  }


portInfoFdbIndex OBJECT-TYPE
      SYNTAX      INTEGER (0..65535)
      ACCESS      not-accessible
      STATUS      mandatory
      DESCRIPTION "This contains the ifIndex of the port that this address
      has been seen on."
      ::= {portInfoFdbEntry 1}


portInfoFdbVlan OBJECT-TYPE
      SYNTAX      VlanIndex 
      ACCESS      not-accessible
      STATUS      mandatory
      DESCRIPTION "The Vlan index of the port."
      ::= {portInfoFdbEntry 2}


portInfoFdbAddress OBJECT-TYPE
      SYNTAX      MacAddress
      ACCESS      not-accessible
      STATUS      mandatory
      DESCRIPTION "This object contains the unicast MAC address of the 
      entry."
      ::= {portInfoFdbEntry 3}


portInfoFdbStatus OBJECT-TYPE
      SYNTAX      RowStatus
      ACCESS      read-only
      STATUS      mandatory
      DESCRIPTION "This has useful states of active, destroy, and 
      createAndGo. An fdb entry can be created with a
      state of createAndGo or active. The fdb entry can be 
      deleted by setting the state to destroy."
      ::= {portInfoFdbEntry 4}

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

END


