-- ARISTA-XGS-MIB: Arista XGS status and control
-- Copyright (c) 2018 Arista Networks, Inc.  All rights reserved.

ARISTA-XGS-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Counter64, TimeTicks, Unsigned32   FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP    FROM SNMPv2-CONF
    DisplayString                      FROM SNMPv2-TC
    ifIndex                            FROM IF-MIB
    aristaMibs                         FROM ARISTA-SMI-MIB;

aristaXgsMIB MODULE-IDENTITY
    LAST-UPDATED "202008100000Z"
    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
            "The MIB module for XGS chipset status and configuration
            on Arista devices."
    REVISION    "202008100000Z"
    DESCRIPTION "Added aristaXgsCpuQueueStatsTable"
    REVISION    "201909270000Z"
    DESCRIPTION "Added aristaXgsNexthopGroup."
    REVISION    "201901030000Z"
    DESCRIPTION "Added aristaXgsIfTable."
    REVISION    "201805160000Z"
    DESCRIPTION "Initial version."
    ::= { aristaMibs 26 }

aristaXgsQueueWatermarkTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AristaXgsQueueWatermarkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                "This table contains watermarks for capable interfaces."
    ::= { aristaXgsMIB 2 }

aristaXgsQueueWatermarkEntry OBJECT-TYPE
    SYNTAX      AristaXgsQueueWatermarkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                "Value for a single queue on an interface"
    INDEX       {
        ifIndex,
        aristaXgsQueueWatermarkQueueType,
        aristaXgsQueueWatermarkQueueId
    }
    ::= { aristaXgsQueueWatermarkTable 1 }

AristaXgsQueueWatermarkEntry ::= SEQUENCE {
    -- INDEX information
        aristaXgsQueueWatermarkQueueType             INTEGER,
        aristaXgsQueueWatermarkQueueId               Unsigned32,
    -- Watermark Information
        aristaXgsQueueWatermarkMaxCellsUsed          Unsigned32,
        aristaXgsQueueWatermarkCellSize              Unsigned32,
        aristaXgsQueueWatermarkLastResetTime         TimeTicks
}

aristaXgsQueueWatermarkQueueType OBJECT-TYPE
    SYNTAX      INTEGER {
                    ingressHeadroomCells(1),
                    ingressSharedCells(2),
                    egressUnicastSharedCells(3),
                    egressMulticastSharedCells(4)
    }
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "Types of ingress and egress buffer usage."
    ::= { aristaXgsQueueWatermarkEntry 1 }

aristaXgsQueueWatermarkQueueId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "Queue index."
    ::= { aristaXgsQueueWatermarkEntry 2 }
    
aristaXgsQueueWatermarkMaxCellsUsed OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "High watermark of cells used in a queue and priority group since
         aristaXgsQueueWatermarkLastResetTime."
    ::= { aristaXgsQueueWatermarkEntry 3 }

aristaXgsQueueWatermarkCellSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Number of bytes per cell."
    ::= { aristaXgsQueueWatermarkEntry 4 }

aristaXgsQueueWatermarkLastResetTime OBJECT-TYPE
    SYNTAX      TimeTicks
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The last time the watermarks in aristaXgsQueueWatermarkTable
         were reset."
    ::= { aristaXgsQueueWatermarkEntry 5 }

-- XGS Ethernet Interface Platform Counters Table --

aristaXgsIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AristaXgsIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                "This table contains platform-specific interface statistics."
    ::= { aristaXgsMIB 3 }

aristaXgsIfEntry OBJECT-TYPE
    SYNTAX      AristaXgsIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                "An entry containing statistics for a given interface."
    INDEX   { ifIndex }
    ::= { aristaXgsIfTable 1 }

AristaXgsIfEntry ::= SEQUENCE {
    aristaXgsIfTxIpV4L3UcOk                 Counter64,
    aristaXgsIfTxIpV6L3UcOk                 Counter64,
    aristaXgsIfTxIpV4L3McOk                 Counter64,
    aristaXgsIfTxIpV6L3McOk                 Counter64,
    aristaXgsIfTxL2MtuError                 Counter64,
    aristaXgsIfTxL3UcAgedDrop               Counter64,
    aristaXgsIfTxTtlDrop                    Counter64,
    aristaXgsIfTxInvalidVlan                Counter64,
    aristaXgsIfTxVxltMiss                   Counter64,
    aristaXgsIfTxL2McDrop                   Counter64,
    aristaXgsIfTxUnknownDrop                Counter64,
    aristaXgsIfNonCongestionDiscard         Counter64,
    aristaXgsIfRxMcDrop                     Counter64,
    aristaXgsIfRxTunnelError                Counter64,
    aristaXgsIfRxBufferPoolDiscard          Counter64,
    aristaXgsIfRxPolicyDiscard              Counter64,
    aristaXgsIfRxUrpfDrop                   Counter64,
    aristaXgsIfRxVlanDrop                   Counter64,
    aristaXgsIfRxFpDrop                     Counter64,
    aristaXgsIfRxL2MtuError                 Counter64,
    aristaXgsIfTxMacError                   Counter64,
    aristaXgsIfTxPCError                    Counter64,
    aristaXgsIfIpV4L3Discard                Counter64,
    aristaXgsIfIpV4L3Ok                     Counter64,
    aristaXgsIfIpV4L3HeaderError            Counter64,
    aristaXgsIfIpV4L3Mcast                  Counter64,
    aristaXgsIfIpV6L3Discard                Counter64,
    aristaXgsIfIpV6L3Ok                     Counter64,
    aristaXgsIfIpV6L3HeaderError            Counter64,
    aristaXgsIfIpV6L3Mcast                  Counter64,
    aristaXgsIfRxUc                         Counter64,
    aristaXgsIfRxIngressNfDrop              Counter64,
    aristaXgsIfTxFcsError                   Counter64,
    aristaXgsIfRxAccessPortTrillDiscard     Counter64,
    aristaXgsIfRxNetworkPortNonTrillDiscard Counter64,
    aristaXgsIfTxAccessPortTrillDiscard     Counter64,
    aristaXgsIfTxNetworkPortNonTrillDiscard Counter64,
    aristaXgsIfEcnMarkedPackets             Counter64,
    aristaXgsIfWredEctDropPktCounter        Counter64,
    aristaXgsIfWredNonEctDropPktCounter     Counter64,
    aristaXgsIfTxSplitHorizonDrop           Counter64,
    aristaXgsIfWredDropPktCounter           Counter64
}

aristaXgsIfTxIpV4L3UcOk OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid IPv4 Unicast packets transmitted
        on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 1 }

aristaXgsIfTxIpV6L3UcOk OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid IPv6 Unicast packets transmitted
        on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 2 }

aristaXgsIfTxIpV4L3McOk OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid IPv4 Multicast packets transmitted
        on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 3 }

aristaXgsIfTxIpV6L3McOk OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid IPv6 Multicast packets transmitted
        on the interface.

        This statistic is currently not supported and is always
        set to 0."
    ::= { aristaXgsIfEntry 4 }

aristaXgsIfTxL2MtuError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the
        interface caused by exceeding the Maximum Transmission
        Unit (MTU) size.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 5 }

aristaXgsIfTxL3UcAgedDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the
        interface caused by the hardware aging mechanism.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 6 }

aristaXgsIfTxTtlDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the
        interface caused by Time To Live (TTL) expiration.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 7 }

aristaXgsIfTxInvalidVlan OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the
        interface caused by an invalid VLAN tag.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 8 }

aristaXgsIfTxVxltMiss OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the
        interface caused by a VLAN translation miss.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 9 }

aristaXgsIfTxL2McDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of L2 multicast packets dropped during transmit
        on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 10 }

aristaXgsIfTxUnknownDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the interface
        caused by any condition.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 11 }

aristaXgsIfNonCongestionDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped on the interface caused by
        non-congestion conditions.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 12 }

aristaXgsIfRxMcDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received multicast packets dropped on
        the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 13 }

aristaXgsIfRxTunnelError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped due to tunnel
        errors on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 14 }

aristaXgsIfRxBufferPoolDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped due to buffer
        pool resource limitations for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 15 }

aristaXgsIfRxPolicyDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Then number of received packets dropped due to policy
        configuration for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 16 }

aristaXgsIfRxUrpfDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped due to Unicast
        Reverse Path Forwarding (uRPF) checks for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 17 }

aristaXgsIfRxVlanDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped due to an
        invalid VLAN tag for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 18 }

aristaXgsIfRxFpDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped due to the
        Filter Processor (FP) for the interface.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 19 }

aristaXgsIfRxL2MtuError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped due to
        exceeding the the Maximum Transmission Unit (MTU)
        size for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 20 }

aristaXgsIfTxMacError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of transmitted packets dropped due to
        MAC errors for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 21 }

aristaXgsIfTxPCError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of transmitted packets dropped due to
        purge or cell errors for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 22 }

aristaXgsIfIpV4L3Discard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received routed IPv4 packets dropped due to
        resource limitations for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 23 }

aristaXgsIfIpV4L3Ok OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid routed IPv4 unicast packets
        received on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 24 }

aristaXgsIfIpV4L3HeaderError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of routed IPv4 packets received with an invalid
        IP header for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 25 }

aristaXgsIfIpV4L3Mcast OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid routed IPv4 multicast packets
        received on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 26 }

aristaXgsIfIpV6L3Discard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received routed IPv6 packets dropped due
        to resource limitations for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 27 }

aristaXgsIfIpV6L3Ok OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid routed IPv6 unicast packets
        received on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 28 }

aristaXgsIfIpV6L3HeaderError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of routed IPv6 packets received with an invalid
        IP header for the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 29 }

aristaXgsIfIpV6L3Mcast OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of valid routed IPv6 multicast packets
        received on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 30 }

aristaXgsIfRxUc OBJECT-TYPE
    SYNTAX       Counter64
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The number of unicast packets received on the interface.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 31 }

aristaXgsIfRxIngressNfDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received packets dropped on the interface
        because the interface is not in the forwarding state.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 32 }

aristaXgsIfTxFcsError OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped on the interface caused
        by a Frame Check Sequence (FCS) error.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 33 }

aristaXgsIfRxAccessPortTrillDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received Transparent Interconnection of
        Lots of Links (TRILL) packets dropped on the TRILL access
        interface.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 34 }

aristaXgsIfRxNetworkPortNonTrillDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received non-Transparent Interconnection of
        Lots of Links (TRILL) packets dropped on the TRILL network
        interface.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 35 }

aristaXgsIfTxAccessPortTrillDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Transparent Interconnection of Lots of
        Links (TRILL) packets dropped on the outgoing TRILL
        access interface.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 36 }

aristaXgsIfTxNetworkPortNonTrillDiscard OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of non-Transparent Interconnection of Lots of
        Links (TRILL) packets dropped on the outgoing TRILL
        network interface.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 37 }

aristaXgsIfEcnMarkedPackets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The number of Explicit Congestion Notification (ECN) errors
         detected on the interface.

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 38 }

aristaXgsIfWredEctDropPktCounter OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped on the interface caused
        by Weighted Early Random Detection (WRED) classified
        as ECN (Explicit Congestion Notification) Capable
        Transport (ECT).

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 39 }

aristaXgsIfWredNonEctDropPktCounter OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped on the interface caused
        by Weighted Early Random Detection (WRED) classified
        as non-ECN (Explicit Congestion Notification) Capable
        Transport (ECT).

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 40 }

aristaXgsIfTxSplitHorizonDrop OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped during transmit on the
        interface caused by split horizon conditions.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 41 }

aristaXgsIfWredDropPktCounter OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of packets dropped on the interface caused
        by Weighted Early Random Detection (WRED).

        This statistic is not supported by all platforms. It is
        set to 0 for unsupported platforms.

        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
        ifCounterDiscontinuityTime."
    ::= { aristaXgsIfEntry 42 }

-- Nexthop objects --

aristaXgsNexthopEcmpUnderlayMaxEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The maximum supported number of ECMP (underlay) nexthop 
                entries (relevant only in VFI mode)."
    ::= { aristaXgsMIB 4 }

aristaXgsNexthopEcmpOverlayMaxEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The maximum supported number of ECMP (overlay) nexthop 
                entries (relevant only in VFI mode)."
    ::= { aristaXgsMIB 5 }

aristaXgsNexthopEcmpUnderlayInUseEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The number of currently used ECMP (underlay) nexthop 
                entries (relevant only in VFI mode)."
    ::= { aristaXgsMIB 6 }

aristaXgsNexthopEcmpOverlayInUseEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The number of currently used ECMP (overlay) nexthop 
                entries (relevant only in VFI mode)."
    ::= { aristaXgsMIB 7 }

aristaXgsNexthopEcmpUnderlayMaxSets OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The maximum supported number of ECMP (underlay) nexthop 
                sets (relevant only in VFI mode)."
    ::= { aristaXgsMIB 8 }

aristaXgsNexthopEcmpOverlayMaxSets OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The maximum supported number of ECMP (overlay) nexthop 
                sets (relevant only in VFI mode)."
    ::= { aristaXgsMIB 9 }

aristaXgsNexthopEcmpUnderlayInUseSets OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The number of currently used ECMP (underlay) nexthop 
                sets (relevant only in VFI mode)."
    ::= { aristaXgsMIB 10 }

aristaXgsNexthopEcmpOverlayInUseSets OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The number of currently used ECMP (overlay) nexthop 
                sets (relevant only in VFI mode)."
    ::= { aristaXgsMIB 11 }

aristaXgsNexthopEcmpMaxEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The maximum supported number of ECMP nexthop entries
                (relevant only in non-VFI mode)."
    ::= { aristaXgsMIB 12 }

aristaXgsNexthopEcmpMaxSets OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The maximum supported number of ECMP nexthop sets
                (relevant only in non-VFI mode)."
    ::= { aristaXgsMIB 13 }

aristaXgsNexthopEcmpInUseEntries OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The number of currently used ECMP nexthop entries
                (relevant only in non-VFI mode)."
    ::= { aristaXgsMIB 14 }

aristaXgsNexthopEcmpInUseSets OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
                "The number of currently used ECMP nexthop sets
                (relevant only in non-VFI mode)."
    ::= { aristaXgsMIB 15 }

aristaXgsCpuQueueStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF AristaXgsCpuQueueStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                "This table contains statistics for CPU queues."
    ::= { aristaXgsMIB 16 }

aristaXgsCpuQueueStatsEntry OBJECT-TYPE
    SYNTAX      AristaXgsCpuQueueStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
                "A single conceptual row providing queue statistics 
                data.

                On Arista devices equipped with the XGS chipset, packet 
                forwarding decisions are done by XGS, which is also 
                referred as 'Forwarding ASIC' or 'Forwarding Element'. 

                In some situations, the packets cannot be fully handled
                by the Forwarding Element. These need to be processed by 
                Arista EOS. In these situations, the Forwarding Element will 
                send the packet to the CPU.  Some examples of such packets:

                a. Protocol packets like BGP, LACP that need to be processed
                by EOS.
                b. Packets that cannot be forwarded in hardware like IP 
                packets with options information.
                c. Packets that cannot be forwarded in hardware due to 
                incomplete information (for example, missing ARP data).

                The Forwarding Element to CPU connection appears as another 
                logical interface in hardware. This logical interface has 
                several queues associated with it. Packets will end up 
                in one of the finite number of queues based on configuration.

                Some Arista devices ship with multiple such Forwarding Elements
                (XGS chip). Each Forwarding Element has an independent interface
                that represents the CPU with its own set of queues.

                This single conceptual row identifies queue statistics that
                correspond to a single Forwarding Element and a single CPU queue."
    INDEX       {
        aristaXgsCpuQueueStatsForwardingElementIdentifier,
        aristaXgsCpuQueueStatsQueueIdentifier
    }
    ::= { aristaXgsCpuQueueStatsTable 1 }

AristaXgsCpuQueueStatsEntry ::= SEQUENCE {
        aristaXgsCpuQueueStatsForwardingElementIdentifier  DisplayString,
        aristaXgsCpuQueueStatsQueueIdentifier              DisplayString,
        aristaXgsCpuQueueStatsRxBytes                      Counter64,
        aristaXgsCpuQueueStatsRxPackets                    Counter64,
        aristaXgsCpuQueueStatsRxBytesDropped               Counter64,
        aristaXgsCpuQueueStatsRxPacketsDropped             Counter64
}

aristaXgsCpuQueueStatsForwardingElementIdentifier OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "Identifier that represents a specific Forwarding Element
         that is sending packets to the CPU interface."
    ::= { aristaXgsCpuQueueStatsEntry 1 }

aristaXgsCpuQueueStatsQueueIdentifier OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
         "Identifier that represents a specific queue
         of the given CPU interface."
    ::= { aristaXgsCpuQueueStatsEntry 2 }

aristaXgsCpuQueueStatsRxBytes OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Number of bytes received and processed."
    ::= { aristaXgsCpuQueueStatsEntry 3 }

aristaXgsCpuQueueStatsRxPackets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Number of packets received and processed."
    ::= { aristaXgsCpuQueueStatsEntry 4 }

aristaXgsCpuQueueStatsRxBytesDropped OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Number of bytes dropped."
    ::= { aristaXgsCpuQueueStatsEntry 5 }

aristaXgsCpuQueueStatsRxPacketsDropped OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Number of packets dropped."
    ::= { aristaXgsCpuQueueStatsEntry 6 }

-- Conformance and Compliance --

aristaXgsMibConformance OBJECT IDENTIFIER
    ::= { aristaXgsMIB 1 }

aristaXgsMibCompliances OBJECT IDENTIFIER
    ::= { aristaXgsMibConformance 1 }

aristaXgsMibGroups OBJECT IDENTIFIER
    ::= { aristaXgsMibConformance 2 }

aristaXgsMibCompliance  MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Deprecated. The compliance statement for Arista switches that support
        the ARISTA-XGS-MIB."
    MODULE        -- this module
    MANDATORY-GROUPS {
        aristaXgsMibGroup
    }
    ::= { aristaXgsMibCompliances 1 }

aristaXgsMibGroup   OBJECT-GROUP
    OBJECTS {
        aristaXgsQueueWatermarkMaxCellsUsed,
        aristaXgsQueueWatermarkCellSize,
        aristaXgsQueueWatermarkLastResetTime,
        aristaXgsIfTxIpV4L3UcOk,
        aristaXgsIfTxIpV6L3UcOk,
        aristaXgsIfTxIpV4L3McOk,
        aristaXgsIfTxIpV6L3McOk,
        aristaXgsIfTxL2MtuError,
        aristaXgsIfTxL3UcAgedDrop,
        aristaXgsIfTxTtlDrop,
        aristaXgsIfTxInvalidVlan,
        aristaXgsIfTxVxltMiss,
        aristaXgsIfTxL2McDrop,
        aristaXgsIfTxUnknownDrop,
        aristaXgsIfNonCongestionDiscard,
        aristaXgsIfRxMcDrop,
        aristaXgsIfRxTunnelError,
        aristaXgsIfRxBufferPoolDiscard,
        aristaXgsIfRxPolicyDiscard,
        aristaXgsIfRxUrpfDrop,
        aristaXgsIfRxVlanDrop,
        aristaXgsIfRxFpDrop,
        aristaXgsIfRxL2MtuError,
        aristaXgsIfTxMacError,
        aristaXgsIfTxPCError,
        aristaXgsIfIpV4L3Discard,
        aristaXgsIfIpV4L3Ok,
        aristaXgsIfIpV4L3HeaderError,
        aristaXgsIfIpV4L3Mcast,
        aristaXgsIfIpV6L3Discard,
        aristaXgsIfIpV6L3Ok,
        aristaXgsIfIpV6L3HeaderError,
        aristaXgsIfIpV6L3Mcast,
        aristaXgsIfRxUc,
        aristaXgsIfRxIngressNfDrop,
        aristaXgsIfTxFcsError,
        aristaXgsIfRxAccessPortTrillDiscard,
        aristaXgsIfRxNetworkPortNonTrillDiscard,
        aristaXgsIfTxAccessPortTrillDiscard,
        aristaXgsIfTxNetworkPortNonTrillDiscard,
        aristaXgsIfEcnMarkedPackets,
        aristaXgsIfWredEctDropPktCounter,
        aristaXgsIfWredNonEctDropPktCounter,
        aristaXgsIfTxSplitHorizonDrop
    }
    STATUS      deprecated
    DESCRIPTION
        "The collection of objects that provide XGS-related information"
    ::= { aristaXgsMibGroups 1 }

aristaXgsMibCompliance2  MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for Arista switches that support
        the ARISTA-XGS-MIB."
    MODULE        -- this module
    MANDATORY-GROUPS { aristaXgsNexthopGroup }
    GROUP aristaXgsWatermarkGroup
          DESCRIPTION
                "Conditionally mandatory on XGS platforms if
                'platform trident mmu queue watermark mib' is configured."

    GROUP aristaXgsIfGroup
          DESCRIPTION
                "Mandatory on XGS platforms."

    GROUP aristaXgsCpuQueueStatsGroup
          DESCRIPTION
                "Mandatory on XGS platforms."

    ::= { aristaXgsMibCompliances 2 }

aristaXgsWatermarkGroup   OBJECT-GROUP
    OBJECTS {
        aristaXgsQueueWatermarkMaxCellsUsed,
        aristaXgsQueueWatermarkCellSize,
        aristaXgsQueueWatermarkLastResetTime
    }
    STATUS      current
    DESCRIPTION
        "The collection of objects that provide watermark-related information for XGS."
    ::= { aristaXgsMibGroups 2 }

aristaXgsIfGroup   OBJECT-GROUP
    OBJECTS {
        aristaXgsIfTxIpV4L3UcOk,
        aristaXgsIfTxIpV6L3UcOk,
        aristaXgsIfTxIpV4L3McOk,
        aristaXgsIfTxIpV6L3McOk,
        aristaXgsIfTxL2MtuError,
        aristaXgsIfTxL3UcAgedDrop,
        aristaXgsIfTxTtlDrop,
        aristaXgsIfTxInvalidVlan,
        aristaXgsIfTxVxltMiss,
        aristaXgsIfTxL2McDrop,
        aristaXgsIfTxUnknownDrop,
        aristaXgsIfNonCongestionDiscard,
        aristaXgsIfRxMcDrop,
        aristaXgsIfRxTunnelError,
        aristaXgsIfRxBufferPoolDiscard,
        aristaXgsIfRxPolicyDiscard,
        aristaXgsIfRxUrpfDrop,
        aristaXgsIfRxVlanDrop,
        aristaXgsIfRxFpDrop,
        aristaXgsIfRxL2MtuError,
        aristaXgsIfTxMacError,
        aristaXgsIfTxPCError,
        aristaXgsIfIpV4L3Discard,
        aristaXgsIfIpV4L3Ok,
        aristaXgsIfIpV4L3HeaderError,
        aristaXgsIfIpV4L3Mcast,
        aristaXgsIfIpV6L3Discard,
        aristaXgsIfIpV6L3Ok,
        aristaXgsIfIpV6L3HeaderError,
        aristaXgsIfIpV6L3Mcast,
        aristaXgsIfRxUc,
        aristaXgsIfRxIngressNfDrop,
        aristaXgsIfTxFcsError,
        aristaXgsIfRxAccessPortTrillDiscard,
        aristaXgsIfRxNetworkPortNonTrillDiscard,
        aristaXgsIfTxAccessPortTrillDiscard,
        aristaXgsIfTxNetworkPortNonTrillDiscard,
        aristaXgsIfEcnMarkedPackets,
        aristaXgsIfWredEctDropPktCounter,
        aristaXgsIfWredNonEctDropPktCounter,
        aristaXgsIfTxSplitHorizonDrop,
        aristaXgsIfWredDropPktCounter
    }
    STATUS      current
    DESCRIPTION
        "The collection of objects that provide interface-related information for XGS."
    ::= { aristaXgsMibGroups 3 }

aristaXgsNexthopGroup       OBJECT-GROUP
    OBJECTS {
        aristaXgsNexthopEcmpUnderlayMaxEntries,
        aristaXgsNexthopEcmpOverlayMaxEntries,
        aristaXgsNexthopEcmpUnderlayInUseEntries,
        aristaXgsNexthopEcmpOverlayInUseEntries,
        aristaXgsNexthopEcmpUnderlayMaxSets,
        aristaXgsNexthopEcmpOverlayMaxSets,
        aristaXgsNexthopEcmpUnderlayInUseSets,
        aristaXgsNexthopEcmpOverlayInUseSets,
        aristaXgsNexthopEcmpMaxEntries,
        aristaXgsNexthopEcmpMaxSets,
        aristaXgsNexthopEcmpInUseEntries,
        aristaXgsNexthopEcmpInUseSets
    }
    STATUS      current
    DESCRIPTION
        "The collection of objects that provide ECMP nexthop-related
        information. Note that there are two mutually exclusive sets
        of objects - the first 8 entries are used in VFI (Virtual
        Forwarding Instance) mode, and the last 4 entries are used in
        non-VFI mode. (Objects related to the unused mode are zeroed.)"
    ::= { aristaXgsMibGroups 4 }

aristaXgsCpuQueueStatsGroup  OBJECT-GROUP
    OBJECTS {
        aristaXgsCpuQueueStatsRxBytes,
        aristaXgsCpuQueueStatsRxPackets,
        aristaXgsCpuQueueStatsRxBytesDropped,
        aristaXgsCpuQueueStatsRxPacketsDropped
    }
    STATUS  current
    DESCRIPTION
        "The collection of objects that provide CPU queue statistics."
    ::= { aristaXgsMibGroups 5 }

END
