I’ve always loved typefaces. I blame Microsoft Word. If it only had a few choices for typefaces, it wouldn’t have been a big deal. But instead, they pack in everything from everything from Aldhabi to Trebuchet. It’s a dizzying plethora of choices, and really points out the ways typefaces can differentiate with very simple differences. For most of my life, I was happy to limit my fascination with typefaces to my Word documents. Then I read a piece about the drama over the U.S. Federal Highway Administration changing back to their old the Highway Gothic typeface for highway signage. I had never really looked at it before. Suddenly, I found myself fascinated by it. Quickly, my interest bled over into anything with type on it. I realized that I was swimming in text all around me. Each of which, at some point, required some sort of fundamental design decision. It’s humbling to realize you’re surrounded by conscious effort. It gave me a new appreciation for design, for the sheer act of making a decision into a physical product. I had a similarly overwhelmed feeling when learning about Barefoot Networks.
I saw Barefoot Networks at Networking Field Day last week. And the primary takeaway I got was how hard it is to design a standard network switch, and ASICs in general. What I never realized was the latency involved in this process, which is kind of funny for networking equipment. They laid out the problem as enterprise customers go to the network equipment companies and ask for a feature. If it’s a big customer or enough people ask for it, the equipment folks need to go to their software team to see how they are going to implement this, then go to their ASIC team to have this designed into their hardware. After all this time (often several years), the equipment maker then produces the switch. This equipment is now many years delayed from when that feature was needed, which is now locked into the hardware, and enters a completely different networking landscape.
Barefoot thinks this needs to change. The adoption of SDN across the enterprise gave engineers and administrators purview of the control plane. They think this only goes halfway. They introduced a product to me that gives enterprises control over the forwarding plane as well. They do this by making the network switch completely programmable.
Barefoot is not shy about how important they think this is. They frame it as the next evolution of domain specific processors, bringing programmability to networking like Java brought to the CPU or TensorFlow to Machine Learning. They’re using the open-source P4 language to program their switches. This code runs at line are on their silicon, so it won’t slow down just because of the programmability.
The silicon they’ve made for this concept is called Tofino. Barefoot is fighting a war if perception with this concept. The popular perception that the reason fixed purpose ASICs are the norm is that programmability comes at the tradeoff of performance. Barefoot claims this is a false equivalency. In fact, they’re taking a big swing and claim Tofino is the fastest switch in the world, capable of 6.5Tb per second. They’ve already worked with some white box systems to put together switches with 65 100/40 GE ports. This not only gives you flexibility in the switch capability, but also gives you physical headroom with the fast 100GE ports. Most organization are only just beginning to upgrade to that speed, and Tofino could potentially lengthen the lifespan of your hardware.
The result is that Tofino is a completely blank slate for your programming. It doesn’t recognize any protocols by default, it is entirely dependent on configuration. One of the most interesting parts of this isn’t just that address tables and parser can be programmed, but that elements not essential to your desired application in the network can be excluded entirely. This can even be altered without disruption to the data plane. Barefoot admitted this would require more incremental changes, but the fact that it’s possible at all is impressive.
Aside from being able to rapidly change function, features and configuration purely in software, the other benefit Tofino allows you to get a complete sense of where your packets are going. They have two methods of doing this, both with some tradeoffs. One is to do a so-called Packet Postcard, which causes the switch to generate a small time-stamped digest for every packet. This gives you a complete history, but does generate a substantial increase in traffic. The other option is with in-band telemetry. This uses regular data as probes, so you’re not adding additional packets. The other issue with this is the overall packet size increase. But you’re able to dynamically use either of these two solutions.
Overall, Barefoot Networks has a really interesting offering in Tofino. By being a new player in the network switch game, Barefoot has the benefit and the burden of design as their primary challenge. The space has no shortage of large and imposing players, but that size often comes at the expense of design agility. In Tofino, Barefoot shows what you can do when you fundamentally rethink a problem down to the very design of the concept.