EOS SDK - write native apps for your Arista switch
Clone or download
Permalink
Failed to load latest commit information.
eos @8179947 Search for smash counter entities in each call of macsec int… Aug 29, 2018
examples @8881467 Use updated ACL headers in PolicyRouter.py Jun 26, 2018
.gitignore Stop ignoring eos/. Oct 7, 2015
.travis.yml @2206904 Travis CI - make install needs sudo Dec 13, 2014
EosSdk.i @7123190 add MACsec handlers and eAPI module Jan 4, 2018
GetAgentProcessName.cpp @5878976 switch symlink for GetAgentProcessName Aug 16, 2017
Includes.i @3778179 This change fixes the python binding for EosSdk data types, … Jan 17, 2017
LICENSE @2273938 Include LICENSE file in stubs tarball. Feb 15, 2015
Makefile.am @7123190 add MACsec handlers and eAPI module Jan 4, 2018
MaybePrintProfilesAndExit.cpp @8014796 Branch EosSdk in order to integrate jn286.macsecCounterApis.… Aug 29, 2018
README @1634378 Add a README file to the stubs package. Feb 8, 2014
README.md @2205052 Add a README.md to take precedence on the GitHub site Dec 13, 2014
SwigRenamer.py @1594994 Add Python API bindings using SWIG. Jan 14, 2014
SwigUtils.i @2336839 Handle std::forward_list data type conversion. Currently SWI… May 18, 2015
acl.cpp @6626274 Update EosSdk to support latest EOS 4.20 infrastructure Dec 14, 2017
agent.cpp @2313258 Add agent status accessors and agent iterators for options/s… May 18, 2015
aresolve.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
aresolve_types.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
bfd.cpp @2926259 fl.daytona-eossdk@2926041 autobuild 3756947 Mar 17, 2016
bootstrap @5843758 Add -f to bootstrap script. Aug 15, 2017
build.sh @5854760 be more specific when to add a dynamic linker Aug 15, 2017
class_map.cpp @1940791 Fix stubs! Jul 14, 2014
configure.ac @5182134 in.bedford-eossdk@5181423 autobuild 4867304 Aug 15, 2017
decap_group.cpp @2414360 decap_group improvements May 18, 2015
directflow.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
directflow_types.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
eapi.cpp @7123190 add MACsec handlers and eAPI module Jan 4, 2018
eth_intf.cpp @2261861 Rename vlan_set to vlan_set Feb 15, 2015
eth_lag_intf.cpp @2444867 Add membership_del method to eth_lag_intf_mgr. Oct 7, 2015
eth_phy_intf.cpp @2358374 First cut at the new model for *intf_mgr modules (BUG115132)… May 18, 2015
eth_types.cpp @2260081 Do not use parenthesis in the initializer lists for arrays Feb 15, 2015
event_loop.cpp @2522063 Add event_loop::flush() Oct 7, 2015
exception.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
fd.cpp @1602932 First pass at making the stubs actually do something. Jan 14, 2014
fib.cpp @3162230 Fix following errors in fib.cpp: Sep 2, 2016
hardware_table.cpp @2633300 Back port hardware capacity table from ga.evans-eossdk to c… Oct 7, 2015
impl.cpp @1778497 Create an agent_mgr, integrate the main_loop to the sdk obj… Apr 24, 2014
impl.h @1940795 Let users grab a reference to the mgr stubs. Jul 14, 2014
intf.cpp @3445892 kernel intf names from intf manager Sep 2, 2016
intf_types.cpp @2272436 Backport subintf changes to co.fortcollins.eosdk. Feb 15, 2015
ip.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
ip_intf.cpp @2253393 Pass by reference only for values larger than 16B Feb 15, 2015
ip_route.cpp @2653713 Add an ip_route_set() method that takes a 'type' hint. Oct 7, 2015
ip_types.cpp @2085959 1. Converted aresolve.h types. Dec 13, 2014
iterator.cpp @3645182 Add neighbor_table_status_iter() support. Jan 17, 2017
lldp.cpp @2843190 fl.daytona-eossdk@2843106 autobuild 3668916 Mar 17, 2016
ltmain.patch @5182134 in.bedford-eossdk@5181423 autobuild 4867304 Aug 15, 2017
mac_table.cpp @2588606 Re-add deprecated MacTableMgr methods and mac_entry_t const… Oct 7, 2015
macsec.cpp @8179947 Search for smash counter entities in each call of macsec int… Aug 29, 2018
mlag.cpp @1940791 Fix stubs! Jul 14, 2014
mount_profile_eossdk_all @8282798 re-add mount_profile_eossdk_all to provide a template mount … May 3, 2018
mpls.cpp @1925072 Add a setter/getter for the label of an mpls_label_t. Jul 3, 2014
mpls_route.cpp @2991534 Update the mpls_route module, including handler and manager … Mar 17, 2016
neighbor_table.cpp @3645182 Add neighbor_table_status_iter() support. Jan 17, 2017
nexthop_group.cpp @2415121 co.fortcollins.eossdk-kala@2414988 automerge to co.fortcolli… May 18, 2015
panic.cpp @2119016 Remove the long deprecated panic handler (superseded by the … Dec 13, 2014
policy_map.cpp @6626274 Update EosSdk to support latest EOS 4.20 infrastructure Dec 14, 2017
policy_map_types.cpp @2060497 Dec 13, 2014
sdk.cpp @7123190 add MACsec handlers and eAPI module Jan 4, 2018
subintf.cpp @2358374 First cut at the new model for *intf_mgr modules (BUG115132)… May 18, 2015
swig.patch @2250729 Make the methods of the `sdk' class virtual. Feb 15, 2015
system.cpp @3342415 fl.keywest-eossdk-ziyad@3342287 automerge to fl.keywest-eoss… Sep 2, 2016
timer.cpp @1940791 Fix stubs! Jul 14, 2014
tracing.cpp @2405578 const-ify tracing.h May 18, 2015
version.cpp @1964689 Fix version.cpp in the stubs package. Jul 22, 2014
version.m4 @8501175 Update EosSdk for release v2.4.0! Aug 29, 2018
vrf.cpp @2432404 Fix 2 test failures: Oct 7, 2015

README.md

Arista's EOS SDK

EOS SDK logo

The EOS Software Development Kit (EOS SDK) lets you program native, high-performance apps that run on your Arista switch. These apps, or "agents," harness the full power of EOS, including event-driven, asynchronous behavior, high availability, and complete access to both Linux and EOS's APIs.

This package provides a self-contained implementation of stubs for the EOS SDK. The stubs mock how the real EOS SDK behaves on a real switch, to a certain extent. They are useful to build and test software in your favorite Linux environment, with your preferred build tools.

Documentation

Documentation is hosted on this project's wiki. It includes a quickstart guide, build and install instructions, along with an EOS overview and high-level SDK usage information.

Detailed, per-release API Documentation is also available via the release page.

Releases

Releases are available via the GitHub release page. From that page you can download specific tarballs for a given release so you can build your agent. The corresponding EosSdk RPMs (that provide the functionality for interacting with Arista devices) for a given EOS SDK release is available via the Arista download page on a per-EOS-release basis.

Exploring the code

The directory structure is as follows: eos/ contains the headers that define the APIs you'll be using. In this directory, each .h file is a module that provides access to a specific subset of EOS's functionality. Most modules also have a companion file in eos/types/<module_name>.h. This file defines the various value types used by the module.

For a variety of C++ and Python examples, see the examples/ directory. The stub .cpp files at the top level directory can be ignored or extended to provide mock functionality, as you'd like.