mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Arista VRF discovery support (#11421)
* arista vrf discovery * more mibs * tests * codeclimate
This commit is contained in:
@@ -140,7 +140,7 @@ if (Config::get('enable_vrfs')) {
|
|||||||
}
|
}
|
||||||
}//end if
|
}//end if
|
||||||
}//end foreach
|
}//end foreach
|
||||||
} else if ($device['os_group'] == 'nokia') {
|
} elseif ($device['os_group'] == 'nokia') {
|
||||||
unset($vrf_count);
|
unset($vrf_count);
|
||||||
|
|
||||||
$vrtr = snmpwalk_cache_oid($device, 'vRtrConfTable', [], 'TIMETRA-VRTR-MIB');
|
$vrtr = snmpwalk_cache_oid($device, 'vRtrConfTable', [], 'TIMETRA-VRTR-MIB');
|
||||||
@@ -196,7 +196,58 @@ if (Config::get('enable_vrfs')) {
|
|||||||
$valid_vrf_if[$vrf_id][$if] = 1;
|
$valid_vrf_if[$vrf_id][$if] = 1;
|
||||||
}
|
}
|
||||||
} //end foreach
|
} //end foreach
|
||||||
|
} elseif ($device['os_group'] == 'arista') {
|
||||||
|
echo "Arista\n";
|
||||||
|
unset($vrf_count);
|
||||||
|
|
||||||
|
$aristaVrfTable = snmpwalk_cache_oid($device, 'aristaVrfTable', [], 'ARISTA-VRF-MIB');
|
||||||
|
$aristaVrfIfTable = snmpwalk_cache_oid($device, 'aristaVrfIfTable', [], 'ARISTA-VRF-MIB');
|
||||||
|
d_echo($aristaVrfTable);
|
||||||
|
d_echo($aristaVrfIfTable);
|
||||||
|
|
||||||
|
foreach ($aristaVrfTable as $vrf_name => $vrf_data) {
|
||||||
|
//$vrf_desc = $vr['vRtrName'];
|
||||||
|
//$vrf_as = $vr['vRtrAS4Byte'];
|
||||||
|
$vrf_oid = $vrf_name;
|
||||||
|
$vrf_rd = $vrf_data['aristaVrfRouteDistinguisher'];
|
||||||
|
|
||||||
|
echo "\n [VRF $vrf_name] OID - $vrf_oid";
|
||||||
|
echo "\n [VRF $vrf_name] RD - $vrf_rd";
|
||||||
|
echo "\n [VRF $vrf_name] DESC - $vrf_desc";
|
||||||
|
|
||||||
|
$vrfs = [
|
||||||
|
'vrf_oid' => $vrf_oid,
|
||||||
|
'vrf_name' => $vrf_name,
|
||||||
|
//'bgpLocalAs' => $vrf_as,
|
||||||
|
'mplsVpnVrfRouteDistinguisher' => $vrf_rd,
|
||||||
|
//'mplsVpnVrfDescription' => $$vrf_desc,
|
||||||
|
'device_id' => $device['device_id'],
|
||||||
|
];
|
||||||
|
|
||||||
|
if (dbFetchCell('SELECT COUNT(*) FROM vrfs WHERE device_id = ? AND `vrf_oid`=?', [$device['device_id'], $vrf_oid])) {
|
||||||
|
dbUpdate(['vrf_name' => $vrf_name, 'bgpLocalAs' => $vrf_as, 'mplsVpnVrfRouteDistinguisher' => $vrf_rd, 'mplsVpnVrfDescription' => $vrf_desc], 'vrfs', 'device_id=? AND vrf_oid=?', [$device['device_id'], $vrf_oid]);
|
||||||
|
} else {
|
||||||
|
dbInsert($vrfs, 'vrfs');
|
||||||
|
}
|
||||||
|
} //end foreach
|
||||||
|
|
||||||
|
echo "\n [VRF $vrf_name] PORTS - ";
|
||||||
|
foreach ($aristaVrfIfTable as $if_index => $if_data) {
|
||||||
|
try {
|
||||||
|
$ifVrfName = $if_data['aristaVrfIfMembership'];
|
||||||
|
$vrf_id = dbFetchCell('SELECT vrf_id FROM vrfs WHERE device_id = ? AND `vrf_oid`=?', [$device['device_id'], $ifVrfName]);
|
||||||
|
$valid_vrf[$vrf_id] = 1;
|
||||||
|
$interface = dbFetchRow('SELECT * FROM `ports` WHERE `device_id` = ? AND `ifIndex` = ?', [$device['device_id'], $if_index]);
|
||||||
|
echo makeshortif($interface['ifDescr']).' ';
|
||||||
|
dbUpdate(['ifVrf' => $vrf_id], 'ports', 'port_id=?', [$interface['port_id']]);
|
||||||
|
$if = $interface['port_id'];
|
||||||
|
$valid_vrf_if[$vrf_id][$if] = 1;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
} //end if
|
} //end if
|
||||||
|
|
||||||
unset(
|
unset(
|
||||||
$descr_table,
|
$descr_table,
|
||||||
$port_table
|
$port_table
|
||||||
|
155
mibs/arista/ARISTA-GENERAL-MIB
Normal file
155
mibs/arista/ARISTA-GENERAL-MIB
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
-- ARISTA-GENERAL-MIB: Arista General MIB
|
||||||
|
ARISTA-GENERAL-MIB DEFINITIONS ::= BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
MODULE-IDENTITY,
|
||||||
|
OBJECT-TYPE,
|
||||||
|
Unsigned32 FROM SNMPv2-SMI
|
||||||
|
MODULE-COMPLIANCE,
|
||||||
|
OBJECT-GROUP FROM SNMPv2-CONF
|
||||||
|
DateAndTime FROM SNMPv2-TC
|
||||||
|
aristaMibs FROM ARISTA-SMI-MIB;
|
||||||
|
|
||||||
|
aristaGeneralMib MODULE-IDENTITY
|
||||||
|
LAST-UPDATED "201711060000Z"
|
||||||
|
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
|
||||||
|
"First draft."
|
||||||
|
REVISION "201711060000Z"
|
||||||
|
DESCRIPTION
|
||||||
|
"Initial version."
|
||||||
|
::= { aristaMibs 24 }
|
||||||
|
|
||||||
|
-- Textual Conventions --
|
||||||
|
|
||||||
|
aristaGeneralMibNotifications OBJECT IDENTIFIER
|
||||||
|
::= { aristaGeneralMib 0 }
|
||||||
|
|
||||||
|
aristaGeneralMibObjects OBJECT IDENTIFIER
|
||||||
|
::= { aristaGeneralMib 1 }
|
||||||
|
|
||||||
|
aristaGeneralMibConformance OBJECT IDENTIFIER
|
||||||
|
::= { aristaGeneralMib 2 }
|
||||||
|
|
||||||
|
-- Reload cause table --
|
||||||
|
|
||||||
|
aristaReloadCauseTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF AristaReloadCauseEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Information describing the reload cause of each CPU unit.
|
||||||
|
On a modular system, entries for reboot instances of the
|
||||||
|
standby supervisor are present only when the redundancy
|
||||||
|
protocol is stateful switchover (SSO)."
|
||||||
|
::= { aristaGeneralMibObjects 1 }
|
||||||
|
|
||||||
|
aristaReloadCauseEntry OBJECT-TYPE
|
||||||
|
SYNTAX AristaReloadCauseEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This entry contains reload cause information of a CPU unit
|
||||||
|
for a particular reboot instance."
|
||||||
|
INDEX {
|
||||||
|
aristaReloadUnitIndex,
|
||||||
|
aristaReloadIndex,
|
||||||
|
aristaReloadCauseIndex
|
||||||
|
}
|
||||||
|
::= { aristaReloadCauseTable 1 }
|
||||||
|
|
||||||
|
AristaReloadCauseEntry ::= SEQUENCE {
|
||||||
|
-- INDEX information
|
||||||
|
aristaReloadUnitIndex Unsigned32,
|
||||||
|
aristaReloadIndex Unsigned32,
|
||||||
|
aristaReloadCauseIndex Unsigned32,
|
||||||
|
-- Reload Cause
|
||||||
|
aristaReloadCauseDescription OCTET STRING,
|
||||||
|
aristaReloadTime DateAndTime
|
||||||
|
}
|
||||||
|
|
||||||
|
aristaReloadUnitIndex OBJECT-TYPE
|
||||||
|
SYNTAX Unsigned32
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A unique identifier for a CPU unit. On a modular system, it is
|
||||||
|
the slot number of the supervisor. Unit index 0 mirrors the entries
|
||||||
|
of the active supervisor. On a fixed system, unit index 0 is for
|
||||||
|
the whole system."
|
||||||
|
::= { aristaReloadCauseEntry 1 }
|
||||||
|
|
||||||
|
aristaReloadIndex OBJECT-TYPE
|
||||||
|
SYNTAX Unsigned32
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A unique key to get the particular reboot instance. Reboot instances
|
||||||
|
are numbered in reverse chronological order, with the latest reboot
|
||||||
|
at index 0."
|
||||||
|
::= { aristaReloadCauseEntry 2 }
|
||||||
|
|
||||||
|
aristaReloadCauseIndex OBJECT-TYPE
|
||||||
|
SYNTAX Unsigned32
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A unique key to get one of the causes of a particular reboot instance."
|
||||||
|
::= { aristaReloadCauseEntry 3 }
|
||||||
|
|
||||||
|
aristaReloadCauseDescription OBJECT-TYPE
|
||||||
|
SYNTAX OCTET STRING
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Description for the reload cause."
|
||||||
|
::= { aristaReloadCauseEntry 4 }
|
||||||
|
|
||||||
|
aristaReloadTime OBJECT-TYPE
|
||||||
|
SYNTAX DateAndTime
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"Time when the reload happened."
|
||||||
|
::= { aristaReloadCauseEntry 5 }
|
||||||
|
|
||||||
|
-- Conformance and Compliance --
|
||||||
|
|
||||||
|
aristaGeneralMibCompliances OBJECT IDENTIFIER
|
||||||
|
::= { aristaGeneralMibConformance 1 }
|
||||||
|
|
||||||
|
aristaGeneralMibGroups OBJECT IDENTIFIER
|
||||||
|
::= { aristaGeneralMibConformance 2 }
|
||||||
|
|
||||||
|
aristaGeneralMibCompliance MODULE-COMPLIANCE
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The compliance statement for Arista switches that support
|
||||||
|
the ARISTA-GENERAL-MIB."
|
||||||
|
MODULE -- this module
|
||||||
|
MANDATORY-GROUPS {
|
||||||
|
aristaGeneralMibGroup
|
||||||
|
}
|
||||||
|
::= { aristaGeneralMibCompliances 1 }
|
||||||
|
|
||||||
|
aristaGeneralMibGroup OBJECT-GROUP
|
||||||
|
OBJECTS {
|
||||||
|
aristaReloadCauseDescription,
|
||||||
|
aristaReloadTime
|
||||||
|
}
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The collection of objects that provide reload cause
|
||||||
|
information for the CPU units in the system."
|
||||||
|
::= { aristaGeneralMibGroups 1 }
|
||||||
|
|
||||||
|
END
|
183
mibs/arista/ARISTA-IF-MIB
Normal file
183
mibs/arista/ARISTA-IF-MIB
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
-- ARISTA-IF-MIB: Arista structure of interface management information
|
||||||
|
-- Copyright (c) 2014 Arista Networks, Inc. All rights reserved.
|
||||||
|
|
||||||
|
ARISTA-IF-MIB DEFINITIONS ::= BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
MODULE-IDENTITY, OBJECT-TYPE,
|
||||||
|
TimeTicks, Gauge32, Counter32 FROM SNMPv2-SMI
|
||||||
|
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
|
||||||
|
ifIndex FROM IF-MIB
|
||||||
|
CounterBasedGauge64 FROM HCNUM-TC
|
||||||
|
aristaMibs FROM ARISTA-SMI-MIB;
|
||||||
|
|
||||||
|
aristaIfMIB MODULE-IDENTITY
|
||||||
|
LAST-UPDATED "201410090000Z"
|
||||||
|
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 reporting additional interface statistics
|
||||||
|
on Arista devices."
|
||||||
|
REVISION "201410090000Z"
|
||||||
|
DESCRIPTION "Initial version."
|
||||||
|
::= { aristaMibs 15 }
|
||||||
|
|
||||||
|
|
||||||
|
aristaIf OBJECT IDENTIFIER ::= { aristaIfMIB 1 }
|
||||||
|
|
||||||
|
aristaIfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF AristaIfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table contains additional interface statistics not
|
||||||
|
contained in the IF-MIB."
|
||||||
|
::= { aristaIf 1 }
|
||||||
|
|
||||||
|
aristaIfEntry OBJECT-TYPE
|
||||||
|
SYNTAX AristaIfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"An entry containing statistics for a given interface."
|
||||||
|
INDEX { ifIndex }
|
||||||
|
::= { aristaIfTable 1 }
|
||||||
|
|
||||||
|
AristaIfEntry ::= SEQUENCE {
|
||||||
|
aristaIfCounterLastUpdated TimeTicks,
|
||||||
|
aristaIfRateInterval TimeTicks,
|
||||||
|
aristaIfInPktRate Gauge32,
|
||||||
|
aristaIfOutPktRate Gauge32,
|
||||||
|
aristaIfInOctetRate CounterBasedGauge64,
|
||||||
|
aristaIfOutOctetRate CounterBasedGauge64,
|
||||||
|
aristaIfRatesLastUpdated TimeTicks,
|
||||||
|
aristaIfOperStatusChanges Counter32,
|
||||||
|
aristaIfInAclDrops Counter32
|
||||||
|
}
|
||||||
|
|
||||||
|
aristaIfCounterLastUpdated OBJECT-TYPE
|
||||||
|
SYNTAX TimeTicks
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The value of sysUpTime at which the counters in the ifTable and ifXTable
|
||||||
|
were sampled from the hardware."
|
||||||
|
::= { aristaIfEntry 1 }
|
||||||
|
|
||||||
|
aristaIfRateInterval OBJECT-TYPE
|
||||||
|
SYNTAX TimeTicks
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The amount of time over which the aristaIf*Rate values
|
||||||
|
are averaged for this interface."
|
||||||
|
::= { aristaIfEntry 2 }
|
||||||
|
|
||||||
|
aristaIfInPktRate OBJECT-TYPE
|
||||||
|
SYNTAX Gauge32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The rate, in packets per second, of packets inbound on
|
||||||
|
this interface, averaged over aristaIfRateInterval."
|
||||||
|
::= { aristaIfEntry 3 }
|
||||||
|
|
||||||
|
aristaIfOutPktRate OBJECT-TYPE
|
||||||
|
SYNTAX Gauge32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The rate, in packets per second, of packets outbound on
|
||||||
|
this interface, averaged over aristaIfRateInterval."
|
||||||
|
::= { aristaIfEntry 4 }
|
||||||
|
|
||||||
|
aristaIfInOctetRate OBJECT-TYPE
|
||||||
|
SYNTAX CounterBasedGauge64
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The rate, in octets per second, of data inbound on
|
||||||
|
this interface, averaged over aristaIfRateInterval."
|
||||||
|
::= { aristaIfEntry 5 }
|
||||||
|
|
||||||
|
aristaIfOutOctetRate OBJECT-TYPE
|
||||||
|
SYNTAX CounterBasedGauge64
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The rate, in octets per second, of data inbound on
|
||||||
|
this interface, averaged over aristaIfRateInterval."
|
||||||
|
::= { aristaIfEntry 6 }
|
||||||
|
|
||||||
|
aristaIfRatesLastUpdated OBJECT-TYPE
|
||||||
|
SYNTAX TimeTicks
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The value of sysUpTime at which the aristaIf*Rate gauges were
|
||||||
|
last calculated."
|
||||||
|
::= { aristaIfEntry 7 }
|
||||||
|
|
||||||
|
aristaIfOperStatusChanges OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The number of times since system boot that ifOperStatus has
|
||||||
|
changed."
|
||||||
|
::= { aristaIfEntry 8 }
|
||||||
|
|
||||||
|
aristaIfInAclDrops OBJECT-TYPE
|
||||||
|
SYNTAX Counter32
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The number of inbound packets dropped because of an
|
||||||
|
Access Control List (ACL).
|
||||||
|
|
||||||
|
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."
|
||||||
|
::= { aristaIfEntry 9 }
|
||||||
|
|
||||||
|
-- Conformance information
|
||||||
|
aristaIfConformance OBJECT IDENTIFIER ::= { aristaIfMIB 2 }
|
||||||
|
|
||||||
|
aristaIfGroups OBJECT IDENTIFIER ::= { aristaIfConformance 1 }
|
||||||
|
aristaIfCompliances OBJECT IDENTIFIER ::= { aristaIfConformance 2 }
|
||||||
|
|
||||||
|
-- Compliance statements
|
||||||
|
aristaIfCompliance MODULE-COMPLIANCE
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The compliance statement for Arista devices
|
||||||
|
that implement the IF-MIB"
|
||||||
|
|
||||||
|
MODULE -- this module
|
||||||
|
MANDATORY-GROUPS { aristaIfAdditionalInformationGroup }
|
||||||
|
::= { aristaIfCompliances 1 }
|
||||||
|
|
||||||
|
-- Units of conformance
|
||||||
|
aristaIfAdditionalInformationGroup OBJECT-GROUP
|
||||||
|
OBJECTS { aristaIfCounterLastUpdated, aristaIfRateInterval,
|
||||||
|
aristaIfInPktRate, aristaIfOutPktRate,
|
||||||
|
aristaIfInOctetRate, aristaIfOutOctetRate,
|
||||||
|
aristaIfRatesLastUpdated, aristaIfOperStatusChanges,
|
||||||
|
aristaIfInAclDrops }
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A collection of objects providing additional information
|
||||||
|
above and beyond what the IF-MIB provides, applicable to
|
||||||
|
all network interfaces."
|
||||||
|
::= { aristaIfGroups 1 }
|
||||||
|
|
||||||
|
END
|
286
mibs/arista/ARISTA-NEXTHOP-GROUP-MIB
Normal file
286
mibs/arista/ARISTA-NEXTHOP-GROUP-MIB
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
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
|
232
mibs/arista/ARISTA-VRF-MIB
Normal file
232
mibs/arista/ARISTA-VRF-MIB
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
ARISTA-VRF-MIB DEFINITIONS ::= BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
|
||||||
|
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
|
||||||
|
ifIndex FROM IF-MIB
|
||||||
|
TEXTUAL-CONVENTION FROM SNMPv2-TC
|
||||||
|
aristaMibs FROM ARISTA-SMI-MIB;
|
||||||
|
|
||||||
|
aristaVrfMIB MODULE-IDENTITY
|
||||||
|
LAST-UPDATED "201501110000Z"
|
||||||
|
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 related to Virtual
|
||||||
|
Routing and Forwarding (VRF).
|
||||||
|
|
||||||
|
VRF is a mechanism by which a single device can provide
|
||||||
|
independent routing instances. This allows customers to
|
||||||
|
virtually isolate network traffic, and also use overlapping
|
||||||
|
IP addresses.
|
||||||
|
|
||||||
|
Layer3 or routed interfaces in the system will belong to
|
||||||
|
one VRF at a time. The datapath forwarding logic uses the
|
||||||
|
VRF membership of the input interface to determine a
|
||||||
|
specific forwarding table to use for routing the traffic.
|
||||||
|
|
||||||
|
VRF can also be used to isolate management traffic from
|
||||||
|
the rest of the data plane traffic.
|
||||||
|
|
||||||
|
This MIB module provides the following pieces of
|
||||||
|
information:
|
||||||
|
* A table of all VRFs configured in the system
|
||||||
|
* A table that contains the VRF membership information
|
||||||
|
for all routed interfaces in the system by sparsely
|
||||||
|
augmenting the ifTable."
|
||||||
|
|
||||||
|
REVISION "201501110000Z"
|
||||||
|
DESCRIPTION
|
||||||
|
"Initial revision of this MIB module."
|
||||||
|
::= { aristaMibs 18 }
|
||||||
|
|
||||||
|
|
||||||
|
aristaVrfMibObjects OBJECT IDENTIFIER
|
||||||
|
::= { aristaVrfMIB 1 }
|
||||||
|
|
||||||
|
aristaVrfMibConformance OBJECT IDENTIFIER
|
||||||
|
::= { aristaVrfMIB 2 }
|
||||||
|
|
||||||
|
|
||||||
|
-- Textual Convention
|
||||||
|
|
||||||
|
VrfName ::= TEXTUAL-CONVENTION
|
||||||
|
DISPLAY-HINT "100t"
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A human-readable identifier assigned to every VRF. The
|
||||||
|
identifier is unique across all VRFs in the system."
|
||||||
|
SYNTAX OCTET STRING (SIZE (0..100))
|
||||||
|
|
||||||
|
VrfRouteDistinguisher ::= TEXTUAL-CONVENTION
|
||||||
|
DISPLAY-HINT "256a"
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A route distinguisher as defined in [RFC4364], in the form
|
||||||
|
'<admin>:<local>', where <admin> is the administrator ID
|
||||||
|
(e.g., an AS number) and <local> is the locally assigned
|
||||||
|
number."
|
||||||
|
REFERENCE
|
||||||
|
"[RFC4364]"
|
||||||
|
SYNTAX OCTET STRING(SIZE (0..256))
|
||||||
|
|
||||||
|
VrfState ::= TEXTUAL-CONVENTION
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The state of a specific VRF. When the administrator
|
||||||
|
configures a VRF on the system, it stays inactive until a
|
||||||
|
route distinguisher is assigned to it. Also, when the
|
||||||
|
administrator deletes a VRF, there can be a small delay
|
||||||
|
before the VRF is completely unconfigured from the system,
|
||||||
|
during which time its status becomes inactive."
|
||||||
|
SYNTAX INTEGER {
|
||||||
|
active(1),
|
||||||
|
inactive(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- VRF Table
|
||||||
|
|
||||||
|
aristaVrfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF AristaVrfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table contains information about VRFs currently
|
||||||
|
configured in the system."
|
||||||
|
::= { aristaVrfMibObjects 1 }
|
||||||
|
|
||||||
|
aristaVrfEntry OBJECT-TYPE
|
||||||
|
SYNTAX AristaVrfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"A single row containing information for one VRF that is
|
||||||
|
configured in the system."
|
||||||
|
INDEX { aristaVrfName }
|
||||||
|
::= { aristaVrfTable 1 }
|
||||||
|
|
||||||
|
AristaVrfEntry ::= SEQUENCE {
|
||||||
|
aristaVrfName VrfName,
|
||||||
|
aristaVrfRoutingStatus BITS,
|
||||||
|
aristaVrfRouteDistinguisher VrfRouteDistinguisher,
|
||||||
|
aristaVrfState VrfState
|
||||||
|
}
|
||||||
|
|
||||||
|
aristaVrfName OBJECT-TYPE
|
||||||
|
SYNTAX VrfName
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The name of the VRF that is represented by this row."
|
||||||
|
::= { aristaVrfEntry 1 }
|
||||||
|
|
||||||
|
aristaVrfRoutingStatus OBJECT-TYPE
|
||||||
|
SYNTAX BITS {
|
||||||
|
ipv4(0),
|
||||||
|
ipv6(1)
|
||||||
|
}
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The current status of data path routing in this VRF.
|
||||||
|
Routing for IPv4 and IPv6 packets can be independently
|
||||||
|
enabled by the administrator for a given VRF. This object
|
||||||
|
carries the routing status for both the protocol versions.
|
||||||
|
If data path routing is enabled for a protocol, the bit
|
||||||
|
for the protocol is 1."
|
||||||
|
::= { aristaVrfEntry 2 }
|
||||||
|
|
||||||
|
aristaVrfRouteDistinguisher OBJECT-TYPE
|
||||||
|
SYNTAX VrfRouteDistinguisher
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The route distinguisher for this VRF."
|
||||||
|
::= { aristaVrfEntry 3 }
|
||||||
|
|
||||||
|
aristaVrfState OBJECT-TYPE
|
||||||
|
SYNTAX VrfState
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The state of the VRF."
|
||||||
|
::= { aristaVrfEntry 4 }
|
||||||
|
|
||||||
|
-- Interface Table
|
||||||
|
|
||||||
|
aristaVrfIfTable OBJECT-TYPE
|
||||||
|
SYNTAX SEQUENCE OF AristaVrfIfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"This table augments the ifTable and contains the
|
||||||
|
VRF membership information for every routed interface
|
||||||
|
in the system. A row is present only for each active
|
||||||
|
routed (or layer3) interface."
|
||||||
|
::= { aristaVrfMibObjects 2 }
|
||||||
|
|
||||||
|
aristaVrfIfEntry OBJECT-TYPE
|
||||||
|
SYNTAX AristaVrfIfEntry
|
||||||
|
MAX-ACCESS not-accessible
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"VRF membership information for a single routed interface."
|
||||||
|
INDEX { ifIndex }
|
||||||
|
::= { aristaVrfIfTable 1 }
|
||||||
|
|
||||||
|
AristaVrfIfEntry ::= SEQUENCE {
|
||||||
|
aristaVrfIfMembership VrfName
|
||||||
|
}
|
||||||
|
|
||||||
|
aristaVrfIfMembership OBJECT-TYPE
|
||||||
|
SYNTAX VrfName
|
||||||
|
MAX-ACCESS read-only
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The name of the VRF that this routed interface is currently
|
||||||
|
part of."
|
||||||
|
::= { aristaVrfIfEntry 1 }
|
||||||
|
|
||||||
|
-- Conformance and Compliance
|
||||||
|
|
||||||
|
aristaVrfMibCompliances OBJECT IDENTIFIER
|
||||||
|
::= { aristaVrfMibConformance 1 }
|
||||||
|
|
||||||
|
aristaVrfMibGroups OBJECT IDENTIFIER
|
||||||
|
::= { aristaVrfMibConformance 2 }
|
||||||
|
|
||||||
|
aristaVrfMibCompliance MODULE-COMPLIANCE
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The compliance statement for Arista switches that implement
|
||||||
|
the ARISTA-VRF-MIB."
|
||||||
|
MODULE -- this module
|
||||||
|
MANDATORY-GROUPS {
|
||||||
|
aristaVrfInformationGroup
|
||||||
|
}
|
||||||
|
::= { aristaVrfMibCompliances 1 }
|
||||||
|
|
||||||
|
aristaVrfInformationGroup OBJECT-GROUP
|
||||||
|
OBJECTS {
|
||||||
|
aristaVrfRoutingStatus,
|
||||||
|
aristaVrfRouteDistinguisher,
|
||||||
|
aristaVrfState,
|
||||||
|
aristaVrfIfMembership
|
||||||
|
}
|
||||||
|
STATUS current
|
||||||
|
DESCRIPTION
|
||||||
|
"The collection of objects that provide VRF information in the
|
||||||
|
system."
|
||||||
|
::= { aristaVrfMibGroups 1 }
|
||||||
|
|
||||||
|
|
||||||
|
END
|
8119
tests/data/arista_eos_vrf.json
Normal file
8119
tests/data/arista_eos_vrf.json
Normal file
File diff suppressed because it is too large
Load Diff
4801
tests/snmpsim/arista_eos_vrf.snmprec
Normal file
4801
tests/snmpsim/arista_eos_vrf.snmprec
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user