diff options
-rw-r--r-- | INFO | 26 | ||||
-rw-r--r-- | INFO.yaml | 48 | ||||
-rw-r--r-- | docs/development/index.rst | 2 | ||||
-rw-r--r-- | docs/development/ovn-sfc-openstack.rst | 201 | ||||
-rw-r--r-- | docs/release/release-notes/release-notes.rst | 27 |
5 files changed, 263 insertions, 41 deletions
@@ -1,26 +0,0 @@ -Project: OVN for NFV (OVN4NFV) -Project Creation Date: Feb 7th 2017 -Project Category: Collaborative Development -Lifecycle State: Incubation -Primary Contact: Trinath Somanchi (NXP) -Project Lead: Trinath Somanchi (NXP) -Jira Name: OVN for NFV -Jira Prefix: [OVN4NFV] -mailing list tag [ovn4nfv] -Repo: ovn4nfv - -Committers: -vikram.dham@huawei.com -trozet@redhat.com -narinder.gupta@canonical.com -chigang@huawei.com -trinath.somanchi@nxp.com -sridhar.pothuganti@nxp.com - -Contributors: -prakash.ramchandran@huawei.com -prasad.gorja@nxp.com - - -Link to TSC approval: http://meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-12-15-14.59.html -Link to approval of additional submitters: diff --git a/INFO.yaml b/INFO.yaml new file mode 100644 index 0000000..d604879 --- /dev/null +++ b/INFO.yaml @@ -0,0 +1,48 @@ +--- +project: 'OVN for NFV (OVN4NFV)' +project_creation_date: 'Feb 7th 2017' +project_category: 'Collaborative Development' +lifecycle_state: 'Incubation' +project_lead: &opnfv_ovn4nfv_ptl + name: 'Trinath Somanchi' + email: 't.somanchi@f5.com' + company: 'F5 Networks' + id: 'SomanchiTrinath' +primary_contact: *opnfv_ovn4nfv_ptl +issue_tracking: + type: 'jira' + url: 'https://jira.opnfv.org/projects/OVN4NFV' + key: 'OVN4NFV' +mailing_list: + type: 'mailman2' + url: 'opnfv-tech-discuss@lists.opnfv.org' + tag: '[OVN4NFV]' +realtime_discussion: + type: irc + server: 'freenode.net' + channel: '#opnfv-ovn4nfv' +meetings: + - type: 'irc' + agenda: 'https://wiki.opnfv.org/display/OV/Meeting+Agenda' + url: # eg: 'https://global.gotomeeting.com/join/819733085' + server: 'freenode.net' + channel: '#ovn4nfv-meeting' + repeats: 'weekly' + time: '15:30 UTC' +repositories: + - 'ovn4nfv' + - 'ovn4nfv-k8s-plugin' +committers: + - <<: *opnfv_ovn4nfv_ptl + - name: 'Trevor Bramwell' + email: 'tbramwell@linuxfoundation.org' + company: 'linuxfoundation.org' + id: 'bramwelt' + - name: 'Ritu Sood' + email: 'ritu.sood@intel.com' + company: 'intel.com' + id: 'ritusood' +tsc: + # yamllint disable rule:line-length + approval: 'http//meetbot.opnfv.org/meetings/opnfv-meeting/2015/opnfv-meeting.2015-12-15-14.59.html' + # yamllint enable rule:line-length diff --git a/docs/development/index.rst b/docs/development/index.rst index 55df481..32be210 100644 --- a/docs/development/index.rst +++ b/docs/development/index.rst @@ -22,4 +22,4 @@ OVN4NFV Development openstack-networking-ovn.rst ovn-for-nfv.rst - configuration-guide.rst + ovn-sfc-openstack.rst diff --git a/docs/development/ovn-sfc-openstack.rst b/docs/development/ovn-sfc-openstack.rst new file mode 100644 index 0000000..2d29c5a --- /dev/null +++ b/docs/development/ovn-sfc-openstack.rst @@ -0,0 +1,201 @@ +=================== +OVN-SFC POC Details +=================== + +Purpose +======= +The purpose of this Proof-of-concept is to showcase Service Function +Chaining with OVN. + +Scope +===== + +The Scope of this document is to describe SFC using OVN and discuss +installation and configuration of OVN to instantiate a forwarding path. + +Steps +===== +1. Install CentOS7 minimal install: +----------------------------------- +- Make sure to enable network interface. +- Just create a root password. Don't create any users + +2. Create user: +--------------- +Below are the instructions to create user - stack, for use with Devstack. + +- $ sudo useradd -s /bin/bash -d /opt/stack -m stack +- $ echo 'stack ALL=(ALL) NOPASSWD: ALL' | sudo tee /etc/sudoers.d/stack +- $ sudo su - stack + +3. Install git +-------------- +- $ sudo yum install git -y + +4. clone Devstack and Networking-ovn +------------------------------------ +- $ git clone http://git.openstack.org/openstack-dev/devstack.git +- $ git clone http://git.openstack.org/openstack/networking-ovn.git +- $ cd devstack +- $ cp ../networking-ovn/devstack/local.conf.sample local.conf + +5. Edit the local.conf file: +---------------------------- +- Add (uncomment and edited) + + - OVN_REPO=https://github.com/doonhammer/ovs + - OVN_BRANCH=sfc.v30 +- Uncomment the below line + + - OVN_BUILD_MODULES=False + +We use forked/modifed OVS for SFC usecase from John McDowall. + +6. Devstack Preliminaries: +-------------------------- +- $ ./stack.sh +- $ . ~/devstack/openrc admin +- $ openstack keypair create demo &gt; ~/id_rsa_demo +- $ chmod 600 ~/id_rsa_demo +- $ for group in $(openstack security group list -f value -c ID); + do openstack security group rule create --ingress --ethertype IPv4 --dst-port 22 --protocol tcp $group; + openstack security group rule create --ingress --ethertype IPv4 -- protocol ICMP $group; + done +- $ IMAGE_ID=$(openstack image list -f value -c ID) + +10. Create Neutron network and subnet +-------------------------------------- +- $ openstack network create --project admin --provider-network-type geneve n1 +- $ openstack subnet create --subnet-range 10.1.1.0/24 --network n1 n1subnet + + +10. Spawn VMs +------------- +- Create 5 VMs, 3 VMs to act as communication end-points (a,b, and c) and two + VMs to act as VNFs (vnf1 & vnf2). +- The 2 VNF VMs are created with two NICs to act as ingress and egress ports + (Optional) +- Created two SFCs: + - SFC1: any traffic from VM a to VM b will go through vnf1 + - SFC1: any traffic from VM a to VM c will go through vnf2 then vnf1 + + +A. SFC with OVN - Scenario 1: +----------------------------- + +*********************** +1. create VMs and VNFs: +*********************** +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.5 --flavor m1.nano --image $IMAGE_ID --key-name demo a +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.6 --flavor m1.nano --image $IMAGE_ID --key-name demo b +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.10 --nic net-id=n1,v4-fixed-ip=10.1.1.11 --flavor m1.nano --image $IMAGE_ID --key-name demo vnf1 +- $ openstack port set --name ap $(openstack port list --server a -f value -c ID) +- $ openstack port set --name bp $(openstack port list --server b -f value -c ID) +- $ AP_MAC=$(openstack port show -f value -c mac_address ap) +- $ BP_MAC=$(openstack port show -f value -c mac_address bp) +- $ openstack port set --name vnf1-pin $(openstack port list --server vnf1 --mac-address fa:16:3e:a0:e9:70 -f value -c ID) +- $ openstack port set --name vnf1-pout $(openstack port list --server vnf1 --mac-address fa:16:3e:ae:0c:36 -f value -c ID) +- $ f1_pin_MAC=$(openstack port show -f value -c mac_address vnf1-pin) +- $ f1_pout_MAC=$(openstack port show -f value -c mac_address vnf1-pout) + +*************************************** +2. Create port-pairs, groups and chains +*************************************** +The switch and ports UUIDs below will different in each environment. + +- n1 = f1de57df-04e3-456b-85c0-64fd869507ad +- vnf1-pin = 6ec5aa3d-8440-44c9-acf3-a18914ca9b0d +- vnf1-pout = 3f558a9d-295e-4417-9646-d46b59be97d8 +- ap = 0438495b-7de4-4bbb-b787-dff82615b541 +- bp = 1f004846-3f38-450d-8f4a-e5ed0f7228e6 +- cp = 9a72cc76-4d8d-494c-a959-8d672149c0ea +- vnf2-pin = 6a32edc7-23d4-42ed-9cf8-c6e0009da01d +- vnf2-pout = 8553b6d2-1433-4ab4-ab69-704d318b09af + +**1. Configure the port pair vnf1-PP1** + +- $ ovn-nbctl lsp-pair-add n1 vnf1-pin vnf1-pout vnf1-PP1 (didn't work with names) +- $ ovn-nbctl lsp-pair-add f1de57df-04e3-456b-85c0-64fd869507ad 6ec5aa3d-8440-44c9-acf3-a18914ca9b0d 3f558a9d-295e-4417-9646-d46b59be97d8 vnf1-PP1 + +**2. Configure the port chain PC1** + +- $ ovn-nbctl lsp-chain-add n1 PC1 +- $ ovn-nbctl lsp-chain-add f1de57df-04e3-456b-85c0-64fd869507ad PC1 + +**3. Configure the port pair group PG1 and add to port chain** + +- $ ovn-nbctl lsp-pair-group-add PC1 PG1 + +**4. Add port pair to port chain** + +- $ ovn-nbctl lsp-pair-group-add-port-pair PG1 vnf1-PP1 + +**5. Add port chain to port classifier PCC1** + +- $ lsp-chain-classifier-add SWITCH CHAIN PORT DIRECTION PATH [NAME] [MATCH] +- $ ovn-nbctl lsp-chain-classifier-add n1 PC1 bp 'entry-lport' 'bi-directional' PCC1 ''; +- $ ovn-nbctl lsp-chain-classifier-add f1de57df-04e3-456b-85c0-64fd869507ad PC1 1f004846-3f38-450d-8f4a-e5ed0f7228e6 'entry-lport' 'bi-directional' PCC1 '' + +***************** +3. Validating SFC +***************** + +- $ ovn-trace n1 'inport == "ap" && eth.src == "$AP_MAC" && eth.dst == "$BP_MAC"' + + +B. SFC with OVN - Scenario 2: +----------------------------- + +************* +1. Create VMs +************* +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.7 --flavor m1.nano --image $IMAGE_ID --key-name demo c +- $ openstack server create --nic net-id=n1,v4-fixed-ip=10.1.1.20 --nic net-id=n1,v4-fixed-ip=10.1.1.21 --flavor m1.nano --image $IMAGE_ID --key-name demo vnf2 +- $ openstack port set --name cp $(openstack port list --server c -f value -c ID) +- $ CP_MAC=$(openstack port show -f value -c mac_address cp) +- $ openstack port set --name vnf2-pin $(openstack port list --server vnf2 --mac-address fa:16:3e:ff:e5:76 -f value -c ID) +- $ openstack port set --name vnf2-pout $(openstack port list --server vnf2 --mac-address fa:16:3e:4c:a3:58 -f value -c ID) +- $ f2_pin_MAC=$(openstack port show -f value -c mac_address vnf2-pin) +- $ f2_pout_MAC=$(openstack port show -f value -c mac_address vnf2-pout) + +**************** +2. Configure SFC +**************** + +**1. Configure the port pair vnf2-PP1** + +- $ ovn-nbctl lsp-pair-add n1 vnf2-pin vnf2-pout vnf2-PP1 (Didn't work with names) +- $ ovn-nbctl lsp-pair-add f1de57df-04e3-456b-85c0-64fd869507ad 6a32edc7-23d4-42ed-9cf8-c6e0009da01d 8553b6d2-1433-4ab4-ab69-704d318b09af vnf2-PP1 + +**2. Configure the port chain PC2** + +- $ ovn-nbctl lsp-chain-add n1 PC2 +- $ ovn-nbctl lsp-chain-add f1de57df-04e3-456b-85c0-64fd869507ad PC2 + +**3. Configure the port pair group PG2 and add to port chain** + +- $ ovn-nbctl lsp-pair-group-add PC2 PG2 +- $ ovn-nbctl lsp-pair-group-add PC2 PG3 + +**4. Add port pair to port chain** + +- $ ovn-nbctl lsp-pair-group-add-port-pair PG2 vnf2-PP1 +- $ ovn-nbctl lsp-pair-group-add-port-pair PG3 vnf1-PP1 + +**4. Add port chain to port classifier PCC2** + +- $ ovn-nbctl lsp-chain-classifier-add n1 PC2 cp "entry-lport" "bi-directional" PCC2 "" +- $ ovn-nbctl lsp-chain-classifier-add f1de57df-04e3-456b-85c0-64fd869507ad PC2 9a72cc76-4d8d-494c-a959-8d672149c0ea "entry-lport" "bi-directional" PCC2 ""; + +******************** +3. Validate Scenario +******************** + +- $ ovn-trace n1 'inport == "ap" && eth.src == "$AP_MAC" && eth.dst == "$CP_MAC"' + +References: +----------- + +1. http://docs.openvswitch.org/en/latest/tutorials/ovn-openstack/ +2. https://gist.github.com/voyageur/a26943eced3324b302f1ffede45252bd +3. https://github.com/doonhammer/ovs diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst index 9821ad2..3c4acfe 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -16,9 +16,9 @@ Important Notes =============== This notes provides release information for the use of Apex, Joid and Fuel -as deployment tool for the Fraser release of OPNFV. +as deployment tool for the Gambia release of OPNFV. -The goal of the Fraser release and this Apex, Fuel and Joid based deployment +The goal of the Gambia release and this Apex and Fuel based deployment process is to establish a lab ready platform accelerating further development of the OPNFV infrastructure. @@ -28,9 +28,9 @@ Carefully follow the installation-instructions. Summary ======= -For Fraser release, OVN4NFV is supported with APEX, JOID and FUEL installers. +For Gambia release, OVN4NFV is supported with APEX and FUEL installers. -This Fraser artifact provides Apex, Joind and Fuel as the deployment stage tool in the +This Gambia artifact provides Apex and Fuel as the deployment stage tool in the OPNFV CI pipeline including: - Documentation built by Jenkins @@ -51,17 +51,17 @@ Release Data | **Project** | ovn4nfv | | | | +--------------------------------------+--------------------------------------+ -| **Repo/tag** | ovn4nfv/opnfv-6.2.0 | +| **Repo/tag** | ovn4nfv/opnfv-7.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Fraser 6.2.0 | +| **Release designation** | Gambia 7.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release date** | June 29 2018 | +| **Release date** | November 09 2018 | | | | +--------------------------------------+--------------------------------------+ -| **Purpose of the delivery** | Bug fixes, Document improvements, | -| | Scenario documentation, | +| **Purpose of the delivery** | New Scenario PoC: OVN SFC | +| | Scenario documentation, OVN-CN-VM | | | OVN support in Fuel installer. | +--------------------------------------+--------------------------------------+ @@ -74,21 +74,20 @@ Software Deliverables - `Apex based installation <https://git.opnfv.org/apex>`_ -- `Joid based installation <https://git.opnfv.org/joid>`_ - - `Fuel based installation <https://git.opnfv.org/fuel>`_ Documentation Deliverables -------------------------- -- `Installation instructions <https://git.opnfv.org/ovn4nfv/tree/docs/development/openstack-networking-ovn.rst?h=stable/fraser>`_ +- `Installation instructions <https://git.opnfv.org/ovn4nfv/tree/docs/development/openstack-networking-ovn.rst?h=stable/gambia>`_ - Release notes (This document) -- `User guide and Testing notes <https://git.opnfv.org/ovn4nfv/tree/docs/testing/testing-notes.rst?h=stable/fraser>`_ +- `User guide and Testing notes <https://git.opnfv.org/ovn4nfv/tree/docs/testing/testing-notes.rst?h=stable/gambia>`_ -- `Scenario Documentation (JOID - K8S-OVN) <https://git.opnfv.org/ovn4nfv/tree/docs/scenarios/JOID/k8s-ovn-lb-noha.rst?h=stable/fraser>`_ +- `Scenario Documentation (K8S-OVN) <https://git.opnfv.org/ovn4nfv/tree/docs/scenarios/JOID/k8s-ovn-lb-noha.rst?h=stable/gambia>`_ +- `Scenario Documentation (OVN-SFC) <https://git.opnfv.org/ovn4nfv/tree/docs/development/ovn-sfc-openstack.rst?h=stable/gambia>`_ ========== References |