SEBA-386 Remove VTN documentation that was moved

Change-Id: Icbf03b670423a62d36e45eb9dd82527f4275afd2
diff --git a/docs/vtn-xos.jpeg b/docs/vtn-xos.jpeg
deleted file mode 100644
index 85ad751..0000000
--- a/docs/vtn-xos.jpeg
+++ /dev/null
Binary files differ
diff --git a/docs/xos_vtn.md b/docs/xos_vtn.md
deleted file mode 100644
index 23e1947..0000000
--- a/docs/xos_vtn.md
+++ /dev/null
@@ -1,363 +0,0 @@
-# VTN and Service Composition
-
-CORD's support for service composition depends on VTN. The following focuses on
-the interface VTN exports, and how XOS interacts with VTN interconnect
-services. For more information about VTN’s internals and its relationship to
-the CORD fabric, see the
-[Trellis](https://wiki.opencord.org/display/CORD/Trellis%3A+CORD+Network+Infrastructure)
-documentation.
-
-## VTN-Provided Networks
-
-Each Service is connected to one or two *Management Networks* and one or more
-*Data Networks*. VTN implements both types of networks.
-
-VTN defines two management networks that instances can join:
-
-* **MANAGEMENT_LOCAL:** This puts the instance on the 172.27.0.0/24 network,
-  which is limited to the local compute node. The compute node's root context
-  is always 172.27.0.1 on this local network. Synchronizers currently use this
-  network to SSH into an Instance to configure it. They SSH to the compute
-  node's root context, and then from there into the Instance.
-
-* **MANAGEMENT_HOST:** This puts the instance on the 10.1.0.0/24 network that
-  does span compute nodes and does offer end-to-end connectivity to the head
-  node. This network currently runs over the physical management network.
-
-These two management networks are completely independent. A Slice can choose to
-participate in either of them, neither of them, or both of them. In the latter
-case, each instance has two management interfaces, one with a 172.27.0.0/24
-address and one with a 10.1.0.0/24 address. Instances on different compute
-nodes can talk to each other on MANAGEMENT_HOST, but they cannot talk to each
-other on MANAGEMENT_LOCAL.
-
-> NOTE: These two management networks are entirely configurable: 172.27.0.0/24
-> and 10.1.0.0/24 are what been set for CORD-in-a-Box but need not necessarily
-> be the same on a physical POD.
-
-The rest of this guide focuses on the Data Network, which connects all the
-instances in a Service to each other (by default), but optionally can also
-connect that network to other networks in CORD. VTN is responsible for both
-implementing the base (default) Data Network and for splicing that network to
-other networks. These “other” networks are provided by both VTN (i.e., the
-other network is some other Service’s base Data Network) and by other CORD
-services (e.g., vOLT, vRouter).
-
-When first created, each Data Network is *Private* by default, analogous to a
-private network in OpenStack (i.e., it connects only the Instances in the
-Service). The network can remain private, or it can be connected onto one or
-more other networks. These other networks can themselves be the Data Network of
-some other Service, but it is also possible to connect a Service’s Data Network
-to the public Internet, making the Instances Internet-routable. This framing of
-how to connect a Service to the public Internet is unusual (i.e., one connects
-to a public network by augmenting an existing a Private network), but it is
-helpful to view the public Internet being just like any other network in CORD:
-it is provided by some service. In the case of the public Internet, this
-service is currently provided by vRouter.
-
-> Note: While it is natural to expect an Instance to connect directly to a
-Public network (as opposed to first connecting to a private network and then
-splicing that network to a public network), that exploits a race condition
-involving Neutron. Should Neutron have had the opportunity to come up before
-the public network is connected, a private address rather than a public address
-would be assigned to each Instance's Port. Instead, our approach is that (a)
-the private network be established as a first step, and (b) it is possible to
-assign a second address (in this case public) to each Port. This allows a
-private network to be made public at any time, and in general, being able to
-assign multiple addresses to a Port is a requirement.
-
-In addition to adding public connectivity to a private network, it is also
-possible to create a network that is public by default. This is done by setting
-the network's template's `VTN_KIND` to `public`.
-
-## Interconnecting Networks
-
-VTN programs the underlying software switches (e.g., OvS) to forward packets
-to/from the Ports of the Service’s Instances. Connecting a network onto an
-existing Data Network means Instances in the two networks can exchange packets
-according to the parameters of the splicing operation (see below) and it may
-result in a new address being assigned to each Port.
-
-A Service’s Data Network is interconnected to other networks as a consequence
-or the corresponding Services being composed in the Service Graph. There are
-four cases, depending on whether the two services being composed are
-implemented in the network control plane or the network data plane. We start
-with the example most people assume (the two services implement VNFs in the
-data plane), and then show how the same principle generalizes to other possible
-compositions.
-
-When a dependency is established between a pair of data plane services, denoted
-A → B, it causes the Data Networks of A and B to be interconnected according to
-attribute’s assigned to their respective Data Networks. (To simplify the
-discussion we assume each Service has one Slice and each Slice has one Network.
-In practice, it is necessary to specify which of the Service’s Networks are
-being interconnected.) Two attribute vectors are (currently) defined:
-
-* *Direct* vs *Indirect*
-
-* *Unidirectional* vs *Bidirectional*
-
-The first defines whether A uses *Direct* addressing for the Instances of B
-(using a unique address for each Instance) or *Indirect* addressing (using a
-Service-wide address, where VTN implements load balancing by forwarding the
-packet to a specific Instance). The second defines whether communication is
-*Unidirectional* (A can send packets to B but not vice versa) or
-*Bidirectional* (A and B can send packets to each other).
-
-Technically, these attributes are associated with Service B’s Network rather
-than with the interconnection of A to B. When A interconnects with B, the
-properties of B’s Data Network dictate the terms of the interconnection. But as
-we expand the capability, it may be possible that attributes of the
-interconnection will be specified with the interconnection model rather than
-one or other of the networks being interconnected.
-
-The above corresponds to a service implemented by one set of Instances being
-composed with a service implemented by another set of Instances. This results
-in two VTN-implemented Data Networks being connected together. Because VTN
-allocates a disjoint block of addresses drawn from a common private address
-space to each Data Network, this means a new block of addresses becomes visible
-to (routable from) each Service; each Instance continues to have the same
-private IP address assigned to its Ports.
-
-In general, however, one or both of A and B might be “control plane” Services,
-in which case it implements a network rather than uses a network. Two examples
-are vOLT and vRouter, meaning we have two “mixed” service interconnections:
-
-* vOLT → vSG (a control plane service connects to a data plane service)
-
-* vSG → vRouter (a data plane service connects to a control plane service)
-
-What this means is that rather than VTN splicing together two VTN-based Data
-Networks, we are asking VTN to connect some “other” network to the VTN-defined
-Data Network.
-
-Similarly, this generalizes to account for other Networks-as-a-Service; e.g.,
-
-* vSG → vNaaS (a container connects to a wide-area virtual
-  Network-as-a-Service)
-
-Finally, although VTN does not yet support this case, one can imagine a
-situation where one control plane service connects to another control plane
-service, in which case VTN will need to interconnect two networks (neither of
-which VTN implements itself). For example:
-
-* vOLT → vRouter (from R-CORD)
-
-* vEE → vNaaS (from E-CORD)
-
-Looking across this set of examples, there are two subcases. In the first, when
-interconnecting two VTN-based networks, the result is basically the union of
-the two original networks (with restrictions). In the second, when
-interconnecting a Service to some ONOS-provided network, the result is to
-dynamically add the ServiceInstances to that new network, with the side-effect
-of the instances being assigned a new address on that network. These two
-subcases can be traced back to the two roles VTN plays: (1) it connects
-instances to networks, and (2) it provides a private network for a set of
-instances.
-
-## Components and Interfaces
-
-Two interfaces (one provided by VTN and the other provided by XOS) are
-necessary to support service composition. XOS invokes the VTN-provided API to
-interconnect networks belonging to two composed services. VTN invokes the
-XOS-provided API to restore interconnection state (e.g., if VTN restarts), but
-this interface is not involved in typical XOS/VTN interaction. The following
-diagram shows the relationship between XOS, OpenStack Neutron, and the various
-sub-systems of VTN.
-
-![VTN relationships](vtn-xos.jpeg)
-
-In a configuration that includes OpenStack, XOS indirectly calls VTN via
-Neutron. In this case, Neutron's ML2 plugin informs OpenStack Nova about the
-virtual network connecting a set of instances. XOS can also create a virtual
-network by directly calling VTN without Neutron's involvement (e.g,. to
-interconnect Docker containers).
-
-Because VTN provides a CLI to purge its internal state, it uses the
-XOS-provided API to resync with XOS. This VTN-to-XOS interface is not shown in
-the figure.
-
-## XOS Provided API
-
-* `GET xosapi/v1/vtn/vtnservices` Get a list of VTN services
-* `PUT xosapi/v1/vtn/vtnservices/{service_id}` Update a VTN service
-
-To cause VTN to be resynchronized from XOS to the VTN app, the following steps
-are performed:
-
-1. `GET xosapi/v1/vtn/vtnservices/` This will provide a list of registered VTN
-   services. There's usually only one, and it's `id` is typically set to `1`,
-   but we recommend always getting the list of services rather than assuming an
-   the id.
-
-2. `PUT xosapi/v1/vtn/vtnservices/{service_id}` with data `{"resync": true}`.
-   `{service_id}` is the identifier you retrieved in step (1).
-
-## VTN Provided API
-
-### ServicePorts
-
-* `POST onos/cordvtn/servicePorts`  Create a service port
-
-* `GET onos/cordvtn/servicePorts`  List service ports including service port
-  details
-
-* `GET onos/cordvtn/servicePorts/{port_id}`  Show service port details
-
-* `DELETE onos/cordvtn/servicePorts/{port_id}`  Delete a service port
-
-#### Service Port Details
-
-| Parameters | Type | Description |
-| --------- | ---- | --------- |
-| id * | UUID | The UUID of the service port.|
-| network_id * | UUID | The UUID of the attached service network.|
-|name * | string | The name of the port on the switch.|
-|vlan_id | number | VLAN ID of the port interface.|
-| mac_address | string | The MAC address of the port interface.|
-| ip_address | string | The IP address of the port interface.|
-| floating_address_pairs | list | Additional public addresses allowed to the port interface.|
-| ip_address | string | Additional public IP address.|
-| mac_address | string | Additional MAC address mapped to the public IP address.|
-
-> NOTE: `*` fields are mandatory for creating a new service port.
-
-Example json request:
-
-```json
-{
-   "ServicePort":{
-      "id":"b8ba3d85-1dec-49f9-8503-6f1b90399152",
-      "network_id":"0f30807c-fce0-4fa5-9c36-99ff6d4d0ae1",
-      "name":"tapb8ba3d85-1d",
-      "vlan_id":222,
-      "mac_address":"FA:16:3E:56:77:45",
-      "ip_address":"10.0.2.2",
-      "floating_address_pairs":[
-         {
-            "ip_address":"10.6.1.131",
-            "mac_address":"02:42:0A:06:01:83"
-         },
-         {
-            "ip_address":"10.6.1.130",
-            "mac_address":"02:42:0A:06:01:82"
-         }
-      ]
-   }
-}
-```
-
-### ServiceNetworks
-
-* `POST onos/cordvtn/serviceNetworks`  Create a service network
-
-* `GET onos/cordvtn/serviceNetworks`  List service networks including the
-  details
-
-* `GET onos/cordvtn/serviceNetworks/{network_id}`  Show service network
-  details
-
-* `PUT onos/cordvtn/serviceNetworks/{network_id}`  Update a service network
-  dependencies
-
-* `DELETE onos/cordvtn/serviceNetworks/{network_id}`  Delete a service network
-
-#### Service Network Details
-
-| Parameters | Type | Description |
-| --------- | ---- | --------- |
-| id * | UUID | The UUID of the service network. |
-| name | string | The name of the service network. |
-| type * | string | The type of the service network |
-|segment_id | integer | The ID of the isolated segment on the physical network. Currently, only VXLAN based isolation is supported and this ID is a VNI. |
-| subnet | string | The associated subnet. |
-| providers | list | The list of the provider service networks.|
-| id | string | The UUID of the provider service network.|
-| bidirectional | boolean | The dependency, which is bidirectional (true) or unidirectional (false).|
-
-> NOTE: `*` fields are mandatory for creating a new service port.
-
-#### Service Network Types
-
-* PRIVATE: virtual network for the instances in the same service
-* PUBLIC: externally accessible network
-* MANAGEMENT_LOCAL: instance management network which does not span compute
-  nodes, only accessible from the host machine
-* MANAGEMENT_HOST: real management network which spans compute and head nodes
-* ACCESS_AGENT: network for access agent infrastructure service
-
-Example json request:
-
-```json
-{
-   "ServiceNetwork":{
-      "id":"e4974238-448c-4b5c-9a45-b27c9477eb6a",
-      "name":"mysite_one-access",
-      "type":"PRIVATE",
-      "segment_id":1018,
-      "subnet":"10.0.3.0/24",
-      "service_ip":"10.0.3.1",
-      "providers":[
-         {
-             "id": "71cc8c93-f809-42ff-b1d6-0c8d92c6cd2b",
-             "bidirectional": true
-         }
-      ]
-   }
-}
-```
-
-## Relationship to Core Models
-
-Two of CORD's [core models](core_models.md) play a role in service composition,
-and hence, in the XOS/VTN interaction.
-
-The first is the *ServiceDependency* model, which defines an edge in the
-Service Graph, connecting a consumer service to a provider service. XOS uses
-this model to instruct VTN in how to interconnect the two services in the
-underlying data plane. This interconnection is specified by a `connect_method`
-field, with the following values currently supported:
-
-* `None`  No network connectivity is provided (services not connected in data
-  plane)
-
-* `Public` Connected via a public network (currently implemented by vRouter)
-
-* `Private-unidirectional` Connected via a private network with unidirectional
-  connectivity (currently implemented by VTN)
-
-* `Private-bidirectional` Connected via a private network with bidirectional
-  connectivity (currently implemented by VTN)
-
-* `Other` Connected via some other network (how specified is TBD)
-
-> NOTE: The `Other` choice does not currently exist. We expect to add it in the
-> near future as we reconcile how networks are parameterized (see below).
-
-The second is the *NetworkTemplate* model, which defines the parameters by
-which all networks are set up, including any VTN-provided networks (which
-corresponds to the situation where `connect_method = Private`). This model
-includes a `vtn_kind` field, with the following values currently supported:
-
-* `PRIVATE` Provides a private network for the instances in the same service
-
-* `PUBLIC` Provides an externally accessible network public network
-
-* `MANAGEMENT_LOCAL` Provides a node-local (virtual) management network
-
-* `MANAGEMENT_HOST` Provides a CORD-wide (physical) management network
-
-* `VSG` Provides an access-side network
-
-* `ACCESS_AGENT` Provides a network for access agent infrastructure service
-
-> NOTE: The NetworkTemplate model needs to be cleaned up and reconciled with
-> the ServiceDependency model. For example, there are currently three different
-> places one can specify some version of public versus private, and the
-> `choices` imposed on various fields are not currently enforced. The logic
-> that controls how XOS invokes VTN can be found in the VTN synchronizer, and
-> can be summarized as follows: If a ServiceDependency exists between Services
-> A and B, then VTN will connect every eligible Network in A to every eligible
-> network in B, where a network is eligible if its NetworkTemplate's `vtn_kind`
-> field is set of `VSG` or `Private`.
-