Adding sample testcases to run on standalone context 21/44421/1
authorDeepak S <deepak.s@linux.intel.com>
Tue, 19 Sep 2017 19:35:39 +0000 (12:35 -0700)
committerRoss Brattain <ross.b.brattain@intel.com>
Fri, 6 Oct 2017 09:05:46 +0000 (02:05 -0700)
- vFW
- vCGNAPT
- vACL
- UDP Replay
- vPE (Only OVS supported)

Change-Id: Idbc4d1d6bc1283e40d2fcb9457a871a9198ad147
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
25 files changed:
etc/yardstick/nodes/standalone/baremetal_trex.yaml [new file with mode: 0644]
etc/yardstick/nodes/standalone/host_ovs.yaml [new file with mode: 0644]
etc/yardstick/nodes/standalone/host_sriov.yaml [new file with mode: 0644]
etc/yardstick/nodes/standalone/pod_bm_trex_template.yaml [new file with mode: 0644]
etc/yardstick/nodes/standalone/pod_ovs_template.yaml [new file with mode: 0644]
etc/yardstick/nodes/standalone/pod_sriov_template.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml [new file with mode: 0644]
samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml [new file with mode: 0644]
samples/vnf_samples/vnf_descriptors/vfw_vnf.yaml
yardstick/resources/scripts/install/ovs_deploy.bash [new file with mode: 0755]

diff --git a/etc/yardstick/nodes/standalone/baremetal_trex.yaml b/etc/yardstick/nodes/standalone/baremetal_trex.yaml
new file mode 100644 (file)
index 0000000..508fb88
--- /dev/null
@@ -0,0 +1,37 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+    name: tg__0
+    role: tg__0
+    ip: {{gen.ip.mgmt[0]| ipaddr('address')}}
+    user: {{gen.user}}
+    password: {{gen.password}}
+    key_filename: {{gen.key_filename}}
+    interfaces:
+{% for num in range(item.num_vnfs|int) %}
+       xe{{num * 2}}:  # logical name from topology.yaml and vnfd.yaml
+           vpci:      "{{gen.pcis.private[num]}}"
+           dpdk_port_num: {{num * 2}}
+           local_ip: "{{gen.ip.private[num] | ipaddr('address')}}"
+           netmask: "{{gen.ip.private[num] | ipaddr('netmask')}}"
+           local_mac:   "{{gen.mac.private[num]}}"
+       xe{{(num * 2) + 1}}:  # logical name from topology.yaml and vnfd.yaml
+           vpci:      "{{gen.pcis.public[num]}}"
+           dpdk_port_num: {{(num * 2) + 1}}
+           local_ip: "{{gen.ip.public[num] | ipaddr('address') }}"
+           netmask: "{{gen.ip.private[num] | ipaddr('netmask')}}"
+           local_mac:   "{{gen.mac.public[num]}}"
+{% endfor %}
diff --git a/etc/yardstick/nodes/standalone/host_ovs.yaml b/etc/yardstick/nodes/standalone/host_ovs.yaml
new file mode 100644 (file)
index 0000000..889021a
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+    name: ovs_dpdk
+    role: OvsDpdk
+    ip: 192.168.100.101
+    user: ""
+    password: ""
diff --git a/etc/yardstick/nodes/standalone/host_sriov.yaml b/etc/yardstick/nodes/standalone/host_sriov.yaml
new file mode 100644 (file)
index 0000000..c766d0f
--- /dev/null
@@ -0,0 +1,21 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+    name: sriov
+    role: Sriov
+    ip: 192.168.100.101
+    user: ""
+    password: ""
diff --git a/etc/yardstick/nodes/standalone/pod_bm_trex_template.yaml b/etc/yardstick/nodes/standalone/pod_bm_trex_template.yaml
new file mode 100644 (file)
index 0000000..31c94ef
--- /dev/null
@@ -0,0 +1,42 @@
+##############################################################################
+# Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+# Sample config file about the POD information, including the
+# name/IP/user/ssh key of Bare Metal and Controllers/Computes
+#
+# The options of this config file include:
+# name: the name of this node
+# role: node's role, support role: Master/Controller/Comupte/BareMetal
+# ip: the node's IP address
+# user: the username for login
+# key_filename:the path of the private key file for login
+
+nodes:
+-
+    name: trafficgen_1
+    role: tg__1
+    ip: {{gen.ip.mgmt[0]| ipaddr('address')}}
+    user: {{gen.user}}
+    password: {{gen.password}}
+    key_filename: {{gen.key_filename}}
+    interfaces:
+{% for num in range(item.num_vnfs|int) %}
+       xe{{num * 2}}:  # logical name from topology.yaml and vnfd.yaml
+           vpci:      "{{gen.pcis.private[num]}}"
+           dpdk_port_num: {{num * 2}}
+           local_ip: "{{gen.ip.private[num] | ipaddr('address')}}"
+           netmask: "{{gen.ip.private[num] | ipaddr('netmask')}}"
+           local_mac:   "{{gen.mac.private[num]}}"
+       xe{{(num * 2) + 1}}:  # logical name from topology.yaml and vnfd.yaml
+           vpci:      "{{gen.pcis.public[num]}}"
+           dpdk_port_num: {{(num * 2) + 1}}
+           local_ip: "{{gen.ip.public[num] | ipaddr('address') }}"
+           netmask: "{{gen.ip.private[num] | ipaddr('netmask')}}"
+           local_mac:   "{{gen.mac.public[num]}}"
+{% endfor %}
diff --git a/etc/yardstick/nodes/standalone/pod_ovs_template.yaml b/etc/yardstick/nodes/standalone/pod_ovs_template.yaml
new file mode 100644 (file)
index 0000000..95880d5
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+    name: ovs
+    role: OvsDpdk
+    ip: {{host.ip}}
+    user: {{host.user}}
+    password: {{host.password}}
+    key_filename: {{host.key_filename}}
diff --git a/etc/yardstick/nodes/standalone/pod_sriov_template.yaml b/etc/yardstick/nodes/standalone/pod_sriov_template.yaml
new file mode 100644 (file)
index 0000000..ca818fa
--- /dev/null
@@ -0,0 +1,22 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+nodes:
+-
+    name: sriov
+    role: Sriov
+    ip: {{host.ip}}
+    user: {{host.user}}
+    password: {{host.password}}
+    key_filename: {{host.key_filename}}
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..047a118
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+  topology: acl_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  ixia_profile: ../../traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex_ixia.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:07:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:07:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
new file mode 100644 (file)
index 0000000..2921f49
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: acl-tg-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..13d1ab1
--- /dev/null
@@ -0,0 +1,79 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+  topology: acl_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  ixia_profile: ../../traffic_profiles/acl/acl_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex_ixia.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:07:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:07:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/acl/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
new file mode 100644 (file)
index 0000000..58e6fbd
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: acl-tg-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..20e3628
--- /dev/null
@@ -0,0 +1,93 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
+  topology: cgnapt_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      public_ip: ["152.16.40.10"]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex_ixia.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:07:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:07:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
new file mode 100644 (file)
index 0000000..66c8186
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
+  topology: cgnapt-vnf-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      public_ip: ["152.40.40.10"]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..46ff847
--- /dev/null
@@ -0,0 +1,80 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
+  topology: cgnapt_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      public_ip: ["152.16.40.10"]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  ixia_profile: ../../traffic_profiles/cgnapt/cgnat_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex_ixia.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:07:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:07:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/cgnapt/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml
new file mode 100644 (file)
index 0000000..7561a10
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput_cgnapt.yaml
+  topology: cgnapt-vnf-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      public_ip: ["152.16.40.10"]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/udp_replay/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
new file mode 100644 (file)
index 0000000..9dff81f
--- /dev/null
@@ -0,0 +1,90 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: udp_replay-vnf-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+       hw_csum: false
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/udp_replay/tc_sriov_rfc2544_ipv4_1rule_64B_trex.yaml
new file mode 100644 (file)
index 0000000..05f3ac0
--- /dev/null
@@ -0,0 +1,77 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: udp_replay-vnf-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      nfvi_enable: True
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..9cd6421
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+  topology: vfw_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex_ixia.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:07:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:07:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_ovs_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
new file mode 100644 (file)
index 0000000..9aff239
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: vfw-tg-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..bcad666
--- /dev/null
@@ -0,0 +1,79 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency.yaml
+  topology: vfw_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  ixia_profile: ../../traffic_profiles/vfw/vfw_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex_ixia.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:07:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:07:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/vfw/tc_sriov_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
new file mode 100644 (file)
index 0000000..c43e2bd
--- /dev/null
@@ -0,0 +1,78 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
+  topology: vfw-tg-topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      rules: acl_1rule.yaml
+      vnf_config: {lb_config: 'SW', lb_count: 1, worker_config: '1C/1T', worker_threads: 1}
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     name: yardstick
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 4096
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 6
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.61/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml b/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_ixia.yaml
new file mode 100644 (file)
index 0000000..b72bf9a
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput_vpe.yaml
+  topology: vpe_vnf_topology_ixia.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      nfvi_enable: True
+      vnf_config: vpe_config
+  ixia_profile: ../../traffic_profiles/vpe/vpe_ipv4_profile_1flows.ixncfg
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 16364
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml b/samples/vnf_samples/nsut/vpe/tc_ovs_rfc2544_ipv4_1rule_64B_trex.yaml
new file mode 100644 (file)
index 0000000..37f3c10
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+schema: yardstick:task:0.1
+scenarios:
+- type: NSPerf
+  traffic_profile: ../../traffic_profiles/ipv4_throughput_vpe.yaml
+  topology: vpe_vnf_topology.yaml
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+  options:
+    framesize:
+      private: {64B: 100}
+      public: {64B: 100}
+    flow:
+      src_ip: [{'tg__0': 'xe0'}]
+      dst_ip: [{'tg__0': 'xe1'}]
+      count: 1
+    traffic_type: 4
+    rfc2544:
+      allowed_drop_rate: 0.0001 - 0.0001
+    vnf__0:
+      nfvi_enable: True
+      vnf_config: vpe_config
+  runner:
+    type: Iteration
+    iterations: 10
+    interval: 35
+contexts:
+   - name: yardstick
+     type: Node
+     file: /etc/yardstick/nodes/standalone/pod_trex.yaml
+   - type: StandaloneOvsDpdk
+     name: yardstick
+     file: /etc/yardstick/nodes/standalone/pod_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.7.0
+         dpdk: 16.11.1
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+
+     flavor:
+       images: "/var/lib/libvirt/images/ubuntu.qcow2"
+       ram: 16364
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 7
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.7/24'
+           xe0:
+             - uplink_0
+           xe1:
+             - downlink_0
+     networks:
+       uplink_0:
+         port_num: 0
+         phy_port: "0000:05:00.0"
+         vpci: "0000:00:07.0"
+         cidr: '152.16.100.10/24'
+         gateway_ip: '152.16.100.20'
+       downlink_0:
+         port_num: 1
+         phy_port: "0000:05:00.1"
+         vpci: "0000:00:08.0"
+         cidr: '152.16.40.10/24'
+         gateway_ip: '152.16.100.20'
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_cgnapt.yaml
new file mode 100644 (file)
index 0000000..8fdfe9b
--- /dev/null
@@ -0,0 +1,137 @@
+# flow definition for ACL tests - 1K flows - ipv4 only
+#
+# the number of flows defines the widest range of parameters
+# for example if srcip_range=1.0.0.1-1.0.0.255 and dst_ip_range=10.0.0.1-10.0.1.255
+# and it should define only 16 flows
+#
+#there is assumption that packets generated will have a random sequences of following addresses pairs
+# in the packets
+# 1. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# 2. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+# ...
+# 512. src=1.x.x.x(x.x.x =random from 1..255) dst=10.x.x.x (random from 1..512)
+#
+# not all combination should be filled
+# Any other field with random range will be added to flow definition
+#
+# the example.yaml provides all possibilities for traffic generation
+#
+# the profile defines a public and private side to make limited traffic correlation
+# between private and public side same way as it is made by IXIA solution.
+#
+schema: "isb:traffic_profile:0.1"
+
+# This file is a template, it will be filled with values from tc.yaml before passing to the traffic generator
+
+name:            rfc2544
+description:     Traffic profile to run RFC2544 latency
+traffic_profile:
+  traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+  frame_rate : 100  # pc of linerate
+  # that specifies a range (e.g. ipv4 address, port)
+
+
+uplink_0:
+      ipv4:
+        id: 1
+        outer_l2:
+            framesize:
+                64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+                128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+                256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+                373b: "{{get(imix, 'imix.uplink.373B', '0') }}"
+                512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+                570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+                1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+                1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+                1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+        outer_l3v4:
+            proto: "udp"
+            srcip4: "{{get(flow, 'flow.src_ip_0', '1.1.1.1-1.15.255.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_0', '90.90.1.1-90.105.255.255') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+            ttl: 32
+            dscp: 0
+        outer_l4:
+            srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+downlink_0:
+      ipv4:
+        id: 2
+        outer_l2:
+            framesize:
+                64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+                128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+                256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+                373b: "{{get(imix, 'imix.downlink.373B', '0') }}"
+                512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+                570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+                1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+                1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+                1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+        outer_l3v4:
+            proto: "udp"
+            srcip4: "{{get(flow, 'flow.dst_ip_0', '1.1.1.1-1.15.255.255') }}"
+            dstip4: "{{get(flow, 'flow.public_ip_0', '10.0.2.1-10.0.2.255') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+            ttl: 32
+            dscp: 0
+        outer_l4:
+            srcport: "{{get(flow, 'flow.src_port_0', '1234') }}"
+            dstport: "{{get(flow, 'flow.dst_port_0', '2001') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+uplink_1:
+      ipv4:
+        id: 3
+        outer_l2:
+            framesize:
+                64B: "{{get(imix, 'imix.uplink.64B', '0') }}"
+                128B: "{{get(imix, 'imix.uplink.128B', '0') }}"
+                256B: "{{get(imix, 'imix.uplink.256B', '0') }}"
+                373b: "{{get(imix, 'imix.uplink.373B', '0') }}"
+                512B: "{{get(imix, 'imix.uplink.512B', '0') }}"
+                570B: "{{get(imix, 'imix.uplink.570B', '0') }}"
+                1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+                1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+                1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+        outer_l3v4:
+            proto: "udp"
+            srcip4: "{{get(flow, 'flow.src_ip_1', '1.1.1.1-1.15.255.255') }}"
+            dstip4: "{{get(flow, 'flow.dst_ip_1', '90.90.1.1-90.105.255.255') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+            ttl: 32
+            dscp: 0
+        outer_l4:
+            srcport: "{{get(flow, 'flow.src_port_1', '1234') }}"
+            dstport: "{{get(flow, 'flow.dst_port_1', '2001') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+downlink_1:
+      ipv4:
+        id: 4
+        outer_l2:
+            framesize:
+                64B: "{{get(imix, 'imix.downlink.64B', '0') }}"
+                128B: "{{get(imix, 'imix.downlink.128B', '0') }}"
+                256B: "{{get(imix, 'imix.downlink.256B', '0') }}"
+                373b: "{{get(imix, 'imix.downlink.373B', '0') }}"
+                512B: "{{get(imix, 'imix.downlink.512B', '0') }}"
+                570B: "{{get(imix, 'imix.downlink.570B', '0') }}"
+                1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+                1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+                1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+
+        outer_l3v4:
+            proto: "udp"
+            srcip4: "{{get(flow, 'flow.dst_ip_1', '1.1.1.1-1.15.255.255') }}"
+            dstip4: "{{get(flow, 'flow.public_ip_1', '10.0.2.1-10.0.2.255') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
+            ttl: 32
+            dscp: 0
+        outer_l4:
+            srcport: "{{get(flow, 'flow.dst_port_1', '1234') }}"
+            dstport: "{{get(flow, 'flow.src_port_1', '2001') }}"
+            count: "{{get(flow, 'flow.count', '1') }}"
index 035c733..dfc0e67 100644 (file)
@@ -29,6 +29,9 @@ vnfd:vnfd-catalog:
             {% if ip is defined %}
             ip: '{{ip}}'  # Value filled by vnfdgen
             {% endif %}
+            {% if host is defined %}
+            host: '{{host}}'  # Value filled by vnfdgen
+            {% endif %}
             {% if key_filename is defined %}
             key_filename: '{{key_filename}}'  # Value filled by vnfdgen
             {% endif %}
diff --git a/yardstick/resources/scripts/install/ovs_deploy.bash b/yardstick/resources/scripts/install/ovs_deploy.bash
new file mode 100755 (executable)
index 0000000..d94f30d
--- /dev/null
@@ -0,0 +1,122 @@
+#!/bin/bash
+#
+# Copyright (c) 2016-2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+INSTALL_OVS_BIN="/usr/src"
+cd $INSTALL_OVS_BIN
+
+if [[ $EUID -ne 0 ]]; then
+  echo "Must be root to run $0"
+  exit 1;
+fi
+
+prerequisite()
+{
+  echo "Install required libraries to run collectd..."
+  pkg=(git flex bison build-essential pkg-config automake autotools-dev libltdl-dev cmake qemu-kvm libvirt-bin bridge-utils numactl libnuma-dev libpcap-dev)
+  for i in "${pkg[@]}"; do
+  dpkg-query -W --showformat='${Status}\n' "${i}"|grep "install ok installed"
+  if [  "$?" -eq "1" ]; then
+    apt-get update
+    apt-get -y install "${i}";
+  fi
+  done
+  echo "Done"
+}
+
+download_zip()
+{
+  url=$1
+  download_type=$2
+  if [ -n "${download_type}" ]; then
+    echo "Download ${download_type} zip"
+  fi
+  # rm goes into calling code
+  echo "${url}"
+  if [ ! -e "${url##*/}" ]; then
+    wget "${url}"
+  fi
+  tar xvf "${url##*/}"
+}
+
+dpdk_build()
+{
+  pushd .
+  if [[ $DPDK_VERSION != "" ]]; then
+    export DPDK_DIR=$INSTALL_OVS_BIN/dpdk-stable-$DPDK_VERSION
+    export RTE_TARGET=x86_64-native-linuxapp-gcc
+    export DPDK_BUILD=$DPDK_DIR/$RTE_TARGET
+    rm -rf "$DPDK_DIR"
+    DPDK_DOWNLOAD="http://fast.dpdk.org/rel/dpdk-$DPDK_VERSION.tar.xz"
+    download_zip "${DPDK_DOWNLOAD}" "DPDK"
+    cd dpdk-stable-"$DPDK_VERSION"
+    make install -j T=$RTE_TARGET
+  fi
+  popd
+}
+
+ovs()
+{
+  pushd .
+  if [[ $OVS_VERSION != "" ]]; then
+    rm -rf openswitch-"$OVS_VERSION"
+    OVS_DOWNLOAD="http://openvswitch.org/releases/openvswitch-$OVS_VERSION.tar.gz"
+    download_zip "${OVS_DOWNLOAD}" "OVS"
+    cd openvswitch-"$OVS_VERSION"
+    export OVS_DIR=/usr/src/openvswitch-$OVS_VERSION
+    ./boot.sh
+    if [[ $DPDK_VERSION != "" ]]; then
+      ./configure --with-dpdk="$DPDK_BUILD"
+    else
+      ./configure
+    fi
+    make install -j
+  fi
+  popd
+}
+
+main()
+{
+  dpdk_build
+  ovs
+}
+
+for i in "$@"
+do
+  case $i in
+    -o=*|--ovs=*)
+      OVS_VERSION="${i#*=}"
+    ;;
+    -d=*|--dpdk=*)
+      DPDK_VERSION="${i#*=}"
+    ;;
+    -p=*|--proxy=*)
+      export http_proxy="${i#*=}"
+      export https_proxy="${i#*=}"
+    ;;
+    -h|--help)
+      echo "CommandLine options:"
+      echo "===================="
+      echo "1. ovs_dpdk install mode:"
+      echo "./ovs_install.sh --ovs=<2.7.0> --dpdk=<supported dpdk versoin for given ovs> -p=<proxy>"
+      echo
+      exit
+    ;;
+    *)
+    ;;
+  esac
+done
+
+main