.. image:: images/overview-logo.png
   :width: 400px
   :align: center

Overview
========

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.rst
   release/1*

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

   readme
