diff --git a/release/2.0.rst b/release/2.0.rst
new file mode 100644
index 0000000..22ed221
--- /dev/null
+++ b/release/2.0.rst
@@ -0,0 +1,245 @@
+Aether 2.0 Release
+==================
+
+Aether Highlights
+-----------------
+
+This release of Aether, the first to `fully embrace open
+source <https://www.prnewswire.com/news-releases/onfs-leading-private-5g-connected-edge-platform-aether-now-released-to-open-source-301487587.html>`__,
+adds two exciting new capabilities. The first is support for 5G
+deployments, enabling greatly increased bandwidth compared to 4G-based
+deployments. Complementing 5G is our P4 based mobile-core User Plane
+Function (UPF), which offers a high performance hardware-accelerated
+datapath that does not need to be routed through compute-based software
+UPFs. Aether maintains backward compatibility with 4G, and both 4G and
+5G slices may make use of both software and hardware based UPFs. P4
+hardware and BESS software UPFs can be deployed side-by-side in a hybrid
+deployment.
+
+As part of this release, several edge applications have been showcased
+on the Aether platform. We demonstrated the first Aether-interactive
+smart application, an OpenVINO based AI/ML person-detection application
+that dynamically increases network-bandwidth for video recording
+purposes when a person is detected, and then dynamically reduces the
+same when people are no longer detected. In partnership with Intel,
+we have also deployed an anomaly detection application on the Aether
+platform that runs as an edge application, monitors a manufacturing or
+packaging line of product samples, and then uses an AI/ML algorithm to
+detect anomalies in real time. These applications were demonstrated at
+Mobile World Congress 2022 in Barcelona last week.
+
+The transition to open source will further increase the pace of Aether
+development, putting it within the reach of the 5G and edge developer
+community that ONF has been cultivating and encouraging. Developer
+contributions are welcome, and increased access will allow increased
+adoption of this technology.
+
+Features & Improvements
+-----------------------
+
+New 5G features
+"""""""""""""""
+
+This release of Aether incorporates SD-Core 1.1, which includes
+integration with 5G gNB small-cells from T&W running 5G-SA RAN stack
+from Radisys, 5G slices with Application filtering, and a policy
+framework that supports QoS at multiple levels - subscribers,
+applications and slices. For more details, please refer to the SD-Core
+1.1 Release notes.
+
+SD-Fabric Integration
+"""""""""""""""""""""
+
+This release of Aether incorporates SD-Fabric 1.1. While previous
+releases of Aether supported SD-Fabric as a “Beta” feature, this release
+officially supports the P4 UPF and other SD-Fabric features like paired
+leaf-switches with dual UPFs for High Availability.
+
+The P4 UPF may now be added to Aether as an available UPF. In addition
+to a single P4 UPF, Aether continues to allow multiple BESS UPFs to be
+deployed alongside the P4 UPF. The user can decide at slice provisioning
+time whether a slice should use the P4 UPF or a BESS UPF. UPFs may only
+be bound to one slice at a time. The P4 UPF and the BESS UPF both
+support application filtering and QoS metering. The BESS UPF has been
+enhanced to include additional per-flow metrics.
+
+For more details, please refer to the SD-Fabric 1.1 Release notes.
+
+Sim-Card and Device Modeling
+""""""""""""""""""""""""""""
+
+The Aether configuration model has been enhanced to include support for
+*SIM card* and *device* modeling. The lifecycle of a device is now
+decoupled from the lifecycle of the SIM card that is attached to that
+device. Devices can be created in the modeling before their SIM cards
+are created, and devices may continue to exist after their SIM cards
+have been removed. A removed SIM card can be associated with a different
+device.
+
+Aether may be configured to automatically learn of provisioned SIM cards
+and add them to the enterprise configuration. An administrator may then
+see the list of available SIM cards and choose which one to add to a
+device.
+
+The model tree has been revised to be more hierarchical. For example,
+Slices are now contained within Sites, and Sites are contained within
+Enterprises. This eliminated many of the boilerplate Slice and
+Enterprise links that used to be present in the Aether-1.6 models, and
+it provides automatic enforcement of objects to the appropriate scope.
+
+Configuration System Improvements
+"""""""""""""""""""""""""""""""""
+
+Aether’s ROC configuration system internals were redesigned and
+reimplemented to address various instability issues and incorporate new
+patterns and architectures. The controllers at the core of onos-config
+were `redesigned in
+TLA+ <https://github.com/onosproject/onos-tlaplus/blob/master/Config/Config.pdf>`__
+– a machine-checked formal specification language – to develop a more
+stable and viable architecture long-term, and the controllers were
+reimplemented according to the new design. On the northbound, new gNMI
+extensions make onos-config’s handling of gNMI Set and Get requests
+configurable with support for various consistency strategies when
+propagating changes to gNMI targets. On the southbound, support was
+added for handling non-persistent targets (recovering target
+configuration after restarts). For additional information, please see
+the `README
+file <https://github.com/onosproject/onos-config/blob/master/docs/README.md>`__
+for the configuration system.
+
+Support for complex validation rules
+""""""""""""""""""""""""""""""""""""
+
+Aether now has support for complex validation rules (“guardrails”) to
+prevent misconfiguration of the system. These guardrails are specified
+using Aether’s yang modeling language, allowing Aether staff to easily
+add more rules as the need arises.
+
+Data Plane Optimization
+"""""""""""""""""""""""
+
+Prior releases of Aether passed data plane traffic through the
+management server. Aether 2.0 has been optimized so that this is no
+longer necessary. User traffic is now processed by the P4-UPF or the
+BESS-UPF and then forwarded upstream (or to edge-applications) directly
+by the dataplane (fabric) leaf-switch.
+
+Furthermore, we now support more common enterprise deployments where the
+radio access nodes (eNBs/gNBs) connect to the enterprise L3-routed
+network, rather than connect directly to our fabric. We also simplified
+configuration to support the use of fabric-switch front panel ports
+rather than using the confusing, device-specific SDK ports.
+
+Aether Testing
+--------------
+
+Aether uses automated testing based on Jenkins and Robot Framework. The
+tests performed are described below.
+
+SD-Core Tests:
+
+* 4G
+
+   * Functional coverage: attach, detach, dataplane traffic, handover,
+     TAU, paging, error scenarios, failure/restart of network
+     functions
+
+* 5G
+
+   * Functional Coverage: register, deregister,dataplane traffic
+     scenarios, handover, TAU, DDN, few error scenarios, few
+     failure/restart of network functions
+
+* Jenkins jobs for functional can be found at
+
+   * https://jenkins.aetherproject.org/view/SD%20Core%20System%20Tests/
+
+ROC:
+
+* Functional API
+
+* Related Jenkins jobs
+
+   * https://jenkins.aetherproject.org/view/ROC%20System%20Tests/
+
+Aether System Tests
+
+* 5G
+
+   * Functional testing includes multiple slice creations,
+     enable/disable of device groups, QoS validations, rate limiting
+     tests (at UE, slice, application), application filtering tests,
+     container restart tests
+
+* 4G
+
+   * Functional testing includes multiple slice creations,
+     enable/disable of device groups, QoS validations, rate limiting
+     tests (at UE, slice, application), application filtering tests,
+     container restart tests
+
+* Jenkins Jobs:
+
+   * https://jenkins.aetherproject.org/view/Aether%20System%20Tests/
+
+Documentation
+-------------
+
+Aether documentation is available at
+`docs.aetherproject.org <http://docs.aetherproject.org>`__.
+
+Limitations and Known Issues
+----------------------------
+
+*  Each site should be configured with a different “Enterprise ID”.
+
+*  The P4 UPF does not support Slice MBR, which requires leaving out the
+   `configuration endpoint` configuration for P4 UPFs.
+   Additionally, only 1 slice can currently use a P4 UPF. The next
+   release of Aether will remove both limitations.
+
+* This transaction history page on the operations portal is not
+  currently enabled; It will be available shortly after the first
+  2.0 release.
+
+*  The Sim-Card model deviates from the ID convention used by the other
+   models, using the field “sim-id” instead of “sim-card-id”.
+
+*  IMSIs should not be removed from Simapp. They may be added at any
+   time.
+
+Component Versions
+------------------
+
+ROC:
+
+* atomix-controller: 0.6.9
+
+* atomix-raft-storage: 0.1.25
+
+* onos-operator: 0.5.1
+
+* aether-roc-umbrella: 2.0.39
+
+SD-Core (SD-Core 1.1 release):
+
+* sdcore-helm-chart: 0.10.13 (Umbrella Helm Chart)
+
+   * Omec-control-plane : 0.10.9
+
+   * Omec-sub-provision : 0.4.5
+
+   * 5g-control-plane : 0.6.17
+
+   * 5g-ran-sim: 0.4.10
+
+UPF: bess-upf: 0.0.5
+
+SD-Fabric (1.1 release):
+
+* sdfabric: 1.0.30
+
+Sercomm eNB
+
+* Firmware version: 3922
+
