Barefoot Networks was showing off its Tofino programmable switch chip at last week’s SDN and NFV World Congress in The Hague, Netherlands. According to Barefoot, the fully programmable chip costs the same as fixed-function chips and does not use any more power than fixed-function chips.
In addition, the chip advances software-defined networking (SDN), which separates the forwarding plane from the control plane. Using Tofino with the P4 programming language and P4 Runtime, network operators can program the forwarding (or data) plane of the network.
What kinds of things might network operators want to program at the forwarding plane?
One possibility might be load balancing. “Layer 4 load balancing is typically done by appliances that are very expensive,” said Prem Jonnalagadda, director of product management for Barefoot Networks. “Now, you can embed that function into the switch itself instead of having this expensive middle box. We can run at 6.5 Tb/s while traditional load balancers are doing hundreds of gigs.”
Besides load balancing, the company has built “primitives” into the chip with an eye toward future functions. The logic in these primitives could allow network operators to program the chips with other middle box functions such as firewalls or distributed denial of service (DDoS) protection. “Tofino can respond to TCP requests in the data plane itself,” said Jonnalagadda. “The server is protected. We are the first line of defense.”
Jonnalagadda said telemetry is currently the most popular use for the chip’s programmability. It allows network operators to take all the information related to the packets and understand exactly what is going on in the chip. AT&T has demonstrated this feature in its production network. The carrier exploited the programmability of the Tofino chip to add In-band Network Telemetry (INT).
Fully Programmable Chip
Broadcom leads in fixed-function switch chips, but Jonnalagadda said Broadcom does not have a fully programmable chip. “People are throwing around the term ‘programmable’ in lots of places,” he said, adding that Broadcom has chip-based switches that are configurable with application programming interfaces (APIs). “But they are not really programmable at the data plane.”
He said three things are required to be considered truly programmable: a high level programming language, a compiler, and a high performance target, or chip. “Some people may claim to have a programming language, but it’s not open,” said Jonnalagadda. “We use an open language called P4. Some may use scripting languages or microcode. And the target needs to be a compiler target. Then it has to be open so anybody can program it.”