diff --git a/edge_deployment/overview.rst b/edge_deployment/overview.rst
index bc57498..c625488 100644
--- a/edge_deployment/overview.rst
+++ b/edge_deployment/overview.rst
@@ -23,35 +23,70 @@
 found in the :doc:`Aether SD-Core Developer Guide </developer/sdcore>`.  AiaB
 is only suitable for testing and developing software, and can't connect to
 physical hardware, but is a good choice for learning about the different
-software components of Aether.
+software components within Aether.
 
 Production Environments
 """""""""""""""""""""""
 
 Deploying Aether on hardware is required for both production deployments and
-testing.
-
-This document currently describes the P4-based UPF implementation of Aether.
-There is also a :doc:`Software-only BESS UPF
-</edge_deployment/bess_upf_deployment>`, which can be used for deployments that
-do not have P4 switching hardware.
-
-Before deploying Aether, a detailed plan including the network topology,
-hardware, and all cabling needs to be created.
+hardware testing.  Before deploying Aether, a detailed plan including the
+network topology, hardware, and all cabling needs to be created.
 
 For redundancy of workloads running in Kubernetes, at least 3 compute nodes
 must be available. A single or pair of compute nodes can be used, but software
 would need to be configured without High Availability (HA) enabled.
 
-Network Cable Plan
-------------------
+The topologies below are *simplified physical topologies* to show the equipment
+needed and the minimal connectivity between devices. Within these topologies,
+multiple VLANs, routing, and other network-level configuration is required to
+make a functional Aether edge.
+
+There are also possible RAS improvements that can be done at a topology level -
+for example, fabric switch connections can be made with using two cables, and
+configured to tolerate the failure or replacement of one cable or NIC port,
+which is recommended especially for inter-switch links.
+
+Edge Connectivity
+-----------------
+
+Aether's is a managed service, and Aether Edges require a constant connection
+via VPN to the 4G and 5G core in Aether Central for managing subscriber
+information.
+
+At a minimum, the site must provide a public static IP address that can be used
+for the VPN connection. This can be behind NAT using port forwarding can be
+configured to the Aether Edge within the network.
+
+Additionally, for initial installation and setup and and managing
+updates to the edge sites, access via SSH (public key only) is required.
+
+BESS-based Network Topology
+---------------------------
+
+The :doc:`Software-only BESS UPF
+</edge_deployment/bess_upf_deployment>`, which can be used for deployments that
+do not have P4 switching hardware.
+
+.. image:: images/edge_mgmt_only.svg
+   :alt: BESS network topology
+
+
+BESS runs on an x86 compute server, and is deployed using Kubernetes. In
+production it requires a SR-IOV capable network card, and specific K8s CNIs to
+be used.
+
+The Management Server and Switch must be configured with multiple VLANs which
+provide subnets required for routing within the BESS UPF.
+
+P4-based Network Topology
+-------------------------
 
 If only a single P4 switch is used, the :doc:`Simple
 <trellis:supported-topology>` topology can be used, but provides no network
 redundancy:
 
 .. image:: images/edge_single.svg
-   :alt: Single Switch
+   :alt: Single Switch Topology
 
 If another switch is added, and a "Paired Leaves"  (aka :doc:`Paired Switches
 <trellis:supported-topology>`) topology is used, which can tolerate the loss of
@@ -61,58 +96,81 @@
 radio coverage.:
 
 .. image:: images/edge_paired_leaves.svg
-   :alt: Paired Leaves
+   :alt: Paired Leaves Topology
 
 For larger deployments, a 2x2 fabric can be configured (aka :doc:`Single-Stage
 Leaf-Spine <trellis:supported-topology>`), which provide Spine redundancy, but
 does not support dual-homing of devices.
 
 .. image:: images/edge_2x2.svg
-   :alt: 2x2 Fabric
+   :alt: 2x2 Fabric Topology
 
-.. note::
+Other topologies as described in the :doc:`Trellis Documentaiton
+<trellis:supported-topology>` can possibly be used, but are not actively being
+tested at this time.
 
-  Connections to the Fabric switches in these diagrams can be made up of two
-  cables, and configured to tolerate the failure or replacement of one cable or
-  NIC port.  This is recommended, especially for links between switches.
+Additionally, the P4-based topologies can support running both the BESS UPF and
+P4 UPF on the same hardware at the same time if desired (for testing, or
+simultaneous 4G/5G support).
 
+Hardware Descriptions
+---------------------
 
-Required Hardware
------------------
+Fabric Switch
+"""""""""""""
 
-Fabric Switches
-"""""""""""""""
+To use the P4 UPF, you must use fabric switches based on the `Intel (previously
+Barefoot) Tofino chipset
+<https://www.intel.com/content/www/us/en/products/network-io/programmable-ethernet-switch/tofino-series.html>`_.
+There are two variants of this switching chipset, with different resources and
+capabilities.
 
-Aether recommends the use of fabric switches based on the Intel (was Barefoot)
-Tofino chipset, which are capable of running the P4 UPF.  There are multiple
-variants of this switching chipset, with different resources and capabilities.
-
-Currently supported P4 switches include:
+Aether currently supports these P4 switch models:
 
 * `EdgeCore Wedge100BF-32X
-  <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=335>`_
-  - a "Dual Pipe" chipset
+  <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=335>`_,
+  a Dual Pipe Tofino ASIC
 
 * `EdgeCore Wedge100BF-32QS
-  <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=770>`_
-  - a "Quad Pipe" chipset
+  <https://www.edge-core.com/productsInfo.php?cls=1&cls2=180&cls3=181&id=770>`_,
+  a Quad Pipe Tofino ASIC, which has more chip resources and a faster embedded
+  system with more memory and storage.
 
-Compute Servers
-"""""""""""""""
+The P4 UPF and SD-Fabric features run within the constraints of the Dual Pipe
+system for production deployments, but for development of features in P4, the
+larger capacity of the Quad Pipe is desirable.
+
+These switches feature 32 QSFP+ ports capable of running in 100GbE, 40GbE, or
+4x 10GbE mode (using a split DAC or fiber cable) and have a 1GbE management
+network interface.
+
+See also the :ref:`Rackmount of Eqiupment
+<edge_deployment/site_planning:rackmount of equipment>` for how the Fabric
+switches should be rackmounted to ensure proper airflow within a rack.
+
+Compute Server
+""""""""""""""
+
 These servers run Kubernetes, Aether connectivity apps, and edge applications.
 
 Minimum hardware specifications:
 
 * AMD64 (aka x86-64) architecture
-* 8 CPU Cores
-* 32GB of RAM
-* 250 GB of storage (SSD preferred)
-* 2x 40GbE or 100GbE Ethernet connections to P4 switches
-* 1x 1GbE management network port
 
-Optional:
+* 8 CPU Cores (minimum), 16-64 recommended
 
-* Lights out management support, with either shared or separate NIC
+* 32GB of RAM (minimum), 128GB+ recommended
+
+* 250 GB of storage (SSD preferred), 1TB+ recommended
+
+* 2x 40GbE or 100GbE Ethernet network card to P4 switches, with DPDK support
+
+* 1x 1GbE management network port.  2x required for BESS UPF.
+
+Optional but highly recommended:
+
+* Lights out management support, with either a shared or separate NIC and
+  support for HTML5 console access.
 
 Management Server
 """""""""""""""""
@@ -127,14 +185,21 @@
 Minimum hardware specifications:
 
 * AMD64 (aka x86-64) architecture
-* 4 CPU cores
-* 8GB of RAM
-* 120GB of storage (SSD preferred)
+
+* 4 CPU cores, or more
+
+* 8GB of RAM, or more
+
+* 120GB of storage (SSD preferred), or more
+
 * 2x 1GbE Network interfaces (one for WAN, one to the management switch)
 
 Optional:
 
-* 10GbE or 40GbE network card to connect to fabric switch
+* 10GbE or 40GbE network card with DPDK support to connect to fabric switch
+
+* Lights out management support, with either a shared or separate NIC and
+  support for HTML5 console access.
 
 Management Switch
 """""""""""""""""
@@ -146,32 +211,47 @@
 
 Minimum requirements:
 
-* 16x 1GbE Copper ports
+* 8x 1GbE Copper ports (adjust to provide a sufficient number for every copper
+  1GbE port in the system)
 
 * 2x 10GbE SFP+ or 40GbE QSFP interfaces (only required if management server
   does not have a network card with these ports)
 
 * Managed via SSH or web interface
 
+* Support the LLDP protocol for debugging cabling issues
+
 * Capable supporting VLANs on each port, with both tagged and untagged traffic
   sharing a port.
 
+
 Optional:
 
-* PoE+ support, which can power eNB and monitoring hardware.
-
+* PoE+ support, which can power eNB and monitoring hardware, if using
+  Management switch to host these devices.
 
 eNB Radio
 """""""""
 
 The LTE eNB used in most deployments is the `Sercomm P27-SCE4255W Indoor CBRS
-Small
-Cell <https://www.sercomm.com/contpage.aspx?langid=1&type=prod3&L1id=2&L2id=1&L3id=107&Prodid=751>`_.
+Small Cell
+<https://www.sercomm.com/contpage.aspx?langid=1&type=prod3&L1id=2&L2id=1&L3id=107&Prodid=751>`_.
 
-This supports PoE+ power on the WAN port, which provides deployment
-flexibility.
+While this unit ships with a separate power brick, it also supports PoE+ power
+on the WAN port, which provides deployment location flexibility. Either a PoE+
+capable switch or PoE+ power injector should be purchased.
 
-Testing hardware
+If connecting directly to the fabric switch through a QSFP to 4x SFP+ splitter
+cable, a 10GbE SFP+ to 1GbE Copper media converter should be purchased. The `FS
+UMC-1S1T <https://www.fs.com/products/101476.html>`_ has been used for this
+purpose successfully.
+
+Alternatively, the Fabric's 10GbE SFP+ could be connected to another switch
+(possibly the Management Switch) which would adapt the speed difference, and
+provide PoE+ power, and power control for remote manageability.
+
+
+Testing Hardware
 ----------------
 
 The following hardware is used to test the network and determine uptime of
@@ -190,8 +270,105 @@
 Which is configured with:
 
 * HighPi Raspberry Pi case for P4
-* USB-C Power Supply
+
+* Either a:
+
+  * PoE Hat used with a PoE switch (recommended, allows remote power control)
+
+  * USB-C Power Supply
+
 * MicroSD Card with Raspbian - 16GB
 
 One LTE dongle model supported in Aether is the `Sercomm Adventure Wingle
 <https://www.sercomm.com/contpage.aspx?langid=1&type=prod3&L1id=2&L2id=2&L3id=110&Prodid=767>`_.
+
+
+Example BoMs
+------------
+
+To help provision a site, a few example Bill of Materials (BoM) are given
+below, which reference the hardware descriptions given above.
+
+Some quantities are dependent on other quantities - for example, the number of
+DAC cables frequently depends on the number of servers in use.
+
+These BOMs do not include UE devices.  It's recommended that the testing
+hardware given above be added to every BoM for monitoring purposes.
+
+
+BESS UPF Testing BOM
+""""""""""""""""""""
+
+The following is the minimum BoM required to run Aether with the BESS UPF.
+
+============ ===================== ===============================================
+Quantity     Type                  Purpose
+============ ===================== ===============================================
+1            Management Switch     Must be Layer 2/3 capable for BESS VLANs
+1            Management Server
+1-3          Compute Servers       Recommended at least 3 for Kubernetes HA
+1 (or more)  eNB
+1x #eNB      PoE+ Injector         Required unless using a PoE+ Switch
+Sufficient   Cat6 Network Cabling  Between all equipment
+============ ===================== ===============================================
+
+P4 UPF Testing BOM
+""""""""""""""""""
+
+============ ===================== ===============================================
+Quantity     Type                  Description/Use
+============ ===================== ===============================================
+1            P4 Fabric Switch
+1            Management Switch     Must be Layer 2/3 capable
+1            Management Server     At least 1x 40GbE QSFP ports recommended
+1-3          Compute Servers       Recommended at least 3 for Kubernetes HA
+2x #Server   40GbE QSFP DAC cable  Between Compute, Management, and Fabric Switch
+1            QSFP to 4x SFP+ DAC   Splitter between Fabric and eNB
+1 (or more)  eNB
+1x #eNB      10GbE to 1GbE Media   Required unless using switch to convert from
+             converter             fabric to eNB
+1x #eNB      PoE+ Injector         Required unless using a PoE+ Switch
+Sufficient   Cat6 Network Cabling  Between all equipment
+============ ===================== ===============================================
+
+P4 UPF Paired Leaves BOM
+""""""""""""""""""""""""
+
+============ ===================== ===============================================
+Quantity     Type                  Description/Use
+============ ===================== ===============================================
+2            P4 Fabric Switch
+1            Management Switch     Must be Layer 2/3 capable
+1            Management Server     2x 40GbE QSFP ports recommended
+3            Compute Servers
+2            100GbE QSFP DAC cable Between Fabric switches
+2x #Server   40GbE QSFP DAC cable  Between Compute, Management, and Fabric Switch
+1 (or more)  QSFP to 4x SFP+ DAC   Splitter between Fabric and eNB
+1 (or more)  eNB
+1x #eNB      10GbE to 1GbE Media   Required unless using switch to convert from
+             converter             fabric to eNB
+1x #eNB      PoE+ Injector         Required unless using a PoE+ Switch
+Sufficient   Cat6 Network Cabling  Between all equipment
+============ ===================== ===============================================
+
+
+P4 UPF 2x2 Leaf Spine Fabric BOM
+""""""""""""""""""""""""""""""""
+
+============ ===================== ===============================================
+Quantity     Type                  Description/Use
+============ ===================== ===============================================
+4            P4 Fabric Switch
+1            Management Switch     Must be Layer 2/3 capable
+1            Management Server     2x 40GbE QSFP ports recommended
+3            Compute Servers
+8            100GbE QSFP DAC cable Between Fabric switches
+2x #Server   40GbE QSFP DAC cable  Between Compute, Management, and Fabric Switch
+1 (or more)  QSFP to 4x SFP+ DAC   Splitter between Fabric and eNB
+1 (or more)  eNB
+1x #eNB      10GbE to 1GbE Media   Required unless using switch to convert from
+             converter             fabric to eNB
+1x #eNB      PoE+ Injector         Required unless using a PoE+ Switch
+Sufficient   Cat6 Network Cabling  Between all equipment
+============ ===================== ===============================================
+
