ARISTA-NEXTHOP-GROUP-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Counter64 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION FROM SNMPv2-TC aristaMibs FROM ARISTA-SMI-MIB; aristaNexthopGroupMIB MODULE-IDENTITY LAST-UPDATED "201604170000Z" 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 contains information about NextHop Groups (NHG). General L3 routing creates routing table entries, each of which are associated with a nexthop. If multiple paths exist for a specific route, the route points to a set of nexthops (commonly referred as ECMP or Equal Cost MultiPath). Arista devices support a feature which allows customers to manually create a nexthop list, and use this list to route packets to the specified set of nexthop addresses. Customers can associate a tunnel type (GRE, for example) with the nexthop group, allowing relevant packets to be tunneled as well. The packet forwarding or routing decision happens in hardware. Nexthop group feature gives customers full control of how a route should be forwarded (tunneled or otherwise). The number of entries in the nexthop group is also determined by the user, and directly translates to the number of nexthop entries in the hardware for the specified route. Let's provide an example, looking at EOS CLI example. nexthop-group foo type ip-in-ip ttl 64 entry 0 tunnel-destination 10.1.1.1 entry 1 tunnel-destination 20.1.1.1 ! ip route 30.1.1.0/24 Nexthop-Group foo In the above configuration, any packet destined to 30.1.1.0/24 will be forwarded by the nexthop group 'foo'. Each entry inside the nexthop group specifies a particular nexthop ('tunnel destination') chosen by the customer. In this example, packets can be forwarded via either of the nexthop (traffic split equally between the 2 entries). This MIB module provides information relevant to the nexthop group feature, specifically the status of various nexthop groups configured, and traffic statistics." REVISION "201604170000Z" DESCRIPTION "Initial revision of the MIB module." ::= { aristaMibs 21 } aristaNexthopGroupMibObjects OBJECT IDENTIFIER ::= { aristaNexthopGroupMIB 1 } aristaNexthopGroupMibConformance OBJECT IDENTIFIER ::= { aristaNexthopGroupMIB 2 } -- Textual Convention NexthopGroupName ::= TEXTUAL-CONVENTION DISPLAY-HINT "255a" STATUS current DESCRIPTION "Each nexthop group configured by the user is associated with a name, by configuration." SYNTAX OCTET STRING (SIZE (0..255)) NexthopGroupType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "A nexthop group is associated with a type, which determines the packet forwarding behavior. Type 'ip' refers to L3 IP routing. A route pointing to a nexthop group in this case is equivalent to multiple static route configuration entries each with a particular nexthop. Types 'gre', 'mpls', 'ip-in-ip' all refer to tunnel types. In this case a route pointing to the specified nexthop group is used to tunnel packets using the appropriate encapsulation to a tunnel destination. The encapsulation information depends on the tunnel type itself." SYNTAX INTEGER { invalid(0), ipInIp(1), gre(2), mpls(3), ip(4), mplsOverGre(5) } -- Nexthop Group table aristaNexthopGroupTable OBJECT-TYPE SYNTAX SEQUENCE OF AristaNexthopGroupEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information about the nexthop groups that are present in the device." ::= { aristaNexthopGroupMibObjects 1 } aristaNexthopGroupEntry OBJECT-TYPE SYNTAX AristaNexthopGroupEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row, containing information for a specific nexthop group." INDEX { aristaNexthopGroupId } ::= { aristaNexthopGroupTable 1 } AristaNexthopGroupEntry ::= SEQUENCE { aristaNexthopGroupId Unsigned32, aristaNexthopGroupName NexthopGroupName, aristaNexthopGroupType NexthopGroupType } aristaNexthopGroupId OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "Unique index identifying a nexthop group." ::= { aristaNexthopGroupEntry 1 } aristaNexthopGroupName OBJECT-TYPE SYNTAX NexthopGroupName MAX-ACCESS read-only STATUS current DESCRIPTION "Unique name identifying a nexthop group." ::= { aristaNexthopGroupEntry 2 } aristaNexthopGroupType OBJECT-TYPE SYNTAX NexthopGroupType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of the nexthop group. The encapsulation information provided for each entry in the nexthop group corresponds to the type." ::= { aristaNexthopGroupEntry 3 } -- Nexthop Group counter table aristaNexthopGroupCounterTable OBJECT-TYPE SYNTAX SEQUENCE OF AristaNexthopGroupCounterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each nexthop group contains several entries - each entry specifies a particular nexthop through which a packet can be forwarded. There is packet and byte counter information associated with each such nexthop. This table represents the per nexthop counter information for every nexthop group." ::= { aristaNexthopGroupMibObjects 2 } aristaNexthopGroupCounterEntry OBJECT-TYPE SYNTAX AristaNexthopGroupCounterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row, containing counter information for every nexthop defined inside the nexthop group." INDEX { aristaNexthopGroupId, aristaNexthopGroupEntryIndex } ::= { aristaNexthopGroupCounterTable 1 } AristaNexthopGroupCounterEntry ::= SEQUENCE { aristaNexthopGroupEntryIndex Unsigned32, aristaNexthopGroupCounterIndex Unsigned32, aristaNexthopGroupCounterPacketCount Counter64, aristaNexthopGroupCounterByteCount Counter64 } aristaNexthopGroupEntryIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "As described in the beginning of the MIB module each nexthop group can have multiple entries, one per 'destination' or 'nexthop'. Each entry within a nexthop group has a number or index as configured by the user. This MIB object represents the entry index within the nexthop group." ::= { aristaNexthopGroupCounterEntry 1 } aristaNexthopGroupCounterIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "For every nexthop within a nexthop group, packet and byte counters are maintained by the device. Counters can be shared by multiple such nexthops and the counter index will be the same for all of those nexthops." ::= { aristaNexthopGroupCounterEntry 2 } aristaNexthopGroupCounterPacketCount OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets forwarded through the specific nexthop. Note that since counters are shared with multiple nexthops, the packet count is an aggregate of packets forwarded through all the relevant nexthops." ::= { aristaNexthopGroupCounterEntry 3 } aristaNexthopGroupCounterByteCount OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The byte count of packets forwarded through the specific nexthop. Note that since counters are shared with multiple nexthops, the byte count is an aggregate of packets forwarded through all the relevant nexthops." ::= { aristaNexthopGroupCounterEntry 4 } -- Conformance and Compliance aristaNexthopGroupMibCompliances OBJECT IDENTIFIER ::= { aristaNexthopGroupMibConformance 1 } aristaNexthopGroupMibGroups OBJECT IDENTIFIER ::= { aristaNexthopGroupMibConformance 2 } aristaNexthopGroupMibCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for Arista switches that implement the ARISTA-NEXTHOP-GROUP-MIB." MODULE -- this module MANDATORY-GROUPS { aristaNexthopGroupGroup, aristaNexthopGroupCounterGroup } ::= { aristaNexthopGroupMibCompliances 1 } aristaNexthopGroupGroup OBJECT-GROUP OBJECTS { aristaNexthopGroupName, aristaNexthopGroupType } STATUS current DESCRIPTION "The collection of objects that provide nexthop group information in the system." ::= { aristaNexthopGroupMibGroups 1 } aristaNexthopGroupCounterGroup OBJECT-GROUP OBJECTS { aristaNexthopGroupCounterIndex, aristaNexthopGroupCounterPacketCount, aristaNexthopGroupCounterByteCount } STATUS current DESCRIPTION "The collection of objects that provide counter information for every nexthop in the nexthop group." ::= { aristaNexthopGroupMibGroups 2 } END