Added specification
Also did a minor adjustment on intro and architecture
Change-Id: I047ec1c1ee4ef5b421e98ecd242c96d55692fdb9
diff --git a/architecture.rst b/architecture.rst
index c4d6a1f..7a1f8a6 100644
--- a/architecture.rst
+++ b/architecture.rst
@@ -1,6 +1,28 @@
Architecture and Design
***********************
+Overview
+--------
+
+.. image:: images/arch-overview.png
+ :width: 1000px
+
+Trellis operates as a **hybrid L2/L3 fabric**.
+
+As a **pure (or classic) SDN** solution, Trellis **does not use any of the traditional control protocols** typically found in networking, a non-exhaustive list of which includes:
+STP, MSTP, RSTP, LACP, MLAG, PIM, IGMP, OSPF, IS-IS, Trill, RSVP, LDP and BGP.
+
+Instead, Trellis **uses an SDN Controller (ONOS) decoupled from the data-plane hardware to directly program ASIC forwarding tables using OpenFlow and with OF-DPA**,
+an open-API from Broadcom running on the switches.
+
+In this design, a set of applications running on ONOS implement all the fabric functionality and features,
+such as **Ethernet switching**, **IP routing**, **multicast**, **DHCP Relay**, **pseudowires** and more.
+
+.. note::
+ You can learn more about Trellis features and design concepts by visiting the `Project Website <https://opennetworking.org/trellis>`_ and
+ reading the `Platform Brief <https://www.opennetworking.org/wp-content/uploads/2019/09/TrellisPlatformBrief.pdf>`_.
+
+
Introduction to OF-DPA Pipeline
-------------------------------
diff --git a/conf.py b/conf.py
index f38d8c4..5437ef2 100644
--- a/conf.py
+++ b/conf.py
@@ -104,6 +104,7 @@
# Ignore link check for the following websites
linkcheck_ignore = [
'https://www.opennetworking.org/*',
+ 'https://opennetworking.org/*',
]
# -- Options for HTML output -------------------------------------------------
diff --git a/images/arch-overview.png b/images/arch-overview.png
new file mode 100644
index 0000000..bafbc12
--- /dev/null
+++ b/images/arch-overview.png
Binary files differ
diff --git a/index.rst b/index.rst
index c154729..becaf30 100644
--- a/index.rst
+++ b/index.rst
@@ -28,6 +28,10 @@
Together, all three attributes of Trellis considerably lower the Total Cost of Ownership (TCO) for operators who plan to run it in production.
+.. note::
+ You can learn more about Trellis features and design concepts by visiting the `Project Website <https://opennetworking.org/trellis>`_ and
+ reading the `Platform Brief <https://www.opennetworking.org/wp-content/uploads/2019/09/TrellisPlatformBrief.pdf>`_.
+
Highlights
==========
@@ -67,18 +71,13 @@
.. image:: images/index-usecase-chassis.png
:width: 600px
-
-Learn More
-==========
-- `Trellis Website <https://www.opennetworking.org/trellis>`_
-- `Trellis Platform Brief <https://www.opennetworking.org/wp-content/uploads/2019/09/TrellisPlatformBrief.pdf>`_
-
.. toctree::
:maxdepth: 1
:hidden:
:caption: Table of Contents
architecture
+ specification
supported-hardware
installation
configuration
diff --git a/specification.rst b/specification.rst
new file mode 100644
index 0000000..8e86b5a
--- /dev/null
+++ b/specification.rst
@@ -0,0 +1,137 @@
+Specifications
+**************
+
+
+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 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 (keep-alives, 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 unicast routing (internal use of MPLS Segment Routing)
+ - Subnetting configuration on all non-spine facing leaf ports; no configuration required on any spine port
+ - 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 Trellis 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
+
+Troubleshooting & Diagnostics
+=============================
+ - Troubleshooting tool – T3: Trellis Troubleshooting Tool
+ - Diagnostics one-click collection tool `onos-diags`
+
+Topology
+========
+ - Single leaf (ToR) or dual-ToR (dual-homing)
+ - Supports typical leaf-spine topology, 2 to 4 spines, up to 10 leaves
+ - Multi-stage leaf-spine fabric (leaf-spine-spine-leaf)
+ - Can start at the smallest scale (single leaf) and grow horizontally
+
+Resiliency
+==========
+Provides HA in following scenarios
+ - Controller instance failure (requires 3 or 5 node ONOS cluster)
+ - Link failures
+ - Spine failure
+Further HA support in following failure scenarios with dual-homing enabled
+ - Leaf failure
+ - Upstream router failure
+ - Host NIC failure
+
+Scalability
+===========
+ - (in production) Up to 50k routes, 110k flows, 8 Leaf, 2 Spines, with route optimization enabled
+ - (in pre-production) Up to 120k routes, 250k flows, 8 Leaf, 2 Spines, with route optimization enabled
+
+Security
+========
+ - TLS-secured connection between controllers and switches (premium feature)
+ - AAA 802.1x authentication
+ - MACSec (L2 encapsulation)
+
+P4-ready
+========
+ - Support for Stratum, P4Runtime and gNMI and P4 programs
+ - Innovative services enabled by programmable pipeline
+
+ - BNG – PPPoE, anti-spoofing, accounting and more
+ - GTP encap/decap
+
+Overlay Support
+===============
+ Can be used/integrated with 3rd party overlay networks (e.g. OpenStack Neutron, Kubernetes CNI)
+
+Orchestrator Support
+====================
+ Can be integrated with external orchestrator, logging, telemetry and alarm service via REST apis and Kafka events
+
+Controller Server Specs
+=======================
+Recommended (per ONOS instance)
+ - CPU: 32 Cores
+ - RAM: 128GB RAM. 65GB dedicated to ONOS JVM heap (based on 50K routes)
+
+Whitebox Switch Hardware
+========================
+ - Multi-vendor: Edgecore, QCT, Delta, Inventec
+ - Multi-chipset
+
+ - Broadcom Tomahawk, Trident2, Qumran
+ - Barefoot Tofino
+ - 1/10G, 25G, 40G to 100G
+ - Refer to docs.trellisfabric.org/supported-hardware.html for the most up-to-date hardware list
+
+Whitebox Switch Software
+========================
+ - Open source ONL, ONIE and Indigo OF client
+ - (in production) OF-DPA software commercial version – contact Broadcom
+ - (in labs/trials) OF-DPA software community version available from ONF (for switch models based on Trident and Tomahawk, not Qumran)
+ - (in labs/trails) Stratum available from ONF
\ No newline at end of file
diff --git a/tables/spec.csv b/tables/spec.csv
new file mode 100644
index 0000000..c525fcf
--- /dev/null
+++ b/tables/spec.csv
@@ -0,0 +1,19 @@
+Feature,Description
+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 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 (keep-alives, 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"
\ No newline at end of file