blob: 8146a5f1267f3a2a76ab5bc776948978445a7a9a [file] [log] [blame]
Charles Chanfcfe8902022-02-02 17:06:27 -08001.. SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
2.. SPDX-License-Identifier: Apache-2.0
3
Charles Chanc9531d42022-03-08 17:44:08 -08004SD-Fabric 1.0
5=============
Zack Williams98fe2322021-09-20 15:02:11 -07006
Charles Chan8bc160d2021-10-12 21:36:46 -07007This is the first release of SD-Fabric.
8
9SD-Fabric is an open source, full stack, deeply programmable network fabric optimized for edge cloud,
105G, and Industry 4.0 applications.
11It builds on SDN and cloud native principles to create a disruptive platform that for the first time
12empowers the network with modern cloud development principles.
13
14- **Right-sized Topology**: Scale from a single Top-of-Rack (ToR) switch, to an
15 Highly-Available (HA) setup with paired ToRs, to a full leaf-spine fabric
16 for multi-rack deployments.
17- **API Driven**: Well-defined APIs provide the ability to drop or reroute traffic,
18 create slices with configurable QoS, obtain telemetry, and more.
19- **Cloud Managed**: Fully integrated and configured by Aether Management Platform.
20- **5G as a Workload**: Reduce CPU load and increase performance by terminating GTP-U tunnels
21 directly in the fabric switches, with QoS and slicing support.
22- **End-to-End Visibility**: With Inband Network Telemetry (INT) on switches and end hosts,
23 enabling closed loop control applications.
24
25Feature Highlights
26-------------------
27- **Fabric connectivity**
28
29 - Support single switch, paired-leaves with dual-homing, and leaf-spine topology
30 - Bridging, IPv4 routing, ECMP, DHCP relay
31 - Redundancy on both control and data plane
32
Carmelo Cascone7623e7c2021-10-13 17:45:27 -070033- :ref:`Switch-based P4-UPF <p4_upf>`
Charles Chan8bc160d2021-10-12 21:36:46 -070034
35 - 4G/5G UPF implemented with P4 programmable switches
36 - Support downlink buffering for UE idle-mode and handover via microservice
37 - Integration with PFCP standard interface
38
Carmelo Cascone7623e7c2021-10-13 17:45:27 -070039- :ref:`Slicing and QoS <slicing_qos>`
Charles Chan8bc160d2021-10-12 21:36:46 -070040
41 - Data plane support for fabric-wide slicing and QoS using dedicated hardware queues
42 - Control plane integration with SD-Core for UPF QoS with single slice (multiple slices in the next release)
43 - REST APIs for classification of non-mobile traffic
44
Carmelo Cascone7623e7c2021-10-13 17:45:27 -070045- :ref:`Inband Network Telemetry (INT) <int>`
Charles Chan8bc160d2021-10-12 21:36:46 -070046
47 - INT-XD mode compliant with Telemetry Report Specification v0.5
48 - Integrated with Intel DeepInsight
49 - Switch INT
50
51 - Support for flow, drop, and queue congestion reports
52 - Watchlist and smart filters to reduce the volume of reports
Carmelo Cascone7623e7c2021-10-13 17:45:27 -070053 - Integration with P4-UPF
Charles Chan8bc160d2021-10-12 21:36:46 -070054
55 - Host INT
56
57 - Experimental implementation based on eBPF
58 - Kubernetes CNI-independent, tested with Cilium and Calico
59 - Support for flow and drop reports
60
61- **API**
62
63 - Drop traffic
64 - Pin traffic to specific spine (in a leaf-spine setup)
65 - Slicing and QoS for non-mobile traffic
66
67- **Scalability**
68
69 - 5K UEs, 10 calls per second with 1 CPU core and 4G RAM per ONOS instance
70
71
72Deployment
Zack Williams98fe2322021-09-20 15:02:11 -070073----------
Charles Chan8bc160d2021-10-12 21:36:46 -070074- Support Kubernetes deployments with Helm charts
75- Logging integration via EFK
76- Monitoring integration via Prometheus/Grafana
77- Alarm integration via Kibana
Zack Williams98fe2322021-09-20 15:02:11 -070078
79
Charles Chan8bc160d2021-10-12 21:36:46 -070080Testing
81-------
82- **Data plane tests**
Zack Williams98fe2322021-09-20 15:02:11 -070083
Charles Chan8bc160d2021-10-12 21:36:46 -070084 - Unary tests based on PTF framework (running pre-merge on Tofino model)
85 - Line rate test based on PTF framework and TRex traffic generator for INT and QoS features
86 (running nightly on hardware switch)
Zack Williams98fe2322021-09-20 15:02:11 -070087
Charles Chan8bc160d2021-10-12 21:36:46 -070088- **Control plane tests**
Zack Williams98fe2322021-09-20 15:02:11 -070089
Charles Chan8bc160d2021-10-12 21:36:46 -070090 - UP4 integration with PFCP Agent based on ONOS STC framework for 2x2 and paired-leaves topologies
91 (running pre-merge)
Zack Williams98fe2322021-09-20 15:02:11 -070092
Charles Chan8bc160d2021-10-12 21:36:46 -070093- **System tests**
Zack Williams98fe2322021-09-20 15:02:11 -070094
Charles Chan8bc160d2021-10-12 21:36:46 -070095 - Based on TestON framework
96 - Running nightly on paired-leaves and 2x2 topology with 3 ONOS instances
97 - Features covered:
Zack Williams98fe2322021-09-20 15:02:11 -070098
Charles Chan8bc160d2021-10-12 21:36:46 -070099 - Bridging
100 - Paired-leaves
101 - UP4
102 - INT with DeepInsight integration
103 - QoS (both mobile and non-mobile traffic)
104
105 - Jenkins dashboard showing nightly results
Zack Williams98fe2322021-09-20 15:02:11 -0700106
107Known Issues and Limitations
108----------------------------
Charles Chan8bc160d2021-10-12 21:36:46 -0700109- `SDFAB-653 <https://jira.opennetworking.org/browse/SDFAB-653>`_
Zack Williams98fe2322021-09-20 15:02:11 -0700110
Charles Chan8bc160d2021-10-12 21:36:46 -0700111 ArpHandler is unable to handle ARP requests for device loopback address
112- `SDFAB-655 <https://jira.opennetworking.org/browse/SDFAB-655>`_
Zack Williams98fe2322021-09-20 15:02:11 -0700113
Charles Chan8bc160d2021-10-12 21:36:46 -0700114 UP4 reconciliation cycle can leave switch flow state inconsistent causing UE
115 data traffic to be dropped. Requires to detach and re-attach UEs.
116- Host INT features assumes the fabric interface on each K8s worker node uses the same name
Zack Williams98fe2322021-09-20 15:02:11 -0700117
Charles Chanc9531d42022-03-08 17:44:08 -0800118Component versions
119------------------
Charles Chan8bc160d2021-10-12 21:36:46 -0700120
121SD-Fabric ONOS image
122^^^^^^^^^^^^^^^^^^^^
123- `tost <https://registry.aetherproject.org/harbor/projects/4/repositories/tost>`_: ``registry.aetherproject.org/tost/tost:1.0.0``
124
Carmelo Cascone7623e7c2021-10-13 17:45:27 -0700125Sub-component versions:
126
127- `onos <https://github.com/opennetworkinglab/onos>`_: ``2.5.5-rc1``
128- `trellis-control <https://github.com/opennetworkinglab/trellis-control>`_: ``3.1.0``
129- `trellis-t3 <https://github.com/opennetworkinglab/trellis-t3>`_: ``4.0.0``
130- `fabric-tna <https://github.com/stratum/fabric-tna>`_: ``1.0.0``
131- `up4 <https://github.com/omec-project/up4>`_: ``1.0.0``
Charles Chan8bc160d2021-10-12 21:36:46 -0700132
133Stratum image
134^^^^^^^^^^^^^
135- `stratum-bfrt <https://hub.docker.com/r/stratumproject/stratum-bfrt>`_: ``stratumproject/stratum-bfrt:21.10-9.5.0``
136
137DBUF image
138^^^^^^^^^^
Carmelo Cascone7623e7c2021-10-13 17:45:27 -0700139- `dbuf <https://github.com/omec-project/dbuf>`_: ``registry.aetherproject.org/tost/dbuf:1.0.0``
Charles Chan8bc160d2021-10-12 21:36:46 -0700140
141PFCP Agent image
142^^^^^^^^^^^^^^^^
Carmelo Cascone7623e7c2021-10-13 17:45:27 -0700143- `pfcp-agent <https://github.com/omec-project/upf-epc/tree/master/pfcpiface>`_: ``omecproject/upf-epc-pfcpiface:master-fcdbc95``
Zack Williams98fe2322021-09-20 15:02:11 -0700144
145Helm Chart Versions
146-------------------
Carmelo Cascone7623e7c2021-10-13 17:45:27 -0700147- `sdfabric <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/sdfabric>`_: ``1.0.6``
Charles Chan8bc160d2021-10-12 21:36:46 -0700148
149 - `onos-classic chart <https://github.com/onosproject/onos-helm-charts/tree/master/onos-classic>`_: ``0.1.24``
150 - `stratum chart <https://github.com/stratum/stratum-helm-charts/tree/master/stratum>`_: ``0.1.13``
151 - `pfcp-agent chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/pfcp-agent>`_: ``0.0.1``
152 - `dbuf chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/dbuf/>`_: ``0.0.1``
153 - `int-host-reporter chart <https://gerrit.opencord.org/plugins/gitiles/sdfabric-helm-charts/+/refs/heads/master/int-host-reporter>`_: ``0.0.1``
Charles Chanc9531d42022-03-08 17:44:08 -0800154
155Patches
156-------
157
158.. toctree::
159 :maxdepth: 2
160 :glob:
161
162 1.0.1
163 1.0.2