SD-Fabric 1.0
This is the first release of SD-Fabric.
SD-Fabric is an open source, full stack, deeply programmable network fabric optimized for edge cloud, 5G, and Industry 4.0 applications. It builds on SDN and cloud native principles to create a disruptive platform that for the first time empowers the network with modern cloud development principles.
Right-sized Topology: Scale from a single Top-of-Rack (ToR) switch, to an Highly-Available (HA) setup with paired ToRs, to a full leaf-spine fabric for multi-rack deployments.
API Driven: Well-defined APIs provide the ability to drop or reroute traffic, create slices with configurable QoS, obtain telemetry, and more.
Cloud Managed: Fully integrated and configured by Aether™ Management Platform.
5G as a Workload: Reduce CPU load and increase performance by terminating GTP-U tunnels directly in the fabric switches, with QoS and slicing support.
End-to-End Visibility: With Inband Network Telemetry (INT) on switches and end hosts, enabling closed loop control applications.
Feature Highlights
Fabric connectivity
Support single switch, paired-leaves with dual-homing, and leaf-spine topology
Bridging, IPv4 routing, ECMP, DHCP relay
Redundancy on both control and data plane
-
4G/5G UPF implemented with P4 programmable switches
Support downlink buffering for UE idle-mode and handover via microservice
Integration with PFCP standard interface
-
Data plane support for fabric-wide slicing and QoS using dedicated hardware queues
Control plane integration with SD-Core for UPF QoS with single slice (multiple slices in the next release)
REST APIs for classification of non-mobile traffic
Inband Network Telemetry (INT)
INT-XD mode compliant with Telemetry Report Specification v0.5
Integrated with Intel DeepInsight
Switch INT
Support for flow, drop, and queue congestion reports
Watchlist and smart filters to reduce the volume of reports
Integration with P4-UPF
Host INT
Experimental implementation based on eBPF
Kubernetes CNI-independent, tested with Cilium and Calico
Support for flow and drop reports
API
Drop traffic
Pin traffic to specific spine (in a leaf-spine setup)
Slicing and QoS for non-mobile traffic
Scalability
5K UEs, 10 calls per second with 1 CPU core and 4G RAM per ONOS instance
Deployment
Support Kubernetes deployments with Helm charts
Logging integration via EFK
Monitoring integration via Prometheus/Grafana
Alarm integration via Kibana
Testing
Data plane tests
Unary tests based on PTF framework (running pre-merge on Tofino model)
Line rate test based on PTF framework and TRex traffic generator for INT and QoS features (running nightly on hardware switch)
Control plane tests
UP4 integration with PFCP Agent based on ONOS STC framework for 2x2 and paired-leaves topologies (running pre-merge)
System tests
Based on TestON framework
Running nightly on paired-leaves and 2x2 topology with 3 ONOS instances
Features covered:
Bridging
Paired-leaves
UP4
INT with DeepInsight integration
QoS (both mobile and non-mobile traffic)
Jenkins dashboard showing nightly results
Known Issues and Limitations
-
ArpHandler is unable to handle ARP requests for device loopback address
-
UP4 reconciliation cycle can leave switch flow state inconsistent causing UE data traffic to be dropped. Requires to detach and re-attach UEs.
Host INT features assumes the fabric interface on each K8s worker node uses the same name
Component versions
SD-Fabric ONOS image
tost:
registry.aetherproject.org/tost/tost:1.0.0
Sub-component versions:
onos:
2.5.5-rc1
trellis-control:
3.1.0
trellis-t3:
4.0.0
fabric-tna:
1.0.0
up4:
1.0.0
Stratum image
stratum-bfrt:
stratumproject/stratum-bfrt:21.10-9.5.0
DBUF image
dbuf:
registry.aetherproject.org/tost/dbuf:1.0.0
PFCP Agent image
pfcp-agent:
omecproject/upf-epc-pfcpiface:master-fcdbc95
Helm Chart Versions
sdfabric:
1.0.6
onos-classic chart:
0.1.24
stratum chart:
0.1.13
pfcp-agent chart:
0.0.1
dbuf chart:
0.0.1
int-host-reporter chart:
0.0.1