diff --git a/dict.txt b/dict.txt
index d2b634c..776e732 100644
--- a/dict.txt
+++ b/dict.txt
@@ -22,6 +22,7 @@ GPP
GTP
GbE
GiB
+GigE
GitOps
Github
Grafana
@@ -49,6 +50,7 @@ Moto
Multipass
NAV
Netbox
+OAI
ONF
ONL
OPc
diff --git a/onramp/blueprints.rst b/onramp/blueprints.rst
index 5848f90..f1d53f9 100644
--- a/onramp/blueprints.rst
+++ b/onramp/blueprints.rst
@@ -480,6 +480,140 @@ required extensions. It has been written to do nothing unless variable
target.
+OAI gNB
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Aether can be configured to work with the open source gNB from OAI.
+The blueprint runs in either simulation mode or with physical UEs
+connecting to a software-defined radio. The following assumes
+familiarity with the OAI 5G RAN stack.
+
+.. _reading_oai:
+.. admonition:: Further Reading
+
+ `Open Air Interface 5G
+ `__.
+
+The blueprint includes the following:
+
+* Global vars file ``vars/main-oai.yml`` gives the overall blueprint
+ specification.
+
+* Inventory file ``hosts.ini`` uses label ``[oai_gnb_nodes]`` to
+ denote the server(s) that host the gNB and label ``[oai_ue_nodes]``
+ to denote the server(s) that host the UE. (The latter is necessary
+ only when running in simulation mode.) The expected configuration is
+ to run both the gNB and UE on the same server as Kubernetes (where
+ the 5G Core runs). Another possible configuration is to co-locate
+ the gNB and UE on one server, with the 5G Core running on a separate
+ server.
+
+* New make targets, ``oai-gnb-install`` and ``oai-gnb-uninstall``, to
+ be executed along with the standard SD-Core installation (see below).
+ When running a simulated UE, targets ``oai-uesim-start`` and
+ ``oai-uesim-stop`` are also available.
+
+* A new submodule ``deps/oai`` (corresponding to repo ``aether-oai``)
+ defines the Ansible Roles and Playbooks required to deploy the OAI
+ gNB.
+
+* An Integration test running in simulation mode is still pending. The
+ blueprint has been tested with USRP X310, but other models should
+ also work.
+
+To use the OAI gNB first copy the vars file to ``main.yml``:
+
+.. code-block::
+
+ $ cd vars
+ $ cp main-oai.yml main.yml
+
+You will see the main difference is the addition of the ``oai``
+section:
+
+.. code-block::
+
+ oai:
+ docker:
+ container:
+ gNbimage: oaisoftwarealliance/oai-gnb:develop
+ uEimage: oaisoftwarealliance/oai-nr-ue:develop
+ network:
+ data_iface: ens18
+ name: public_net
+ subnet: "172.20.0.0/16"
+ bridge:
+ name: rfsim5g-public
+ simulation: true
+ gnb:
+ conf_file: deps/aether-oai/roles/gNb/templates/gnb.sa.band78.fr1.106PRB.usrpb210.conf
+ ue:
+ conf_file: deps/aether-oai/roles/uEsimulator/templates/ue.conf
+
+Variable ``simulation`` is set to ``true`` by default, causing OnRamp
+to deploy the simulated UE. When set to ``false``, the simulated UE
+is not deployed and it is instead necessary to configure the USRP and
+a physical UE.
+
+Note that instead of downloading and compiling the latest OAI
+software, this blueprint pulls in the published images for both the
+gNB and UE, corresponding to variables ``container.gNbimage`` and
+``container.uEimage``, respectively. If you plan to modify the OAI
+software, you will need to change these values accordingly. See the
+:doc:`Development Support ` section for guidance.
+
+The ``network`` block of the ``oai`` section configures the necessary
+tunnels so the gNB can connect to the Core's user and control planes.
+Variable ``network.data_iface`` needs to be modified in the same way
+as in the ``core`` and ``gnbsim`` sections of ``vars/main.yml``, as
+described throughout this Guide.
+
+The path names associated with variables ``oai.gnb.conf_file`` and
+``oai.ue.conf_file`` are OAI-specific configuration files. The two
+given by default are for simulation mode. The template directory for
+the ``gNb`` role also includes a configuration file for when the USRP
+X310 hardware is to be deployed; edit variable ``oai.gnb.conf_file``
+to point to that file instead. If you plan to use some other OAI
+configuration file, note that the following two variables in the ``AMF
+parameters`` section need to be modified to work with the Aether Core:
+
+.. code-block::
+
+ amf_ip_address = ({ ipv4 = "{{ core.amf.ip }}"; });
+
+ GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.20.0.2/24";
+
+To deploy the OAI blueprint in simulation mode, run the following:
+
+.. code-block::
+
+ $ make k8s-install
+ $ make 5gc-install
+ $ make oai-gnb-install
+ $ make oai-uesim-start
+
+To deploy the OAI blueprint with a physical gNB and UE, first
+configure the USRP hardware as described in the `USRP Hardware Manual
+`__. Of
+particular note, you need to select whether the device is to connect
+to the Aether Core using its 1-GigE or 10-GigE interface, and make
+sure the OAI configuration file (corresponding to ``oai.conf_file``)
+sets the ``sd_addrs`` variable to match the interface you select. You
+also need to make sure the PLMN-related values in the files specified
+by ``core.values_file`` and ``oai.conf_file`` (along with the SIM
+cards you burn) are consistent. Once ready, run the following Make
+targets:
+
+.. code-block::
+
+ $ make k8s-install
+ $ make 5gc-install
+ $ make oai-gnb-install
+
+The :doc:`Physical RAN ` section of this Guide can be
+helpful in debugging the end-to-end setup, even though the gNB details
+are different.
+
Guidelines for Blueprints
~~~~~~~~~~~~~~~~~~~~~~~~~~~~