From 7589e3856b48e36c386d3c5d1bc29e0ce8854d07 Mon Sep 17 00:00:00 2001 From: Zoey Date: Mon, 15 Feb 2016 19:11:58 +0800 Subject: [PATCH] update docs for onosfw --- .../configguide/config-for-installer.rst | 324 +++++++++++++++++++++ docs/Brahmaputra/configguide/index.rst | 15 + docs/Brahmaputra/design/index.rst | 13 + docs/Brahmaputra/release/index.rst | 15 + docs/Brahmaputra/release/onos-release.rst | 134 +++++++++ docs/Brahmaputra/scenario description/index.rst | 15 + .../scenario description/scenario-description.rst | 94 ++++++ docs/Brahmaputra/userguide/index.rst | 15 + docs/Brahmaputra/userguide/onosfw-userguide.rst | 130 +++++++++ docs/etc/ONOS-DVR.png | Bin 0 -> 102296 bytes 10 files changed, 755 insertions(+) create mode 100644 docs/Brahmaputra/configguide/config-for-installer.rst create mode 100644 docs/Brahmaputra/configguide/index.rst create mode 100644 docs/Brahmaputra/design/index.rst create mode 100644 docs/Brahmaputra/release/index.rst create mode 100644 docs/Brahmaputra/release/onos-release.rst create mode 100644 docs/Brahmaputra/scenario description/index.rst create mode 100644 docs/Brahmaputra/scenario description/scenario-description.rst create mode 100644 docs/Brahmaputra/userguide/index.rst create mode 100644 docs/Brahmaputra/userguide/onosfw-userguide.rst create mode 100644 docs/etc/ONOS-DVR.png diff --git a/docs/Brahmaputra/configguide/config-for-installer.rst b/docs/Brahmaputra/configguide/config-for-installer.rst new file mode 100644 index 00000000..a41acbbc --- /dev/null +++ b/docs/Brahmaputra/configguide/config-for-installer.rst @@ -0,0 +1,324 @@ +=========================================================================================================== +OPNFV config guide instructions for the Brahmaputra release of OPNFV when using installers to deploy onosfw +=========================================================================================================== + +.. contents:: Table of Contents + :backlinks: none + + +Abstract +======== + +This document describes how to config the Brahmaputra release of OPNFV when +using installers as a deployment tool to deploy onosfw, covering it's limitations, dependencies +and required system resources. + +License +======= + +Brahmaputra release of OPNFV when using installers to deploy onosfw Docs +(c) by Henry (HUAWEI) + +Brahmaputra release of OPNFV when using installers to deploy onosfw Docs +are licensed under a Creative Commons Attribution 4.0 International License. +You should have received a copy of the license along with this. +If not, see . + +Version history +=============== + ++------------+----------+------------+------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++------------+----------+------------+------------------+ +| 2016-01-21 | 1.0.0 | Henry | Rewritten for | +| | | (HUAWEI) | ONOSFW B release | ++------------+----------+------------+------------------+ +| 2016-01-20 | 0.0.2 | Henry | Minor changes & | +| | | (HUAWEI) | formatting | ++------------+----------+------------+------------------+ +| 2016-01-19 | 0.0.1 | Henry | First draft | +| | | (HUAWEI) | | ++------------+----------+------------+------------------+ + +Introduction +============ + +ONOSFW need to deploy with several installers and each installer have differernt configs. Here is the scenarios ONOSFW need to supported + ++-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+ +| Apex | Compass | Fuel | JOID | ++=========================================+=========================================+=========================================+=========================================+ +| Virtual CentOS 7, ONOS with OpenStack | Virtual Ubuntu 14, ONOS with OpenStack | Virtual Ubuntu 14, ONOS with OpenStack | Virtual Ubuntu 14, ONOS with OpenStack | +| neutron-l3-agent being disabled | neutron-l3-agent being disabled | neutron-l3-agent being disabled | neutron-l3-agent being disabled | ++-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+ +| NA | BM Ubuntu 14, ONOS with OpenStack | NA | NA | +| | neutron-l3-agent being disabled | | | ++-----------------------------------------+-----------------------------------------+-----------------------------------------+-----------------------------------------+ +Below is the detail config for them: + +Config for Installers +===================== + +Config Documentation for onos with apex +--------------------------------------- +1. Pyhsical Requirement + + 1.1 CentOS 7 (from ISO or self-installed). + + 1.2 Root access. + + 1.3 libvirt virtualization support. + + 1.4 minimum 2 networks and maximum 6 networks, multiple NIC and/or VLAN combinations are supported. This is virtualized for a VM deployment. + + 1.5 The Bramaputra Apex RPM. + + 1.6 16 GB of RAM for a bare metal deployment, 56 GB of RAM for a VM deployment. + +2. How to add onos into apex + + 2.1 Apex will download two images instack.qcow2 and overcloud-full.qcow2 when build apex rpm. The instack.qcow2 is used for installation of instack virtual machine. + The overcloud-full.qcow2 is used for installation of openstack nodes. The opnfv-tripleo-heat-templates.patch will update tripleo-heat scripts in instack.qcow2. + And it will call puppet deployment scripts in overcloud-full.qcow2 to finish deployment. Those two files will be patch up and store into the two images during apex rpm building process in instack.sh. + + below is the directory:: + + ├── build + │ ├── instack.sh # add onos build steps + │   ├── opnfv-tripleo-heat-templates.patch # add onos deployment scripts + │   + ├── ci + │   └── deploy.sh #add onos build steps inside + + 2.2 Upload puppet-onos to github for apex iso/rpm building. + +3. Virtual deployment + + 3.1 Install jumphost. + + 3.2 Edit /etc/opnfv-apex/deploy_settings.yaml and change opendaylight into onos. + + 3.3 Execute sudo opnfv-deploy --virtual [ --no-ha ] -d /etc/opnfv-apex/deploy_settings.yaml + +4. Baremetal deployment + + 4.1 Install jumphost. + + 4.2 Edit /etc/opnfv-apex/deploy_settings.yaml and change opendaylight into onos. + + 4.3 Edit /etc/apex-opnfv/inventory.yaml and change mac_address, ipmi_ip, ipmi_user, ipmi_password etc base on your physical server and network. + + 4.4 Execute sudo opnfv-deploy -d /etc/opnfv-apex/deploy_settings.yaml -i /etc/apex-opnfv/inventory.yaml + +5. Detail of apex installation `Apex Installation`_. + +.. _Apex Installation : http://artifacts.opnfv.org/apex/docs/installation-instructions/ + +Config Documentation for onos with Compass +------------------------------------------ +1. Pyhsical Requirement for install ONOS + + 1.1 Ubuntu Server 14.04 LTS 64-bit (from ISO or self-installed). + + 1.2 minimum 2GB RAM. + + 1.3 minimum 2 processors. + + 1.4 At least 5GB disk space. + + 1.5 The ONOS version 1.4. + +2. How to add onos into compass + + 2.1 the script that install onos service is added into the compass4nfv project. and the onos will be started when compass called the onos script. the script is included in the directory of compass4nfv project below:: + + commpass4nfv + ├── deploy + │ ├── adapters + │   ├── ansible + │ ├── roles # include the sdn script + │ ├── onos_cluster # include the onos script + │ ├── files # include the files of jdk and onos driver + │ ├── handlers # include the opertaion of restart onos service + │ ├── tasks # include the task of installing onos + │ ├── templates # include the templates of onos + │ ├── vars # include the var of onos used + +3. Virtual deployment + + 3.1 Install jumphost + + 3.2 Build iso of compass. Execute ./build.sh + + 3.3 Execute ./deploy.sh virtual_cluster_onos + +4. Baremetal deployment + + 4.1 Install jumphost + + 4.2 Build iso of compass. Execute ./build.sh + + 4.3 Config the envionment variables + + export WORKSPACE="/home/jenkins/jenkins-slave/workspace/compass-deploy-bare-huawei-us-master" + + export BUILD_DIRECTORY=$WORKSPACE/build_output + + export CONFDIR=$WORKSPACE/deploy/conf/hardware_environment/huawei_us_lab/pod1 + + export ISO_URL=file://$BUILD_DIRECTORY/compass.iso + + export EXTERNAL_NIC=eth0 + + export INSTALL_NIC=eth1 + + export OS_VERSION=trusty + + export OPENSTACK_VERSION=liberty + + 4.4 Execute cd $WORKSPACE + + 4.5 Execute ./deploy.sh --dha $CONFDIR/dha.yml --network $CONFDIR/network.yml + +5. Detail of compass installation `Compass Installation`_. + +.. Compass Installation : http://artifacts.opnfv.org/compass4nfv/docs/configguide/installerconfig.html + + +Config Documentation for onos with Fuel +--------------------------------------- +1. Pyhsical Requirement + + 1.1 Linux , Microsoft or Mac OS. + + 1.2 Root access or admin access. + + 1.3 libvirt virtualization support. + + 1.4 minimum 2 networks and maximum 4 networks, multiple NIC and/or VLAN combinations are supported. + + 1.5 250G disk at least for no-ha virtual deployment + +2. How to add onos into Fuel + + 2.1 Fuel provides an intuitive, GUI-driven experience for deployment and management of OpenStack, related community projects and plug-ins. Onos supplies plug-in to manage network of L2/L3. + + below is the directory:: + + ├── build + │ ├──f_isoroot + │ ├── f_onosfwpluginbuild # add onos build url + │ + ├── deploy + │ ├──scenario + │ ├── ha-onos_scenario.yaml # add onos ha configuration + │ ├── noha-onos_scenario.yaml # add onos noha configuration + ├── ci + │ └── deploy.sh #add onos scenarion steps inside + + 2.2 Upload fuel-plugin-onos to git for fuel iso/rpm building. + +3. Automatic deployment + + 3.1 Install jumphost. + + 3.2 git clone https://gerrit.opnfv.org/gerrit/fuel + + 3.3 In fuel/ci, exec ./deploy.sh. For virtual deployment, you can use -b file:///fuel/deploy/config -l devel-popeline -p huawei-ch -s no-ha_onos_heat_ceilmeter_scenario_0.0.0.2.yaml -i file://root/iso/fuel.iso. Fore bare metal deployment, change parameters correspondingly and use no-ha_onos scenario_0.0.1.yaml. + +4. Build onos plugin into rpm independently. + + 4.1 Install fuel plugin builder( detailed steps can be found in https://wiki.openstack.org/wiki/Fuel/Plugin ). + + 4.2 git clone git://git.openstack.org/openstack/fuel-plugin-onos. For Kilo deployment, use –b Kilo. + + 4.3 fpb --build fuel-plugin-onos + + 4.4 Move onos*.rpm in to master and fuel plugins –install onos*.rpm. + + 4.5 Create a new environment and select onos plugin in settings table. If the Public Ethernet is not eth3, please change it with your actual configuration. + + 4.6 Select a node with the role of controller and onos( onos must collocate with a controller). + + 4.7 Deploy changes. + +5. Related url for fuel and onos. + + Fuel: https://wiki.openstack.org/wiki/Fuel + + Fuel plugin: https://wiki.openstack.org/wiki/Fuel/Plugins + + Fuel codes: https://gerrit.opnfv.org/gerrit/fuel + + Fuel iso: http://build.opnfv.org/artifacts/ + + Fuel-plugin-onos: http://git.openstack.org/cgit/openstack/fuel-plugin-onos/ + + +Config Documentation for onos with JOID +--------------------------------------- + +1、Virtual Machine Deployment + + 1.1、 Hardware Requirement: + OS: Ubuntu Trusty 14.04 LTS + + Memory: 48 GB + + + CPU: 24 cores + + + Hard disk: 1T + + 1.2、Get the joid code from gerrit https://gerrit.opnfv.org/gerrit/p/joid.git + + 1.3、Suggest to create a user ubuntu and use this user, if not,you should edit the file:joid/ci/maas/default/deployment.yaml. Find Virsh power settings and change ubuntu to your own user name. + + 1.4、Deploy Maas + $ cd joid/ci/ + $ ./02-maasdeploy.sh + + 1.5、Deploy OPNFV: + For liberty openstack, ONOS SDN, HA mode + $ ./deploy.sh -o liberty -s onos -t ha + +2、Bare Metal Deployment + + 2.1、Pre Requisite: + + 1. have a single node install with Ubuntu OS 14.04 LTS + + 2. Minimum four nodes exist and should have been preconfigured and integrated with JOID please have look into this wiki page https://wiki.opnfv.org/joid/get_started + + 2.2、Get the joid code from gerrit : https://gerrit.opnfv.org/gerrit/p/joid.git + + 2.3、Suggest to create a user ubuntu and use this user, if not,you should edit the file:joid/ci/maas/default/deployment.yaml. + Find Virsh power settings and change ubuntu to your own user name. + + 2.4、Deploy MAAS: + + $ ./02-maasdeploy.sh + + 2.5、Deploy OPNFV: + + For liberty openstack, ONOS SDN, HA mode in intel pod5 + $ ./deploy.sh -o liberty -s onos -t ha -l intelpod5 + +3、How to add onos into joid + +create a dir onos as below:: + + --onos + ├── 01-deploybundle.sh # deploy bundle define + ├── juju-deployer + │ ├── ovs-onos-ha.yaml # openstack type ha feature define + │ ├── ovs-onos-nonha.yaml # openstack type nosha feature define + │ ├── ovs-onos-tip.yaml # openstack type tip feature define + ├── juju_test_prepare.sh # create ext-net and update gw_mac + └── README # description + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/configguide/index.rst b/docs/Brahmaputra/configguide/index.rst new file mode 100644 index 00000000..38cba669 --- /dev/null +++ b/docs/Brahmaputra/configguide/index.rst @@ -0,0 +1,15 @@ +********************************************* +OPNFV(Brahmaputra) ONOSFW config instructions +********************************************* + +.. toctree:: + :numbered: + :maxdepth: 4 + + config-for-installer.rst + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/design/index.rst b/docs/Brahmaputra/design/index.rst new file mode 100644 index 00000000..82681ddc --- /dev/null +++ b/docs/Brahmaputra/design/index.rst @@ -0,0 +1,13 @@ +********************************************* +OPNFV(Brahmaputra) ONOSFW design instructions +********************************************* + +.. toctree:: + :numbered: + :maxdepth: 4 + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/release/index.rst b/docs/Brahmaputra/release/index.rst new file mode 100644 index 00000000..693f2209 --- /dev/null +++ b/docs/Brahmaputra/release/index.rst @@ -0,0 +1,15 @@ +******************** +ONOSFW Release Notes +******************** + +.. toctree:: + :numbered: + :maxdepth: 4 + + onos-release.rst + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/release/onos-release.rst b/docs/Brahmaputra/release/onos-release.rst new file mode 100644 index 00000000..2037781f --- /dev/null +++ b/docs/Brahmaputra/release/onos-release.rst @@ -0,0 +1,134 @@ +========================================= +OPNFV Brahmaputra release note for onosfw +========================================= + +.. contents:: Table of Contents + :backlinks: none + + +Abstract +======== + +This document describes the release note of onosfw project, including upstream project ONOS and OpenStack + +License +======= + +OPNFV Brahmaputra release note for onosfw Docs +(c) by Henry (HUAWEI) + +OPNFV Brahmaputra release note for onosfw Docs +are licensed under a Creative Commons Attribution 4.0 International License. +You should have received a copy of the license along with this. +If not, see . + +Version history +=============== + ++------------+----------+------------+------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++------------+----------+------------+------------------+ +| 2016-01-21 | 1.0.0 | Henry | Rewritten for | +| | | (HUAWEI) | ONOSFW B release | ++------------+----------+------------+------------------+ +| 2016-01-20 | 0.0.2 | Henry | Minor changes & | +| | | (HUAWEI) | formatting | ++------------+----------+------------+------------------+ +| 2016-01-19 | 0.0.1 | Henry | First draft | +| | | (HUAWEI) | | ++------------+----------+------------+------------------+ + +Introduction +============ + +ONOSFW addresses integrating an SDN controller of choice based on a target applications or use cases within the OPNFV defined NFVI and VIM framework. It aims to provide end user and open source community with greater flexibility to build service applications, and to help leverage corresponding open source development efforts and results as well. Furthermore, it will create some common framework elements to address multi tenancy support, integration between the network controller and a DPI engine for context-based flow policies. It will also provide driver integration to support the Neutron ML2 & Router plugin. + + + +ONOSFW Test Scenarios +===================== + ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ +| FuncTest Usecase \ Installers | Apex | Compass | Fuel | JOID | ++=======================================+===========================================+===========================================+===========================================+============================================================+ +| vPing For user metadata | Should Fail; | Should Fail; | Should Fail; | Should Fail; | +| | ONOSFW do not support user metadata in BM | ONOSFW do not support user metadata in BM | ONOSFW do not support user metadata in BM | ONOSFW do not support user metadata in BM | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ +| vPing | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ +| tempest | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ +| VIMS | NR | NR | NR | NR | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ +| RALLY | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ +| ONOS | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+------------------------------------------------------------+ + +Secenario 14 ONOS-HA for Virtual: + ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +| FuncTest Usecase \ Installers | Apex | Compass | Fuel | JOID | ++=======================================+===========================================+===========================================+===========================================+===========================================+ +| vPing For user metadata | Should Fail; | Should Fail; | Should Fail; | Should Fail; | +| | ONOSFW do not support user metadata in BM | ONOSFW do not support user metadata in BM | ONOSFW do not support user metadata in BM | ONOSFW do not support user metadata in BM | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +| vPing | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +| tempest | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +| VIMS | NR | NR | NR | NR | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +| RALLY | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ +| ONOS | Success | Success | Success | Success | +| | | | | | ++---------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+-------------------------------------------+ + + +ONOS Release +============ +ONOS wiki of onosfw : `onosfw proposal in ONOS`_. + +.. _onosfw proposal in ONOS: https://wiki.onosproject.org/login.action?os_destination=%2Fdisplay%2FONOS%2FONOS%2BFramework%2B%28ONOSFW%29%2Bfor%2BOPNFV + +ONOS Emu code:`ONOS Emu Code`_. + +.. _ONOS Emu Code: https://github.com/opennetworkinglab/onos/tree/onos-1.4 + +ONOS Emu Release Note `ONOS Emu Release Note`_. + +.. _ONOS Emu Release Note: https://wiki.onosproject.org/display/ONOS/Release+Notes+-+Emu+1.4.0 + +The APIs docs exist as a submodule in docs/apis. +In order to retrieve them, you must change directories to "apis" and then do a "git pull origin master". +This will pull down all relevant API documents related to the source components in this release". +here is api link: https://github.com/onosfw/apis + +OpenStack Release +================= + +OpenStack Liberty wiki page `OpenStack Liberty wiki`_. + +.. _OpenStack Liberty wiki : https://wiki.openstack.org/wiki/Main_Page + +OpenStack Liberty api page `OpenStack Networking Api`_. + +.. _OpenStack Networking Api : http://developer.openstack.org/api-ref-networking-v2-ext.html + + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/scenario description/index.rst b/docs/Brahmaputra/scenario description/index.rst new file mode 100644 index 00000000..68c82d17 --- /dev/null +++ b/docs/Brahmaputra/scenario description/index.rst @@ -0,0 +1,15 @@ +******************** +ONOSFW Release Notes +******************** + +.. toctree:: + :numbered: + :maxdepth: 4 + + scenario-description.rst + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/scenario description/scenario-description.rst b/docs/Brahmaputra/scenario description/scenario-description.rst new file mode 100644 index 00000000..cd8ae7ba --- /dev/null +++ b/docs/Brahmaputra/scenario description/scenario-description.rst @@ -0,0 +1,94 @@ +========================================= +OPNFV Brahmaputra release note for onosfw +========================================= + +.. contents:: Table of Contents + :backlinks: none + + +Abstract +======== + +This document describes the testing scenario of onosfw project, including ONOS bare metal and virtual deployment scenario + +License +======= + +OPNFV Brahmaputra release note for onosfw Docs +(c) by Henry (HUAWEI) + +OPNFV Brahmaputra release note for onosfw Docs +are licensed under a Creative Commons Attribution 4.0 International License. +You should have received a copy of the license along with this. +If not, see . + +Version history +=============== + ++------------+----------+------------+------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++------------+----------+------------+------------------+ +| 2016-02-14 | 0.0.1 | Henry | First draft | +| | | (HUAWEI) | | ++------------+----------+------------+------------------+ + +Introduction +============ + +ONOSFW addresses integrating an SDN controller of choice based on a target applications or use cases within the OPNFV defined NFVI and VIM framework. It aims to provide end user and open source community with greater flexibility to build service applications, and to help leverage corresponding open source development efforts and results as well. Furthermore, it will create some common framework elements to address multi tenancy support, integration between the network controller and a DPI engine for context-based flow policies. It will also provide driver integration to support the Neutron ML2 & Router plugin. + + + +ONOSFW Test Scenarios +===================== +For now, Openstack and ODL are using Centralized gateway to reach external network, but for ONOS, we are using DVR mode, which means we make each compute node has the ability to reach external network, just like pic below: + +.. image:: /etc/ONOS-DVR.png + + +Secenario 14 ONOS-HA : +---------------------- +1. L2 feature + + 1.1 Infrastructure network setup; including CURD operation of bridge, interface, controller, port, etc. + + 1.2 L2 traffic between different subnets in same network + + 1.3 Traffic isolation between different tenants + +2. L3 feature + + 2.1 L3 east - west function + + 2.1.1 Ping between VMs between differernt subnets belong to different tenants is OK + + 2.1.2 isolated by different networks belong to differernt tenants is OK + + 2.1.3 Related flow rule deleted when VM is deleted is OK + + + + 2.2 L3 south - north function + + 2.2.1. Ping external network (such as google) from VM by allocating a floating IP is OK + + 2.2.2. Binding an external port to OVS is OK + + 2.2.3. VM hot migration is supported + + + + 2.3 Improvements + + 2.3.1 Add p2any vxlan config to ovs is OK + + 2.3.2. Ovsdb support multiple nodes is OK + + 2.3.3. All nicira extension api has been extended + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/Brahmaputra/userguide/index.rst b/docs/Brahmaputra/userguide/index.rst new file mode 100644 index 00000000..38247f02 --- /dev/null +++ b/docs/Brahmaputra/userguide/index.rst @@ -0,0 +1,15 @@ +***************** +ONOSFW User Guide +***************** + +.. toctree:: + :numbered: + :maxdepth: 4 + + onosfw-userguide.rst + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| \ No newline at end of file diff --git a/docs/Brahmaputra/userguide/onosfw-userguide.rst b/docs/Brahmaputra/userguide/onosfw-userguide.rst new file mode 100644 index 00000000..6b9ce7e7 --- /dev/null +++ b/docs/Brahmaputra/userguide/onosfw-userguide.rst @@ -0,0 +1,130 @@ +========================== +ONOSFW User Guide Manaully +========================== + +.. contents:: Table of Contents + :backlinks: none + + +Abstract +======== + +This document describes the user guide instruction for onosfw project, including env setup and test case. + +License +======= + +ONOSFW User Guide Manaully Docs +(c) by Henry (HUAWEI) + +ONOSFW User Guide Manaully Docs +are licensed under a Creative Commons Attribution 4.0 International License. +You should have received a copy of the license along with this. +If not, see . + +Version history +=============== + ++------------+----------+------------+------------------+ +| **Date** | **Ver.** | **Author** | **Comment** | +| | | | | ++------------+----------+------------+------------------+ +| 2016-01-21 | 1.0.0 | Henry | Rewritten for | +| | | (HUAWEI) | ONOSFW B release | ++------------+----------+------------+------------------+ +| 2016-01-20 | 0.0.2 | Henry | Minor changes & | +| | | (HUAWEI) | formatting | ++------------+----------+------------+------------------+ +| 2016-01-19 | 0.0.1 | Henry | First draft | +| | | (HUAWEI) | | ++------------+----------+------------+------------------+ + +Introduction +============ + +ONOSFW addresses integrating an SDN controller of choice based on a target applications or use cases within the OPNFV defined NFVI and VIM framework. It aims to provide end user and open source community with greater flexibility to build service applications, and to help leverage corresponding open source development efforts and results as well. Furthermore, it will create some common framework elements to address multi tenancy support, integration between the network controller and a DPI engine for context-based flow policies. It will also provide driver integration to support the Neutron ML2 & Router plugin. + + +ONOSFW User Guide Manaully +========================== + +ONOSFW Environment Setup +------------------------ + 1. initialize environment:: + + initialize openstack:delete allthe network, instance and router. + + initialize ovs:delete managerand bridge by the following command: + + ovs-vsctl del-manager + + ovs-vsctl del-br “bridge name” + + 2. restart onos,install feature:: + + feature:install onos-ovsdatabase + + feature:install onos-app-vtn-onosfw + + 3. set the external port name:: + + onos command:externalportname-set –n “external port name” + + 4. create provider network:: + + set manager on compute node and network node: ovs-vsctl set-manager tcp:“onos ip”:6640 + + 5. create external network and subnet on openstack dashboard,then update external gateway mac:: + + externalgateway-update -m “mac address” + + 6. create basic networks and instances on openstack dashboard to verify L2/L3function + +Scenario Supported +------------------ + +* L2 scene: + + * Live Migration + + * With between same node under the same tenant and network wether the vm is conneted + + * With between different nodes under the same tenant and network wether the vm is conneted + + * With between same node under the same tenant and different network wether the vm is not conneted + + * With between different nodes under the same tenant and different network wether the vm is not conneted + + * With between same nodes under the different tenant and different network wether the vm is not conneted + + * With between different nodes under the different tenant and different network wether the vm is not conneted + + * L3 scene: + + * With between same node under the same tenant and network wether the vm is conneted + + * With between different nodes under the same tenant and network wether the vm is conneted + + * With between same node under the same tenant and different network wether the vm is conneted + + * With between different nodes under the same tenant and different network wether the vm is conneted + + * With between same nodes under the different tenant and different network wether the vm is not conneted + + * With between different nodes under the different tenant and different network wether the vm is not conneted + VM can ping external network well + +ONOSFW Demo Video +----------------- + + ONOSFW L2 Function Flash video:https://www.youtube.com/watch?v=7bxjWrR4peI + + ONOSFW L2 Function Demo video:https://www.youtube.com/watch?v=qP8nPYhz_Mo + + ONOSFW L3 Function Demo video:https://www.youtube.com/watch?v=R0H-IibpVxw + +Revision: _sha1_ + +:Author: Henry(jiangrui1@huawei.com) + +Build date: |today| diff --git a/docs/etc/ONOS-DVR.png b/docs/etc/ONOS-DVR.png new file mode 100644 index 0000000000000000000000000000000000000000..0c11358d067871b70a81faa4866ccba5168031a8 GIT binary patch literal 102296 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

RJE7yvAP*d7M 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 mE