|
This video is part of the appearance, “Arista Networks Presents at Networking Field Day 10“. It was recorded as part of Networking Field Day 10 at 13:30 - 15:30 on August 20, 2015.
Watch on YouTube
Watch on Vimeo
Ryan Madsen, Software Engineer, discusses the software development kit (SDK) for Arista Networks EOS platform and showcases examples of how to use the SDK to create software for EOS.
In his presentation for Networking Field Day 10, Ryan Madsen introduces Arista’s EOS SDK, a development toolkit that allows users to write applications that can natively interact with Arista’s system database. He explains that the SDK consists of a collection of modules and APIs — such as those for static routes, ARP entries, and port channels — which make it possible to both program and respond to network changes directly on the switch. Madsen points out that while the SDK is only about a year old, many customers have already begun deploying real applications, including video streaming services that manage real-time multicast traffic and network engineers experimenting with protocol implementation based on MAC learning events.
Madsen presents a demonstration highlighting how large customers use the SDK to perform advanced traffic engineering across multiple data centers. These customers build controllers that monitor expected bandwidth flows and assign path priorities. They use SDK-based agents installed on Arista switches to receive routing instructions from the controller, converting them into MPLS label stacks to direct traffic through specific paths. A key example demonstrates how the agent and controller react dynamically when a link goes down: the controller recalculates paths and pushes new routes to the agent, which promptly updates the hardware configuration on the switch. The SDK enables real-time decision-making and adjustments with native-level access, essentially allowing users to build their own custom MPLS implementations on Arista gear.
The SDK makes application development relatively simple and portable, supporting both C++ and Python languages, with consistent APIs that abstract hardware differences. Developers receive event-driven callbacks for network changes — like interface status updates — and use manager methods to retrieve or set state data. This abstraction shields them from low-level hardware complications, allowing the same binary application to run seamlessly on various Arista platforms, from smaller switches to 1,000+ port systems. Madsen concludes that this level of integration empowers users to respond immediately to network events and to build robust, state-aware applications. With ongoing SDK enhancements and community contributions via GitHub, Arista aims to foster further innovation from its user base.
Personnel: Ryan Madsen