-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: MAC management MIB
-- Reference:
-- Version: V2.3
-- History:
--(1) Created by Zhangshilin, 2001.06.29
-- V2.0 2004-10-12 updated by gaolong
--      Import TEXTUAL-CONVENTION and MODULE-IDENTITY.
--      Add hpnicfLswMacPort MODULE-IDENTITY clause.
--      Change ACCESS to MAX-ACCESS.
--      Change MAX-ACCESS clause value from write-only to read-write.
-- V2.1 2005-03-16 by gaolong
--      Change import clause of hpnicfdot1qVlanIndex
-- V2.2 2005-07-28 by huna kf0518
--      Add hpnicfdot1qTpFdbGroupSetTable
-- V2.3 2005-02-25 by wangyupeng
--      Add blackhole and security for hpnicfdot1qTpFdbSetStatus
-- ==================================================================

-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HPN-ICF-LswMAM-MIB DEFINITIONS ::= BEGIN
IMPORTS

    MacAddress, TEXTUAL-CONVENTION
        FROM SNMPv2-TC

    OBJECT-TYPE,Integer32, MODULE-IDENTITY
        FROM SNMPv2-SMI

    hpnicflswCommon
        FROM HPN-ICF-OID-MIB

    hpnicfdot1qVlanIndex
        FROM HPN-ICF-LswVLAN-MIB;

    hpnicfLswMacPort MODULE-IDENTITY
            LAST-UPDATED "200106290000Z"
            ORGANIZATION
                ""
            CONTACT-INFO
                ""
            DESCRIPTION
            " "
            REVISION "200106290000Z"
            DESCRIPTION
            " "
            ::= { hpnicflswCommon 3 }

    InterfaceIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each interface
               or interface sub-layer in the managed system.  It is
               recommended that values are assigned contiguously
               starting from 1.  The value for each interface sub-
               layer must remain constant at least from one re-
               initialization of the entity's network management
               system to the next re-initialization."
       SYNTAX       Integer32

    PortList ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
            "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'."
        SYNTAX      OCTET STRING




-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================



    hpnicfdot1qMacSearchTable   OBJECT-TYPE
        SYNTAX  SEQUENCE OF HpnicfDot1qMacSearchEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "Information table for searching port with mac address   "
        ::= { hpnicfLswMacPort  1 }

    hpnicfdot1qMacSearchEntry   OBJECT-TYPE
        SYNTAX  HpnicfDot1qMacSearchEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                " Information table for searching port with mac address entry  "
        INDEX   { hpnicfdot1qMacSearchAddress, hpnicfdot1qMacSearchVlanID }
        ::= { hpnicfdot1qMacSearchTable  1 }

    HpnicfDot1qMacSearchEntry ::=
       SEQUENCE {
                hpnicfdot1qMacSearchAddress MacAddress ,
                hpnicfdot1qMacSearchVlanID  INTEGER ,
                hpnicfdot1qMacSearchPort    InterfaceIndex ,
                hpnicfdot1qMacSearchAgeTime INTEGER
                }

    hpnicfdot1qMacSearchAddress   OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "MAC address"
        ::= { hpnicfdot1qMacSearchEntry  1 }

    hpnicfdot1qMacSearchVlanID OBJECT-TYPE
        SYNTAX  INTEGER (-1 | 1..4096)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
               " VLANID of the native VLAN of the MAC address to be searched for "
        ::= { hpnicfdot1qMacSearchEntry  2 }

    hpnicfdot1qMacSearchPort OBJECT-TYPE
        SYNTAX  InterfaceIndex
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
               "Interface index corresponding to the MAC address"
        ::= { hpnicfdot1qMacSearchEntry  3 }

    hpnicfdot1qMacSearchAgeTime OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
               " Address aging time"
        ::= { hpnicfdot1qMacSearchEntry  4 }


    hpnicfdot1qTpFdbSetTable   OBJECT-TYPE
        SYNTAX  SEQUENCE OF HpnicfDot1qTpFdbSetEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "Unicast address setting table  "
        ::= { hpnicfLswMacPort  2 }

    hpnicfdot1qTpFdbSetEntry   OBJECT-TYPE
        SYNTAX  HpnicfDot1qTpFdbSetEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                " Unicast address setting table entry "
        INDEX   { hpnicfdot1qVlanIndex, hpnicfdot1qTpFdbSetAddress }
        ::= { hpnicfdot1qTpFdbSetTable  1 }

    HpnicfDot1qTpFdbSetEntry ::=
       SEQUENCE {
                hpnicfdot1qTpFdbSetAddress  MacAddress ,
                hpnicfdot1qTpFdbSetPort     InterfaceIndex ,
                hpnicfdot1qTpFdbSetStatus   INTEGER,
                hpnicfdot1qTpFdbSetOperate  INTEGER
                }

    hpnicfdot1qTpFdbSetAddress   OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "Unicast MAC address "
        ::= { hpnicfdot1qTpFdbSetEntry  1 }


    hpnicfdot1qTpFdbSetPort OBJECT-TYPE
        SYNTAX  InterfaceIndex

        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
               "Interface index corresponding to the MAC address "
        ::= { hpnicfdot1qTpFdbSetEntry  2 }

    hpnicfdot1qTpFdbSetStatus OBJECT-TYPE
        SYNTAX  INTEGER {
            other(1),
            learned(3),
            static(6),
            dynamic(7),
            blackhole(9),
            security(11)
                }
        MAX-ACCESS read-write
        STATUS      current
        DESCRIPTION
               "State corresponding to the MAC address"
        ::= { hpnicfdot1qTpFdbSetEntry 3 }

    hpnicfdot1qTpFdbSetOperate OBJECT-TYPE
        SYNTAX  INTEGER {
            add(1),
            delete(2)
            }
        MAX-ACCESS read-write
        STATUS      current
        DESCRIPTION
        "Add or delete an MAC address.  Read operation not supported."
        ::= { hpnicfdot1qTpFdbSetEntry 4 }


    hpnicfdot1qTpFdbGroupSetTable   OBJECT-TYPE
        SYNTAX  SEQUENCE OF HpnicfDot1qTpFdbGroupSetEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "Multistcast address setting table, whose maximal row number
                 is dynamically changed by the influence of IGSP.  When
                 reaching the upper limit of the table, no more row could be
                 added, then an error will be returned."
        ::= { hpnicfLswMacPort  3 }

    hpnicfdot1qTpFdbGroupSetEntry   OBJECT-TYPE
        SYNTAX  HpnicfDot1qTpFdbGroupSetEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "Multicast address setting table entry."
        INDEX   { hpnicfdot1qVlanIndex, hpnicfdot1qTpFdbGroupSetAddress }
        ::= { hpnicfdot1qTpFdbGroupSetTable  1 }

    HpnicfDot1qTpFdbGroupSetEntry ::=
       SEQUENCE {
                hpnicfdot1qTpFdbGroupSetAddress  MacAddress,
                hpnicfdot1qTpFdbGroupSetPort     PortList,
                hpnicfdot1qTpFdbGroupSetOperate  INTEGER
                }

    hpnicfdot1qTpFdbGroupSetAddress   OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "Multicast MAC address."
        ::= { hpnicfdot1qTpFdbGroupSetEntry  1 }

    hpnicfdot1qTpFdbGroupSetPort OBJECT-TYPE
        SYNTAX      PortList
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                "The complete set of ports, in this VLAN, to which
                 frames destined to this Multicast MAC address are currently
                 being explicitly forwarded.  This does not include ports
                 for which this address is only implicitly forwarded."
        ::= { hpnicfdot1qTpFdbGroupSetEntry  2 }

    hpnicfdot1qTpFdbGroupSetOperate OBJECT-TYPE
        SYNTAX  INTEGER {
            add(1),
            delete(2)
            }
        MAX-ACCESS read-write
        STATUS      current
        DESCRIPTION
                "Add or delete a Multicast MAC address.  Read operation is
                 meaningless.  When adding a Multicast MAC address, it is
                 required to provide MacAddress, VLAN and PortList all.  For
                 deleting operation, MacAddress and VLAN must be provided,
                 but hpnicfdot1qTpFdbGroupSetPort is optional."
        ::= { hpnicfdot1qTpFdbGroupSetEntry 3 }


END
