< back to overview

ONF Releases SD-Fabric v1.0 – a Fully Programmable Network Fabric Optimized for Edge Cloud, 5G, and Industry 4.0

Oct 20, 2021
Charles Chan & Carmelo Cascone
Charles Chan & Carmelo Cascone About the author

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 Overview

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 Overview 1 jpg

Right-sized Topology

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.

API Driven

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

Cloud Managed

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

End-to-End Visibility

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.

Roadmap

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:

  • P4-UPF
    • 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
  • INT
    • 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.

Learn More

ABOUT THE AUTHOR Charles Chan & Carmelo Cascone
Charles Chan & Carmelo CasconeMTS