 IPV6-ICMP-MIB DEFINITIONS ::= BEGIN

 IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE,
     Counter32, mib-2                 FROM SNMPv2-SMI
     MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
     ipv6IfEntry                      FROM IPV6-MIB;

 ipv6IcmpMIB MODULE-IDENTITY
     LAST-UPDATED "9801082155Z"
     ORGANIZATION "IETF IPv6 Working Group"
     CONTACT-INFO
       "           Dimitry Haskin

           Postal: Bay Networks, Inc.
                   660 Techology Park Drive.
                   Billerica, MA  01821
                   US

              Tel: +1-978-916-8124
           E-mail: dhaskin@baynetworks.com

                   Steve Onishi

           Postal: Bay Networks, Inc.
                   3 Federal Street
                   Billerica, MA 01821
                   US

              Tel: +1-978-916-3816
           E-mail: sonishi@baynetworks.com"
     DESCRIPTION
       "The MIB module for entities implementing
        the ICMPv6."
     ::= { mib-2 56 }

 -- the ICMPv6 group

 ipv6IcmpMIBObjects OBJECT IDENTIFIER ::= { ipv6IcmpMIB  1 }

 -- Per-interface ICMPv6 statistics table

 ipv6IfIcmpTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF Ipv6IfIcmpEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
      "IPv6 ICMP statistics. This table contains statistics
      of ICMPv6 messages that are received and sourced by
      the entity."
     ::= { ipv6IcmpMIBObjects 1 }

 ipv6IfIcmpEntry OBJECT-TYPE
     SYNTAX     Ipv6IfIcmpEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
      "An ICMPv6 statistics entry containing
      objects at a particular IPv6 interface.

      Note that a receiving interface is
      the interface to which a given ICMPv6 message
      is addressed which may not be necessarily
      the input interface for the message.

      Similarly,  the sending interface is
      the interface that sources a given
      ICMP message which is usually but not
      necessarily the output interface for the message."
     AUGMENTS { ipv6IfEntry }
     ::= { ipv6IfIcmpTable 1 }

 Ipv6IfIcmpEntry ::= SEQUENCE {
         ipv6IfIcmpInMsgs
               Counter32      ,
         ipv6IfIcmpInErrors
               Counter32      ,
         ipv6IfIcmpInDestUnreachs
               Counter32      ,
         ipv6IfIcmpInAdminProhibs
               Counter32      ,
         ipv6IfIcmpInTimeExcds
               Counter32      ,
         ipv6IfIcmpInParmProblems
               Counter32      ,
         ipv6IfIcmpInPktTooBigs
               Counter32      ,
         ipv6IfIcmpInEchos
               Counter32      ,
         ipv6IfIcmpInEchoReplies
               Counter32      ,
         ipv6IfIcmpInRouterSolicits
               Counter32      ,
         ipv6IfIcmpInRouterAdvertisements
               Counter32      ,
         ipv6IfIcmpInNeighborSolicits
               Counter32      ,
         ipv6IfIcmpInNeighborAdvertisements
               Counter32      ,
         ipv6IfIcmpInRedirects
               Counter32      ,
         ipv6IfIcmpInGroupMembQueries
               Counter32      ,
         ipv6IfIcmpInGroupMembResponses
               Counter32      ,
         ipv6IfIcmpInGroupMembReductions
               Counter32      ,
         ipv6IfIcmpOutMsgs
               Counter32      ,
         ipv6IfIcmpOutErrors
               Counter32      ,
         ipv6IfIcmpOutDestUnreachs
               Counter32      ,
         ipv6IfIcmpOutAdminProhibs
               Counter32      ,
         ipv6IfIcmpOutTimeExcds
               Counter32      ,
         ipv6IfIcmpOutParmProblems
               Counter32      ,
         ipv6IfIcmpOutPktTooBigs
               Counter32      ,
         ipv6IfIcmpOutEchos
               Counter32      ,
         ipv6IfIcmpOutEchoReplies
               Counter32      ,
         ipv6IfIcmpOutRouterSolicits
               Counter32      ,
         ipv6IfIcmpOutRouterAdvertisements
               Counter32      ,
         ipv6IfIcmpOutNeighborSolicits
               Counter32      ,
         ipv6IfIcmpOutNeighborAdvertisements
               Counter32      ,
         ipv6IfIcmpOutRedirects
               Counter32      ,
         ipv6IfIcmpOutGroupMembQueries
               Counter32      ,
         ipv6IfIcmpOutGroupMembResponses
               Counter32      ,
         ipv6IfIcmpOutGroupMembReductions
               Counter32

     }

 ipv6IfIcmpInMsgs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The total number of ICMP messages received
      by the interface which includes all those
      counted by ipv6IfIcmpInErrors. Note that this
      interface is the interface to which the
      ICMP messages were addressed which may not be
      necessarily the input interface for the messages."
     ::= { ipv6IfIcmpEntry 1 }

 ipv6IfIcmpInErrors OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP messages which the interface
      received but determined as having ICMP-specific
      errors (bad ICMP checksums, bad length, etc.)."
     ::= { ipv6IfIcmpEntry 2 }

 ipv6IfIcmpInDestUnreachs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Destination Unreachable
      messages received by the interface."
     ::= { ipv6IfIcmpEntry 3 }

 ipv6IfIcmpInAdminProhibs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP destination
      unreachable/communication administratively
      prohibited messages received by the interface."
     ::= { ipv6IfIcmpEntry 4 }

 ipv6IfIcmpInTimeExcds OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Time Exceeded messages
       received by the interface."
     ::= { ipv6IfIcmpEntry 5 }

 ipv6IfIcmpInParmProblems OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Parameter Problem messages
       received by the interface."
     ::= { ipv6IfIcmpEntry 6 }

 ipv6IfIcmpInPktTooBigs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Packet Too Big messages
      received by the interface."
     ::= { ipv6IfIcmpEntry 7 }

 ipv6IfIcmpInEchos OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Echo (request) messages
       received by the interface."
     ::= { ipv6IfIcmpEntry 8 }

 ipv6IfIcmpInEchoReplies OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Echo Reply messages received
      by the interface."
     ::= { ipv6IfIcmpEntry 9 }

 ipv6IfIcmpInRouterSolicits OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Router Solicit messages
       received by the interface."
     ::= { ipv6IfIcmpEntry 10 }

 ipv6IfIcmpInRouterAdvertisements OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Router Advertisement messages
      received by the interface."
     ::= { ipv6IfIcmpEntry 11 }

 ipv6IfIcmpInNeighborSolicits OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Neighbor Solicit messages
       received by the interface."
     ::= { ipv6IfIcmpEntry 12 }

 ipv6IfIcmpInNeighborAdvertisements OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Neighbor Advertisement
      messages received by the interface."
     ::= { ipv6IfIcmpEntry 13 }

 ipv6IfIcmpInRedirects OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of Redirect messages received
      by the interface."
     ::= { ipv6IfIcmpEntry 14 }

 ipv6IfIcmpInGroupMembQueries OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMPv6 Group Membership Query
      messages received by the interface."
     ::= { ipv6IfIcmpEntry 15}

 ipv6IfIcmpInGroupMembResponses OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMPv6 Group Membership Response messages
      received by the interface."
     ::= { ipv6IfIcmpEntry 16}

  ipv6IfIcmpInGroupMembReductions OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMPv6 Group Membership Reduction messages
      received by the interface."
     ::= { ipv6IfIcmpEntry 17}

 ipv6IfIcmpOutMsgs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The total number of ICMP messages which this
      interface attempted to send.  Note that this counter
      includes all those counted by icmpOutErrors."
     ::= { ipv6IfIcmpEntry 18 }

 ipv6IfIcmpOutErrors OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP messages which this interface did
      not send due to problems discovered within ICMP
      such as a lack of buffers.  This value should not
      include errors discovered outside the ICMP layer
      such as the inability of IPv6 to route the resultant
      datagram.  In some implementations there may be no
      types of error which contribute to this counter's
      value."
     ::= { ipv6IfIcmpEntry 19 }

 ipv6IfIcmpOutDestUnreachs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Destination Unreachable

      messages sent by the interface."
     ::= { ipv6IfIcmpEntry 20 }

 ipv6IfIcmpOutAdminProhibs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
       "Number of ICMP dest unreachable/communication
       administratively prohibited messages sent."
     ::= { ipv6IfIcmpEntry 21 }

 ipv6IfIcmpOutTimeExcds OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Time Exceeded messages sent
      by the interface."
     ::= { ipv6IfIcmpEntry 22 }

 ipv6IfIcmpOutParmProblems OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Parameter Problem messages
      sent by the interface."
     ::= { ipv6IfIcmpEntry 23 }

 ipv6IfIcmpOutPktTooBigs OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Packet Too Big messages sent
      by the interface."
     ::= { ipv6IfIcmpEntry 24 }

 ipv6IfIcmpOutEchos OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Echo (request) messages sent
      by the interface."
     ::= { ipv6IfIcmpEntry 25 }

 ipv6IfIcmpOutEchoReplies OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Echo Reply messages sent
      by the interface."
     ::= { ipv6IfIcmpEntry 26 }

 ipv6IfIcmpOutRouterSolicits OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Router Solicitation messages
       sent by the interface."
     ::= { ipv6IfIcmpEntry 27 }

 ipv6IfIcmpOutRouterAdvertisements OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Router Advertisement messages
      sent by the interface."
     ::= { ipv6IfIcmpEntry 28 }

 ipv6IfIcmpOutNeighborSolicits OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Neighbor Solicitation
       messages sent by the interface."
     ::= { ipv6IfIcmpEntry 29 }

 ipv6IfIcmpOutNeighborAdvertisements OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMP Neighbor Advertisement
      messages sent by the interface."
     ::= { ipv6IfIcmpEntry 30 }

 ipv6IfIcmpOutRedirects OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of Redirect messages sent. For
      a host, this object will always be zero,
      since hosts do not send redirects."
     ::= { ipv6IfIcmpEntry 31 }

 ipv6IfIcmpOutGroupMembQueries OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMPv6 Group Membership Query
      messages sent."
     ::= { ipv6IfIcmpEntry 32}

 ipv6IfIcmpOutGroupMembResponses OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMPv6 Group Membership Response
      messages sent."
     ::= { ipv6IfIcmpEntry 33}

 ipv6IfIcmpOutGroupMembReductions OBJECT-TYPE
     SYNTAX     Counter32
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION
      "The number of ICMPv6 Group Membership Reduction
      messages sent."
     ::= { ipv6IfIcmpEntry 34}

-- conformance information

ipv6IcmpConformance OBJECT IDENTIFIER ::= { ipv6IcmpMIB 2 }

ipv6IcmpCompliances
        OBJECT IDENTIFIER ::= { ipv6IcmpConformance 1 }
ipv6IcmpGroups
        OBJECT IDENTIFIER ::= { ipv6IcmpConformance 2 }

-- compliance statements

ipv6IcmpCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
      "The compliance statement for SNMPv2 entities which
      implement ICMPv6."
    MODULE  -- this module
        MANDATORY-GROUPS { ipv6IcmpGroup }
    ::= { ipv6IcmpCompliances 1 }

ipv6IcmpGroup OBJECT-GROUP
    OBJECTS   {
                ipv6IfIcmpInMsgs,
                ipv6IfIcmpInErrors,
                ipv6IfIcmpInDestUnreachs,
                ipv6IfIcmpInAdminProhibs,
                ipv6IfIcmpInTimeExcds,
                ipv6IfIcmpInParmProblems,
                ipv6IfIcmpInPktTooBigs,
                ipv6IfIcmpInEchos,
                ipv6IfIcmpInEchoReplies,
                ipv6IfIcmpInRouterSolicits,
                ipv6IfIcmpInRouterAdvertisements,
                ipv6IfIcmpInNeighborSolicits,
                ipv6IfIcmpInNeighborAdvertisements,
                ipv6IfIcmpInRedirects,
                ipv6IfIcmpInGroupMembQueries,
                ipv6IfIcmpInGroupMembResponses,
                ipv6IfIcmpInGroupMembReductions,
                ipv6IfIcmpOutMsgs,
                ipv6IfIcmpOutErrors,
                ipv6IfIcmpOutDestUnreachs,
                ipv6IfIcmpOutAdminProhibs,
                ipv6IfIcmpOutTimeExcds,
                ipv6IfIcmpOutParmProblems,
                ipv6IfIcmpOutPktTooBigs,
                ipv6IfIcmpOutEchos,
                ipv6IfIcmpOutEchoReplies,
                ipv6IfIcmpOutRouterSolicits,
                ipv6IfIcmpOutRouterAdvertisements,
                ipv6IfIcmpOutNeighborSolicits,
                ipv6IfIcmpOutNeighborAdvertisements,
                ipv6IfIcmpOutRedirects,
                ipv6IfIcmpOutGroupMembQueries,
                ipv6IfIcmpOutGroupMembResponses,
                ipv6IfIcmpOutGroupMembReductions
              }
    STATUS    current
    DESCRIPTION
         "The ICMPv6 group of objects providing information
          specific to ICMPv6."
    ::= { ipv6IcmpGroups 1 }

 END
