blob: b2c502fb0fe3cca09d289b7af2aa39741f2e3407 [file] [log] [blame]
Charles Chancaebcf32021-09-20 22:17:52 -07001Specification
2=============
3
Carmelo Cascone43989982021-10-12 00:01:19 -07004In the following we provide an exhaustive list of all features supported.
5
Charles Chane6bb27a2021-10-03 23:26:50 -07006SDN Features
Charles Chan7cc9b402021-10-04 16:14:20 -07007------------
Charles Chane6bb27a2021-10-03 23:26:50 -07008 - ONOS cluster of all-active N instances affording N-way redundancy and scale, where N = 3 or N = 5
9 - Unified operations interface (GUI/REST/CLI)
10 - Centralized configuration: all configuration is done on the controller instead of each individual switch
11 - Centralized role-based access control (RBAC)
12 - Automatic host (end-point) discovery: attached hosts, access-devices, appliances (PNFs), routers, etc.
13 based on ARP, DHCP, NDP, etc.
14 - Automatic switch, link and topology discovery and maintenance (keepalives, failure recovery)
Charles Chancaebcf32021-09-20 22:17:52 -070015
Charles Chane6bb27a2021-10-03 23:26:50 -070016L2 Features
Charles Chan7cc9b402021-10-04 16:14:20 -070017-----------
Charles Chane6bb27a2021-10-03 23:26:50 -070018Various L2 connectivity and tunneling support
Charles Chan7cc9b402021-10-04 16:14:20 -070019
Charles Chane6bb27a2021-10-03 23:26:50 -070020 - VLAN-based bridging
21
22 - Access, Trunk and Native VLAN support
23 - VLAN cross connect
24
25 - Forward traffic based on outer VLAN id
26 - Forward traffic based on outer and inner VLAN id (QinQ)
27 - Pseudowire
28
29 - L2 tunneling across the L3 fabric
30 - Support tunneling based on double tagged and single tagged traffic
31
32 - Support VLAN translation of outer tag
33
34L3 Features
Charles Chan7cc9b402021-10-04 16:14:20 -070035-----------
Charles Chane6bb27a2021-10-03 23:26:50 -070036IP connectivity
Charles Chan7cc9b402021-10-04 16:14:20 -070037
Carmelo Cascone43989982021-10-12 00:01:19 -070038 - IPv4 and IPv6 [#f1]_ unicast routing (internal use of MPLS Segment Routing)
Charles Chane6bb27a2021-10-03 23:26:50 -070039 - Subnetting configuration on all non-spine facing leaf ports; no configuration required on any spine port
Carmelo Cascone43989982021-10-12 00:01:19 -070040 - Equal Cost Multi-Path (ECMP) for traffic across spine switches
Charles Chane6bb27a2021-10-03 23:26:50 -070041 - IPv6 router advertisement
42 - ARP, NDP, IGMP handling
43 - Number of flows in spines greatly simplified by MPLS Segment Routing
44 - Further reduction of per-leaf flows with route optimization logic
45
46DHCP Relay
Charles Chan7cc9b402021-10-04 16:14:20 -070047----------
Charles Chane6bb27a2021-10-03 23:26:50 -070048DHCP L3 relay
Charles Chan7cc9b402021-10-04 16:14:20 -070049
Charles Chane6bb27a2021-10-03 23:26:50 -070050 - DHCPv4 and DHCPv6
51 - DHCP server either directly attached to fabric leaves, or indirectly connected via upstream router
52 - DHCP client directly either attached to fabric leaves, or indirectly connected via LDRA
53 - Multiple DHCP servers for HA
54
55vRouter
Charles Chan7cc9b402021-10-04 16:14:20 -070056-------
57vRouter presents the entire SD-Fabric as a single router (or dual-routers for HA),
58with disaggregated control/data plane
59
Charles Chane6bb27a2021-10-03 23:26:50 -070060 - Uses open-source protocol implementations like Quagga (or FRR)
61 - BGPv4 and BGPv6
62 - Static routes
63 - Route blackholing
64 - ACLs based on port, L2, L3 and L4 headers
65
66Multicast
Charles Chan7cc9b402021-10-04 16:14:20 -070067---------
Charles Chane6bb27a2021-10-03 23:26:50 -070068Centralized multicast tree computation, programming and management
Charles Chan7cc9b402021-10-04 16:14:20 -070069
Charles Chane6bb27a2021-10-03 23:26:50 -070070 - Support both IPv4 and IPv6 multicast
71 - Dual-homed multicast sinks for HA
72 - Multiple multicast sources for HA
73
74API
Charles Chan7cc9b402021-10-04 16:14:20 -070075---
Charles Chane6bb27a2021-10-03 23:26:50 -070076- Provide easy access for 3rd party edge application developers and for the Aether centralized management platform
77- Support for traffic redirecting, dropping, network slicing and QoS
78
Carmelo Cascone43989982021-10-12 00:01:19 -070079Data Plane Programmability
80--------------------------
81- Support for Stratum, P4Runtime/gNMI, and P4 programs
82- Innovative services enabled by programmable data plane:
83
84 - 4G/5G User Plane Function (UPF): GTP encap/decap, usage reporting, downlink buffering and data notifications,
85 QoS and more, with integration with mobile core control plane via PFCP protocol (3GPP standard interface).
86 - Inband Network Telemetry (INT): INT-XD mode with support for flow reports, drop reports,
87 queue congestion reports, with smart filters to reduce volume of reports ingested by the INT collector.
Charles Chane6bb27a2021-10-03 23:26:50 -070088
89Troubleshooting & Diagnostics
Charles Chan7cc9b402021-10-04 16:14:20 -070090-----------------------------
Carmelo Cascone43989982021-10-12 00:01:19 -070091- T3: Troubleshooting tool to diagnose broken forwarding paths fabric wide (work in progress)
92- ONOS-diags: One-click diagnostics collection tool for issue reporting
Charles Chane6bb27a2021-10-03 23:26:50 -070093
Charles Chan10ad1442021-10-05 16:57:26 -070094.. _Topology:
95
Charles Chane6bb27a2021-10-03 23:26:50 -070096Topology
Charles Chan7cc9b402021-10-04 16:14:20 -070097--------
Charles Chane6bb27a2021-10-03 23:26:50 -070098SD-Fabric can start at the smallest scale (single leaf) and grow horizontally.
99
Charles Chan33528a92021-10-05 13:28:13 -0700100.. image:: images/topology-scale.png
101 :width: 900px
102
103
Charles Chane6bb27a2021-10-03 23:26:50 -0700104Single Leaf (ToR)
Charles Chan10ad1442021-10-05 16:57:26 -0700105^^^^^^^^^^^^^^^^^
Charles Chane6bb27a2021-10-03 23:26:50 -0700106This is the minimum SD-Fabric setup. In this setup, all servers are connected to a single switch.
107
108.. image:: images/topology-single.png
Charles Chan33528a92021-10-05 13:28:13 -0700109 :width: 160px
Charles Chane6bb27a2021-10-03 23:26:50 -0700110
Charles Chan33528a92021-10-05 13:28:13 -0700111Single Leaf Pair (Dual-Homing)
Charles Chan10ad1442021-10-05 16:57:26 -0700112^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Carmelo Cascone43989982021-10-12 00:01:19 -0700113Compared to a single switch, it provides redundancy in terms of server NIC failure and link failure.
Charles Chane6bb27a2021-10-03 23:26:50 -0700114
115.. image:: images/topology-pair.png
Charles Chan33528a92021-10-05 13:28:13 -0700116 :width: 225px
Charles Chane6bb27a2021-10-03 23:26:50 -0700117
118Leaf-Spine (without pairing)
Charles Chan10ad1442021-10-05 16:57:26 -0700119^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Carmelo Cascone43989982021-10-12 00:01:19 -0700120Provide horizontal-scalability for multi-rack deployments, with redundancy for spine switch failures:
Charles Chane6bb27a2021-10-03 23:26:50 -0700121
122.. image:: images/topology-2x2.png
Charles Chan33528a92021-10-05 13:28:13 -0700123 :width: 300px
Charles Chane6bb27a2021-10-03 23:26:50 -0700124
125Leaf-Spine (with pairing)
Charles Chan10ad1442021-10-05 16:57:26 -0700126^^^^^^^^^^^^^^^^^^^^^^^^^
Charles Chane6bb27a2021-10-03 23:26:50 -0700127It supports all the redundancy and scalability features mentioned above.
128
129.. image:: images/topology-2x4.png
Charles Chan33528a92021-10-05 13:28:13 -0700130 :width: 450px
Charles Chane6bb27a2021-10-03 23:26:50 -0700131
132Multi-Stage Leaf-Spine
Charles Chan10ad1442021-10-05 16:57:26 -0700133^^^^^^^^^^^^^^^^^^^^^^
Charles Chane6bb27a2021-10-03 23:26:50 -0700134Multi-stage is specifically designed for telco service providers.
Charles Chan33528a92021-10-05 13:28:13 -0700135The first stage can be installed in the central office, while the second stage
136can be installed in a field office that is closer to the subscribers.
Charles Chane6bb27a2021-10-03 23:26:50 -0700137Two stages are typically connected via long distance optical transport.
138
139.. image:: images/topology-full.png
Charles Chan33528a92021-10-05 13:28:13 -0700140 :width: 700px
Charles Chane6bb27a2021-10-03 23:26:50 -0700141
142Resiliency
Charles Chan7cc9b402021-10-04 16:14:20 -0700143----------
Carmelo Cascone43989982021-10-12 00:01:19 -0700144Provides HA in the following scenarios:
Charles Chan7cc9b402021-10-04 16:14:20 -0700145
Charles Chane6bb27a2021-10-03 23:26:50 -0700146 - Controller instance failure (requires 3 or 5 node ONOS cluster)
Carmelo Cascone43989982021-10-12 00:01:19 -0700147 - Leaf-spine link failures
148 - Spine switch failure
Charles Chan7cc9b402021-10-04 16:14:20 -0700149
Carmelo Cascone43989982021-10-12 00:01:19 -0700150Further HA support in following failure scenarios with dual-homing enabled:
Charles Chan7cc9b402021-10-04 16:14:20 -0700151
Carmelo Cascone43989982021-10-12 00:01:19 -0700152 - Leaf switch failure
Charles Chane6bb27a2021-10-03 23:26:50 -0700153 - Upstream router failure
154 - Host NIC failure
155
156Scalability
Charles Chan7cc9b402021-10-04 16:14:20 -0700157-----------
Charles Chane6bb27a2021-10-03 23:26:50 -0700158In Production
159 - Up to 80k routes (with route optimization)
160 - 170k Flows
161 - 600 direct-attached hosts
162 - 8 leaf switches
163 - 2 spine switches
164
165In Pre-Production
166 - Up to 120k routes (with route optimization)
167 - 250k flows
168 - 600 direct-attached hosts
169 - 8 leaf switches
170 - 2 spine switches
Carmelo Cascone43989982021-10-12 00:01:19 -0700171
1724G/5G specific
173 - 5000 active UEs, 10 calls per second
Charles Chane6bb27a2021-10-03 23:26:50 -0700174
175Security
Charles Chan7cc9b402021-10-04 16:14:20 -0700176--------
Carmelo Cascone43989982021-10-12 00:01:19 -0700177 - TLS-secured gRPC connection between controllers and switches (work-in-progress)
Charles Chane6bb27a2021-10-03 23:26:50 -0700178
179Aether-ready
Charles Chan7cc9b402021-10-04 16:14:20 -0700180------------
Carmelo Cascone43989982021-10-12 00:01:19 -0700181Fully integrated with Aether (5G/4G private enterprise edge cloud solution)
Charles Chane6bb27a2021-10-03 23:26:50 -0700182including deployment automation, CI/CD, logging, monitoring, and alerting.
183
184Overlay Support
Charles Chan7cc9b402021-10-04 16:14:20 -0700185---------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700186Can be used/integrated with 3rd party overlay networks (e.g., OpenStack Neutron, Kubernetes CNI).
187
188Orchestrator Support
Charles Chan7cc9b402021-10-04 16:14:20 -0700189--------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700190Can be integrated with an external orchestrator, optionally running from the public cloud
191Supports logging, telemetry, monitoring and alarm services via
192REST APIs and Elastic/Fluentbit/Kibana, Prometheus/Grafana
193
194Controller Server Specs
Charles Chan7cc9b402021-10-04 16:14:20 -0700195-----------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700196Recommendation (per ONOS instance) based on 50K routes
Charles Chan7cc9b402021-10-04 16:14:20 -0700197
Charles Chane6bb27a2021-10-03 23:26:50 -0700198 - CPU: 32 Cores
199 - RAM: 128GB RAM. 64GB dedicated to ONOS JVM heap
200
Carmelo Cascone43989982021-10-12 00:01:19 -0700201Recommendation (per ONOS instance) for 5K UEs when enabling UPF:
202
203 - CPU: 1 Cores
204 - RAM: 4GB RAM
205
206
Charles Chane6bb27a2021-10-03 23:26:50 -0700207White Box Switch Hardware
Charles Chan7cc9b402021-10-04 16:14:20 -0700208-------------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700209- Multi-vendor: APS Networks™, Dell™, Delta Networks™, Edgecore Networks™, Inventec™, Netburg™, QCT
210- Multi-chipset:
Carmelo Cascone43989982021-10-12 00:01:19 -0700211 - Intel Tofino (supports all features, including UPF & INT)
Charles Chane6bb27a2021-10-03 23:26:50 -0700212 - Broadcom Tomahawk®, Tomahawk+®, Trident2 (traditional fabric features only)
Carmelo Cascone43989982021-10-12 00:01:19 -0700213- 1/10G, 25G, 40G, and 100G ports
Charles Chane6bb27a2021-10-03 23:26:50 -0700214- Refer to Supported Devices list in https://github.com/stratum/stratum for the most up-to-date hardware list
215
216White Box Switch Software
Charles Chan7cc9b402021-10-04 16:14:20 -0700217-------------------------
Charles Chane6bb27a2021-10-03 23:26:50 -0700218- Open source ONL, ONIE, Docker, Kubernetes
219- Stratum available from ONF
Carmelo Cascone43989982021-10-12 00:01:19 -0700220
221.. rubric:: Footnotes
222
223.. [#f1] IPv6 support on the data plane (P4 program) is still work-in-progress.