Merge "Update LABEL in docker file for Ubuntu 18"
authorVolodymyr Mytnyk <volodymyrx.mytnyk@intel.com>
Fri, 11 Jan 2019 09:45:56 +0000 (09:45 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Fri, 11 Jan 2019 09:45:56 +0000 (09:45 +0000)
32 files changed:
ansible/install.yaml
ansible/roles/build_yardstick_image/tasks/cloudimg_modify_nsb.yml
ansible/roles/install_dependencies_jumphost/tasks/Debian.yml
ansible/roles/install_image_dependencies/defaults/main.yml
samples/vnf_samples/nsut/agnostic/tc_baremetal_rfc2544_latency_ipv4_64B_ixia_L3.yaml [moved from samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml with 59% similarity]
samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml [deleted file]
samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml [deleted file]
samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml [deleted file]
samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml [deleted file]
samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml [new file with mode: 0644]
samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml [new file with mode: 0644]
yardstick/common/exceptions.py
yardstick/common/utils.py
yardstick/network_services/libs/ixia_libs/ixnet/ixnet_api.py
yardstick/network_services/vnf_generic/vnf/tg_rfc2544_ixia.py
yardstick/tests/unit/common/test_utils.py
yardstick/tests/unit/network_services/vnf_generic/vnf/test_tg_rfc2544_ixia.py

index f4f57bd..d181c5f 100644 (file)
     - install_pmu_tools
     - download_collectd
     - install_collectd
+    - docker
+    - barometer_collectd
 
 
-- hosts: jumphost
+- name: Prepare to build VM
+  hosts: jumphost
   become: yes
   vars:
     img_prop_item: "{{ IMG_PROPERTY }}"
       when: installation_mode != inst_mode_container
 
 
-- hosts: chroot_image
+- name: Build VM in chroot
+  hosts: chroot_image
   connection: chroot
   become: yes
   vars:
       when: installation_mode != inst_mode_container
 
 
-- hosts: jumphost
+- name: Clear up after VM is built
+  hosts: jumphost
   become: yes
 
   tasks:
       when: installation_mode != inst_mode_container
 
 
-- name: start yardstick container on jumphost
+- hosts: jumphost
+  vars_files:
+    - yardstick_config.yml
+
+  roles:
+    - { role: convert_openrc, when: openrc_file is defined }
+
+
+- name: Add OpenStack variables, image
+  hosts: jumphost
+  vars_files:
+    - yardstick_config.yml
+  environment:
+    "{{ openrc }}"
+
+  roles:
+    - { role: clean_images, when: openrc_file is defined }
+    - { role: clean_flavors, when: openrc_file is defined }
+    - { role: create_samplevnfs_image, when: openrc_file is defined }
+
+
+- name: Start yardstick container on jumphost
   hosts: jumphost
 
   tasks:
-    - include_role:
+    - name: Install docker needed to pull Yardstick container
+      include_role:
         name: docker
       when: installation_mode == inst_mode_container_pull
 
index c2f72ca..c9e3863 100644 (file)
@@ -72,6 +72,9 @@
     loop_var: role_item
   environment: "{{ proxy_env }}"
 
+- include_vars: roles/install_dpdk/defaults/main.yml
+  when: INSTALL_BIN_PATH is undefined
+
 - name: Install PROX
   include_role:
     name: install_samplevnf
@@ -89,9 +92,6 @@
     loop_var: role_item
   environment: "{{ proxy_env }}"
 
-- include_vars: roles/install_dpdk/defaults/main.yml
-  when: INSTALL_BIN_PATH is undefined
-
 - include_vars: roles/download_samplevnfs/defaults/main.yml
   when: samplevnf_dest is undefined
 - set_fact:
index 6c3900d..a229cc1 100755 (executable)
     - ansible_distribution == 'Ubuntu'
     - ansible_distribution_major_version|int >= 17
 
+- name: Uninstall docker as it conflicts with docker-py
+  pip:
+    name:
+      - docker
+    state: absent
+
 - name: Install required docker-py module
   pip:
-    name: docker-py
+    name:
+      - docker-py
+      - shade
     state: latest
   environment: "{{ proxy_env }}"
index 7a3f5fa..42951bf 100644 (file)
@@ -29,6 +29,7 @@ install_dependencies:
     - libxft-dev
     - libxss-dev
     - expect
+    - libnuma-dev
   RedHat:
     - bc
     - fio
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2018 Intel Corporation
+# Copyright (c) 2018 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+{% set vports = vports or 2 %}
 ---
 schema: yardstick:task:0.1
 scenarios:
 - type: NSPerf
-  traffic_profile: "../../traffic_profiles/ixia_ipv4_latency.yaml"
-  topology: firewall_vnf_topology_ixia.yaml
+  traffic_profile: ../../traffic_profiles/ixia_ipv4_latency_L3.yaml
+  topology: agnostic_vnf_topology_ixia_{{ vports }}ports.yaml
+  ixia_config: IxiaL3
+  extra_args:
+    vports: {{ vports }}
   nodes:
-    tg__0: trafficgen_1.yardstick
-    vnf__0: vnf.yardstick
+    tg__0: tg_0.yardstick
+    vnf__0: vnf_0.yardstick
   options:
     framesize:
-      private: {64B: 100}
-      public: {64B: 100}
+      uplink: {64B: 100}
+      downlink: {64B: 100}
     flow:
-      src_ip: [{'tg__0': 'xe0'}]
-      dst_ip: [{'tg__0': 'xe1'}]
+      src_ip:
+{% for vport in range(0,vports,2|int) %}
+        - '152.{{ vport }}.0.1-152.{{ vport }}.0.50'
+{% endfor %}
+      dst_ip:
+{% for vport in range(1,vports,2|int) %}
+        - '152.{{ vport }}.1.1-152.{{ vport }}.1.150'
+{% endfor %}
       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}
-      nfvi_enable: True
+      []
   runner:
     type: Iteration
     iterations: 10
diff --git a/samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml b/samples/vnf_samples/nsut/firewall/firewall-tg-topology-4port.yaml
deleted file mode 100644 (file)
index 105f85d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# 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.
-
-nsd:nsd-catalog:
-    nsd:
-    -   id: 3tg-topology
-        name: 3tg-topology
-        short-name: 3tg-topology
-        description: 3tg-topology
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: tg__0
-            VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml      #VNF type
-        -   member-vnf-index: '2'
-            vnfd-id-ref: vnf__0
-            VNF model: ../../vnf_descriptors/firewall_vnf.yaml      #VNF type
-
-        vld:
-        -   id: uplink_0
-            name: tg__0 to vnf__0 link 1
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: tg__0
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: vnf__0
-        -   id: downlink_0
-            name: vnf__0 to tg__0 link 2
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: vnf__0
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: tg__0
-
-        -   id: uplink_1
-            name: tg__0 to vnf__0 link 3
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe2
-                vnfd-id-ref: tg__0
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe2
-                vnfd-id-ref: vnf__0
-        -   id: downlink_1
-            name: vnf__0 to tg__0 link 4
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe3
-                vnfd-id-ref: vnf__0
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe3
-                vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml b/samples/vnf_samples/nsut/firewall/firewall-tg-topology.yaml
deleted file mode 100644 (file)
index b93137b..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-# 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.
-
-nsd:nsd-catalog:
-    nsd:
-    -   id: 2node-topology
-        name: 2node-topology
-        short-name: 2node-topology
-        description: 2node-topology
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: tg__0
-            VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml      #VNF type
-        -   member-vnf-index: '2'
-            vnfd-id-ref: vnf__0
-            VNF model: ../../vnf_descriptors/firewall_vnf.yaml      #VNF type
-
-        vld:
-        -   id: uplink_0
-            name: tg__0 to vnf__0 link 1
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: tg__0
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: vnf__0
-
-        -   id: downlink_0
-            name: vnf__0 to tg__0 link 2
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: vnf__0
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia.yaml
deleted file mode 100644 (file)
index 9913a05..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-# 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.
-
-nsd:nsd-catalog:
-    nsd:
-    -   id: vFW
-        name: vFW
-        short-name: vFW
-        description: scenario with vFW VNF
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: tg__0
-            VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml
-        -   member-vnf-index: '2'
-            vnfd-id-ref: vnf__0
-            VNF model: ../../vnf_descriptors/firewall_vnf.yaml
-
-        vld:
-        -   id: uplink_0
-            name: tg__0 to vnf__0 link 1
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: tg__0
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: vnf__0
-
-        -   id: downlink_0
-            name: vnf__0 to tg__0 link 2
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: vnf__0
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml b/samples/vnf_samples/nsut/firewall/firewall_vnf_topology_ixia_4port.yaml
deleted file mode 100644 (file)
index 411c63d..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-# 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.
-
-nsd:nsd-catalog:
-    nsd:
-    -   id: vFW
-        name: vFW
-        short-name: vFW
-        description: scenario with vFW VNF
-        constituent-vnfd:
-        -   member-vnf-index: '1'
-            vnfd-id-ref: tg__0
-            VNF model: ../../vnf_descriptors/ixia_rfc2544_tpl.yaml
-        -   member-vnf-index: '2'
-            vnfd-id-ref: vnf__0
-            VNF model: ../../vnf_descriptors/firewall_vnf.yaml
-
-        vld:
-        -   id: uplink_0
-            name: tg__0 to vnf__0 link 1
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: tg__0
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe0
-                vnfd-id-ref: vnf__0
-
-        -   id: downlink_0
-            name: vnf__0 to tg__0 link 2
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: vnf__0
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe1
-                vnfd-id-ref: tg__0
-
-        -   id: uplink_1
-            name: tg__0 to vnf__0 link 3
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe2
-                vnfd-id-ref: tg__0
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe2
-                vnfd-id-ref: vnf__0
-
-        -   id: downlink_1
-            name: vnf__0 to tg__0 link 4
-            type: ELAN
-            vnfd-connection-point-ref:
-            -   member-vnf-index-ref: '2'
-                vnfd-connection-point-ref: xe3
-                vnfd-id-ref: vnf__0
-            -   member-vnf-index-ref: '1'
-                vnfd-connection-point-ref: xe3
-                vnfd-id-ref: tg__0
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1flow_64B_trex.yaml
deleted file mode 100644 (file)
index a2595f6..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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: firewall-tg-topology.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {64B: 100}
-      public: {64B: 100}
-    flow:
-      src_ip:
-        - '152.16.100.181'
-      dst_ip:
-        - '152.16.40.181'
-      count: 1
-    traffic_type: 4
-    rfc2544:
-      allowed_drop_rate: 0.0001 - 0.0001
-    vnf__0:
-      nfvi_enable: True
-  runner:
-    type: Iteration
-    iterations: 2
-    interval: 35
-context:
-  type: Node
-  name: yardstick
-  nfvi_type: baremetal
-  file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
deleted file mode 100644 (file)
index ab2a633..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2016-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {1518B: 100}
-      public: {1518B: 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}
-      nfvi_enable: True
-  runner:
-    type: Iteration
-    iterations: 10
-    interval: 35
-context:
-  type: Node
-  name: yardstick
-  nfvi_type: baremetal
-  file: /etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_1518B_ixia_4port.yaml
deleted file mode 100644 (file)
index 03ceaaf..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2016-2018 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: firewall_vnf_topology_ixia_4port.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {1518B: 100}
-      public: {1518B: 100}
-    flow:
-      src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
-      dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
-      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: 2, worker_config: '1C/1T', worker_threads: 1}
-      nfvi_enable: True
-  runner:
-    type: Iteration
-    iterations: 10
-    interval: 35
-context:
-  type: Node
-  name: yardstick
-  nfvi_type: baremetal
-  file: /etc/yardstick/nodes/pod_ixia_4port.yaml
-#/etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml b/samples/vnf_samples/nsut/firewall/tc_baremetal_rfc2544_ipv4_1rule_1flow_64B_ixia_4port.yaml
deleted file mode 100644 (file)
index 6850fd8..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2016-2018 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: firewall_vnf_topology_ixia_4port.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {64B: 100}
-      public: {64B: 100}
-    flow:
-      src_ip: [{'tg__0': 'xe0'}, {'tg__0': 'xe2'}]
-      dst_ip: [{'tg__0': 'xe1'}, {'tg__0': 'xe3'}]
-      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: 2, worker_config: '1C/1T', worker_threads: 1}
-      nfvi_enable: True
-  runner:
-    type: Iteration
-    iterations: 10
-    interval: 35
-context:
-  type: Node
-  name: yardstick
-  nfvi_type: baremetal
-  file: /etc/yardstick/nodes/pod_ixia_4port.yaml
-#/etc/yardstick/nodes/pod_ixia.yaml
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1024B_ixia.yaml
deleted file mode 100644 (file)
index 235c6fc..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {1024B: 100}
-      public: {1024B: 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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1280B_ixia.yaml
deleted file mode 100644 (file)
index 5e56847..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {1280B: 100}
-      public: {1280B: 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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_128B_ixia.yaml
deleted file mode 100644 (file)
index 2286fcb..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {128B: 100}
-      public: {128B: 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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_1518B_ixia.yaml
deleted file mode 100644 (file)
index 680cf7c..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {1518B: 100}
-      public: {1518B: 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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_256B_ixia.yaml
deleted file mode 100644 (file)
index 245236a..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {256B: 100}
-      public: {256B: 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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_512B_ixia.yaml
deleted file mode 100644 (file)
index 3a100ed..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    vnf__0: vnf.yardstick
-  options:
-    framesize:
-      private: {512B: 100}
-      public: {512B: 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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_ixia.yaml
deleted file mode 100644 (file)
index f334aa9..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright (c) 2017-2018 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: firewall_vnf_topology_ixia.yaml
-  nodes:
-    tg__0: trafficgen_1.yardstick1
-    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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: yardstick1
-    type: Node
-    file: ixia.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        vld_id: downlink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        vld_id: uplink_0
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml b/samples/vnf_samples/nsut/firewall/tc_heat_external_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
deleted file mode 100644 (file)
index fec5851..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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: firewall-tg-topology.yaml
-  nodes:
-    tg__0: trafficgen_1.baremetal
-    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:
-  # put node context first, so we don't HEAT deploy if node has errors
-  - name: baremetal
-    type: Node
-    file: trex-baremetal.yml
-  - name: yardstick
-    image: yardstick-samplevnfs
-    flavor:
-      vcpus: 10
-      ram: 20480
-      disk: 6
-      extra_specs:
-        hw:cpu_sockets: 1
-        hw:cpu_cores: 10
-        hw:cpu_threads: 1
-    user: ubuntu
-    placement_groups:
-      pgrp1:
-        policy: "availability"
-    servers:
-      vnf:
-        floating_ip: true
-        placement: "pgrp1"
-    networks:
-      mgmt:
-        cidr: '10.0.1.0/24'
-      xe0:
-        cidr: '10.0.2.0/24'
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant1
-        port_security_enabled: False
-      xe1:
-        cidr: '10.0.3.0/24'
-        gateway_ip: 'null'
-        provider: true
-        physical_network: phystenant2
-        port_security_enabled: False
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd-scale-up.yaml
new file mode 100644 (file)
index 0000000..49ab05a
--- /dev/null
@@ -0,0 +1,103 @@
+# Copyright (c) 2018 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+  type: NSPerf
+  traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+  extra_args:
+    vports: {{ vports }}
+  topology: prox-tg-topology-scale-up.yaml
+
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+
+  options:
+    interface_speed_gbps: 10
+
+    vnf__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+      prox_args:
+        "-t": ""
+
+    tg__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+      prox_args:
+        "-e": ""
+        "-t": ""
+
+  runner:
+    type: Duration
+    # we kill after duration, independent of test duration, so set this high
+    duration: 600
+
+contexts:
+   - name: yardstick
+     type: Node
+     file: prox_tg_bm.yaml
+     servers:
+   - name: yardstick
+     type: StandaloneOvsDpdk
+     file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.8.0
+         dpdk: 17.05.2
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+     flavor:
+       images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+       ram: 16384
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 10
+         hw:cpu_threads: 2
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+           xe{{ port_num * 2 }}:
+             - uplink_{{ port_num }}
+           xe{{ (port_num * 2) + 1 }}:
+             - downlink_{{ port_num }}
+{% endfor %}
+     networks:
+{% for port_num in range((vports/2)|int) %}
+       uplink_{{ port_num }}:
+         port_num: {{networks.uplink[port_num].port_num}}
+         phy_port: "{{networks.uplink[port_num].phy_port}}"
+         vpci: "{{networks.uplink[port_num].vpci}}"
+         cidr: "{{networks.uplink[port_num].cidr}}"
+         gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+       downlink_{{ port_num }}:
+         port_num: {{networks.downlink[port_num].port_num}}
+         phy_port: "{{networks.downlink[port_num].phy_port}}"
+         vpci: "{{networks.downlink[port_num].vpci}}"
+         cidr: "{{networks.downlink[port_num].cidr}}"
+         gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_ovs-dpdk_l2fwd_multiflow-scale-up.yaml
new file mode 100644 (file)
index 0000000..31a7633
--- /dev/null
@@ -0,0 +1,102 @@
+# Copyright (c) 2018 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+  type: NSPerf
+  traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+  extra_args:
+    vports: {{ vports }}
+  topology: prox-tg-topology-scale-up.yaml
+
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+
+  options:
+    interface_speed_gbps: 10
+
+    vnf__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/handle_l2fwd_multiflow-{{ vports }}.cfg"
+      prox_args:
+        "-t": ""
+
+    tg__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/gen_l2fwd_multiflow-{{ vports }}.cfg"
+      prox_args:
+        "-e": ""
+        "-t": ""
+
+  runner:
+    type: Duration
+    # we kill after duration, independent of test duration, so set this high
+    duration: 600
+
+contexts:
+   - name: yardstick
+     type: Node
+     file: prox_tg_bm.yaml
+   - name: yardstick
+     type: StandaloneOvsDpdk
+     file: /etc/yardstick/nodes/standalone/host_ovs.yaml
+     vm_deploy: True
+     ovs_properties:
+       version:
+         ovs: 2.8.0
+         dpdk: 17.05.2
+       pmd_threads: 2
+       ram:
+         socket_0: 2048
+         socket_1: 2048
+       queues: 4
+       vpath: "/usr/local"
+     flavor:
+       images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+       ram: 16384
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 10
+         hw:cpu_threads: 2
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+           xe{{ port_num * 2 }}:
+             - uplink_{{ port_num }}
+           xe{{ (port_num * 2) + 1 }}:
+             - downlink_{{ port_num }}
+{% endfor %}
+     networks:
+{% for port_num in range((vports/2)|int) %}
+       uplink_{{ port_num }}:
+         port_num: {{ networks.uplink[port_num].port_num }}
+         phy_port: "{{ networks.uplink[port_num].phy_port }}"
+         vpci: "{{ networks.uplink[port_num].vpci }}"
+         cidr: "{{ networks.uplink[port_num].cidr }}"
+         gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+       downlink_{{ port_num }}:
+         port_num: {{ networks.downlink[port_num].port_num }}
+         phy_port: "{{ networks.downlink[port_num].phy_port }}"
+         vpci: "{{ networks.downlink[port_num].vpci }}"
+         cidr: "{{ networks.downlink[port_num].cidr }}"
+         gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd-scale-up.yaml
new file mode 100644 (file)
index 0000000..045ee77
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright (c) 2018 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+  type: NSPerf
+  traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+  extra_args:
+    vports: {{ vports }}
+  topology: prox-tg-topology-scale-up.yaml
+
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+
+  options:
+    interface_speed_gbps: 10
+
+    vnf__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/handle_l2fwd-{{ vports }}.cfg"
+      prox_args:
+        "-t": ""
+
+    tg__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/gen_l2fwd-{{ vports }}.cfg"
+      prox_args:
+        "-e": ""
+        "-t": ""
+
+  runner:
+    type: Duration
+    # we kill after duration, independent of test duration, so set this high
+    duration: 600
+
+contexts:
+   - name: yardstick
+     type: Node
+     file: prox_tg_bm.yaml
+   - name: yardstick
+     type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+       ram: 16384
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 10
+         hw:cpu_threads: 2
+       user: "root"
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+           xe{{ port_num * 2 }}:
+             - uplink_{{ port_num }}
+           xe{{ (port_num * 2) + 1 }}:
+             - downlink_{{ port_num }}
+{% endfor %}
+     networks:
+{% for port_num in range((vports/2)|int) %}
+       uplink_{{ port_num }}:
+         phy_port: "{{networks.uplink[port_num].phy_port}}"
+         vpci: "{{networks.uplink[port_num].vpci}}"
+         cidr: "{{networks.uplink[port_num].cidr}}"
+         gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+       downlink_{{ port_num }}:
+         phy_port: "{{networks.downlink[port_num].phy_port}}"
+         vpci: "{{networks.downlink[port_num].vpci}}"
+         cidr: "{{networks.downlink[port_num].cidr}}"
+         gateway_ip: "{{networks.downlink[port_num].gateway_ip}}"
+{% endfor %}
diff --git a/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml b/samples/vnf_samples/nsut/prox/tc_prox_sriov_l2fwd_multiflow-scale-up.yaml
new file mode 100644 (file)
index 0000000..3fefc48
--- /dev/null
@@ -0,0 +1,92 @@
+# Copyright (c) 2018 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.
+
+{% set vports = vports or 2 %}
+---
+schema: "yardstick:task:0.1"
+
+scenarios:
+-
+  type: NSPerf
+  traffic_profile: ../../traffic_profiles/prox_binsearch.yaml
+  extra_args:
+    vports: {{ vports }}
+  topology: prox-tg-topology-scale-up.yaml
+
+  nodes:
+    tg__0: tg__0.yardstick
+    vnf__0: vnf__0.yardstick
+
+  options:
+    interface_speed_gbps: 10
+
+    vnf__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/handle_l2fwd_multiflow-{{ vports }}.cfg"
+      prox_args:
+        "-t": ""
+
+    tg__0:
+      prox_path: /opt/nsb_bin/prox
+      prox_config: "configs/gen_l2fwd_multiflow-{{ vports }}.cfg"
+      prox_args:
+        "-e": ""
+        "-t": ""
+
+  runner:
+    type: Duration
+    # we kill after duration, independent of test duration, so set this high
+    duration: 600
+
+contexts:
+   - name: yardstick
+     type: Node
+     file: prox_tg_bm.yaml
+   - name: yardstick
+     type: StandaloneSriov
+     file: /etc/yardstick/nodes/standalone/host_sriov.yaml
+     vm_deploy: True
+     flavor:
+       images: "/var/lib/libvirt/images/yardstick-nsb-image.img"
+       ram: 16384
+       extra_specs:
+         hw:cpu_sockets: 1
+         hw:cpu_cores: 10
+         hw:cpu_threads: 2
+       user: ""
+       password: ""
+     servers:
+       vnf__0:
+         network_ports:
+           mgmt:
+             cidr: '1.1.1.62/24'
+{% for port_num in range((vports/2)|int) %}
+           xe{{ port_num * 2 }}:
+             - uplink_{{ port_num }}
+           xe{{ (port_num * 2) + 1 }}:
+             - downlink_{{ port_num }}
+{% endfor %}
+     networks:
+{% for port_num in range((vports/2)|int) %}
+       uplink_{{ port_num }}:
+         phy_port: "{{ networks.uplink[port_num].phy_port }}"
+         vpci: "{{ networks.uplink[port_num].vpci }}"
+         cidr: "{{ networks.uplink[port_num].cidr }}"
+         gateway_ip: "{{ networks.uplink[port_num].gateway_ip }}"
+       downlink_{{ port_num }}:
+         phy_port: "{{ networks.downlink[port_num].phy_port }}"
+         vpci: "{{ networks.downlink[port_num].vpci }}"
+         cidr: "{{ networks.downlink[port_num].cidr }}"
+         gateway_ip: "{{ networks.downlink[port_num].gateway_ip }}"
+{% endfor %}
diff --git a/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml b/samples/vnf_samples/traffic_profiles/ixia_ipv4_latency_L3.yaml
new file mode 100644 (file)
index 0000000..e7221b1
--- /dev/null
@@ -0,0 +1,64 @@
+# Copyright (c) 2018 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.
+
+
+{% set vports = get(extra_args, 'vports', '2') %}
+---
+schema: "nsb: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 with L3 support
+traffic_profile:
+  traffic_type : IXIARFC2544Profile # defines traffic behavior - constant or look for highest possible throughput
+  frame_rate : 100  # pc of linerate
+  duration: {{ duration }}
+  enable_latency: True
+
+{% for vport in range(vports|int) %}
+uplink_{{ vport }}:
+  ipv4:
+    id: {{ (vport * 2) + 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') }}"
+        1024B: "{{get(imix, 'imix.uplink.1024B', '0') }}"
+        1280B: "{{get(imix, 'imix.uplink.1280B', '0') }}"
+        1400B: "{{get(imix, 'imix.uplink.1400B', '0') }}"
+        1500B: "{{get(imix, 'imix.uplink.1500B', '0') }}"
+        1518B: "{{get(imix, 'imix.uplink.1518B', '0') }}"
+
+downlink_{{vport}}:
+  ipv4:
+    id: {{ (vport * 2) + 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') }}"
+        1024B: "{{get(imix, 'imix.downlink.1024B', '0') }}"
+        1280B: "{{get(imix, 'imix.downlink.1280B', '0') }}"
+        1400B: "{{get(imix, 'imix.downlink.1400B', '0') }}"
+        1500B: "{{get(imix, 'imix.downlink.1500B', '0') }}"
+        1518B: "{{get(imix, 'imix.downlink.1518B', '0') }}"
+{% endfor %}
index 5e0df97..f62f02f 100644 (file)
@@ -405,6 +405,10 @@ class IxNetworkFieldNotPresentInStackItem(YardstickException):
     message = 'Field "%(field_name)s" not present in stack item %(stack_item)s'
 
 
+class IncorrectFlowOption(YardstickException):
+    message = 'Flow option {option} for {link} is incorrect'
+
+
 class SLAValidationError(YardstickException):
     message = '%(case_name)s SLA validation failed. Error: %(error_msg)s'
 
index 51313ef..9eba896 100644 (file)
@@ -293,6 +293,17 @@ def make_ipv4_address(ip_addr):
     return ipaddress.IPv4Address(six.text_type(ip_addr))
 
 
+def get_ip_range_count(iprange):
+    start_range, end_range = iprange.split("-")
+    start = int(make_ipv4_address(start_range))
+    end = int(make_ipv4_address(end_range))
+    return end - start
+
+
+def get_ip_range_start(iprange):
+    return str(make_ipv4_address(iprange.split("-")[0]))
+
+
 def safe_ip_address(ip_addr):
     """ get ip address version v6 or v4 """
     try:
index d41dd02..cc627ef 100644 (file)
@@ -152,6 +152,9 @@ class IxNextgen(object):  # pragma: no cover
         vports = self.ixnet.getList(self.ixnet.getRoot(), 'vport')
         return vports
 
+    def get_static_interface(self, vport):
+        return self.ixnet.getList(vport, 'interface')
+
     def _get_config_element_by_flow_group_name(self, flow_group_name):
         """Get a config element using the flow group name
 
index 1d37f8f..4d6bd42 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017 Intel Corporation
+# Copyright (c) 2016-2018 Intel Corporation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@ import logging
 import six
 
 from yardstick.common import utils
+from yardstick.common import exceptions
 from yardstick.network_services.libs.ixia_libs.ixnet import ixnet_api
 from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNFTrafficGen
 from yardstick.network_services.vnf_generic.vnf.sample_vnf import ClientResourceHelper
@@ -31,6 +32,8 @@ WAIT_PROTOCOLS_STARTED = 360
 
 
 class IxiaBasicScenario(object):
+    """Ixia Basic scenario for flow from port to port"""
+
     def __init__(self, client, context_cfg, ixia_cfg):
 
         self.client = client
@@ -43,6 +46,12 @@ class IxiaBasicScenario(object):
     def apply_config(self):
         pass
 
+    def run_protocols(self):
+        pass
+
+    def stop_protocols(self):
+        pass
+
     def create_traffic_model(self, traffic_profile=None):
         # pylint: disable=unused-argument
         vports = self.client.get_vports()
@@ -51,11 +60,81 @@ class IxiaBasicScenario(object):
         self.client.create_traffic_model(self._uplink_vports,
                                          self._downlink_vports)
 
-    def run_protocols(self):
-        pass
 
-    def stop_protocols(self):
-        pass
+class IxiaL3Scenario(IxiaBasicScenario):
+    """Ixia scenario for L3 flow between static ip's"""
+
+    def _add_static_ips(self):
+        vports = self.client.get_vports()
+        uplink_intf_vport = [(self.client.get_static_interface(vport), vport)
+                             for vport in vports[::2]]
+        downlink_intf_vport = [(self.client.get_static_interface(vport), vport)
+                               for vport in vports[1::2]]
+
+        for index in range(len(uplink_intf_vport)):
+            intf, vport = uplink_intf_vport[index]
+            try:
+                iprange = self.ixia_cfg['flow'].get('src_ip')[index]
+                start_ip = utils.get_ip_range_start(iprange)
+                count = utils.get_ip_range_count(iprange)
+                self.client.add_static_ipv4(intf, vport, start_ip, count)
+            except IndexError:
+                raise exceptions.IncorrectFlowOption(
+                    option="src_ip", link="uplink_{}".format(index))
+
+            intf, vport = downlink_intf_vport[index]
+            try:
+                iprange = self.ixia_cfg['flow'].get('dst_ip')[index]
+                start_ip = utils.get_ip_range_start(iprange)
+                count = utils.get_ip_range_count(iprange)
+                self.client.add_static_ipv4(intf, vport, start_ip, count)
+            except IndexError:
+                raise exceptions.IncorrectFlowOption(
+                    option="dst_ip", link="downlink_{}".format(index))
+
+    def _add_interfaces(self):
+        vports = self.client.get_vports()
+        uplink_vports = (vport for vport in vports[::2])
+        downlink_vports = (vport for vport in vports[1::2])
+
+        ix_node = next(node for _, node in self.context_cfg['nodes'].items()
+                       if node['role'] == 'IxNet')
+
+        for intf in ix_node['interfaces'].values():
+            ip = intf.get('local_ip')
+            mac = intf.get('local_mac')
+            gateway = None
+            try:
+                gateway = next(route.get('gateway')
+                               for route in ix_node.get('routing_table')
+                               if route.get('if') == intf.get('ifname'))
+            except StopIteration:
+                LOG.debug("Gateway not provided")
+
+            if 'uplink' in intf.get('vld_id'):
+                self.client.add_interface(next(uplink_vports),
+                                          ip, mac, gateway)
+            else:
+                self.client.add_interface(next(downlink_vports),
+                                          ip, mac, gateway)
+
+    def apply_config(self):
+        self._add_interfaces()
+        self._add_static_ips()
+
+    def create_traffic_model(self, traffic_profile=None):
+        # pylint: disable=unused-argument
+        vports = self.client.get_vports()
+        self._uplink_vports = vports[::2]
+        self._downlink_vports = vports[1::2]
+
+        uplink_endpoints = [port + '/protocols/static'
+                            for port in self._uplink_vports]
+        downlink_endpoints = [port + '/protocols/static'
+                              for port in self._downlink_vports]
+
+        self.client.create_ipv4_traffic_model(uplink_endpoints,
+                                              downlink_endpoints)
 
 
 class IxiaPppoeClientScenario(object):
@@ -370,6 +449,7 @@ class IxiaResourceHelper(ClientResourceHelper):
 
         self._ixia_scenarios = {
             "IxiaBasic": IxiaBasicScenario,
+            "IxiaL3": IxiaL3Scenario,
             "IxiaPppoeClient": IxiaPppoeClientScenario,
         }
 
index c0c9289..6b8d819 100644 (file)
@@ -1135,6 +1135,15 @@ class TestUtilsIpAddrMethods(ut_base.BaseUnitTestCase):
         for addr in addr_list:
             self.assertRaises(Exception, utils.make_ipv4_address, addr)
 
+    def test_get_ip_range_count(self):
+        iprange = "192.168.0.1-192.168.0.25"
+        count = utils.get_ip_range_count(iprange)
+        self.assertEqual(count, 24)
+
+    def test_get_ip_range_start(self):
+        iprange = "192.168.0.1-192.168.0.25"
+        start = utils.get_ip_range_start(iprange)
+        self.assertEqual(start, "192.168.0.1")
 
     def test_safe_ip_address(self):
         addr_list = self.GOOD_IP_V4_ADDRESS_STR_LIST
index 65bf56f..7247ee8 100644 (file)
@@ -432,7 +432,6 @@ class TestIXIATrafficGen(unittest.TestCase):
 
 
 class TestIxiaBasicScenario(unittest.TestCase):
-
     def setUp(self):
         self._mock_IxNextgen = mock.patch.object(ixnet_api, 'IxNextgen')
         self.mock_IxNextgen = self._mock_IxNextgen.start()
@@ -450,15 +449,15 @@ class TestIxiaBasicScenario(unittest.TestCase):
         self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaBasicScenario)
         self.assertEqual(self.scenario.client, self.mock_IxNextgen)
 
-    def test_apply_config(self):
-        self.assertIsNone(self.scenario.apply_config())
-
     def test_create_traffic_model(self):
         self.mock_IxNextgen.get_vports.return_value = [1, 2, 3, 4]
         self.scenario.create_traffic_model()
         self.scenario.client.get_vports.assert_called_once()
         self.scenario.client.create_traffic_model.assert_called_once_with([1, 3], [2, 4])
 
+    def test_apply_config(self):
+        self.assertIsNone(self.scenario.apply_config())
+
     def test_run_protocols(self):
         self.assertIsNone(self.scenario.run_protocols())
 
@@ -466,6 +465,97 @@ class TestIxiaBasicScenario(unittest.TestCase):
         self.assertIsNone(self.scenario.stop_protocols())
 
 
+class TestIxiaL3Scenario(TestIxiaBasicScenario):
+    IXIA_CFG = {
+        'flow': {
+            'src_ip': ['192.168.0.1-192.168.0.50'],
+            'dst_ip': ['192.168.1.1-192.168.1.150']
+        }
+    }
+
+    CONTEXT_CFG = {
+        'nodes': {
+            'tg__0': {
+                'role': 'IxNet',
+                'interfaces': {
+                    'xe0': {
+                        'vld_id': 'uplink_0',
+                        'local_ip': '10.1.1.1',
+                        'local_mac': 'aa:bb:cc:dd:ee:ff',
+                        'ifname': 'xe0'
+                    },
+                    'xe1': {
+                        'vld_id': 'downlink_0',
+                        'local_ip': '20.2.2.2',
+                        'local_mac': 'bb:bb:cc:dd:ee:ee',
+                        'ifname': 'xe1'
+                    }
+                },
+                'routing_table': [{
+                    'network': "152.16.100.20",
+                    'netmask': '255.255.0.0',
+                    'gateway': '152.16.100.21',
+                    'if': 'xe0'
+                }]
+            }
+        }
+    }
+
+    def setUp(self):
+        super(TestIxiaL3Scenario, self).setUp()
+        self.ixia_cfg = self.IXIA_CFG
+        self.context_cfg = self.CONTEXT_CFG
+        self.scenario = tg_rfc2544_ixia.IxiaL3Scenario(self.mock_IxNextgen,
+                                                       self.context_cfg,
+                                                       self.ixia_cfg)
+
+    def test___init___(self):
+        self.assertIsInstance(self.scenario, tg_rfc2544_ixia.IxiaL3Scenario)
+        self.assertEqual(self.scenario.client, self.mock_IxNextgen)
+
+    def test_create_traffic_model(self):
+        self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+        self.scenario.create_traffic_model()
+        self.scenario.client.get_vports.assert_called_once()
+        self.scenario.client.create_ipv4_traffic_model.\
+            assert_called_once_with(['1/protocols/static'],
+                                    ['2/protocols/static'])
+
+    def test_apply_config(self):
+        self.scenario._add_interfaces = mock.Mock()
+        self.scenario._add_static_ips = mock.Mock()
+        self.assertIsNone(self.scenario.apply_config())
+
+    def test__add_static(self):
+        self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+        self.mock_IxNextgen.get_static_interface.side_effect = ['intf1',
+                                                                'intf2']
+
+        self.scenario._add_static_ips()
+
+        self.mock_IxNextgen.get_static_interface.assert_any_call('1')
+        self.mock_IxNextgen.get_static_interface.assert_any_call('2')
+
+        self.scenario.client.add_static_ipv4.assert_any_call(
+            'intf1', '1', '192.168.0.1', 49)
+        self.scenario.client.add_static_ipv4.assert_any_call(
+            'intf2', '2', '192.168.1.1', 149)
+
+    def test__add_interfaces(self):
+        self.mock_IxNextgen.get_vports.return_value = ['1', '2']
+
+        self.scenario._add_interfaces()
+
+        self.mock_IxNextgen.add_interface.assert_any_call('1',
+                                                          '10.1.1.1',
+                                                          'aa:bb:cc:dd:ee:ff',
+                                                          '152.16.100.21')
+        self.mock_IxNextgen.add_interface.assert_any_call('2',
+                                                          '20.2.2.2',
+                                                          'bb:bb:cc:dd:ee:ee',
+                                                          None)
+
+
 class TestIxiaPppoeClientScenario(unittest.TestCase):
 
     IXIA_CFG = {