FGPA = field-programmable gate array. NIC = network interface card. PTP = Precision Time Protocol. TDMA = time-division multiple access. I’m trying to understand what it is and what makes it special.
Some detail from Reddit on what's unique about it:
"Corundum is being developed to facilitate optical networking research and as such has some unique architectural features. First, all hardware queue state is stored in block RAM or ultra RAM, enabling support for thousands of independent, hardware controllable transmit, receive, completion, and event queues. This enables fine-grained hardware control over packet emission on a per-destination or per-flow basis. Additionally, the NIC supports multiple ethernet ports per interface that have separate schedulers but share the same hardware queues, enabling functionality such as striping packets across ports or rapidly migrating flows from port to port. The port schedulers can be made aware of PTP time, enabling high-precision TDMA that's synchronized across a large network."
Regarding TDMA only: it's part of IEEE time sensitive networking (TSN), which is intended to make Ethernet suitable for industrial application where short latencies and deterministic behavior are critical, and not guaranteed with stock Ethernet.
Supporting critical traffic with TSN is a two steps process. First, you synchronize all the participating network nodes. For this you can use PTP (IEEE 1588), which is like an Ethernet level NTP (grossly oversimplified, but you get the idea). Once all the nodes are in sync, they can use time aware scheduling (TAS) where a TDM frame is overlaid over all the LAN, with Ethernet traffic classes (TC) assigned to specific ranges. In other words, you define a repeating pattern, split into different sequential zones, and TC are aligned to some zones. The goal is to define repeating ranges dedicated to specific traffic classes, where one can control the load and make sure there is no contention and traffic will go through with deterministic latency.
All this could be used in a plant, to support both best effort traffic but also sensitive real-time traffic for automation, while protecting the later.
TSN started out for media applications (broadcasting) over Ethernet, but is getting into industrial applications (see https://opcfoundation.org/).
Support for TSN is planned for 5G (NR) release 16, to support industrial applications.
All this area is in flux, so having a flexible programmable platform can be interesting.
So, since Corundum is open source, you can plug in whatever arbitrary transmit scheduler you want. Corundum also supports 10,000+ transmit queues (I have synthesis tested on the ultrscale+ to 32,768 transmit queues). This is super interesting for all sorts of networking applications, as that's a large enough number of queues to give individual flows or connections their own hardware queue, so the scheduler on the NIC can directly control the flow of information leaving the NIC.
TDMA is basically a simple demonstration scheduler that enables and disables queues on microsecond timescales, based on PTP time. One of the original reasons for building Corundum was to enable optical switching research, where data transmission into the switch must be precisely coordinated with the configuration of the switch itself. We have tried to do this in software, but the precision is limited and the CPU overhead is high. With corundum, the schedule is enforced in hardware, so it is extremely precise and does not add any CPU overhead.
TDMA usually means old legacy time-division based communications standards such as E1/T1 (G.704) or SONET/SDH.
Emulating such services in a packet-switched network requires very precise timing hence the reference to it in terms of IEEE1588 / Precision Time Protocol.
PTP can be useful for packet capture, since that lets you associate a high-precision timestap to each packet that you receive. Dedicated capture cards typically have some combination of PTP, IRIG, and PPS inputs.