ARISTA-IP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Counter64, Unsigned32             FROM SNMPv2-SMI
    TimeStamp                         FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP   FROM SNMPv2-CONF
    InetVersion                       FROM INET-ADDRESS-MIB
    InterfaceIndex                    FROM IF-MIB
    aristaMibs                        FROM ARISTA-SMI-MIB;

aristaIpMIB  MODULE-IDENTITY
    LAST-UPDATED "201812120000Z"
    ORGANIZATION "Arista Networks, Inc."
    CONTACT-INFO
        "Arista Networks, Inc.

         Postal: 5453 Great America Parkway
                 Santa Clara, CA 95054

         Tel: +1 408 547-5500

         E-mail: snmp@arista.com"
    DESCRIPTION
           "This MIB module provides additional IP statistics
            on Arista devices."
    REVISION     "201812120000Z"
    DESCRIPTION
           "Initial revision of the MIB module."
    ::= { aristaMibs 27 }

aristaIpMibObjects OBJECT IDENTIFIER
    ::= { aristaIpMIB 1 }

aristaIpMibConformance  OBJECT IDENTIFIER
    ::= { aristaIpMIB 2 }

aristaIpIfStatsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF AristaIpIfStatsEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains traffic statistics per IP version per interface
         beyond what the IP-MIB provides, such as separate counters for
         unicast and multicast traffic."
    ::= { aristaIpMibObjects 1 }

aristaIpIfStatsEntry OBJECT-TYPE
    SYNTAX      AristaIpIfStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing IP statistics for a given interface."
    INDEX   { aristaIpIfStatsIPVersion, aristaIpIfStatsIfIndex }
    ::= { aristaIpIfStatsTable 1 }

AristaIpIfStatsEntry ::= SEQUENCE {
    aristaIpIfStatsIPVersion           InetVersion,
    aristaIpIfStatsIfIndex             InterfaceIndex,

    aristaIpIfStatsInPkts              Counter64,
    aristaIpIfStatsInOctets            Counter64,
    aristaIpIfStatsOutPkts             Counter64,
    aristaIpIfStatsOutOctets           Counter64,
    aristaIpIfStatsInUcastPkts         Counter64,
    aristaIpIfStatsInUcastOctets       Counter64,
    aristaIpIfStatsOutUcastPkts        Counter64,
    aristaIpIfStatsOutUcastOctets      Counter64,
    aristaIpIfStatsInMcastPkts         Counter64,
    aristaIpIfStatsInMcastOctets       Counter64,
    aristaIpIfStatsOutMcastPkts        Counter64,
    aristaIpIfStatsOutMcastOctets      Counter64,
    aristaIpIfStatsDiscontinuityTime   TimeStamp,
    aristaIpIfStatsRefreshRate         Unsigned32
}

aristaIpIfStatsIPVersion OBJECT-TYPE
    SYNTAX     InetVersion
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The IP version of this row."
    ::= { aristaIpIfStatsEntry 1 }

aristaIpIfStatsIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The index value that uniquely identifies the interface to
         which this entry is applicable.  The interface identified by
         a particular value of this index is the same interface as
         identified by the same value of the IF-MIB's ifIndex."
    ::= { aristaIpIfStatsEntry 2 }

aristaIpIfStatsInPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP packets received.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 3 }

aristaIpIfStatsInOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP octets received.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 4 }

aristaIpIfStatsOutPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP packets transmitted.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 5 }

aristaIpIfStatsOutOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP octets transmitted.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 6 }

aristaIpIfStatsInUcastPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP unicast packets received.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 7 }

aristaIpIfStatsInUcastOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP unicast octets received.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 8 }

aristaIpIfStatsOutUcastPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP unicast packets transmitted.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 9 }

aristaIpIfStatsOutUcastOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP unicast octets transmitted.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 10 }

aristaIpIfStatsInMcastPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP multicast packets received.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 11 }

aristaIpIfStatsInMcastOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP multicast octets received.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 12 }

aristaIpIfStatsOutMcastPkts OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP multicast packets transmitted.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 13 }

aristaIpIfStatsOutMcastOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of IP multicast octets transmitted.

         Discontinuities in the value of this counter can occur at
         re-initialization of the management system, and at other
         times as indicated by the value of
         aristaIpIfStatsDiscontinuityTime."
    ::= { aristaIpIfStatsEntry 14 }

aristaIpIfStatsDiscontinuityTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value of sysUpTime on the most recent occasion at
         which any one or more of this entry's counters suffered a
         discontinuity.

         If no such discontinuities have occurred since the last re-
         initialization of the local management subsystem, then this
         object contains a zero value."
    ::= { aristaIpIfStatsEntry 15 }

aristaIpIfStatsRefreshRate OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "milli-seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum reasonable polling interval for this entry.
            This object provides an indication of the minimum amount of
            time required to update the counters in this entry."
    ::= { aristaIpIfStatsEntry 16 }

-- Conformance and Compliance

aristaIpMibCompliances OBJECT IDENTIFIER
    ::= { aristaIpMibConformance 1 }

aristaIpMibGroups OBJECT IDENTIFIER
    ::= { aristaIpMibConformance 2 }

aristaIpMibCompliance  MODULE-COMPLIANCE
    STATUS        current
    DESCRIPTION
        "The compliance statement for Arista switches that implement
         the ARISTA-IP-MIB."
    MODULE        -- this module
    MANDATORY-GROUPS { aristaIpIfStatsGroup }
    ::= { aristaIpMibCompliances 1 }

aristaIpIfStatsGroup  OBJECT-GROUP
    OBJECTS { aristaIpIfStatsInPkts,        aristaIpIfStatsInOctets,
              aristaIpIfStatsOutPkts,       aristaIpIfStatsOutOctets,
              aristaIpIfStatsInUcastPkts,   aristaIpIfStatsInUcastOctets,
              aristaIpIfStatsOutUcastPkts,  aristaIpIfStatsOutUcastOctets,
              aristaIpIfStatsInMcastPkts,   aristaIpIfStatsInMcastOctets,
              aristaIpIfStatsOutMcastPkts,  aristaIpIfStatsOutMcastOctets,
              aristaIpIfStatsDiscontinuityTime,
              aristaIpIfStatsRefreshRate }
    STATUS  current
    DESCRIPTION
        "The collection of objects that provide additional IP traffic
         statistics beyond what the IP-MIB provides."
    ::= { aristaIpMibGroups 1 }

END

