Updated git submodules
[docs.git] / manuals / developer-guide / src / main / asciidoc / vtn / vtn-overview.adoc
1 === OpenDaylight Virtual Tenant Network (VTN) Overview
2
3 OpenDaylight Virtual Tenant Network (VTN) is an application that provides multi-tenant virtual network on an SDN controller.
4
5 Conventionally, huge investment in the network systems and operating expenses are needed because the network is configured as a silo for each department and system. Therefore various network appliances must be installed for each tenant and those boxes cannot be shared with others. It is a heavy work to design, implement and operate the entire complex network.
6
7 The uniqueness of VTN is a logical abstraction plane. This enables the complete separation of logical plane from physical plane. Users can design and deploy any desired network without knowing the physical network topology or bandwidth restrictions.
8
9 VTN allows the users to define the network with a look and feel of conventional L2/L3 network. Once the network is designed on VTN, it will automatically be mapped into underlying physical network, and then configured on the individual switch leverage SDN control protocol. The definition of logical plane makes it possible not only to hide the complexity of the underlying network but also to better manage network resources. It achieves reducing reconfiguration time of network services and minimizing network configuration errors. OpenDaylight Virtual Tenant Network (VTN) is an application that provides multi-tenant virtual network on an SDN controller. It provides API for creating a common virtual network irrespective of the physical network.
10
11 It is implemented as two major components
12
13 * <<_vtn_coordinator,VTN Coordinator>>
14 * <<_vtn_manager,VTN Manager>>
15
16 .VTN Architecture
17 image::vtn/vtn-overview.png[width=500]
18
19 ==== VTN Coordinator
20
21 The VTN Coordinator is an external application that provides a REST interface for a user to use the VTN Virtualization. It interacts with VTN Manager plugin to implement the user configuration. It is also capable of multiple controller orchestration. It realizes Virtual Tenant Network (VTN) provisioning in OpenDaylight Controllers (ODC). In the OpenDaylight architecture VTN Coordinator is part of the network application, orchestration and services layer. VTN Coordinator has been implemented as an external application to the OpenDaylight controller. This component is responsible for the VTN virtualization. VTN Coordinator will use the REST interface exposed by the VTN Manger to realize the virtual network using the OpenDaylight controller. It uses OpenDaylight APIs (REST) to construct the virtual network in ODCs. It provides REST APIs for northbound VTN applications and supports virtual networks spanning across multiple ODCs by coordinating across ODCs.
22
23 ===== Feature Overview
24
25 VTN Coordinator doesn't have Karaf features.
26
27 For VTN Coordinator REST API, please refer: https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_%28VTN%29:VTN_Coordinator:RestApi
28
29 ==== VTN Manager
30 An OpenDaylight Controller Plugin that interacts with other modules to implement the components of the VTN model. It also provides a REST interface to configure VTN components in ODL controller. VTN Manager is implemented as one plugin to the OpenDaylight controller. This provides a REST interface to create/update/delete VTN components. The user command in VTN Coordinator is translated as REST API to VTN Manager by the ODC Driver component. In addition to the above mentioned role, it also provides an implementation to the OpenStack L2 Network Functions API.
31
32 ===== Function Outline
33
34 The table identifies the functions and the interface used by VTN Components:
35
36 [options="header"]
37 |===
38 | Component | Interface | Purpose
39 | VTN Manager |RESTful API | Configure VTN Virtualization model components in OpenDaylight
40 | VTN Manager | Neutron API implementation | Handle Networks API from OpenStack (Neutron Interface)
41 | VTN Coordinator | RESTful API |
42 (1) Uses the RESTful interface of VTN Manager and configures VTN Virtualization model components in OpenDaylight. +
43 (2) Handles multiple controller orchestration. +
44 (3) Provides API to read the physical network details. See https://wiki.OpenDaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Coordinator:RestApi:L2_Network_Example_Using_VTN_Virtualization[samples] for usage.
45
46 |===
47
48 ===== Feature Overview
49
50 There are three features
51
52 * *odl-vtn-manager* provides VTN Manager's JAVA API.
53 * *odl-vtn-manager-rest* provides VTN Manager's REST API.
54 * *odl-vtn-manager-neutron* provides the integration with Neutron interface.
55
56 REST API documentation for VTN Manager, please refer: 
57 https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-merge-stable-lithium/lastSuccessfulBuild/artifact/manager/northbound/target/site/wsdocs/rest.html
58
59 For VTN Java API documentation, please visit: https://jenkins.opendaylight.org/releng/view/vtn/job/vtn-merge-master/lastSuccessfulBuild/artifact/manager/api/target/apidocs/index.html
60
61 VTN Manager API: https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_%28VTN%29:VTN_Manager:RestApi
62
63 === Usage Examples
64 *  https://wiki.OpenDaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Coordinator:RestApi:How_to_configure_L2_Network_with_Single_Controller[L2 Network using Single Controller]