Skip to content
rmadsen edited this page Sep 9, 2014 · 15 revisions

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.

Programs that use the SDK are extremely powerful and flexible; you can use the functionality the SDK exposes to produce a diverse set of applications. For example, you can build agents that:

  • Monitor network health by sending probe packets and measuring their latency variance.
  • Provide fault tolerance by reacting to congestion events and link failures
  • Connect to a centralized server or controller for persistent, unified device management.
  • Dynamically prioritize traffic with Quality of Service (QoS) controls according to the time of day or expected maintenance windows.
  • Apply variable configuration based off of a neighbor's LLDP properties
  • Implement custom routing or tunneling protocols using IP routes, MPLS actions, and more
  • Protect against DDoS attacks through selective flow-based filtering
  • On-box counter aggregation that periodically sends fine-grained counter data to another server, thereby avoiding slow and brittle SNMP monitoring solutions.
  • Much, much more.

All of these options are possible because EOS SDK uses the same fundamental building blocks as built-in Arista agents, meaning your custom code inherits all of EOS's reliability and flexibility features for free. Thanks to a modular architecture and unfettered access to the underlying Linux system, SDK agents integrate seamlessly with custom CLIs, configure replace, hitless supervisor failover, compatibility across all Arista platforms, system logging, resource management, and more.

Agents are written using C++ or Python, and have access to a wide variety of stable APIs.