HP-ICF-MAD-MIB DEFINITIONS ::= BEGIN

   IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, 
            Integer32, Counter32    
                 FROM SNMPv2-SMI
            InterfaceIndex
               FROM IF-MIB
            MODULE-COMPLIANCE , OBJECT-GROUP
               FROM SNMPv2-CONF  
            hpSwitch
               FROM  HP-ICF-OID;

    hpicfMadMIB MODULE-IDENTITY
            LAST-UPDATED "201212120000Z"
            ORGANIZATION " HP Networking"
            CONTACT-INFO "Hewlett-Packard Company
                          8000 Foothills Blvd.
                          Roseville, CA 95747"
            DESCRIPTION
                "The MIB module is for Multi Active Detection Technology (MAD)."
             REVISION "201212120000Z"
             DESCRIPTION
                 "Initial version for this MIB module"
             ::= { hpSwitch 95 }

    -- Top-level structure of MIB

    hpicfMadNotifications  OBJECT IDENTIFIER ::= { hpicfMadMIB 0}
    hpicfMadObjects        OBJECT IDENTIFIER ::= { hpicfMadMIB 1}
    hpicfMadConformance    OBJECT IDENTIFIER ::= { hpicfMadMIB 2}


    -- These parameters apply to LACP MAD 

    hpicfMadLacpAggObjects OBJECT IDENTIFIER ::= {hpicfMadObjects 1}

    hpicfMadLacpAggTable OBJECT-TYPE
            SYNTAX          SEQUENCE OF HpicfMadLacpAggEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                "Information describing the MAD configuration 
                 on LACP trunks." 
            ::= { hpicfMadLacpAggObjects 1 }

    hpicfMadLacpAggEntry OBJECT-TYPE
            SYNTAX          HpicfMadLacpAggEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                "Information describing the MAD configuration
                 on LACP trunks."
            INDEX           { hpicfMadLacpAggTrunkId }
            ::= { hpicfMadLacpAggTable 1 }

    HpicfMadLacpAggEntry ::= SEQUENCE {
            hpicfMadLacpAggTrunkId
                    Integer32,
            hpicfMadPassthroughLacpAggAdminStatus 
                    INTEGER
    }

    hpicfMadLacpAggTrunkId OBJECT-TYPE
            SYNTAX          Integer32 (1..65535)
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                "A LACP trunk ID to uniquely identify each entry in the table."
            ::= { hpicfMadLacpAggEntry 1 }

    hpicfMadPassthroughLacpAggAdminStatus  OBJECT-TYPE
            SYNTAX      INTEGER {
                          enable(1),
                          disable(2)
                        }
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION "The desired administrative state of MAD passthrough on
                         LACP trunk interface.By default lacp mad passthrough 
                         will be enabled on all LACP trunks."                      
            ::= { hpicfMadLacpAggEntry 2}


--  LACP-MAD Statistics Table

    hpicfMadLacpAggPortStatsTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HpicfMadLacpAggPortStatsEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
             "A table that contains MAD( Multi Active Detection) information
              of every port that is associated with LACP trunk.
              A row appears in this table for each physical port of LACP trunk."
            ::= { hpicfMadLacpAggObjects  2 }


    hpicfMadLacpAggPortStatsEntry OBJECT-TYPE
            SYNTAX      HpicfMadLacpAggPortStatsEntry 
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                     "A list of Link Aggregation Control Protocol statistics
                      for each port on this device."
            INDEX { hpicfMadLacpAggPortIndex }
            ::= { hpicfMadLacpAggPortStatsTable 1 }


     HpicfMadLacpAggPortStatsEntry ::=
           SEQUENCE {
              hpicfMadLacpAggPortIndex
                  InterfaceIndex,
              hpicfMadPassthroughLacpAggPDUsRx
                  Counter32,
              hpicfMadPassthroughLacpAggPDUsTx
                  Counter32,
              hpicfMadPassthroughLacpAggPDUsDropped 
                  Counter32
     }

     hpicfMadLacpAggPortIndex OBJECT-TYPE
            SYNTAX          InterfaceIndex
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                "Physical port to uniquely identify an entry."
            ::= { hpicfMadLacpAggPortStatsEntry 1 }

     hpicfMadPassthroughLacpAggPDUsRx OBJECT-TYPE
            SYNTAX       Counter32
            MAX-ACCESS   read-only
            STATUS       current
            DESCRIPTION
               "The number of valid LACP PDUs with MAD TLV received on this
                aggregation port. This value is read-only."
            ::= { hpicfMadLacpAggPortStatsEntry 2 }

     hpicfMadPassthroughLacpAggPDUsTx OBJECT-TYPE
            SYNTAX       Counter32
            MAX-ACCESS   read-only
            STATUS       current
            DESCRIPTION
               "The number of LACP PDUs with MAD TLV transmitted on this
                aggregation port. This value is read-only."
            ::= { hpicfMadLacpAggPortStatsEntry 3 }

     hpicfMadPassthroughLacpAggPDUsDropped OBJECT-TYPE
            SYNTAX       Counter32
            MAX-ACCESS   read-only
            STATUS       current
            DESCRIPTION
               "The number of LACPDUs with MAD TLV dropped on this
                aggregation port. This value is read-only."    
            ::= { hpicfMadLacpAggPortStatsEntry 4 }


-- Conformance Information

    hpicfMadLacpAggGoups OBJECT IDENTIFIER ::= { hpicfMadConformance 1 }
    hpicfMadLacpAggCompliances OBJECT IDENTIFIER ::= { hpicfMadConformance 2 }

-- Compliance Statements 

    hpicfMadLacpAggCompliance1 MODULE-COMPLIANCE
            STATUS          current
            DESCRIPTION     "The compliance statement"
            MODULE          -- this module
            MANDATORY-GROUPS {
                            hpicfMadLacpAggConfigGroup,
                            hpicfMadLacpAggStatisticsGroup                          
                            }
            ::= { hpicfMadLacpAggCompliances 1 }



-- units of conformance

    hpicfMadLacpAggConfigGroup OBJECT-GROUP
            OBJECTS         {  
                              hpicfMadPassthroughLacpAggAdminStatus
                            }
            STATUS          current
            DESCRIPTION
                   "These objects are used for managing
                    LACP MAD configuration parameters."
              ::= { hpicfMadLacpAggGoups 1 }

    hpicfMadLacpAggStatisticsGroup OBJECT-GROUP
            OBJECTS         {  
                            
                            hpicfMadPassthroughLacpAggPDUsRx,
                            hpicfMadPassthroughLacpAggPDUsTx,
                            hpicfMadPassthroughLacpAggPDUsDropped
                            } 
                           
            STATUS          current
            DESCRIPTION
                "These objects are used for providing information about 
                 each port."
            ::= { hpicfMadLacpAggGoups 2 }

END

