.. SPDX-FileCopyrightText: 2021 Open Networking Foundation <info@opennetworking.org>
.. SPDX-License-Identifier: Apache-2.0

.. _index:

SD-Fabric
=========

SD-Fabric is an open source, full stack, deeply programmable network fabric optimized for edge cloud,
5G, and Industry 4.0 applications.
It builds on SDN and cloud native principles to create a disruptive platform that for the first time
empowers the network with modern cloud development principles.

- SD-Fabric is a **natively disaggregated solution using bare metal switches with merchant silicon ASICs**.
  Instead of using OEM networking hardware, SD-Fabric uses hardware directly from ODMs.
  The trend of using bare metal (white box) switches is unmistakable in the networking industry today,
  spurred by the massive bandwidth density and growing sophistication of merchant silicon ASICs.

- SD-Fabric is **based on SDN principles using P4-enabled programmable data planes**
  (such as the Intel® Tofino® ASICs).
  P4 allows for the introduction of new features that cannot be found in traditional fabrics built on
  fixed-function ASICs.
  For example, SD-Fabric provides a high performance 4G/5G mobile core User Plane Function (UPF) integrated
  with SD-Core™ project.
  And by externalizing the network's control, management functions, and policy decisions in the ONOS™ SDN controller,
  SD-Fabric provides network operators with a number of SDN benefits
  when compared to a traditional embedded network control like BGP, such as enhanced customizability,
  centralized configuration, automation, and simplified operations and troubleshooting.
  As a result, SD-Fabric is truly software defined in both the control and data planes.

- SD-Fabric is **optimized for application developers**,
  exposing APIs to enable developers to get better visibility and control while enabling custom P4 forwarding logic
  to be ‘pushed’ down into the network.
  SD-Fabric can further be deployed in a SaaS model,
  with centralized operations and control running from the public cloud which in turn is running distributed
  multiple edge clouds - all as one unified solution.

- SD-Fabric delivers **superior resilience and security compared to legacy approaches**.
  The programmability of SD-Fabric has enabled the implementation of fine-grained measurement
  (via In-band Network Telemetry (INT)), network verification, and closed loop control (see https://prontoproject.org/).
  Furthermore, as open source,
  SD-Fabric is further secured through the benefit of open inspection by a broader community.

- SD-Fabric can be **deployed as-a-Service from the public cloud**. When deployed as-a-Service,
  SD-Fabric provides a full stack implementation designed to run on white box switches at the network edge,
  with centralized CI/CD and operations running from the public cloud controlling multiple edges.


Highlights
----------

.. image:: images/overview-topo.png
   :width: 500px

- **Right-sized Topology**: Scale from a single Top-of-Rack (ToR) switch, to an
  Highly-Available (HA) setup with paired ToRs, to a full leaf-spine fabric
  for multi-rack deployments.
- **API Driven**: Well-defined APIs provide the ability to drop or reroute traffic,
  create slices with configurable QoS, obtain telemetry, and more.
- **Cloud Managed**: Fully integrated and configured by Aether™ Management Platform.
- **5G as a Workload**: Reduce CPU load and increase performance by terminating GTP-U tunnels
  directly in the fabric switches, with QoS and slicing support.
- **End-to-End Visibility**: With Inband Network Telemetry (INT) on switches and end hosts,
  enabling closed loop control.

Get Started
-----------
- Learn more about SD-Fabric

  - `SD-Fabric Website <https://opennetworking.org/sd-fabric/>`_
  - `SD-Fabric Whitepaper <https://opennetworking.org/wp-content/uploads/2021/06/SD-Fabric-White-Paper-FINAL.pdf>`_
  - `SD-Fabric Techinar <https://www.youtube.com/watch?v=-wQB2x7oaqk>`_
  - `SD-Fabric Wiki <https://wiki.opennetworking.org/display/COM/SD-Fabric>`_

- Stay in touch by joining

  - `SD-Fabric developer mailing list <https://groups.google.com/a/opennetworking.org/g/sdfabric-dev>`_
  - \#sdfabric-dev channel in `ONF Community Slack <https://onf-community.slack.com>`_
    (`register <https://onf-community.slack.com/join/shared_invite/zt-g2ed9rid-t9mAGa4Y2RrKfBWbY665tA>`_)

.. toctree::
   :maxdepth: 2
   :caption: Documentation
   :hidden:
   :glob:

   specification
   architecture
   quickstart
   deployment
   configuration
   advanced
   troubleshooting
   development
   testing
   glossary

.. toctree::
   :maxdepth: 2
   :caption: Releases
   :hidden:
   :glob:

   release/process
   release/1.0.0
   release/1.1.0
   release/1.2.0
