blob: 43e66fc74870b6b924800620d211ae66e778fadb [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 Chancaebcf32021-09-20 22:17:52 -07004Specification
5=============
6
Carmelo Cascone43989982021-10-12 00:01:19 -07007In the following we provide an exhaustive list of all features supported.
8
Charles Chane6bb27a2021-10-03 23:26:50 -07009SDN Features
Charles Chan7cc9b402021-10-04 16:14:20 -070010------------
Charles Chane6bb27a2021-10-03 23:26:50 -070011 - ONOS cluster of all-active N instances affording N-way redundancy and scale, where N = 3 or N = 5
12 - Unified operations interface (GUI/REST/CLI)
13 - Centralized configuration: all configuration is done on the controller instead of each individual switch
14 - Centralized role-based access control (RBAC)
15 - Automatic host (end-point) discovery: attached hosts, access-devices, appliances (PNFs), routers, etc.
16 based on ARP, DHCP, NDP, etc.
17 - Automatic switch, link and topology discovery and maintenance (keepalives, failure recovery)
Charles Chancaebcf32021-09-20 22:17:52 -070018
Charles Chane6bb27a2021-10-03 23:26:50 -070019L2 Features
Charles Chan7cc9b402021-10-04 16:14:20 -070020-----------
Charles Chane6bb27a2021-10-03 23:26:50 -070021Various L2 connectivity and tunneling support
Charles Chan7cc9b402021-10-04 16:14:20 -070022
Charles Chane6bb27a2021-10-03 23:26:50 -070023 - VLAN-based bridging
24
25 - Access, Trunk and Native VLAN support
26 - VLAN cross connect
27
28 - Forward traffic based on outer VLAN id
29 - Forward traffic based on outer and inner VLAN id (QinQ)
30 - Pseudowire
31
32 - L2 tunneling across the L3 fabric
33 - Support tunneling based on double tagged and single tagged traffic
34
35 - Support VLAN translation of outer tag
36
37L3 Features
Charles Chan7cc9b402021-10-04 16:14:20 -070038-----------
Charles Chane6bb27a2021-10-03 23:26:50 -070039IP connectivity
Charles Chan7cc9b402021-10-04 16:14:20 -070040
Carmelo Cascone43989982021-10-12 00:01:19 -070041 - IPv4 and IPv6 [#f1]_ unicast routing (internal use of MPLS Segment Routing)
Charles Chane6bb27a2021-10-03 23:26:50 -070042 - Subnetting configuration on all non-spine facing leaf ports; no configuration required on any spine port
Carmelo Cascone43989982021-10-12 00:01:19 -070043 - Equal Cost Multi-Path (ECMP) for traffic across spine switches
Charles Chane6bb27a2021-10-03 23:26:50 -070044 - IPv6 router advertisement
45 - ARP, NDP, IGMP handling
46 - Number of flows in spines greatly simplified by MPLS Segment Routing
47 - Further reduction of per-leaf flows with route optimization logic
48
49DHCP Relay
Charles Chan7cc9b402021-10-04 16:14:20 -070050----------
Charles Chane6bb27a2021-10-03 23:26:50 -070051DHCP L3 relay
Charles Chan7cc9b402021-10-04 16:14:20 -070052
Charles Chane6bb27a2021-10-03 23:26:50 -070053 - DHCPv4 and DHCPv6
54 - DHCP server either directly attached to fabric leaves, or indirectly connected via upstream router
55 - DHCP client directly either attached to fabric leaves, or indirectly connected via LDRA
56 - Multiple DHCP servers for HA
57
58vRouter
Charles Chan7cc9b402021-10-04 16:14:20 -070059-------
60vRouter presents the entire SD-Fabric as a single router (or dual-routers for HA),
61with disaggregated control/data plane
62
Charles Chane6bb27a2021-10-03 23:26:50 -070063 - Uses open-source protocol implementations like Quagga (or FRR)
64 - BGPv4 and BGPv6
65 - Static routes
66 - Route blackholing
67 - ACLs based on port, L2, L3 and L4 headers
68
69Multicast
Charles Chan7cc9b402021-10-04 16:14:20 -070070---------
Charles Chane6bb27a2021-10-03 23:26:50 -070071Centralized multicast tree computation, programming and management
Charles Chan7cc9b402021-10-04 16:14:20 -070072
Charles Chane6bb27a2021-10-03 23:26:50 -070073 - Support both IPv4 and IPv6 multicast
74 - Dual-homed multicast sinks for HA
75 - Multiple multicast sources for HA
76
77API
Charles Chan7cc9b402021-10-04 16:14:20 -070078---
Charles Chane6bb27a2021-10-03 23:26:50 -070079- Provide easy access for 3rd party edge application developers and for the Aether centralized management platform
80- Support for traffic redirecting, dropping, network slicing and QoS
81
Carmelo Cascone43989982021-10-12 00:01:19 -070082Data Plane Programmability
83--------------------------
84- Support for Stratum, P4Runtime/gNMI, and P4 programs
85- Innovative services enabled by programmable data plane:
86
87 - 4G/5G User Plane Function (UPF): GTP encap/decap, usage reporting, downlink buffering and data notifications,
88 QoS and more, with integration with mobile core control plane via PFCP protocol (3GPP standard interface).
89 - Inband Network Telemetry (INT): INT-XD mode with support for flow reports, drop reports,
90 queue congestion reports, with smart filters to reduce volume of reports ingested by the INT collector.
Charles Chane6bb27a2021-10-03 23:26:50 -070091
92Troubleshooting & Diagnostics
Charles Chan7cc9b402021-10-04 16:14:20 -070093-----------------------------
Carmelo Cascone43989982021-10-12 00:01:19 -070094- T3: Troubleshooting tool to diagnose broken forwarding paths fabric wide (work in progress)
95- ONOS-diags: One-click diagnostics collection tool for issue reporting
Charles Chane6bb27a2021-10-03 23:26:50 -070096
Charles Chan10ad1442021-10-05 16:57:26 -070097.. _Topology:
98
Charles Chane6bb27a2021-10-03 23:26:50 -070099Topology
Charles Chan7cc9b402021-10-04 16:14:20 -0700100--------
Charles Chane6bb27a2021-10-03 23:26:50 -0700101SD-Fabric can start at the smallest scale (single leaf) and grow horizontally.
102
Charles Chan33528a92021-10-05 13:28:13 -0700103.. image:: images/topology-scale.png
104 :width: 900px
105
106
Charles Chane6bb27a2021-10-03 23:26:50 -0700107Single Leaf (ToR)
Charles Chan10ad1442021-10-05 16:57:26 -0700108^^^^^^^^^^^^^^^^^
Charles Chane6bb27a2021-10-03 23:26:50 -0700109This is the minimum SD-Fabric setup. In this setup, all servers are connected to a single switch.
110
111.. image:: images/topology-single.png
Charles Chan33528a92021-10-05 13:28:13 -0700112 :width: 160px
Charles Chane6bb27a2021-10-03 23:26:50 -0700113
Charles Chan33528a92021-10-05 13:28:13 -0700114Single Leaf Pair (Dual-Homing)
Charles Chan10ad1442021-10-05 16:57:26 -0700115^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Carmelo Cascone43989982021-10-12 00:01:19 -0700116Compared to a single switch, it provides redundancy in terms of server NIC failure and link failure.
Charles Chane6bb27a2021-10-03 23:26:50 -0700117
118.. image:: images/topology-pair.png
Charles Chan33528a92021-10-05 13:28:13 -0700119 :width: 225px
Charles Chane6bb27a2021-10-03 23:26:50 -0700120
121Leaf-Spine (without pairing)
Charles Chan10ad1442021-10-05 16:57:26 -0700122^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Carmelo Cascone43989982021-10-12 00:01:19 -0700123Provide horizontal-scalability for multi-rack deployments, with redundancy for spine switch failures:
Charles Chane6bb27a2021-10-03 23:26:50 -0700124
125.. image:: images/topology-2x2.png
Charles Chan33528a92021-10-05 13:28:13 -0700126 :width: 300px
Charles Chane6bb27a2021-10-03 23:26:50 -0700127
128Leaf-Spine (with pairing)
Charles Chan10ad1442021-10-05 16:57:26 -0700129^^^^^^^^^^^^^^^^^^^^^^^^^
Charles Chane6bb27a2021-10-03 23:26:50 -0700130It supports all the redundancy and scalability features mentioned above.
131
132.. image:: images/topology-2x4.png
Charles Chan33528a92021-10-05 13:28:13 -0700133 :width: 450px
Charles Chane6bb27a2021-10-03 23:26:50 -0700134
135Multi-Stage Leaf-Spine
Charles Chan10ad1442021-10-05 16:57:26 -0700136^^^^^^^^^^^^^^^^^^^^^^
Charles Chane6bb27a2021-10-03 23:26:50 -0700137Multi-stage is specifically designed for telco service providers.
Charles Chan33528a92021-10-05 13:28:13 -0700138The first stage can be installed in the central office, while the second stage
139can be installed in a field office that is closer to the subscribers.
Charles Chane6bb27a2021-10-03 23:26:50 -0700140Two stages are typically connected via long distance optical transport.
141
142.. image:: images/topology-full.png
Charles Chan33528a92021-10-05 13:28:13 -0700143 :width: 700px
Charles Chane6bb27a2021-10-03 23:26:50 -0700144
145Resiliency
Charles Chan7cc9b402021-10-04 16:14:20 -0700146----------
Carmelo Cascone43989982021-10-12 00:01:19 -0700147Provides HA in the following scenarios:
Charles Chan7cc9b402021-10-04 16:14:20 -0700148
Charles Chane6bb27a2021-10-03 23:26:50 -0700149 - Controller instance failure (requires 3 or 5 node ONOS cluster)
Carmelo Cascone43989982021-10-12 00:01:19 -0700150 - Leaf-spine link failures
151 - Spine switch failure
Charles Chan7cc9b402021-10-04 16:14:20 -0700152
Carmelo Cascone43989982021-10-12 00:01:19 -0700153Further HA support in following failure scenarios with dual-homing enabled:
Charles Chan7cc9b402021-10-04 16:14:20 -0700154
Carmelo Cascone43989982021-10-12 00:01:19 -0700155 - Leaf switch failure
Charles Chane6bb27a2021-10-03 23:26:50 -0700156 - Upstream router failure
157 - Host NIC failure
158
159Scalability
Charles Chan7cc9b402021-10-04 16:14:20 -0700160-----------
Charles Chane6bb27a2021-10-03 23:26:50 -0700161In Production
162 - Up to 80k routes (with route optimization)
163 - 170k Flows
164 - 600 direct-attached hosts
165 - 8 leaf switches
166 - 2 spine switches
167
168In Pre-Production
169 - Up to 120k routes (with route optimization)
170 - 250k flows
171 - 600 direct-attached hosts
172 - 8 leaf switches
173 - 2 spine switches
Carmelo Cascone43989982021-10-12 00:01:19 -0700174
1754G/5G specific
176 - 5000 active UEs, 10 calls per second
Charles Chane6bb27a2021-10-03 23:26:50 -0700177
178Security
Charles Chan7cc9b402021-10-04 16:14:20 -0700179--------
Carmelo Cascone43989982021-10-12 00:01:19 -0700180 - TLS-secured gRPC connection between controllers and switches (work-in-progress)
Charles Chane6bb27a2021-10-03 23:26:50 -0700181
182Aether-ready
Charles Chan7cc9b402021-10-04 16:14:20 -0700183------------
Carmelo Cascone43989982021-10-12 00:01:19 -0700184Fully integrated with Aether (5G/4G private enterprise edge cloud solution)
Charles Chane6bb27a2021-10-03 23:26:50 -0700185including deployment automation, CI/CD, logging, monitoring, and alerting.
186
187Overlay Support
Charles Chan7cc9b402021-10-04 16:14:20 -0700188---------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700189Can be used/integrated with 3rd party overlay networks (e.g., OpenStack Neutron, Kubernetes CNI).
190
191Orchestrator Support
Charles Chan7cc9b402021-10-04 16:14:20 -0700192--------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700193Can be integrated with an external orchestrator, optionally running from the public cloud
194Supports logging, telemetry, monitoring and alarm services via
195REST APIs and Elastic/Fluentbit/Kibana, Prometheus/Grafana
196
197Controller Server Specs
Charles Chan7cc9b402021-10-04 16:14:20 -0700198-----------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700199Recommendation (per ONOS instance) based on 50K routes
200 - CPU: 32 Cores
201 - RAM: 128GB RAM. 64GB dedicated to ONOS JVM heap
202
Carmelo Cascone43989982021-10-12 00:01:19 -0700203Recommendation (per ONOS instance) for 5K UEs when enabling UPF:
Carmelo Cascone43989982021-10-12 00:01:19 -0700204 - CPU: 1 Cores
205 - RAM: 4GB RAM
206
Charles Chanb7323682022-03-02 12:33:15 -0800207.. _all_switch:
Carmelo Cascone43989982021-10-12 00:01:19 -0700208
Charles Chane6bb27a2021-10-03 23:26:50 -0700209White Box Switch Hardware
Charles Chan7cc9b402021-10-04 16:14:20 -0700210-------------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700211- Multi-vendor: APS Networks™, Dell™, Delta Networks™, Edgecore Networks™, Inventec™, Netburg™, QCT
212- Multi-chipset:
Carmelo Cascone43989982021-10-12 00:01:19 -0700213 - Intel Tofino (supports all features, including UPF & INT)
Charles Chane6bb27a2021-10-03 23:26:50 -0700214 - Broadcom Tomahawk®, Tomahawk+®, Trident2 (traditional fabric features only)
Carmelo Cascone43989982021-10-12 00:01:19 -0700215- 1/10G, 25G, 40G, and 100G ports
Charles Chane6bb27a2021-10-03 23:26:50 -0700216- Refer to Supported Devices list in https://github.com/stratum/stratum for the most up-to-date hardware list
217
Charles Chanb7323682022-03-02 12:33:15 -0800218.. _verified_switch:
219
220Aether-verified Switch Hardware
221-------------------------------
222 - `EdgeCore DCS800 <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=335>`_
223 with Dual Pipe Tofino ASIC (formerly Wedge100BF-32X)
224
225 - `EdgeCore DCS801 <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=770>`_
226 with Quad Pipe Tofino ASIC (formerly Wedge100BF-32QS)
227
Charles Chane6bb27a2021-10-03 23:26:50 -0700228White Box Switch Software
Charles Chan7cc9b402021-10-04 16:14:20 -0700229-------------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700230- Open source ONL, ONIE, Docker, Kubernetes
231- Stratum available from ONF
Carmelo Cascone43989982021-10-12 00:01:19 -0700232
233.. rubric:: Footnotes
234
235.. [#f1] IPv6 support on the data plane (P4 program) is still work-in-progress.