The very first release of SD-Fabric, ONF’s open source fully P4-programmable hybrid cloud network fabric, was just recently released under ONF member-only license. SD-Fabric provides developers with a friendly, cloud-managed, full stack, P4 programmable network fabric enabling a new class of emerging edge applications for Industry 4.0.
SD-Fabric is an integral element of Aether - ONF’s open source private 5G platform. Aether leverages SD-Fabric’s unique features beyond traditional networking fabrics, including a high performance P4-based 5G/4G UPF, slicing and QoS, and end-to-end telemetry for visibility. SD-Fabric 1.0 will be integrated as part of the Aether 1.6 release coming out later this month.
SD-Fabric is designed to run a thin layer of software on white box switches, executing localized control at the edge cloud and supporting multiple edges all controlled from the public cloud. At each edge, SD-Fabric builds a spine-leaf fabric (from 1 to 32+ switches). The entire stack is deployed and managed in a cloud-native fashion with a CI/CD pipeline and integrated logging, monitoring, alarming and more.
Programmability inherent in the SD-Fabric stack enables features beyond traditional fabrics. From optimized processing of 4G/5G workloads with a high-performance switch-based UPF, to end-to-end per-packet visibility enabling closed-loop control applications, to fabric-wide slicing and QoS allowing different applications to deterministically share the network. When combined together, these features ensure the performance and resiliency essential for mission critical Industry 4.0 applications.
SD-Fabric supports various topologies from a single Top-of-Rack (ToR) switch to a full multi-rack leaf-spine fabric, making it possible to easily scale as the edge cloud grows.
In this release, we introduced support for a paired-leaf topology, a two-switch setup that provides a highly available configuration optimized for small edge sites at a minimum cost.
The ability for applications to request network services, to dynamically react to network changes promptly and to apply application-specific forwarding policies is critical to modern edge networks and Industry 4.0 applications. SD-Fabric offers a set of well-defined APIs for edge application developers and network operators to programmatically change the fabric forwarding behavior at runtime.
In this release, we provide APIs to:
- Create network slices and provide QoS classification rules
- Pin traffic to a specific path (in a leaf-spine setup) and drop traffic
- System health and network telemetry
SD-Fabric can be consumed standalone, but SD-Fabric is also available fully integrated with Aether 1.6 and configured by Aether Management Platform providing a single consolidated portal view into each edge site, leveraging the following open source projects:
- Logging integration via Elastic, Fluentbit and Kibana (EFK)
- Monitoring integration via Telegraf, Prometheus and Grafana
- Alarm integration via Kibana
This release ships Docker images of each subcomponent as well as the SD-Fabric umbrella Helm chart to ease deployment on Kubernetes environments.
5G as a Workload
SD-Fabric implements a 4G/5G UPF with P4 programmable switches, reducing CPU load and increasing performance by terminating GTP-U tunnels directly in fabric switches. P4-UPF supports downlink buffering for UE idle-mode and handovers, and interacts with a 4G/5G core via a standard PFCP interface.
Compared to software-based UPF implementations, P4-UPF in SD-Fabric can easily achieve better performances at a significantly lower cost by utilizing the switch ASIC vs CPU for processing.
In this release, we also introduce support for network slicing and QoS for both mobile (GTP-terminated) and non-mobile (generic IPv4) traffic. At the data plane, SD-Fabric supports fabric-wide isolation and QoS enforcement using dedicated hardware queues, while at the control plane we provide QoS integration with SD-Core within a single slice (multi-slice QoS integration coming in the next releases).
For more information on P4-UPF, check out this blog post:
Using P4 and Programmable Switches to Implement a 4G/5G UPF in Aether
SD-Fabric enables end-to-end visibility at the edge network, enabling a new class of closed-loop control applications. By having access to fine-grained real-time information about the network state, such as paths, latency, drops, and congestion events, applications can use SD-Fabric’s API to fine-tune the network behavior to quickly react to anomalies or to improve performance.
In this release, we introduce support for the In-band Network Telemetry (INT) standard on both switches and end hosts. We implemented INT-XD mode (Telemetry Report Specification v0.5 compliant), and integrated SD-Fabric with Intel DeepInsight.
More specifically, we added the following list of features in this release:
- Switch INT
- Support flow, drop, and queue congestion reports
- ACL-like watchlist
- Smart filters to reduce the volume of reports without letting anomalies go undetected
- Integration with P4-UPF to observe flows inside GTP tunnels and to generate UPF-specific drop reasons
- Host INT
- Experimental implementation based on eBPF
- Support flow and drop reports
- Kubernetes CNI-independent. Verified with Cilium and Calico CNIs.
There are a number of key features we are working on for the SD-Fabric 1.1 release (due 1Q next year) to further enhance ease in customization and flexibility in programming:
- QoS improvements per-application and per-UE rate limiting
- Application filtering
- Integrate QoS metrics into Aether monitoring platform
- Slicing / QoS
- Support dynamic queue configuration via gNMI for slice/traffic class customization
- ROC integration
- Expose more telemetry through API
- Integrate both switch and host INT with Aether alert system
- Build test infrastructure and improve deployment automation for host INT
- Explore end-to-end programmable data plane including software switch, smart NIC, FPGA and other accelerator hops and hardware switches.
- Full release notes, links to the docker images and helm charts are now available to ONF members on the new documentation website: https://docs.sd-fabric.org/1.0.0/release/1.0.0.html The same credential for other ONF member-only documentation (such as Aether) can be used to access this website. To request access, please contact firstname.lastname@example.org
- You can also find a few useful links to get started and keep in touch at: https://docs.sd-fabric.org/1.0.0/index.html#get-started
- Check out the recent SD-Fabric Techinar video for a more in-depth view into SD-Fabric.
- The Aether project is in the "Incubation Phase" under the ONF Member-Only Software License, which grants ONF members access to the project repositories. Please review the ONF Member-Only Software License, License Overview, and Licensing & IPR FAQ before requesting access. Members wishing to gain access should contact email@example.com.