Charles Chan | caebcf3 | 2021-09-20 22:17:52 -0700 | [diff] [blame] | 1 | Specification |
| 2 | ============= |
| 3 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 4 | SDN Features |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 5 | ------------ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 6 | - ONOS cluster of all-active N instances affording N-way redundancy and scale, where N = 3 or N = 5 |
| 7 | - Unified operations interface (GUI/REST/CLI) |
| 8 | - Centralized configuration: all configuration is done on the controller instead of each individual switch |
| 9 | - Centralized role-based access control (RBAC) |
| 10 | - Automatic host (end-point) discovery: attached hosts, access-devices, appliances (PNFs), routers, etc. |
| 11 | based on ARP, DHCP, NDP, etc. |
| 12 | - Automatic switch, link and topology discovery and maintenance (keepalives, failure recovery) |
Charles Chan | caebcf3 | 2021-09-20 22:17:52 -0700 | [diff] [blame] | 13 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 14 | L2 Features |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 15 | ----------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 16 | Various L2 connectivity and tunneling support |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 17 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 18 | - VLAN-based bridging |
| 19 | |
| 20 | - Access, Trunk and Native VLAN support |
| 21 | - VLAN cross connect |
| 22 | |
| 23 | - Forward traffic based on outer VLAN id |
| 24 | - Forward traffic based on outer and inner VLAN id (QinQ) |
| 25 | - Pseudowire |
| 26 | |
| 27 | - L2 tunneling across the L3 fabric |
| 28 | - Support tunneling based on double tagged and single tagged traffic |
| 29 | |
| 30 | - Support VLAN translation of outer tag |
| 31 | |
| 32 | L3 Features |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 33 | ----------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 34 | IP connectivity |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 35 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 36 | - IPv4 and IPv6 unicast routing (internal use of MPLS Segment Routing) |
| 37 | - Subnetting configuration on all non-spine facing leaf ports; no configuration required on any spine port |
| 38 | - IPv6 router advertisement |
| 39 | - ARP, NDP, IGMP handling |
| 40 | - Number of flows in spines greatly simplified by MPLS Segment Routing |
| 41 | - Further reduction of per-leaf flows with route optimization logic |
| 42 | |
| 43 | DHCP Relay |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 44 | ---------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 45 | DHCP L3 relay |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 46 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 47 | - DHCPv4 and DHCPv6 |
| 48 | - DHCP server either directly attached to fabric leaves, or indirectly connected via upstream router |
| 49 | - DHCP client directly either attached to fabric leaves, or indirectly connected via LDRA |
| 50 | - Multiple DHCP servers for HA |
| 51 | |
| 52 | vRouter |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 53 | ------- |
| 54 | vRouter presents the entire SD-Fabric as a single router (or dual-routers for HA), |
| 55 | with disaggregated control/data plane |
| 56 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 57 | - Uses open-source protocol implementations like Quagga (or FRR) |
| 58 | - BGPv4 and BGPv6 |
| 59 | - Static routes |
| 60 | - Route blackholing |
| 61 | - ACLs based on port, L2, L3 and L4 headers |
| 62 | |
| 63 | Multicast |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 64 | --------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 65 | Centralized multicast tree computation, programming and management |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 66 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 67 | - Support both IPv4 and IPv6 multicast |
| 68 | - Dual-homed multicast sinks for HA |
| 69 | - Multiple multicast sources for HA |
| 70 | |
| 71 | API |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 72 | --- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 73 | - Provide easy access for 3rd party edge application developers and for the Aether centralized management platform |
| 74 | - Support for traffic redirecting, dropping, network slicing and QoS |
| 75 | |
| 76 | Programmability |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 77 | --------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 78 | - Support for Stratum, P4Runtime and gNMI and P4 programs |
| 79 | - Innovative services enabled by programmable pipeline |
| 80 | - 4G/5G UPF - GTP encap/decap, idle-mode buffering, QoS and more |
| 81 | - BNG - PPPoE, anti-spoofing, accounting and more |
| 82 | |
| 83 | Troubleshooting & Diagnostics |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 84 | ----------------------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 85 | - T3: Troubleshooting tool to diagnose broken forwarding paths fabric wide |
| 86 | - ONOS-diags: One-click Diagnostics collection tool |
| 87 | |
Charles Chan | 10ad144 | 2021-10-05 16:57:26 -0700 | [diff] [blame] | 88 | .. _Topology: |
| 89 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 90 | Topology |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 91 | -------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 92 | SD-Fabric can start at the smallest scale (single leaf) and grow horizontally. |
| 93 | |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 94 | .. image:: images/topology-scale.png |
| 95 | :width: 900px |
| 96 | |
| 97 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 98 | Single Leaf (ToR) |
Charles Chan | 10ad144 | 2021-10-05 16:57:26 -0700 | [diff] [blame] | 99 | ^^^^^^^^^^^^^^^^^ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 100 | This is the minimum SD-Fabric setup. In this setup, all servers are connected to a single switch. |
| 101 | |
| 102 | .. image:: images/topology-single.png |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 103 | :width: 160px |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 104 | |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 105 | Single Leaf Pair (Dual-Homing) |
Charles Chan | 10ad144 | 2021-10-05 16:57:26 -0700 | [diff] [blame] | 106 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 107 | Compared to single switch, it provides more redundancy in terms of server NIC failure and link failure. |
| 108 | |
| 109 | .. image:: images/topology-pair.png |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 110 | :width: 225px |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 111 | |
| 112 | Leaf-Spine (without pairing) |
Charles Chan | 10ad144 | 2021-10-05 16:57:26 -0700 | [diff] [blame] | 113 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 114 | Compared to single switch, it offers more redundancy in terms of switch failure and provides better scalability. |
| 115 | |
| 116 | .. image:: images/topology-2x2.png |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 117 | :width: 300px |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 118 | |
| 119 | Leaf-Spine (with pairing) |
Charles Chan | 10ad144 | 2021-10-05 16:57:26 -0700 | [diff] [blame] | 120 | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 121 | It supports all the redundancy and scalability features mentioned above. |
| 122 | |
| 123 | .. image:: images/topology-2x4.png |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 124 | :width: 450px |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 125 | |
| 126 | Multi-Stage Leaf-Spine |
Charles Chan | 10ad144 | 2021-10-05 16:57:26 -0700 | [diff] [blame] | 127 | ^^^^^^^^^^^^^^^^^^^^^^ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 128 | Multi-stage is specifically designed for telco service providers. |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 129 | The first stage can be installed in the central office, while the second stage |
| 130 | can be installed in a field office that is closer to the subscribers. |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 131 | Two stages are typically connected via long distance optical transport. |
| 132 | |
| 133 | .. image:: images/topology-full.png |
Charles Chan | 33528a9 | 2021-10-05 13:28:13 -0700 | [diff] [blame] | 134 | :width: 700px |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 135 | |
| 136 | Resiliency |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 137 | ---------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 138 | Provides HA in following scenarios |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 139 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 140 | - Controller instance failure (requires 3 or 5 node ONOS cluster) |
| 141 | - Link failures |
| 142 | - Spine failure |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 143 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 144 | Further HA support in following failure scenarios with dual-homing enabled |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 145 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 146 | - Leaf failure |
| 147 | - Upstream router failure |
| 148 | - Host NIC failure |
| 149 | |
| 150 | Scalability |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 151 | ----------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 152 | In Production |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 153 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 154 | - Up to 80k routes (with route optimization) |
| 155 | - 170k Flows |
| 156 | - 600 direct-attached hosts |
| 157 | - 8 leaf switches |
| 158 | - 2 spine switches |
| 159 | |
| 160 | In Pre-Production |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 161 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 162 | - Up to 120k routes (with route optimization) |
| 163 | - 250k flows |
| 164 | - 600 direct-attached hosts |
| 165 | - 8 leaf switches |
| 166 | - 2 spine switches |
| 167 | - 5000 active UEs, 10 call per second |
| 168 | |
| 169 | Security |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 170 | -------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 171 | - TLS-secured connection between controllers and switches (premium feature) |
| 172 | - AAA 802.1x authentication |
| 173 | |
| 174 | Aether-ready |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 175 | ------------ |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 176 | Fully integrated with Aether (5G/LTE private enterprise edge cloud solution) |
| 177 | including deployment automation, CI/CD, logging, monitoring, and alerting. |
| 178 | |
| 179 | Overlay Support |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 180 | --------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 181 | Can be used/integrated with 3rd party overlay networks (e.g., OpenStack Neutron, Kubernetes CNI). |
| 182 | |
| 183 | Orchestrator Support |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 184 | -------------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 185 | Can be integrated with an external orchestrator, optionally running from the public cloud |
| 186 | Supports logging, telemetry, monitoring and alarm services via |
| 187 | REST APIs and Elastic/Fluentbit/Kibana, Prometheus/Grafana |
| 188 | |
| 189 | Controller Server Specs |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 190 | ----------------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 191 | Recommendation (per ONOS instance) based on 50K routes |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 192 | |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 193 | - CPU: 32 Cores |
| 194 | - RAM: 128GB RAM. 64GB dedicated to ONOS JVM heap |
| 195 | |
| 196 | White Box Switch Hardware |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 197 | ------------------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 198 | - Multi-vendor: APS Networks™, Dell™, Delta Networks™, Edgecore Networks™, Inventec™, Netburg™, QCT™ |
| 199 | - Multi-chipset: |
| 200 | - Intel Tofino (supports all features, including programmability, UPF & INT) |
| 201 | - Broadcom Tomahawk®, Tomahawk+®, Trident2 (traditional fabric features only) |
| 202 | - 1/10G, 25G, 40G, 100G |
| 203 | - Refer to Supported Devices list in https://github.com/stratum/stratum for the most up-to-date hardware list |
| 204 | |
| 205 | White Box Switch Software |
Charles Chan | 7cc9b40 | 2021-10-04 16:14:20 -0700 | [diff] [blame] | 206 | ------------------------- |
Charles Chan | e6bb27a | 2021-10-03 23:26:50 -0700 | [diff] [blame] | 207 | - Open source ONL, ONIE, Docker, Kubernetes |
| 208 | - Stratum available from ONF |