Consolidate all UPF docs in the same file

Change-Id: I4f94ce90cd99c0eebee7952273da590495817975
diff --git a/advanced/upf.rst b/advanced/upf.rst
index d4e55d5..619271f 100644
--- a/advanced/upf.rst
+++ b/advanced/upf.rst
@@ -1,12 +1,6 @@
 P4-based User Plane Function (P4-UPF)
 =====================================
 
-.. toctree::
-   :maxdepth: 2
-   :glob:
-
-   upf_configuration
-
 Overview
 --------
 
@@ -115,16 +109,94 @@
 rules from ``virtual-upf.p4`` to rules for the multiple physical switches running
 fabric.p4, based on an up-to-date global view of the topology.
 
+Downlink Buffering (DBUF)
+-------------------------
+
+TODO Carmelo: overview of DBUF
+
 ONOS Configuration
 ------------------
 
-``TODO Daniele``
+The UPF configuration is split in two configurations, that can be provided
+independently to ONOS. Th first is used to configure the UP4 ONOS application
+and defines UPF-related information such as S1U Address, network devices
+implementing UPF etc. The second one, instead, is used to configure parameters
+related to the Downlink Buffering (DBUF) functionality.
 
-How to enable P4-UPF?
+Here's a list of fields that you can configure via the UPF Network Configuration
+for UP4:
 
-* up4 app should be already active in ONOS
-* change pipeconf ID
-* explain/push netcfg
+* ``devices``: A list of devices IDs that implements the UPF data plane. This
+  list must include all the leaf switches in the topology. The UPF state is
+  replicated on all devices specified in this configuration field. The devices
+  specified in this list must use a P4 pipeline implementing the UPF
+  functionality. *Required*
+
+* ``s1uAddr``: The IP address of the S1-U interface (equivalent to N3 for 5G).
+  It can be an arbitrary IP address. *Required*
+
+* ``uePools``: A list of subnets that are in use by the UEs. *Required*
+
+* ``dbufDrainAddr``: The IP address of the UPF data plane interface that the
+  DBUF service will drain packets towards. *Optional*
+
+* ``pscEncapEnabled``: Set whether the UPF should use GTP-U extension PDU
+  Session Container when doing encapsulation of downlink packets. *Optional*
+
+* ``defaultQfi``: The default QoS Flow Identifier to use when the PDU Session
+  Container encapsulation is enabled. *Optional*
+
+Here is an example of netcfg JSON for UP4:
+
+.. code-block:: json
+
+    {
+        "apps": {
+            "org.omecproject.up4": {
+                "up4": {
+                  "devices": [
+                    "device:leaf1",
+                    "device:leaf2"
+                  ],
+                  "s1uAddr": "10.32.11.126",
+                  "uePools": [
+                    "10.240.0.0/16"
+                  ],
+                "dbufDrainAddr": "10.32.11.126",
+                "pscEncapEnabled": false,
+                "defaultQfi": 0
+                }
+            }
+        }
+    }
+
+The DBUF configuration block is all *optional*, we can use UP4 without the
+downlink buffering functionality. Here's a list of fields that you can
+configure:
+
+* ``serviceAddr``: The address DBUF service management interface in the form
+  IP:port. This address is used to communicate with the DBUF service via gRPC
+  (for example, to trigger the drain operation, or receive notification for
+  buffered packets).
+
+* ``dataplaneAddr``: The address of the DBUF service data plane interface in the
+  form IP:port. Packets sent to this address by the UPF will be buffered by
+  DBUF. The IP address must be a routable fabric address.
+
+Here is an example of netcfg for DBUF:
+
+.. code-block:: json
+
+    {
+        "apps": {
+            "org.omecproject.up4": {
+                "dbuf": {
+                    "serviceAddr": "10.76.28.72:10000",
+                    "dataplaneAddr": "10.32.11.3:2152"
+                }
+          }
+        }
+    }
 
 SD-Core Configuration
 ---------------------
diff --git a/advanced/upf_configuration.rst b/advanced/upf_configuration.rst
deleted file mode 100644
index 0e78837..0000000
--- a/advanced/upf_configuration.rst
+++ /dev/null
@@ -1,84 +0,0 @@
-User Plane Function (UPF) Network Configuration
-===============================================
-
-.. tip::
-    See :doc:`User Plane Function (UPF) </advanced/upf>` to learn how UPF works in the
-    SD-Fabric project.
-
-The UPF configuration is split in two configurations, that can be provided independently to ONOS.
-Th first is used to configure the UP4 ONOS application and defines UPF-related information
-such as S1U Address, network devices implementing UPF etc.
-The second one, instead, is used to configure parameters related to the Downlink
-Buffering (DBUF) functionality.
-
-Here's a list of fields that you can configure via the UPF Network Configuration for UP4:
-
-* ``devices``: A list of devices IDs that implements the UPF data plane. This list
-  must include all the leaf switches in the topology.
-  The UPF state is replicated on all devices specified in this configuration field.
-  The devices specified in this list must use a P4 pipeline implementing the UPF functionality. *Required*
-
-* ``s1uAddr``: The IP address of the S1-U interface (equivalent to N3 for 5G).
-  It can be an arbitrary IP address. *Required*
-
-* ``uePools``: A list of subnets that are in use by the UEs. *Required*
-
-* ``dbufDrainAddr``: The IP address of the UPF data plane interface that the DBUF
-  service will drain packets towards. *Optional*
-
-* ``pscEncapEnabled``: Set whether the UPF should use GTP-U extension PDU Session Container
-  when doing encapsulation of downlink packets. *Optional*
-
-* ``defaultQfi``: The default QoS Flow Identifier to use when the PDU Session Container
-  encapsulation is enabled. *Optional*
-
-Here is an example of netcfg for UP4:
-
-.. code-block:: json
-
-    {
-        "apps": {
-            "org.omecproject.up4": {
-                "up4": {
-                  "devices": [
-                    "device:leaf1",
-                    "device:leaf2"
-                  ],
-                  "s1uAddr": "10.32.11.126",
-                  "uePools": [
-                    "10.240.0.0/16"
-                  ],
-                "dbufDrainAddr": "10.32.11.126",
-                "pscEncapEnabled": false,
-                "defaultQfi": 0
-                }
-            }
-        }
-    }
-
-The DBUF configuration is all *Optional*, we can use UP4 without the downlink
-buffering functionality.
-Here's a list of fields that you can configure via the UPF Network Configuration for DBUF:
-
-* ``serviceAddr``: The address DBUF service management interface in the form IP:port.
-  This address is used to communicate with the DBUF service via gRPC (for example, to trigger
-  the drain operation, or receive notification for buffered packets).
-
-* ``dataplaneAddr``: The address of the DBUF service data plane interface in the form IP:port.
-  Packets sent to this address by the UPF will be buffered by DBUF.
-  The IP address must be a routable fabric address.
-
-Here is an example of netcfg for DBUF:
-
-.. code-block:: json
-
-    {
-        "apps": {
-            "org.omecproject.up4": {
-                "dbuf": {
-                    "serviceAddr": "10.76.28.72:10000",
-                    "dataplaneAddr": "10.32.11.3:2152"
-                }
-          }
-        }
-    }