-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: LAN Switch Multicast Port Management MIB
-- Reference:
-- Version: V1.2
-- History:
-- V1.0 2005-03-22 Created by Wang Xiaodong
-- V1.1 2005-08-11 updated by Wang Xiaodong
--      Add hpnicfMPortGroupLimitReplace
-- V1.2 2006-02-06 updated by Lv Jianning
--      Add hpnicfHostStaticJoinTable
-- ==================================================================
-- ==================================================================
-- ==================================================================
--
-- Variables and types be imported
--
-- ==================================================================
HPN-ICF-MPM-MIB DEFINITIONS ::= BEGIN


IMPORTS

    Integer32,MODULE-IDENTITY,OBJECT-TYPE,Unsigned32,mib-2
        FROM SNMPv2-SMI

    TEXTUAL-CONVENTION,RowStatus
        FROM SNMPv2-TC

    hpnicfCommon
        FROM HPN-ICF-OID-MIB

    InetAddressType, InetAddress
        FROM INET-ADDRESS-MIB

    ifIndex
        FROM IF-MIB;

    hpnicfMpm MODULE-IDENTITY
        LAST-UPDATED "200503220000Z"
        ORGANIZATION
            ""
        CONTACT-INFO
            ""
        DESCRIPTION
            "The MPM (Multicast Port Management) MIB."
        REVISION "200503220000Z"
        DESCRIPTION
            "The initial version of this MIB file."
        ::= { hpnicfCommon 51 }

    EnabledStatus ::= TEXTUAL-CONVENTION
        STATUS     current
        DESCRIPTION
            "A simple status value for the object."
        SYNTAX     INTEGER { enabled(1), disabled(2) }



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

    hpnicfMPMObject OBJECT IDENTIFIER ::= {  hpnicfMpm 1  }

    hpnicfMPortGroupLimitMinNumber OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The lower limit of group-limit number."
        ::= { hpnicfMPMObject 1 }

    hpnicfMPortGroupLimitMaxNumber OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The upper limit of group-limit number."
        ::= { hpnicfMPMObject 2 }


    hpnicfMPMTable OBJECT IDENTIFIER ::= {  hpnicfMpm 2  }

    hpnicfMPortGroupJoinTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF HpnicfMPortGroupJoinEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "A table which is used for configuring a port in a specified VLAN to join
            a multicast group."
        ::= { hpnicfMPMTable 1 }

    hpnicfMPortGroupJoinEntry OBJECT-TYPE
        SYNTAX     HpnicfMPortGroupJoinEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An entry which is used for configuring a port in a specified VLAN to join
            a multicast group."
        INDEX      {
                      ifIndex,
                      hpnicfMPortGroupJoinVlanID,
                      hpnicfMPortGroupJoinAddressType,
                      hpnicfMPortGroupJoinAddress
                      }
        ::= { hpnicfMPortGroupJoinTable 1 }

    HpnicfMPortGroupJoinEntry ::= SEQUENCE {
        hpnicfMPortGroupJoinVlanID          Integer32,
        hpnicfMPortGroupJoinAddressType     InetAddressType,
        hpnicfMPortGroupJoinAddress         InetAddress,
        hpnicfMPortGroupJoinStatus          RowStatus
        }

    hpnicfMPortGroupJoinVlanID OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An index uniquely identifying a port in a specified
            VLAN which joined the multicast group."
        ::= { hpnicfMPortGroupJoinEntry 1 }

    hpnicfMPortGroupJoinAddressType OBJECT-TYPE
        SYNTAX     InetAddressType
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "Type of the multicast IP address."
        ::= { hpnicfMPortGroupJoinEntry 2 }

    hpnicfMPortGroupJoinAddress OBJECT-TYPE
        SYNTAX     InetAddress
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "IP address of the group which the port belongs to,
            and it must be a valid multicast IP address."
        ::= { hpnicfMPortGroupJoinEntry 3 }

    hpnicfMPortGroupJoinStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
            "This object is responsible for managing the creation and
             deletion of rows, which supports 'active', 'notReady',
             'createAndGo', 'destroy'.

             Until instances of all corresponding columns are
             appropriately configured, the value of the
             corresponding instance of the hpnicfMPortGroupJoinStatus
             column is 'notReady'.

             In particular, a newly created row cannot be actived
             until the port belongs to the corresponding VLAN and
             IGMP or IGMP snooping is enabled on that VLAN."
        ::= { hpnicfMPortGroupJoinEntry 4 }

    hpnicfMPortGroupTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF HpnicfMPortGroupEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "A table containing information about the status of a port
             which joined a multicast group in the VLAN."
         ::= { hpnicfMPMTable 2 }

    hpnicfMPortGroupEntry OBJECT-TYPE
        SYNTAX     HpnicfMPortGroupEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An entry containing information about the status of a port
             which joined a multicast group in the VLAN."
        INDEX      {  ifIndex,
                      hpnicfMPortGroupVlanID,
                      hpnicfMPortGroupAddressType,
                      hpnicfMPortGroupAddress
                   }
        ::= { hpnicfMPortGroupTable 1 }

    HpnicfMPortGroupEntry ::= SEQUENCE {
        hpnicfMPortGroupVlanID          Integer32,
        hpnicfMPortGroupAddressType     InetAddressType,
        hpnicfMPortGroupAddress         InetAddress
        }

    hpnicfMPortGroupVlanID OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An index uniquely identifies that a port belongs to a specified
            VLAN."
        ::= { hpnicfMPortGroupEntry 1 }

    hpnicfMPortGroupAddressType OBJECT-TYPE
        SYNTAX     InetAddressType
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Type of multicast IP address."
        ::= { hpnicfMPortGroupEntry 2 }

    hpnicfMPortGroupAddress OBJECT-TYPE
        SYNTAX     InetAddress
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "IP address of the group which the port joined, and it must be a
             valid multicast IP address."
        ::= { hpnicfMPortGroupEntry 3 }

    hpnicfMPortConfigTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF HpnicfMPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table configuring the fast leave status, group limit number and
             group policy parameter on a port in the specified VLAN."
        ::= { hpnicfMPMTable 3 }

    hpnicfMPortConfigEntry OBJECT-TYPE
        SYNTAX  HpnicfMPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An entry containing information about the fast leave status, group
             limit number and group policy parameter of a port in the specified
             VLAN."
        INDEX  { ifIndex,
                 hpnicfMPortConfigVlanID }
        ::= { hpnicfMPortConfigTable 1 }

    HpnicfMPortConfigEntry ::= SEQUENCE {
        hpnicfMPortConfigVlanID          Integer32,
        hpnicfMPortGroupLimitNumber      Unsigned32,
        hpnicfMPortFastLeaveStatus       EnabledStatus,
        hpnicfMPortGroupPolicyParameter  Integer32,
        hpnicfMPortConfigRowStatus       RowStatus,
        hpnicfMPortGroupLimitReplace     EnabledStatus
        }

    hpnicfMPortConfigVlanID OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "The VLAN index."
        ::= { hpnicfMPortConfigEntry 1 }

    hpnicfMPortGroupLimitNumber OBJECT-TYPE
        SYNTAX  Unsigned32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The group limit number of the port."
        ::= { hpnicfMPortConfigEntry 2 }

    hpnicfMPortFastLeaveStatus OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The fast leave status of the port."
        DEFVAL  { 2 }
        ::= { hpnicfMPortConfigEntry 3 }

    hpnicfMPortGroupPolicyParameter OBJECT-TYPE
        SYNTAX  Integer32(0|2000..2999)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The ACL number which is used as the group policy parameter
             of the port."
        DEFVAL  { 0 }
        ::= { hpnicfMPortConfigEntry 4 }

    hpnicfMPortConfigRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The object is responsible for managing the creation and
             deletion of rows, which supports 'active', 'notReady',
             'createAndGo' and 'destroy'."
        ::= { hpnicfMPortConfigEntry 5 }

    hpnicfMPortGroupLimitReplace OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "This object is related to the object hpnicfMPortGroupLimitNumber.
             If the current IGMP group number is less than the value of
             hpnicfMPortGroupLimitNumber, any new IGMP group is permitted.
             If the current IGMP group number equals to the value of
             hpnicfMPortGroupLimitNumber and the value of this object is enabled,
             the group with the minimum multicast address will be replaced by
             the new group.
             If the current IGMP group number equals to the value of
             hpnicfMPortGroupLimitNumber and the value of this object is disabled,
             none of new group will be permitted."
        DEFVAL  { disabled }
        ::= { hpnicfMPortConfigEntry 6 }

    hpnicfHostStaticJoinTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF HpnicfHostStaticJoinEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "A table used to configure a host on a port in a specified VLAN
            statically to join a multicast group."
        ::= { hpnicfMPMTable 4 }

    hpnicfHostStaticJoinEntry OBJECT-TYPE
        SYNTAX     HpnicfHostStaticJoinEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An entry used to configure a host on a port in a specified VLAN
            statically to join a multicast group."
        INDEX      {
                      ifIndex,
                      hpnicfHostStaticJoinVlanID,
                      hpnicfHostStaticJoinAddressType,
                      hpnicfHostStaticJoinAddress
                      }
        ::= { hpnicfHostStaticJoinTable 1 }

    HpnicfHostStaticJoinEntry ::= SEQUENCE {
        hpnicfHostStaticJoinVlanID          Integer32,
        hpnicfHostStaticJoinAddressType     InetAddressType,
        hpnicfHostStaticJoinAddress         InetAddress,
        hpnicfHostStaticJoinStatus          RowStatus
        }

    hpnicfHostStaticJoinVlanID OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "An index uniquely identify the specified VLAN in which a host
            on a port statically joined the multicast group."
        ::= { hpnicfHostStaticJoinEntry 1 }

    hpnicfHostStaticJoinAddressType OBJECT-TYPE
        SYNTAX     InetAddressType
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "Type of the multicast IP address."
        ::= { hpnicfHostStaticJoinEntry 2 }

    hpnicfHostStaticJoinAddress OBJECT-TYPE
        SYNTAX     InetAddress
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION
            "IP address of the group which the host belongs to, and it must be
            a valid multicast IP address."
        ::= { hpnicfHostStaticJoinEntry 3 }

    hpnicfHostStaticJoinStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-create
        STATUS     current
        DESCRIPTION
            "This object is responsible for managing rows, which supports
            'active', 'createAndGo' and 'destroy'."
        ::= { hpnicfHostStaticJoinEntry 4 }
END
