blob: c8fa01626a179c94c00822d0dbe4887346e94682 [file] [log] [blame]
.. 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.