Intel's Tofino P4 Software Is Now Open Source

2 days ago (p4.org)

Am I mistaken or has Intel pretty much shelved the Tofino switching hardware that supports P4 in the first place?

I seem to recall Oxide having to switch suppliers over this?

I’m impressed by the political acumen it takes to get a Corp to release code as OSS. My career has seen at least two chunks of work that would have made great OSS (ie potentially useful outside of the single company) but Incoukd not get past the final hurdle

And they would have been nice CV boosters as well (my real motivation!)

  • Well. It looks like abandonning software to the community.

    From the "P4 workflow" described at https://p4.org/ I see mentions of compiling to x86, but no mention of ARM, and no mention of BPF. So, as someone who discover it, I wonder if this project is still relevant in 2025.

  • It helps that Intel has been contributing to OSS since forever, they have good internal processes established and some orgs develop/contribute to OSS pretty much exclusively.

    • I think the biggest contributor to these processes was going open source in their graphics drivers.

      They went from "we have tons of 3rd party IP in these!" to, "you don't need to download anything, it's in kernel mainline now" in a generation and they're off to the races after that.

      Maybe their Ethernet drivers were open before that, I don't remember but, video drivers made them pass a threshold in maturity IMHO.

      4 replies →

    • > they have good internal processes established

      There are a good number of people that would LOL at this statement, myself included.

      Maybe they have such processes now, because at one point . . . Well “mistakes were made”.

  • I had one piece that made it open source (with blessing of 20 committees), then someone that didn't like me ran it back up the flag poll and pulled it back next day

As far as I can tell, Software Defined Networking (which this is about: "P4 is a domain-specific language for network devices") by now is pretty much a decade-old promise that never materialized. I'd still love to be wrong though!

So, let's take the next paragraph: "Before P4, vendors had total control over the functionality supported in the network (...) controlled the rollout of new features (e.g., VXLAN), and rollouts took years"

Anyone has a pointer to any actually available hardware capable of L2 and L3 packet processing where I could have implemented VXLAN in, say, weeks using P4? Again, as far as I can tell, it's all either killed-off-a-long-time-ago, "contact us" vaporware, or exotic 40/100-Gb-only Top-o-Rack gear, and even for those, there is nary an "add to cart" button in sight...

  • P4 is used by Cisco Silicon One, Xsight, AMD Pensando, Intel Mount Evans, etc. "Contact us" isn't the same thing as vaporware; the Pensando SSDK and Intel ES2K SDE definitely exist for example. I realize it sucks when things aren't available to hobbyists but it's a mistake to pretend it's fake.

    P4 is really only needed in data center networks because slower campus/home networks can usually get away with software processing and their lower prices probably can't support the R&D of a programmable architecture.

  • I would be curious as well. Every time we try something "software defined" the drawbacks are major, cost goes up, stability goes down and most importantly, bandwidth goes down by a factor 10. The only software defined networking gear we use is OpenBSD, to do some complex routing, but we cannot go above 5GB/s.

Not much to add technically but I am very curious who named it Tofino. Tofino is a city by where I live. It is a beautiful location on the Pacific Ocean on Vancouver Island. A favorite destination for our PM Justin Trudeau. Definitely one of the top 100 beautiful places in the world. When I go there I feel stress leave my body and just enjoy the sounds of the waves crashing and the feeling of the sand on my feet melt any worries I may have. Love it there.

  • The founding CEO of Barefoot Networks was big surfer. They used famous surfing spots as the internal names of their ASICs.

  • Same here! Im living over in Comox and spend a lot of time in Tofino / Ucluelet. Best part of all of Canada in my opinion.

    I particularly enjoy the winter trips to SF to show my colleagues pictures of the latest cold water surf adventure.

    • Nice we are basically neighbors you have to drive past my house to get to Tofino. If you are ever passing by always like making new like minded friends.

> This bold move from Intel to open-source the Tofino P4 software is more than just a licensing decision; it’s a call to action for the global developer community.

Nah. 5 years ago this would've been bold. Now it's ridding yourself of the baggage of an almost-dead platform that you're about to make fully dead.

Still appreciate getting the tooling as FOSS rather than just terminating it, but let's not go for delusions here.

  • What are they making instead?

    • To my knowledge: nothing. Intel is exiting the network switch silicon business¹. Broadcom and nVidia are dominating (different parts of) the market; Marvell and Microchip are fighting for the scraps.

      The only "cool" player is Microchip, who have been providing full datasheets, register maps, and open sourcing their drivers for years now. But I'm under no illusions they're doing this out of the goodness of their heart, they're doing it because it's one of very few competetive advantages available to them.

      (Which is perfectly fine! FOSS drivers are a great competetive advantage! It's not working super well sadly :/ — but part of the problem here is Broadcom's anticompetetive behavior. To my knowledge, any switch OEM producing Broadcom-based gear will get their NDAs and silicon access revoked if they so much as dream about making devices with non-Broadcom silicon.)

      ¹ Intel has already exited this business some while ago, they only bought Fulcrum Micro to get better NICs basically since every NIC is nowadays also a switch. Tofino was always a "special beast", not quite competing against e.g. Qumran or Trio. Tofino is (was?) better thought of as special purpose FPGA…

      6 replies →

Unless there are devices that I could buy (48 port 1U style switches) and until this supports integrating with something like switchdev ( https://docs.kernel.org/networking/switchdev.html ) then this is too little too late. I hope I'm wrong though.

does anyone know if someone can make this switchdev friendly?

  • There have always been Tofino switches available to buy but they were priced for the data center not the home. You can probably find them on eBay now that they're old enough.

    Writing a switchdev driver is an enormous amount of work so it only happens when someone (usually the chip vendor) pays for it. Any code open-sourced by Intel probably won't meet Linux kernel standards so it would have to be completely rewritten (like the tg3 driver from the old days).

After having used & automated configuration of "traditional" switching/routing devices for years (Cisco , Arista, Juniper), I can't wait for P4 devices to take over

  • I believe that Arista has (had?) P4 devices in their lineup, but after Intel's sunsetting of that platform, they probably axed them.

  • You know all those random python automation scripts network engineers use to configure devices? Now imagine them actually running on device controlling packet and frame flows. Does that sound like it would be fun to troubleshoot?

  • What do you want to use P4 for?

    • The dream is you never have to rely on buggy vendor software again.

      The reality is, you end up with a complex stack with no or homegrown documentation that requires experienced engineers to operate and maintain.

      In some environments, that's a perfectly fair trade-off. In most, it isn't.

      3 replies →