Learning how to program is not the easiest thing in the world. It’s a world of syntax and structure that might be alien to you. But once you learn how to use those programs to do powerful things you will look back on your pre-programming life and wonder why you ever did things the hard way in the first place.
Programmability in switches is also an important factor in software defined networking (SDN). The ability to use standard languages like Python to write reusable programs to configure devices, poll for configurations, and operate collections of systems is powerful indeed. But they only work properly with a well documented application programming interface (API).
APIs are tricky things though. Sometimes APIs are a jumbled mess of configuration commands thrown together in a semblance of structure. Other times they are more static but ever-changing as new methods are discovered and end up supplanting an older established way of doing things. That can cause problems down the road when someone is using the older version of an API and it suddenly breaks support for a critical function.
What’s really needed is a good, logical method of API structuring. A great example is the recently launched SDKLT from Broadcom. SDKLT changes the way that Broadcom arranges their API structure into a logical table. This structure helps people create software programs that can operate independently of a specific device.
This is a huge advantage for those programming against a line of devices. Now, instead of needing to decipher a specific API for a specific switch model the programmer can do something much easier. They can write a program against the logical tables in the API and know that those tables will be mapped to a specific entry on the switch. This serves as a layer of abstraction that allows software programmers to ensure their application will run on any supported device through those table mappings.
Free And Clear
The other advantage of SDKLT is that the kit is being released under an open source license. The APIs are released under the Apache 2.0 license and the code is already available on GitHub. Now, instead of the need to go out and sign a lengthy support contract with Broadcom, replete with NDA information, you can simple submit a pull request and get started.
The opening of SDKLT has huge advantages for people looking to get started with programming for Broadcom switches. Now you can get up and running with minimal effort and start programming against the Tomahawk chipset through the logical table APIs. Those APIs allow you to fully provision devices through various automation tools, whether traditional command line interfaces (CLIs) or more advanced things like YAML. Best of all? Those commands can be delivered in batches and applied atomically via one API call to ensure consistent state and operation of the devices on your network.
More importantly, the opening of SDKLT to the community means that people can start migrating their existing applications away from older APIs and start using the new logical table system. There is no hoping that the developers pick up the new system right away or worrying that an abandoned or completed app may never really be updated. Instead, the torch can be carried by new developers that want to succeed and push the state of programmatic networking forward.
Bringing It All Together
Broadcom is making two pretty important leaps here. The first is a move to a logical table system. This is going to really change the way that we look at programing networks. I hope more people choose to adopt a similar system in the future, as the complexity necessary to write against an API is lessened and more people can start writing code without needing to know the intricacies of a given platform.
The other leap is the release under Apache 2.0. This means that there is a huge opportunity for new developers to come into the market and write apps for Tomahawk switches today as well as apps for newer switches tomorrow. The influx of developers on this platform should give Broadcom a huge lead in SDN development in the coming months, if not years.