.. SPDX-FileCopyrightText: 2021 Open Networking Foundation .. SPDX-License-Identifier: Apache-2.0 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 - :ref:`Switch-based P4-UPF ` - 4G/5G UPF implemented with P4 programmable switches - Support downlink buffering for UE idle-mode and handover via microservice - Integration with PFCP standard interface - :ref:`Slicing and QoS ` - 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 - :ref:`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 ---------------------------- - `SDFAB-653 `_ ArpHandler is unable to handle ARP requests for device loopback address - `SDFAB-655 `_ 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`` Patches ------- .. toctree:: :maxdepth: 2 :glob: 1.0.1 1.0.2