| .. SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org> |
| .. SPDX-License-Identifier: Apache-2.0 |
| |
| Specification |
| ============= |
| |
| In the following we provide an exhaustive list of all features supported. |
| |
| SDN Features |
| ------------ |
| - ONOS cluster of all-active N instances affording N-way redundancy and scale, where N = 3 or N = 5 |
| - Unified operations interface (GUI/REST/CLI) |
| - Centralized configuration: all configuration is done on the controller instead of each individual switch |
| - Centralized role-based access control (RBAC) |
| - Automatic host (end-point) discovery: attached hosts, access-devices, appliances (PNFs), routers, etc. |
| based on ARP, DHCP, NDP, etc. |
| - Automatic switch, link and topology discovery and maintenance (keepalives, failure recovery) |
| |
| L2 Features |
| ----------- |
| Various L2 connectivity and tunneling support |
| |
| - VLAN-based bridging |
| |
| - Access, Trunk and Native VLAN support |
| - VLAN cross connect |
| |
| - Forward traffic based on outer VLAN id |
| - Forward traffic based on outer and inner VLAN id (QinQ) |
| - Pseudowire |
| |
| - L2 tunneling across the L3 fabric |
| - Support tunneling based on double tagged and single tagged traffic |
| |
| - Support VLAN translation of outer tag |
| |
| L3 Features |
| ----------- |
| IP connectivity |
| |
| - IPv4 and IPv6 [#f1]_ unicast routing (internal use of MPLS Segment Routing) |
| - Subnetting configuration on all non-spine facing leaf ports; no configuration required on any spine port |
| - Equal Cost Multi-Path (ECMP) for traffic across spine switches |
| - IPv6 router advertisement |
| - ARP, NDP, IGMP handling |
| - Number of flows in spines greatly simplified by MPLS Segment Routing |
| - Further reduction of per-leaf flows with route optimization logic |
| |
| DHCP Relay |
| ---------- |
| DHCP L3 relay |
| |
| - DHCPv4 and DHCPv6 |
| - DHCP server either directly attached to fabric leaves, or indirectly connected via upstream router |
| - DHCP client directly either attached to fabric leaves, or indirectly connected via LDRA |
| - Multiple DHCP servers for HA |
| |
| vRouter |
| ------- |
| vRouter presents the entire SD-Fabric as a single router (or dual-routers for HA), |
| with disaggregated control/data plane |
| |
| - Uses open-source protocol implementations like Quagga (or FRR) |
| - BGPv4 and BGPv6 |
| - Static routes |
| - Route blackholing |
| - ACLs based on port, L2, L3 and L4 headers |
| |
| Multicast |
| --------- |
| Centralized multicast tree computation, programming and management |
| |
| - Support both IPv4 and IPv6 multicast |
| - Dual-homed multicast sinks for HA |
| - Multiple multicast sources for HA |
| |
| API |
| --- |
| - Provide easy access for 3rd party edge application developers and for the Aether centralized management platform |
| - Support for traffic redirecting, dropping, network slicing and QoS |
| |
| Data Plane Programmability |
| -------------------------- |
| - Support for Stratum, P4Runtime/gNMI, and P4 programs |
| - Open source fabric-tna P4 program that can be modified for additional features |
| |
| 4G & 5G |
| ------- |
| - Two User Plane Function (UPF) implementations: |
| |
| - Switch-based with fast path realized on Tofino with P4 (P4-UPF) |
| - CPU-based with fast path realized with Berkeley Extensible Software Switch framework (BESS-UPF) |
| |
| - Integration with mobile core control plane via PFCP protocol (3GPP standard interface) |
| |
| - Supported features: |
| |
| - GTP encap/decap, including support for 5G QFI extension header |
| - Usage reporting rules (URR) |
| - Downlink buffering and data notifications |
| - Application filtering (via SDF filters) |
| - Per-application, per-session, per-slice rate limiting (via QER) |
| - Per-flow QoS metric (BESS-UPF only) |
| |
| Visibility |
| ---------- |
| - Inband Network Telemetry (INT): |
| |
| - INT-XD mode with support for flow reports, drop reports, |
| queue congestion reports |
| - Smart triggers/filters to reduce volume of reports ingested by the INT collector |
| |
| Troubleshooting & Diagnostics |
| ----------------------------- |
| - T3: Troubleshooting tool to diagnose broken forwarding paths fabric wide (work in progress) |
| - ONOS-diags: One-click diagnostics collection tool for issue reporting |
| |
| .. _Topology: |
| |
| Topology |
| -------- |
| SD-Fabric can start at the smallest scale (single leaf) and grow horizontally. |
| |
| .. image:: images/topology-scale.png |
| :width: 900px |
| |
| |
| Single Leaf (ToR) |
| ^^^^^^^^^^^^^^^^^ |
| This is the minimum SD-Fabric setup. In this setup, all servers are connected to a single switch. |
| |
| .. image:: images/topology-single.png |
| :width: 160px |
| |
| Single Leaf Pair (Dual-Homing) |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| Compared to a single switch, it provides redundancy in terms of server NIC failure and link failure. |
| |
| .. image:: images/topology-pair.png |
| :width: 225px |
| |
| Leaf-Spine (without pairing) |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| Provide horizontal-scalability for multi-rack deployments, with redundancy for spine switch failures: |
| |
| .. image:: images/topology-2x2.png |
| :width: 300px |
| |
| Leaf-Spine (with pairing) |
| ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| It supports all the redundancy and scalability features mentioned above. |
| |
| .. image:: images/topology-2x4.png |
| :width: 450px |
| |
| Multi-Stage Leaf-Spine |
| ^^^^^^^^^^^^^^^^^^^^^^ |
| Multi-stage is specifically designed for telco service providers. |
| The first stage can be installed in the central office, while the second stage |
| can be installed in a field office that is closer to the subscribers. |
| Two stages are typically connected via long distance optical transport. |
| |
| .. image:: images/topology-full.png |
| :width: 700px |
| |
| Resiliency |
| ---------- |
| Provides HA in the following scenarios: |
| |
| - Controller instance failure (requires 3 or 5 node ONOS cluster) |
| - Leaf-spine link failures |
| - Spine switch failure |
| |
| Further HA support in following failure scenarios with dual-homing enabled: |
| |
| - Leaf switch failure |
| - Upstream router failure |
| - Host NIC failure |
| |
| Scalability |
| ----------- |
| In Production |
| - Up to 80k routes (with route optimization) |
| - 170k Flows |
| - 600 direct-attached hosts |
| - 8 leaf switches |
| - 2 spine switches |
| |
| In Pre-Production |
| - Up to 120k routes (with route optimization) |
| - 250k flows |
| - 600 direct-attached hosts |
| - 8 leaf switches |
| - 2 spine switches |
| |
| 4G/5G specific |
| - 5000 active UEs, 10 calls per second |
| |
| Security |
| -------- |
| - TLS-secured gRPC connection between controllers and switches (work-in-progress) |
| |
| Aether-ready |
| ------------ |
| Fully integrated with Aether (5G/4G private enterprise edge cloud solution) |
| including deployment automation, CI/CD, logging, monitoring, and alerting. |
| |
| Overlay Support |
| --------------- |
| Can be used/integrated with 3rd party overlay networks (e.g., OpenStack Neutron, Kubernetes CNI). |
| |
| Orchestrator Support |
| -------------------- |
| Can be integrated with an external orchestrator, optionally running from the public cloud |
| Supports logging, telemetry, monitoring and alarm services via |
| REST APIs and Elastic/Fluentbit/Kibana, Prometheus/Grafana |
| |
| Controller Server Specs |
| ----------------------- |
| Recommendation (per ONOS instance) based on 50K routes |
| - CPU: 32 Cores |
| - RAM: 128GB RAM. 64GB dedicated to ONOS JVM heap |
| |
| Recommendation (per ONOS instance) for 5K UEs when enabling UPF: |
| - CPU: 1 Cores |
| - RAM: 4GB RAM |
| |
| .. _all_switch: |
| |
| White Box Switch Hardware |
| ------------------------- |
| - Multi-vendor: APS Networks™, Dell™, Delta Networks™, Edgecore Networks™, Inventec™, Netburg™, QCT™ |
| - Multi-chipset: |
| - Intel Tofino (supports all features, including UPF & INT) |
| - Broadcom Tomahawk®, Tomahawk+®, Trident2 (traditional fabric features only) |
| - 1/10G, 25G, 40G, and 100G ports |
| - Refer to Supported Devices list in https://github.com/stratum/stratum for the most up-to-date hardware list |
| |
| .. _verified_switch: |
| |
| Aether-verified Switch Hardware |
| ------------------------------- |
| - `EdgeCore DCS800 <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=335>`_ |
| with Dual Pipe Tofino ASIC (formerly Wedge100BF-32X) |
| |
| - `EdgeCore DCS801 <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=770>`_ |
| with Quad Pipe Tofino ASIC (formerly Wedge100BF-32QS) |
| |
| White Box Switch Software |
| ------------------------- |
| - Open source ONL, ONIE, Docker, Kubernetes |
| - Stratum available from ONF |
| |
| .. rubric:: Footnotes |
| |
| .. [#f1] IPv6 support on the data plane (P4 program) is still work-in-progress. |