Skip to content(if available)orjump to list(if available)

Open Hardware Ethernet Switch project, part 1

Aurornis

This is a seriously impressive project and it's been fun to follow along.

I almost hesitate to say anything, but the constant scope creep (that he readily admits in the blog) is starting to feel like a real obstacle to getting anything done. It's fun to see all of the theorizing about 96-port switches with $11K of FPGAs, but it would be fantastic if something like the simple 4-port switch design could be spun out as an open source project that people could iterate on.

I've also been following his solder-in probe projects for years ( https://www.antikernel.net/products.html ). There was a small Kickstarter and some reviews, but now the one distributor has 404s on the product pages and there are a lot of "coming soon" labels attached to all the different products and variations. Again, it would be fantastic if just one of those projects was available in distribution semi-reliably.

azonenberg

The plan is 96 ports total for my own use, split across two 48-port 1U switches. And that's something that is now well within reach: I have the power boards assembled and ready to go, I have the FPGAs and PHYs and (not populated) line card boards in hand.

(EDIT: clarification, the plan had been 96 ports total since at least 2015, since that's what I had in existing Cisco switching. The major scope creep over that time was deciding that 2x 48 port switches with a bigger FPGA would be a more power efficient, easier to build, and generally superior design to 4x 24 port)

All that's left hardware wise is to design the main logic board with the FPGA, processor, and SFPs, plus the mechanical and thermal design of the 1U chassis. I've been focusing on firmware due to the tariff situation and wasn't planning on spinning the production-ish hardware for quite a while.

I don't plan any further scope changes now that I've e.g. already put in the production line card PCB order and mostly finalized the fabric architecture. I'm just holding off on the final logic board design until I'm sure about, for example, whether I'll want external packet buffer SRAM like LATENTPINK had or if I'll be fine with the KU5P's internal memory resourecs.

As far as the probes go, yes the antikernel.net site is way out of date and I've been too busy to refresh it.

* The AKL-PT1 did a kickstarter and I shipped probes to backers, but I stopped selling them because the fixed tip/ground spacing was too awkward and made it difficult to use.

* The AKL-PT2 (first gen solder in probe) was for sale for a while but extremely fragile, only 4 GHz bandwidth, and also had fixed signal/ground spacing.

* A few in-between designs were total flops and never reached the point of shipping a single unit

* The AKL-PT5 (second gen solder in probe) is >16 GHz bandwidth and has a flexible resistor based solder-in tip and a much nicer form factor. R&D is done but I ran into supply chain problems with the specialized resistor it needs (9 month lead time, poor yield, etc). I think I've mostly worked around those issues and I have a PVT run of a hundred units in the pipeline now. Fingers crossed they'll be hitting Digikey in the next 6-12 months.

userbinator

but it would be fantastic if something like the simple 4-port switch design could be spun out as an open source project that people could iterate on.

You can just get something like a Realtek single-chip switch IC and put it on a PCB. Low-port-count unmanaged switches are cheap commodity products already.

superb_dev

But not a cheap open source commodity

azonenberg

This is not going to be cheap. That was never the goal.

In low volume when you combine several custom multilayer boards, custom powder-coated sheet metal work, etc even if you allow for the practically-free recycled FPGA this is going to probably end up being a $5-10K project. The last custom one-off 1U I did from ProtoCase was like $800ish just for the enclosure, and that was before the recent tariff hikes.

transpute

For the other end of the wire, sometimes you can find NetFPGA academic research devices on eBay. The project has been running for 15 years, with 5 generations of NICs, https://netfpga.org/

> A line-rate, flexible, and open platform for research, and classroom experimentation. More than 3,500 NetFPGA systems have been deployed at over 300 institutions in over 60 countries around the world.

purpleidea

This is a great project I've been following along. My personal desire is to see this eventually support https://docs.kernel.org/networking/switchdev.html (although it will likely be someone other than Andrew that implements this) since mainstream switching where it works just like regular Linux networking would change our world for the better!

We need fewer proprietary interfaces for such an important part of networking.

zokier

I wonder if the author considered at any point using Sparx-5 switch asic from Microchip? Those are available in single quantities for not too crazy price ($121 for 128G variant), and they are Linux based.

Of course I understand that having custom switch engine is far more satisfying to do.

azonenberg

This project dates back to circa 2013 when at the time, there was nothing available in that class without NDAs. Once I got set on the path of going custom I didn't want to back off from the challenge even if an easier path became available.

Also, I explicitly do not want to run embedded Linux. I much prefer bare metal on the control plane (I ended up writing a bare metal sshd because I couldn't find one that supported no-malloc, no-OS operation)

And one of the architectural plans of this project is a completely separate control/data plane where the processor can't see fabric packets and has a physically separate management interface.

westurner

There are 48+2 port switches with OpenWRT support.

Re: initial specs for the (4 port) OpenWRT One, which is built on Banana Pi's, which supports U-boot: https://www.cnx-software.com/2024/01/12/openwrt-one-ap-24-xy... .. https://openwrt.org/toh/openwrt/one:

> The non-open-source components include the 2.5GbE PHY and WiFi firmware with blobs running on separate cores that are independent of the main SoC where OpenWrt is running. The DRAM calibration routines are closed-source binaries as well.

Software for FPGA switch, probe, and GHz oscilloscope projects?

/? inurl:awesome vivado https://www.google.com/search?q=inurl%3Aawesome+vivado :

awesome-hdl: https://github.com/drom/awesome-hdl :

sphinx-hwt:

d3-wave probably won't do GHz in realtime. https://github.com/Nic30/d3-wave

Pyqtgraph probably can't realtime plot GHz probe data without resampling either?

pyqtgraph: https://github.com/pyqtgraph/pyqtgraph

The hwtLib README says Vivado supports IP-XACT format.

hwtLib: https://github.com/Nic30/hwtLib :

> hwtLib is the library of hardware components writen using hwt library. Any component can be exported as Xilinx Vivado (IP-exact) or Quartus IPcore using IpPackager or as raw Verilog / VHDL / SystemC code and constraints by to_rtl() function. Target language is specified by keyword parameter serializer.

IP-XACT: https://en.wikipedia.org/wiki/IP-XACT

hwtlib docs > hwtLib.peripheral.ethernet package: https://hwtlib.readthedocs.io/en/latest/hwtLib.peripheral.et...

hwtLib.peripheral.uart package: https://hwtlib.readthedocs.io/en/latest/hwtLib.peripheral.ua...

It looks like there are CRC implementations in hwtlib. Which CRC or hash does U-boot use for firmware flashing? https://www.google.com/search?q=Which+CRC+or+hash+does+U-boo... ... Looks like CRC32 like .zip files but not .tar.gz files.

U-boot: https://github.com/u-boot/u-boot

OpenWRT docs > "Failsafe mode, factory reset, and recovery mode": https://openwrt.org/docs/guide-user/troubleshooting/failsafe...

Open vSwitch: https://en.wikipedia.org/wiki/Open_vSwitch :

> Open vSwitch can operate both as a software-based network switch running within a virtual machine (VM) hypervisor, and as the control stack for dedicated switching hardware; as a result, it has been ported to multiple virtualization platforms, switching chipsets, and networking hardware accelerators.[7]

"Porting Open vSwitch to New Software or Hardware": https://docs.openvswitch.org/en/latest/topics/porting/

awesome-open-source-hardware: https://github.com/aolofsson/awesome-opensource-hardware

awesome-open-hardware: https://github.com/delftopenhardware/awesome-open-hardware :

> Journal of Open Hardware (JOH), HardwareX Journal,