# Ignore jenkins because it's often slow to respond.
'https://jenkins.opendaylight.org/releng',
'https://jenkins.opendaylight.org/sandbox',
- 'http://\$CONTROL_HOST:8181/dlux/index.html',
# The '#' in the path makes sphinx think it's an anchor
'https://git.opendaylight.org/gerrit/#/admin/projects/releng/builder',
]
+++ /dev/null
-DLUX
-====
-
-Setup and Run
--------------
-
-Required Technology Stack
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- AngularJS (JavaScript client-side framework, http://www.angularjs.org
- )
-
-Run DLUX
-~~~~~~~~
-
-To turn on the DLUX UI, install DLUX core feature via running following
-command on the Karaf console -
-
-::
-
- feature:install odl-dlux-core
-
-The above command will install odl-restconf along with core DLUX components. Once this
-feature is successfully installed, access the UI at
-http://localhost:8181/index.html. The default credentials for login are
-admin/admin. After successful login you'll see empty page.
-For applications, continue with DluxApps project.
-
-DLUX Modules
-------------
-
-DLUX modules are the individual features such as nodes and topology.
-Each module has a defined structure and you can find all existing
-modules at
-https://github.com/opendaylight/dlux/tree/stable/boron/modules.
-
-Module Structure
-~~~~~~~~~~~~~~~~
-
-- module\_folder
-
- - <module\_name>.module.js
-
- - <module\_name>.controller.js
-
- - <module\_name>.services.js
-
- - <module\_name>.directives.js
-
- - <module\_name>.filter.js
-
- - index.tpl.html
-
- - <a\_stylesheet>.css
-
-Create New Module
-~~~~~~~~~~~~~~~~~
-
-Define the module
-^^^^^^^^^^^^^^^^^
-
-1. Create an empty maven project and create your module folder under
- src/main/resources.
-
-2. Create an empty file with pattern <module\_name>.module.js.
-
-3. Next, you need to surround the angular module with a define function.
- This allows RequireJs to see our module.js files. The first argument
- is an array which contains all the module’s dependencies. The second
- argument is a callback function, whose body contain the AngularJS
- code base. The function parameters correspond with the order of
- dependencies. Each dependency is injected into a parameter, if it is
- provided.
-
-4. Finally, you will return the angular module to be able to inject it
- as a parameter in others modules.
-
-For each new module, you must have at least these two dependencies :
-
-- angularAMD : It’s a wrapper around AngularJS to provide an AMD
- (Asynchronous Module Definition) support, which is used by RequireJs.
- For more information see the `AMD
- documentation <https://github.com/amdjs/amdjs-api/blob/master/AMD.md>`__.
-
-- app/core/core.services : This one is mandatory, if you want to add
- content in the navigation menu, the left bar or the top bar.
-
-The following are not mandatory, but very often used.
-
-- angular-ui-router : A library to provide URL routing.
-
-- routingConfig : To set the level access to a page.
-
-Your module.js file might look like this:
-
-::
-
- define(['angularAMD','app/routingConfig', 'angular-ui-router','app/core/core.services'], function(ng) {
- var module = angular.module('app.a_module', ['ui.router.state', 'app.core']);
- // module configuration
- module.config(function() {
- [...]
- });
- return module;
- });
-
-Set the register function
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-AngularJS allows lazy registration of a module’s components such as
-controller, factory etc. Once you will install your application, DLUX
-will load your module javascript, but not your angular component during
-bootstrap phase. You have to register your angular components to make
-sure they are available at the runtime.
-
-Here is how to register your module’s component for lazy initialization
--
-
-::
-
- module.config(function($compileProvider, $controllerProvider, $provide) {
- module.register = {
- controller : $controllerProvider.register,
- directive : $compileProvider.directive,
- factory : $provide.factory,
- service : $provide.service
- };
- });
-
-Set the route
-^^^^^^^^^^^^^
-
-The next step is to set up the route for your module. This part is also
-done in the configuration method of the module. We have to add
-**$stateProvider** as a parameter.
-
-::
-
- module.config(function($stateProvider) {
- var access = routingConfig.accessLevels;
- $stateProvider.state('main.module', {
- url: 'module',
- views : {
- 'content' : {
- templateUrl: 'src/app/module/module.tpl.html',
- controller: 'ModuleCtrl'
- }
- }
- });
- });
-
-Adding element to the navigation menu
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To be able to add item to the navigation menu, the module requires the
-**NavHelperProvider** parameter in the configuration method.
-**addToMenu** method in **NavMenuHelper** helper allows an item addition
-to the menu.
-
-::
-
- var module = angular.module('app.a_module', ['app.core']);
- module.config(function(NavMenuHelper) {
- NavMenuHelper.addToMenu('myFirstModule', {
- "link" : "#/module/index",
- "active" : "module",
- "title" : "My First Module",
- "icon" : "icon-sitemap",
- "page" : {
- "title" : "My First Module",
- "description" : "My first module"
- }
- });
- });
-
-The first parameter is an ID that refers to the level of your menu and
-the second is a object. For now, The ID parameter supports two levels of
-depth. If your ID looks like *rootNode.childNode*, the helper will look
-for a node named *rootNode* and it will append the *childNode* to it. If
-the root node doesn’t exist, it will create it.
-
-Link the AngularJS module’s controller file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To include the module’s controller file, you can use the
-NavHelperProvider. It contains a method that will load the given file.
-
-::
-
- [...]
- NavHelperProvider.addControllerUrl('<path_to_module_folder>/<module_name>.controller');
-
-This completes your module.js file.
-
-Create the controller, factory, directive, etc
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Creating the controller and other components is similar to the module.
-
-- First, add the define method.
-
-- Second, add the relative path to the module definition.
-
-- Last, create your methods as you usually do it with AngularJS.
-
-For example -
-
-::
-
- define(['<relative_path_to_module>/<module_name>.module'], function(module) {
- module.register.controller('ModuleCtrl', function($rootScope, $scope) {
- });
- });
-
-Add new application using DLUX modularity
------------------------------------------
-
-DLUX works as a Karaf based UI platform, where you can create a new
-Karaf feature of your UI component and install that UI applications in
-DLUX using blueprint. This page will help you to create and load a new
-application for DLUX. You don’t have to add new module in DLUX
-repository.
-
-Add a new OSGi blueprint bundle
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The OSGi Blueprint Container specification allows us to use dependency
-injection in our OSGi environment. Each DLUX application module
-registers itself via blueprint configuration. Each application will have
-its own blueprint.xml to place its configuration.
-
-1. Create a maven project to place blueprint configuration. For
- reference, take a look at topology bundle, present at
- https://github.com/opendaylight/dlux/tree/stable/boron/bundles/topology.
- All the existing DLUX modules' configurations are available under
- bundles directory of DLUX code.
-
-2. In pom.xml, you have to add a maven plugin to unpack your module code
- under generated-resources of this project. For reference, you can
- check pom.xml of dlux/bundles/topology at
- https://github.com/opendaylight/dlux/tree/stable/boron/bundles/topology.
- Your bundle will eventually get deployed in Karaf as feature, so your
- bundle should contain all your module code. If you want to combine
- module and bundle project, that should not be an issue either.
-
-3. Create a blueprint.xml configuration file under
- src/main/resources/OSGI-INF/blueprint. Below is the content of the
- blueprint.xml taken from topology bundles’s blueprint.xml. Any new
- application should create a blueprint.xml in following format -
-
-::
-
- <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
- <reference id="httpService" availability="mandatory" activation="eager" interface="org.osgi.service.http.HttpService"/>
- <reference id="loader" availability="mandatory" activation="eager" interface="org.opendaylight.dlux.loader.DluxModuleLoader"/>
-
- <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.opendaylight.dlux.loader.DluxModule">
- <property name="httpService" ref="httpService"/>
- <property name="loader" ref="loader"/>
- <property name="moduleName" value="topology "/>
- <property name="url" value="/src/app/topology"/>
- <property name="directory" value="/topology"/>
- <property name="requireJs" value="app/topology/topology.module"/>
- <property name="angularJs" value="app.topology"/>
- <property name="cssDependencies">
- <list>
- <value>http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css</value>
- <value>src/app/topology/topology-custom.css</value>
- </list>
- </property>
- </bean>
- </blueprint>
-
-In above configuration, there are two references with id httpService and
-loader. These two beans will already be initialized by dlux-core, so any
-new application can use them. Without these two bean references, a new
-application will not be able to register.
-
-Next is the initialization of your application bean, which will be an
-instance of class org.opendaylight.dlux.loader.DluxModule. There are 5
-properties that you should provide in this bean besides the references
-of httpService and loader. Lets talk about those bean properties in
-little more detail.
-
-**moduleName** : Name of your module. This name should be unique in
-DLUX.
-
-**url**: This is the url via which RequireJS in DLUX will try to load
-your module JS/HTML files. Also, this is the url that browser will use
-to load the static HTML, JS or CSS files. RequireJS in DLUX has a base
-path of **src**, so all the url should start with /src so RequireJS and
-the browser can correctly find the files.
-
-**directory**: In your bundle’s pom.xml, you unpack your module code.
-This is the directory where your actual static files will reside. The
-above mentioned url is registered with httpService, so when browser
-makes a call to that url, it will be redirected to the directory
-mentioned here. In the above example, all the topology files are present
-under /topology directory and the browser/RequireJS can access those
-files with uri /src/app/topology.
-
-**requireJS**: This is the path to your RequireJS module. If you notice
-closely, you will see the initial path of RequireJS app/topology in the
-above example matches with the last part of url. This path will be be
-used by RequireJS. As mentioned above, we have kept **src** as base path
-in RequireJS, that is the exact reason that url start with /src.
-
-**angularJS**: name of your AngularJS module.
-
-**cssDependencies**: If the application has any external/internal css
-dependencies, then those can be added here. If you create your own css
-files, just point to those css files here. Use the url path that you
-mentioned above, so the browser can find your css file.
-
-OSGi understands blueprint.xml, once you will deploy your bundle in
-karaf (or you can create a new feature for your application), karaf will
-read your blueprint.xml and it will try to register your application
-with dlux. Once successful, if you refresh your dlux UI, you will see
-your application in left hand navigation bar of dlux.
-
-Yang Utils
-----------
-
-Yang Utils are used by UI to perform all CRUD operations. All of these
-utilities are present in yangutils.services.js file. It has following
-AngularJS factories -
-
-- **arrayUtils** – defines functions for working with arrays.
-
-- **pathUtils** – defines functions for working with xpath (paths to
- APIs and subAPIs). It divides xpath string to array of elements, so
- this array can be later used for search functions.
-
-- **syncFact** – provides synchronization between requests to and from
- OpenDaylight when it’s needed.
-
-- **custFunct** – it is linked with
- apiConnector.createCustomFunctionalityApis in yangui controller in
- yangui.controller.js. That function makes it possible to create some
- custom function called by the click on button in index.tpl.html. All
- custom functions are stored in array and linked to specific subAPI.
- When particular subAPI is expanded and clicked, its inputs (linked
- root node with its child nodes) are displayed in the bottom part of
- the page and its buttons with custom functionality are displayed
- also.
-
-- **reqBuilder** – Builds object in JSON format from input fields of
- the UI page. **Show Preview** button on Yang UI use this builder.
- This request is sent to OpenDaylight when button PUT or POST is
- clicked.
-
-- **yinParser** – factory for reading .xml files of yang models and
- creating object hierarchy. Every statement from yang is represented
- by a node.
-
-- **nodeWrapper** – adds functions to objects in tree hierarchy created
- with yinParser. These functions provide functionality for every type
- of node.
-
-- **apiConnector** – the main functionality is filling the main
- structures and linking them. Structure of APIs and subAPIs which is
- two level array - first level is filled by main APIs, second level is
- filled by others sub APIs. Second main structure is array of root
- nodes, which are objects including root node and its children nodes.
- Linking these two structures is creating links between every subAPI
- (second level of APIs array) and its root node, which must be
- displayed like inputs when subAPI is expanded.
-
-- **yangUtils** – some top level functions which are used by yangui
- controller for creating the main structures.
-
+++ /dev/null
-=================
-DLUX Applications
-=================
-
-Setup and Run
--------------
-
-Required Technology Stack
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-- AngularJS (JavaScript client-side framework, http://www.angularjs.org
- )
-
-Run DLUX
-~~~~~~~~
-
-To turn on the DLUX Applications, install feature via running following
-command on the Karaf console -
-
-::
-
- feature:install odl-dluxapps-applications
-
-The above command will install odl-dlux-core along with all DLUX applications. Once this
-feature is successfully installed, access the UI at
-http://localhost:8181/index.html. The default credentials for login are
-admin/admin.
-
-DLUX Modules
-------------
-
-DLUX modules are the individual features such as nodes and topology.
-Each module has a defined structure and you can find all existing
-modules at
-https://github.com/opendaylight/dlux/tree/stable/boron/modules.
-
-Module Structure
-~~~~~~~~~~~~~~~~
-
-- module\_folder
-
- - <module\_name>.module.js
-
- - <module\_name>.controller.js
-
- - <module\_name>.services.js
-
- - <module\_name>.directives.js
-
- - <module\_name>.filter.js
-
- - index.tpl.html
-
- - <a\_stylesheet>.css
-
-Create New Module
-~~~~~~~~~~~~~~~~~
-
-Define the module
-^^^^^^^^^^^^^^^^^
-
-1. Create an empty maven project and create your module folder under
- src/main/resources.
-
-2. Create an empty file with pattern <module\_name>.module.js.
-
-3. Next, you need to surround the angular module with a define function.
- This allows RequireJs to see our module.js files. The first argument
- is an array which contains all the module’s dependencies. The second
- argument is a callback function, whose body contain the AngularJS
- code base. The function parameters correspond with the order of
- dependencies. Each dependency is injected into a parameter, if it is
- provided.
-
-4. Finally, you will return the angular module to be able to inject it
- as a parameter in others modules.
-
-For each new module, you must have at least these two dependencies :
-
-- angularAMD : It’s a wrapper around AngularJS to provide an AMD
- (Asynchronous Module Definition) support, which is used by RequireJs.
- For more information see the `AMD
- documentation <https://github.com/amdjs/amdjs-api/blob/master/AMD.md>`__.
-
-- app/core/core.services : This one is mandatory, if you want to add
- content in the navigation menu, the left bar or the top bar.
-
-The following are not mandatory, but very often used.
-
-- angular-ui-router : A library to provide URL routing.
-
-- routingConfig : To set the level access to a page.
-
-Your module.js file might look like this:
-
-::
-
- define(['angularAMD','app/routingConfig', 'angular-ui-router','app/core/core.services'], function(ng) {
- var module = angular.module('app.a_module', ['ui.router.state', 'app.core']);
- // module configuration
- module.config(function() {
- [...]
- });
- return module;
- });
-
-Set the register function
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-AngularJS allows lazy registration of a module’s components such as
-controller, factory etc. Once you will install your application, DLUX
-will load your module javascript, but not your angular component during
-bootstrap phase. You have to register your angular components to make
-sure they are available at the runtime.
-
-Here is how to register your module’s component for lazy initialization
--
-
-::
-
- module.config(function($compileProvider, $controllerProvider, $provide) {
- module.register = {
- controller : $controllerProvider.register,
- directive : $compileProvider.directive,
- factory : $provide.factory,
- service : $provide.service
- };
- });
-
-Set the route
-^^^^^^^^^^^^^
-
-The next step is to set up the route for your module. This part is also
-done in the configuration method of the module. We have to add
-**$stateProvider** as a parameter.
-
-::
-
- module.config(function($stateProvider) {
- var access = routingConfig.accessLevels;
- $stateProvider.state('main.module', {
- url: 'module',
- views : {
- 'content' : {
- templateUrl: 'src/app/module/module.tpl.html',
- controller: 'ModuleCtrl'
- }
- }
- });
- });
-
-Adding element to the navigation menu
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To be able to add item to the navigation menu, the module requires the
-**NavHelperProvider** parameter in the configuration method.
-**addToMenu** method in **NavMenuHelper** helper allows an item addition
-to the menu.
-
-::
-
- var module = angular.module('app.a_module', ['app.core']);
- module.config(function(NavMenuHelper) {
- NavMenuHelper.addToMenu('myFirstModule', {
- "link" : "#/module/index",
- "active" : "module",
- "title" : "My First Module",
- "icon" : "icon-sitemap",
- "page" : {
- "title" : "My First Module",
- "description" : "My first module"
- }
- });
- });
-
-The first parameter is an ID that refers to the level of your menu and
-the second is a object. For now, The ID parameter supports two levels of
-depth. If your ID looks like *rootNode.childNode*, the helper will look
-for a node named *rootNode* and it will append the *childNode* to it. If
-the root node doesn’t exist, it will create it.
-
-Link the AngularJS module’s controller file
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To include the module’s controller file, you can use the
-NavHelperProvider. It contains a method that will load the given file.
-
-::
-
- [...]
- NavHelperProvider.addControllerUrl('<path_to_module_folder>/<module_name>.controller');
-
-This completes your module.js file.
-
-Create the controller, factory, directive, etc
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Creating the controller and other components is similar to the module.
-
-- First, add the define method.
-
-- Second, add the relative path to the module definition.
-
-- Last, create your methods as you usually do it with AngularJS.
-
-For example -
-
-::
-
- define(['<relative_path_to_module>/<module_name>.module'], function(module) {
- module.register.controller('ModuleCtrl', function($rootScope, $scope) {
- });
- });
-
-Add new application using DLUX modularity
------------------------------------------
-
-DLUX works as a Karaf based UI platform, where you can create a new
-Karaf feature of your UI component and install that UI applications in
-DLUX using blueprint. This page will help you to create and load a new
-application for DLUX. You don’t have to add new module in DLUX
-repository.
-
-Add a new OSGi blueprint bundle
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The OSGi Blueprint Container specification allows us to use dependency
-injection in our OSGi environment. Each DLUX application module
-registers itself via blueprint configuration. Each application will have
-its own blueprint.xml to place its configuration.
-
-1. Create a maven project to place blueprint configuration. For
- reference, take a look at topology bundle, present at
- https://github.com/opendaylight/dlux/tree/stable/boron/bundles/topology.
- All the existing DLUX modules' configurations are available under
- bundles directory of DLUX code.
-
-2. In pom.xml, you have to add a maven plugin to unpack your module code
- under generated-resources of this project. For reference, you can
- check pom.xml of dlux/bundles/topology at
- https://github.com/opendaylight/dlux/tree/stable/boron/bundles/topology.
- Your bundle will eventually get deployed in Karaf as feature, so your
- bundle should contain all your module code. If you want to combine
- module and bundle project, that should not be an issue either.
-
-3. Create a blueprint.xml configuration file under
- src/main/resources/OSGI-INF/blueprint. Below is the content of the
- blueprint.xml taken from topology bundles’s blueprint.xml. Any new
- application should create a blueprint.xml in following format -
-
-::
-
- <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
- <reference id="httpService" availability="mandatory" activation="eager" interface="org.osgi.service.http.HttpService"/>
- <reference id="loader" availability="mandatory" activation="eager" interface="org.opendaylight.dlux.loader.DluxModuleLoader"/>
-
- <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.opendaylight.dlux.loader.DluxModule">
- <property name="httpService" ref="httpService"/>
- <property name="loader" ref="loader"/>
- <property name="moduleName" value="topology "/>
- <property name="url" value="/src/app/topology"/>
- <property name="directory" value="/topology"/>
- <property name="requireJs" value="app/topology/topology.module"/>
- <property name="angularJs" value="app.topology"/>
- <property name="cssDependencies">
- <list>
- <value>http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css</value>
- <value>src/app/topology/topology-custom.css</value>
- </list>
- </property>
- </bean>
- </blueprint>
-
-In above configuration, there are two references with id httpService and
-loader. These two beans will already be initialized by dlux-core, so any
-new application can use them. Without these two bean references, a new
-application will not be able to register.
-
-Next is the initialization of your application bean, which will be an
-instance of class org.opendaylight.dlux.loader.DluxModule. There are 5
-properties that you should provide in this bean besides the references
-of httpService and loader. Lets talk about those bean properties in
-little more detail.
-
-**moduleName** : Name of your module. This name should be unique in
-DLUX.
-
-**url**: This is the url via which RequireJS in DLUX will try to load
-your module JS/HTML files. Also, this is the url that browser will use
-to load the static HTML, JS or CSS files. RequireJS in DLUX has a base
-path of **src**, so all the url should start with /src so RequireJS and
-the browser can correctly find the files.
-
-**directory**: In your bundle’s pom.xml, you unpack your module code.
-This is the directory where your actual static files will reside. The
-above mentioned url is registered with httpService, so when browser
-makes a call to that url, it will be redirected to the directory
-mentioned here. In the above example, all the topology files are present
-under /topology directory and the browser/RequireJS can access those
-files with uri /src/app/topology.
-
-**requireJS**: This is the path to your RequireJS module. If you notice
-closely, you will see the initial path of RequireJS app/topology in the
-above example matches with the last part of url. This path will be be
-used by RequireJS. As mentioned above, we have kept **src** as base path
-in RequireJS, that is the exact reason that url start with /src.
-
-**angularJS**: name of your AngularJS module.
-
-**cssDependencies**: If the application has any external/internal css
-dependencies, then those can be added here. If you create your own css
-files, just point to those css files here. Use the url path that you
-mentioned above, so the browser can find your css file.
-
-OSGi understands blueprint.xml, once you will deploy your bundle in
-karaf (or you can create a new feature for your application), karaf will
-read your blueprint.xml and it will try to register your application
-with dlux. Once successful, if you refresh your dlux UI, you will see
-your application in left hand navigation bar of dlux.
-
-Yang Utils
-----------
-
-Yang Utils are used by UI to perform all CRUD operations. All of these
-utilities are present in yangutils.services.js file. It has following
-AngularJS factories -
-
-- **arrayUtils** – defines functions for working with arrays.
-
-- **pathUtils** – defines functions for working with xpath (paths to
- APIs and subAPIs). It divides xpath string to array of elements, so
- this array can be later used for search functions.
-
-- **syncFact** – provides synchronization between requests to and from
- OpenDaylight when it’s needed.
-
-- **custFunct** – it is linked with
- apiConnector.createCustomFunctionalityApis in yangui controller in
- yangui.controller.js. That function makes it possible to create some
- custom function called by the click on button in index.tpl.html. All
- custom functions are stored in array and linked to specific subAPI.
- When particular subAPI is expanded and clicked, its inputs (linked
- root node with its child nodes) are displayed in the bottom part of
- the page and its buttons with custom functionality are displayed
- also.
-
-- **reqBuilder** – Builds object in JSON format from input fields of
- the UI page. **Show Preview** button on Yang UI use this builder.
- This request is sent to OpenDaylight when button PUT or POST is
- clicked.
-
-- **yinParser** – factory for reading .xml files of yang models and
- creating object hierarchy. Every statement from yang is represented
- by a node.
-
-- **nodeWrapper** – adds functions to objects in tree hierarchy created
- with yinParser. These functions provide functionality for every type
- of node.
-
-- **apiConnector** – the main functionality is filling the main
- structures and linking them. Structure of APIs and subAPIs which is
- two level array - first level is filled by main APIs, second level is
- filled by others sub APIs. Second main structure is array of root
- nodes, which are objects including root node and its children nodes.
- Linking these two structures is creating links between every subAPI
- (second level of APIs array) and its root node, which must be
- displayed like inputs when subAPI is expanded.
-
-- **yangUtils** – some top level functions which are used by yangui
- controller for creating the main structures.
-
eman is composed of 3 Karaf features:
* ``eman`` incudes the YANG model and its implementation
* ``eman-api`` adds support for REST
- * ``eman-ui`` adds support for DLUX.
Developers will typically interface with ``eman-api``.
didm-developer-guide
distribution-version
distribution-test-features
- dlux
eman-developer-guide
fabric-as-a-service
infrautils-developer-guide
::
feature:install odl-nic-core-service-mdsal odl-nic-core odl-nic-console odl-nic-listeners
- feature:install odl-dlux-core odl-dluxapps-applications
-2. Start mininet topology and verify in DLUX Topology page for the nodes
- and link.
+2. Start mininet topology. (verification of topology can be done with the topology
+ URI using RESTCONF)
::
- The USC Manager handles configurations, high availability,
security, monitoring, and clustering support for USC.
-- USC UI
-
- - The USC UI is responsible for displaying a graphical user
- interface representing the state of USC in the OpenDaylight DLUX
- UI.
-
USC Channel APIs and Interfaces
-------------------------------
For VTN Java API documentation, please refer to:
https://nexus.opendaylight.org/content/sites/site/org.opendaylight.vtn/boron/apidocs/index.html
-Once the Karaf distribution is up, install dlux and apidocs.
-
-::
-
- feature:install odl-dlux-core odl-dluxapps-applications odl-mdsal-apidocs
-
-Logging In
-''''''''''
-
-To Log in to DLUX, after installing the application:
-
-- Open a browser and enter the login URL as
- http://<OpenDaylight-IP>:8181/index.html
-
-.. note::
-
- Replace "<OpenDaylight-IP>" with the IP address of OpenDaylight
- based on your environment.
-
-- Login to the application with user ID and password credentials as
- admin.
-
-.. note::
-
- admin is the only default user available for DLUX in this release.
-
-- In the right hand side frame, click "Yang UI".
-
-YANG documentation for VTN Manager, please refer to:
-https://nexus.opendaylight.org/content/sites/site/org.opendaylight.vtn/boron/manager.model/apidocs/index.html
-
.. _vtn-coordinator:
VTN Coordinator
The Integration team is maintaining a Python based `tool
<https://github.com/opendaylight/integration-test/tree/master/tools/clustering/cluster-monitor>`_,
-that takes advantage of the above MBeans exposed via Jolokia, and the
-*systemmetrics* project offers a DLUX based UI to display the same
-information.
+that takes advantage of the above MBeans exposed via Jolokia.
.. _cluster_admin_api:
b. A message bus that provides a way for the various services and protocol
drivers to notify and communicate with one another.
-* If you’re interacting with OpenDaylight through DLUX or the REST APIs while
+* If you’re interacting with OpenDaylight through the REST APIs while
using the the OpenDaylight interfaces, the microservices architecture allows
you to select available services, protocols, and REST APIs.
* SFC requires addition features for certain configurations
* SXP depends on TCP-MD5 on thus requires 64-bit Linux
* OpFlex requires Linux
-* DLUX requires a modern web browser to view the UI
* AAA when using federation has additional requirements for external tools
* VTN has components which require Linux
+++ /dev/null
-====
-Dlux
-====
-
-Major Features
-==============
-
-odl-dlux-core
-------------------
-
-* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=dlux.git;a=blob;f=features/odl-dlux-core/pom.xml;h=8226826118c376b79924327acc656945938fcb14;hb=refs/heads/stable/oxygen
-* **Feature Description:** Core DLUX functionality
-* **Top Level:** Yes
-* **User Facing:** Yes
-* **Experimental:** Yes
-* **CSIT Test:** N/A
-
-Documentation
-=============
-
-* **Developer Guide(s):**
-
- * `Dlux Getting Started <https://wiki.opendaylight.org/view/OpenDaylight_dlux:Getting_started>`_
-
-Security Considerations
-=======================
-
-* There are no security issues found.
-
-Quality Assurance
-=================
-
-* `Link to Sonar Report <https://sonar.opendaylight.org/overview?id=72613>`_
-* GUI is tested mostly manually, CSITs are on the way.
-
-Migration
----------
-
-* All applications are moved from Dlux project to DluxApps. Only odl-dlux-core feature remains.
-
-Compatibility
--------------
-
-* Release is compatible with previous.
-
-Bugs Fixed
-----------
-
-https://jira.opendaylight.org/browse/DLUX-115?jql=project%20%3D%20DLUX%20AND%20resolution%20in%20(Done)
-
-Known Issues
-------------
-
-* `Link to Open Bugs <https://jira.opendaylight.org/projects/DLUX/issues/DLUX-67?filter=allopenissues>`_
-
-End-of-life
-===========
-
-* N/A
-
-Standards
-=========
-
-* List of standards implemented and to what extent
-
- * N/A
-
-Release Mechanics
-=================
-
-* `Link to release plan <https://wiki.opendaylight.org/view/OpenDaylight_dlux:Oxygen_Release_Plan>`_
+++ /dev/null
-========
-DluxApps
-========
-
-Major Features
-==============
-
-odl-dluxapps-nodes
-------------------
-
-* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=dluxapps.git;a=blob;f=features/odl-dluxapps-nodes/pom.xml;h=6537095c40efaa4edc62ef8da13c029420e0198b;hb=refs/heads/stable/oxygen
-* **Feature Description:** Application displays list of nodes in openflow (flow:1) topology.
-* **Top Level:** Yes
-* **User Facing:** Yes
-* **Experimental:** Yes
-* **CSIT Test:** N/A
-
-odl-dluxapps-topology
----------------------
-
-* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=dluxapps.git;a=blob;f=features/odl-dluxapps-topology/pom.xml;h=bbdb1350db72a6db6bd112cbc5e413b8a428788d;hb=refs/heads/stable/oxygen
-* **Feature Description:** Basic topology application. Displays nodes and links from openflow (flow:1) topology.
-* **Top Level:** Yes
-* **User Facing:** Yes
-* **Experimental:** Yes
-* **CSIT Test:** N/A
-
-odl-dluxapps-yangman
---------------------
-
-* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=dluxapps.git;a=blob;f=features/odl-dluxapps-yangman/pom.xml;h=c7ed37b942fb9b66feccafec6834c555568f0e30;hb=refs/heads/stable/oxygen
-* **Feature Description:** GUI for data manipulation in controller. Generates forms based on loaded Yang models.
- User can interact with controller without knowledge of Yang models, test them, etc. Replacement of YangUI app.
-* **Top Level:** Yes
-* **User Facing:** Yes
-* **Experimental:** Yes
-* **CSIT Test:** https://jenkins.opendaylight.org/releng/view/dluxapps/job/dluxapps-csit-1node-yangman-all-oxygen/
-
-odl-dluxapps-yangui
--------------------
-
-* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=dluxapps.git;a=blob;f=features/odl-dluxapps-yangui/pom.xml;h=8a94f323a4590a64aeb8ded162cd539fbc328b9e;hb=refs/heads/stable/oxygen
-* **Feature Description:** Previous version of YangUI. Will be removed in next release.
-* **Top Level:** Yes
-* **User Facing:** Yes
-* **Experimental:** Yes
-* **CSIT Test:** N/A
-
-odl-dluxapps-yangvisualizer
----------------------------
-
-* **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=dluxapps.git;a=blob;f=features/odl-dluxapps-yangvisualizer/pom.xml;h=0697a5427261df4a391a70908a794ac3a9614bcd;hb=refs/heads/stable/oxygen
-* **Feature Description:** Topology-like visualization of Yang models loaded in controller.
-* **Top Level:** Yes
-* **User Facing:** Yes
-* **Experimental:** Yes
-* **CSIT Test:** N/A
-
-Documentation
-=============
-
-* **Developer Guide(s):**
-
- * `DluxApps Developer Guide <https://wiki.opendaylight.org/view/DluxApps:DeveloperGuide>`_
-
-Security Considerations
-=======================
-
-* There are no security issues found.
-
-Quality Assurance
-=================
-
-* `Link to Sonar Report <https://sonar.opendaylight.org/overview?id=72613>`_
-* `Link to CSIT Jobs <https://jenkins.opendaylight.org/releng/view/dluxapps/search/?q=dluxapps-csit>`_
-* GUI is tested mostly manually, CSITs are on the way.
-
-Migration
----------
-
-* All applications are moved from Dlux project to DluxApps. Also feature names
- changed, so instead odl-dlux-\* use odl-dluxapps-\*. Everything else works same.
-
-Compatibility
--------------
-
-* Release is compatible with previous.
-* API changes are in feature names - odl-dlux-\* changes to odl-dluxapps-\*
-
-Bugs Fixed
-----------
-
-https://jira.opendaylight.org/browse/DLUXAPPS-29?jql=project%20%3D%20DLUXAPPS%20AND%20resolution%20in%20(Done)
-
-Known Issues
-------------
-
-* `Link to Open Bugs <https://jira.opendaylight.org/projects/DLUXAPPS/issues/DLUXAPPS-25?filter=allopenissues>`_
-
-End-of-life
-===========
-
-* odl-dluxapps-yangui - deprecated
-
-Standards
-=========
-
-* List of standrads implemented and to what extent
-
- * N/A
-
-Release Mechanics
-=================
-
-* `Link to release plan <https://wiki.opendaylight.org/view/DluxApps:Oxygen_Release_Plan>`_
-* Yang UI not removed
header, and provides support for TLS/DTLS.
* USC Manager handles configurations, high availability, security, monitoring,
and clustering support for USC.
-* USC UI is responsible for displaying a graphical user interface representing
- the state of USC in the OpenDaylight DLUX UI.
USC Channel UI
--------------
eman is composed of 3 Karaf features:
* ``eman`` incudes the YANG model and its implementation
* ``eman-api`` adds support for REST
- * ``eman-ui`` adds support for DLUX.
Developers will typically interface with ``eman-api``.
A set of virtual switches (OVS) have to be registered or discovered by
ODL. Mininet is recommended to create a OVS network. After an OVS
network is created, set up the controller IP pointing to ODL IP address
-in each of the OVS. From ODL, a physical topology can be viewed via ODL
-DLUX UI or retrieved via RESTCONF API.
+in each of the OVS. From ODL, a physical topology can be viewed via
+RESTCONF API.
Instructions
^^^^^^^^^^^^
- `the **GBP** demo and development environments for tips <#demo>`__
-It is recommended to use either:
+It is recommended to use:
- `Neutron mapper <gbp-neutron>`
-- :ref:`the UX <gbp-ux>`
-
-If the REST API must be used, and the above resources are not
-sufficient:
-
-- feature:install odl-dluxapps-yangui
-
-- browse to:
- ``http://<odl-controller>:8181/index.html``
- and select YangUI from the left menu.
-
-to explore the various **GBP** REST options
-
.. _gbp-neutron:
Using OpenStack with GBP
:maxdepth: 1
opendaylight-controller-overview
- using-the-opendaylight-user-interface-(dlux)
../getting-started-guide/common-features/clustering.rst
../getting-started-guide/common-features/persistence_and_backup.rst
well as adding mapping information through the Map Server. Key-EID
associations and mappings can also be queried via this API.
-- **GUI:** This module enables adding and querying the mapping service
- through a GUI based on ODL DLUX.
-
- **Neutron:** This module implements the OpenDaylight Neutron Service
APIs. It provides integration between the LISP service and the
OpenDaylight Neutron service, and thus OpenStack.
* NEMO REST
* The NEMO REST provides users REST APIs to access NEMO engine, that is, user could
transmit the intent instance to NEMO engine through basic REST methods.
-* NEMO UI
- * The NEMO UI provides users a visual interface to deploy service with NEMO model,
- and display the state in DLUX UI.
Installing NEMO engine
----------------------
(odl-ocpjava-protocol), provides OpenDaylight with basic OCP v4.1.1
functionality.
-There are two ways to interact with OCP service: one is via RESTCONF
-(programmatic) and the other is using DLUX web interface (manual), so
-you have to install the following features to enable RESTCONF and DLUX.
+You can interact with OCP service via RESTCONF, so you have to install
+the following features to enable RESTCONF.
::
- karaf#>feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core odl-dluxapps-applications
+ karaf#>feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs
Then install the odl-ocpplugin-all feature which includes the
odl-ocpplugin-southbound and odl-ocpplugin-app-ocp-service features.
java -classpath simple-agent-${ocp-version}.jar org.opendaylight.ocpplugin.OcpAgent 127.0.0.1 1033 XYZ 123
-Web / Graphical Interface
--------------------------
-
-Once you enable the DLUX feature, you can access the Controller GUI
-using following URL.
-
-::
-
- http://<controller-ip>:8080/index.html
-
-Expand Nodes. You should see all the radio head devices that are
-connected to the controller running at <controller-ip>.
-
-.. figure:: ./images/ocpplugin/dlux-ocp-nodes.jpg
- :alt: DLUX Nodes
-
- DLUX Nodes
-
-And expand Yang UI if you want to browse the various northbound APIs
-exposed by the OCP service.
-
-.. figure:: ./images/ocpplugin/dlux-ocp-apis.jpg
- :alt: DLUX Yang UI
-
- DLUX Yang UI
-
-For information on how to use these northbound APIs, please refer to the
-OCP Plugin Developer Guide.
-
Programmatic Interface
----------------------
karaf#>feature:install odl-restconf
-If you want to access the Controller GUI, you have to install
-*odl-dlux-core* feature to enable that. Run following command to install
-it
-
-::
-
- karaf#>feature:install odl-dlux-core
-
-Once you enable the feature, access the Controller GUI using following
-URL
-
-::
-
- http://<controller-ip>:8181/dlux/index.html
-
OpenFlow 1.3 Enabled Software Switches / Environment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Overview
~~~~~~~~
-The SFC User interface comes in two flavors:
-
-- Web Interface (SFC-UI): is based on Dlux project. It provides an easy way to
- create, read, update and delete configuration stored in the datastore.
- Moreover, it shows the status of all SFC features (e.g installed,
- uninstalled) and Karaf log messages as well.
-
-- Command Line Interface (CLI): it provides several Karaf console commands to
- show the SFC model (SF, SFFs, etc.) provisioned in the datastore.
+The SFC User interface comes with a Command Line Interface (CLI): it provides
+several Karaf console commands to show the SFC model (SF, SFFs, etc.) provisioned
+in the datastore.
SFC Web Interface (SFC-UI)
- The USC Manager handles configurations, high availability,
security, monitoring, and clustering support for USC.
-- USC UI
-
- - The USC UI is responsible for displaying a graphical user
- interface representing the state of USC in the OpenDaylight DLUX
- UI.
-
Installing USC Channel
----------------------
+++ /dev/null
-Using the OpenDaylight User Interface (DLUX)
-============================================
-
-This section introduces you to the OpenDaylight User Experience (DLUX)
-application.
-
-Getting Started with DLUX
--------------------------
-
-DLUX provides a number of different Karaf features, which you can enable
-and disable separately. They are:
-
- - odl-dlux-core
- - odl-dluxapps-nodes
- - odl-dluxapps-topology
- - odl-dluxapps-yangui
- - odl-dluxapps-yangvisualizer
- - odl-dluxapps-yangman
-
-Logging In
-----------
-
-To log in to DLUX, after installing the application:
-
-1. Open a browser and enter the login URL
- http://<your-karaf-ip>:8181/index.html
- in your browser (Chrome is recommended).
-
-2. Login to the application with your username and password credentials.
-
-.. note::
-
- OpenDaylight’s default credentials are *admin* for both the username
- and password.
-
-Working with DLUX
------------------
-
-After you login to DLUX, if you enable only odl-dlux-core feature, you
-will see only topology application available in the left pane.
-
-.. note::
-
- To make sure topology displays all the details, enable the
- odl-l2switch-switch feature in Karaf.
-
-DLUX has other applications such as node, yang UI and those apps won’t
-show up, until you enable their features odl-dluxapps-nodes and
-odl-dluxapps-yangui respectively in the Karaf distribution.
-
-.. figure:: ./images/dlux-login.png
- :alt: DLUX Modules
-
- DLUX Modules
-
-.. note::
-
- If you install your application in dlux, they will also show up on
- the left hand navigation after browser page refresh.
-
-Viewing Network Statistics
---------------------------
-
-The **Nodes** module on the left pane enables you to view the network
-statistics and port information for the switches in the network.
-
-To use the **Nodes** module:
-
-1. Select **Nodes** on the left pane. The right pane displays atable
- that lists all the nodes, node connectors and the statistics.
-
-2. Enter a node ID in the **Search Nodes** tab to search by node
- connectors.
-
-3. Click on the **Node Connector** number to view details such as port
- ID, port name, number of ports per switch, MAC Address, and so on.
-
-4. Click **Flows** in the Statistics column to view Flow Table
- Statistics for the particular node like table ID, packet match,
- active flows and so on.
-
-5. Click **Node Connectors** to view Node Connector Statistics for the
- particular node ID.
-
-Viewing Network Topology
-------------------------
-
-The Topology tab displays a graphical representation of network topology
-created.
-
-.. note::
-
- DLUX does not allow for editing or adding topology information. The
- topology is generated and edited in other modules, e.g., the
- OpenFlow plugin. OpenDaylight stores this information in the MD-SAL
- datastore where DLUX can read and display it.
-
-To view network topology:
-
-1. Select **Topology** on the left pane. You will view the graphical
- representation on the right pane. In the diagram blue boxes represent
- the switches, the black represents the hosts available, and lines
- represents how the switches and hosts are connected.
-
-2. Hover your mouse on hosts, links, or switches to view source and
- destination ports.
-
-3. Zoom in and zoom out using mouse scroll to verify topology for larger
- topologies.
-
-.. figure:: ./images/dlux-topology.png
- :alt: Topology Module
-
- Topology Module
-
-Interacting with the YANG-based MD-SAL datastore
-------------------------------------------------
-
-The **Yang UI** module enables you to interact with the YANG-based
-MD-SAL datastore. For more information about YANG and how it interacts
-with the MD-SAL datastore, see the *Controller* and *YANG Tools* section
-of the *OpenDaylight Developer Guide*.
-
-.. figure:: ./images/dlux-yang-ui-screen.png
- :alt: Yang UI
-
- Yang UI
-
-To use Yang UI:
-
-1. Select **Yang UI** on the left pane. The right pane is divided in two
- parts.
-
-2. The top part displays a tree of APIs, subAPIs, and buttons to call
- possible functions (GET, POST, PUT, and DELETE).
-
- .. note::
-
- every subAPI can call every function. For example, subAPIs in
- the *operational* store have GET functionality only.
-
- Inputs can be filled from OpenDaylight when existing data from
- OpenDaylight is displayed or can be filled by user on the page and
- sent to OpenDaylight.
-
- Buttons under the API tree are variable. It depends on subAPI
- specifications. Common buttons are:
-
- - GET to get data from OpenDaylight,
-
- - PUT and POST for sending data to OpenDaylight for saving
-
- - DELETE for sending data to OpenDaylight for deleting.
-
- You must specify the xpath for all these operations. This path is
- displayed in the same row before buttons and it may include text
- inputs for specific path element identifiers.
-
- .. figure:: ./images/dlux-yang-api-specification.png
- :alt: Yang API Specification
-
- Yang API Specification
-
-3. The bottom part of the right pane displays inputs according to the
- chosen subAPI.
-
- - Lists are handled as a special case. For example, a device can
- store multiple flows. In this case "flow" is name of the list and
- every list element is identified by a unique key value. Elements
- of a list can, in turn, contain other lists.
-
- - In Yang UI, each list element is rendered with the name of the
- list it belongs to, its key, its value, and a button for removing
- it from the list.
-
- .. figure:: ./images/dlux-yang-sub-api-screen.png
- :alt: Yang UI API Specification
-
- Yang UI API Specification
-
-4. After filling in the relevant inputs, click the **Show Preview**
- button under the API tree to display request that will be sent to
- OpenDaylight. A pane is displayed on the right side with text of
- request when some input is filled.
-
-Displaying Topology on the **Yang UI**
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To display topology:
-
-1. Select subAPI network-topology <topology revision number> == >
- operational == > network-topology.
-
-2. Get data from OpenDaylight by clicking on the "GET" button.
-
-3. Click **Display Topology**.
-
-.. figure:: ./images/dlux-yang-topology.png
- :alt: DLUX Yang Topology
-
- DLUX Yang Topology
-
-Configuring List Elements on the **Yang UI**
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Lists in Yang UI are displayed as trees. To expand or collapse a list,
-click the arrow before name of the list. To configure list elements in
-Yang UI:
-
-1. To add a new list element with empty inputs use the plus icon-button
- **+** that is provided after list name.
-
-2. To remove several list elements, use the **X** button that is
- provided after every list element.
-
- .. figure:: ./images/dlux-yang-list-elements.png
- :alt: DLUX List Elements
-
- DLUX List Elements
-
-3. In the YANG-based data store all elements of a list must have a
- unique key. If you try to assign two or more elements the same key, a
- warning icon **!** is displayed near their name buttons.
-
- .. figure:: ./images/dlux-yang-list-warning.png
- :alt: DLUX List Warnings
-
- DLUX List Warnings
-
-4. When the list contains at least one list element, after the **+**
- icon, there are buttons to select each individual list element. You
- can choose one of them by clicking on it. In addition, to the right
- of the list name, there is a button which will display a vertically
- scrollable pane with all the list elements.
-
- .. figure:: ./images/dlux-yang-list-button1.png
- :alt: DLUX List Button1
-
- DLUX List Button1
-
Additional Verifications
^^^^^^^^^^^^^^^^^^^^^^^^
-
-- Please visit the OpenDaylight DLUX GUI after stacking all the nodes,
- http://<ODL\_IP\_ADDRESS>:8181/index.html.
- The switches, topology and the ports that are currently read can be
- validated.
-
-::
-
- http://<controller-ip>:8181/index.html
-
-.. tip::
-
- If the interconnected between the Open vSwitch is not seen, Please
- bring up the interface for the dataplane manually using the below
- comamnd
-
::
ifup <interface_name>
- Use *sudo ovs-vsctl show* to list the number of interfaces added.
-- Please visit the DLUX GUI to list the new nodes in every switch.
-
-Getting started with DLUX
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Ensure that you have created a topology and enabled MD-SAL feature in
-the Karaf distribution before you use DLUX for network management.
-
-Logging In
-^^^^^^^^^^
-
-To log in to DLUX, after installing the application: \* Open a browser
-and enter the login URL. If you have installed DLUX as a stand-alone,
-then the login URL is http://localhost:9000/DLUX/index.html. However if
-you have deployed DLUX with Karaf, then the login URL is
-http://<your IP>:8181/dlux/index.html. \* Login
-to the application with user ID and password credentials as admin.
-NOTE:admin is the only user type available for DLUX in this release.
-
-Working with DLUX
-^^^^^^^^^^^^^^^^^
-
-To get a complete DLUX feature list, install restconf, odl l2 switch,
-and switch while you start the DLUX distribution.
-
-.. figure:: ./images/vtn/Dlux_login.png
- :alt: DLUX\_GUI
-
- DLUX\_GUI
-
-.. note::
-
- DLUX enables only those modules, whose APIs are responding. If you
- enable just the MD-SAL in beginning and then start dlux, only MD-SAL
- related tabs will be visible. While using the GUI if you enable
- AD-SAL karaf features, those tabs will appear automatically.
-
-Viewing Network Statistics
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The Nodes module on the left pane enables you to view the network
-statistics and port information for the switches in the network. \* To
-use the Nodes module: \*\* Select Nodeson the left pane.
-
-::
-
- The right pane displays atable that lists all the nodes, node connectors and the statistics.
-
-- Enter a node ID in the Search Nodes tab to search by node connectors.
-
-- Click on the Node Connector number to view details such as port ID,
- port name, number of ports per switch, MAC Address, and so on.
-
-- Click Flows in the Statistics column to view Flow Table Statistics
- for the particular node like table ID, packet match, active flows and
- so on.
-
-- Click Node Connectors to view Node Connector Statistics for the
- particular node ID.
-
-Viewing Network Topology
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-To view network topology: \* Select Topology on the left pane. You will
-view the graphical representation on the right pane.
-
-::
-
- In the diagram
- blue boxes represent the switches,black represents the hosts available, and lines represents how switches are connected.
-
-.. note::
-
- DLUX UI does not provide ability to add topology information. The
- Topology should be created using an open flow plugin. Controller
- stores this information in the database and displays on the DLUX
- page, when the you connect to the controller using OpenFlow.
-
-.. figure:: ./images/vtn/Dlux_topology.png
- :alt: Topology
-
- Topology
-
OpenStack PackStack Installation Steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~