NSB: update vfw scale-out testcases 31/45731/1
authorRoss Brattain <ross.b.brattain@intel.com>
Thu, 19 Oct 2017 03:53:53 +0000 (20:53 -0700)
committerRoss Brattain <ross.b.brattain@intel.com>
Thu, 19 Oct 2017 04:32:34 +0000 (04:32 +0000)
Change-Id: I6bd8a87f70954f288975e3e73e3cfbd36ae561dc
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
(cherry picked from commit 39ead7aee3610dddbdeae33a5776ae5b98dfabea)

ansible/scale_out_test_templates.yml
samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_10.yaml
samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_4.yaml
samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml
samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml [new file with mode: 0644]

index 4213816..487319f 100644 (file)
     src: ../samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_out.yaml
     dest: ../samples/vnf_samples/nsut/vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_correlated_scale_{{ num_vnfs }}.yaml
 
+- template:
+    src: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml
+    dest: ../samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-{{ num_vnfs }}.yaml
+
 - template:
     src: ../samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_out.yaml
     dest: ../samples/vnf_samples/nsut/cgnapt/tc_heat_rfc2544_ipv4_1flow_64B_trex_correlated_scale_{{ num_vnfs }}.yaml
index cf60ba1..1d9c4e1 100644 (file)
 ---
 schema: yardstick:task:0.1
 scenarios:
-- type: NSPerf
-  traffic_profile: ../../traffic_profiles/ipv4_throughput-10.yaml
-  topology: vfw-tg-topology-3node-10.yaml
-  nodes:
-    tg__0: tg_0.yardstick
-    tg__1: tg_1.yardstick
-    vnf__0: vnf_0.yardstick
-    vnf__1: vnf_1.yardstick
-    vnf__2: vnf_2.yardstick
-    vnf__3: vnf_3.yardstick
-    vnf__4: vnf_4.yardstick
-    vnf__5: vnf_5.yardstick
-    vnf__6: vnf_6.yardstick
-    vnf__7: vnf_7.yardstick
-    vnf__8: vnf_8.yardstick
-    vnf__9: vnf_9.yardstick
+  - type: NSPerf
+    traffic_profile: ../../traffic_profiles/ipv4_throughput-10.yaml
+    topology: vfw-tg-topology-3node-10.yaml
+    nodes:
+      tg__0: tg_0.yardstick
+      tg__1: tg_1.yardstick
+      vnf__0: vnf_0.yardstick
+      vnf__1: vnf_1.yardstick
+      vnf__2: vnf_2.yardstick
+      vnf__3: vnf_3.yardstick
+      vnf__4: vnf_4.yardstick
+      vnf__5: vnf_5.yardstick
+      vnf__6: vnf_6.yardstick
+      vnf__7: vnf_7.yardstick
+      vnf__8: vnf_8.yardstick
+      vnf__9: vnf_9.yardstick
     options:
       framesize:
         uplink: {64B: 100}
index 64633eb..bd29ab7 100644 (file)
 ---
 schema: yardstick:task:0.1
 scenarios:
-- type: NSPerf
-  traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
-  topology: vfw-tg-topology-3node-4.yaml
-  nodes:
-    tg__0: tg_0.yardstick
-    tg__1: tg_1.yardstick
-    vnf__0: vnf_0.yardstick
-    vnf__1: vnf_1.yardstick
-    vnf__2: vnf_2.yardstick
-    vnf__3: vnf_3.yardstick
+  - type: NSPerf
+    traffic_profile: ../../traffic_profiles/ipv4_throughput-4.yaml
+    topology: vfw-tg-topology-3node-4.yaml
+    nodes:
+      tg__0: tg_0.yardstick
+      tg__1: tg_1.yardstick
+      vnf__0: vnf_0.yardstick
+      vnf__1: vnf_1.yardstick
+      vnf__2: vnf_2.yardstick
+      vnf__3: vnf_3.yardstick
     options:
       framesize:
         uplink: {64B: 100}
index 767ecbc..be15e45 100644 (file)
 ---
 schema: yardstick:task:0.1
 scenarios:
-- type: NSPerf
-  traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
-  topology: vfw-tg-topology-3node-{{ num_vnfs }}.yaml
-  nodes:
-    tg__0: tg_0.yardstick
-    tg__1: tg_1.yardstick
+  - type: NSPerf
+    traffic_profile: ../../traffic_profiles/ipv4_throughput-{{ num_vnfs }}.yaml
+    topology: vfw-tg-topology-3node-{{ num_vnfs }}.yaml
+    nodes:
+      tg__0: tg_0.yardstick
+      tg__1: tg_1.yardstick
 {% for vnf_num in range(num_vnfs|int) %}
-    vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
+      vnf__{{ vnf_num }}: vnf_{{ vnf_num }}.yardstick
 {% endfor %}
     options:
       framesize:
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-10.yaml
new file mode 100644 (file)
index 0000000..99ac9e8
--- /dev/null
@@ -0,0 +1,260 @@
+# Copyright (c) 2016 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: 10-vnf-correlated
+      name: 10-vnf-correlated
+      short-name: 10-vnf-correlated
+      description: 10-vnf-correlated
+      constituent-vnfd:
+        - member-vnf-index: '0'
+          vnfd-id-ref: tg__0
+          VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml      #VNF type
+        - member-vnf-index: '1'
+          vnfd-id-ref: tg__1
+          VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml      #VNF type
+        - member-vnf-index: '2'
+          vnfd-id-ref: vnf__0
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '3'
+          vnfd-id-ref: vnf__1
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '4'
+          vnfd-id-ref: vnf__2
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '5'
+          vnfd-id-ref: vnf__3
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '6'
+          vnfd-id-ref: vnf__4
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '7'
+          vnfd-id-ref: vnf__5
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '8'
+          vnfd-id-ref: vnf__6
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '9'
+          vnfd-id-ref: vnf__7
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '10'
+          vnfd-id-ref: vnf__8
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '11'
+          vnfd-id-ref: vnf__9
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+
+      vld:
+        - id: uplink_0
+          name: "tg__0 to vnf__0 link 0"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              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__1 link 0"
+          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: xe0
+              vnfd-id-ref: tg__1
+        - id: uplink_1
+          name: "tg__0 to vnf__1 link 1"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '3'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__1
+        - id: downlink_1
+          name: "vnf__1 to tg__1 link 1"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '3'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__1
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: tg__1
+        - id: uplink_2
+          name: "tg__0 to vnf__2 link 2"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe2
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '4'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__2
+        - id: downlink_2
+          name: "vnf__2 to tg__1 link 2"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '4'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__2
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe2
+              vnfd-id-ref: tg__1
+        - id: uplink_3
+          name: "tg__0 to vnf__3 link 3"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe3
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '5'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__3
+        - id: downlink_3
+          name: "vnf__3 to tg__1 link 3"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '5'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__3
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe3
+              vnfd-id-ref: tg__1
+        - id: uplink_4
+          name: "tg__0 to vnf__4 link 4"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe4
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '6'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__4
+        - id: downlink_4
+          name: "vnf__4 to tg__1 link 4"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '6'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__4
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe4
+              vnfd-id-ref: tg__1
+        - id: uplink_5
+          name: "tg__0 to vnf__5 link 5"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe5
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '7'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__5
+        - id: downlink_5
+          name: "vnf__5 to tg__1 link 5"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '7'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__5
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe5
+              vnfd-id-ref: tg__1
+        - id: uplink_6
+          name: "tg__0 to vnf__6 link 6"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe6
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '8'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__6
+        - id: downlink_6
+          name: "vnf__6 to tg__1 link 6"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '8'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__6
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe6
+              vnfd-id-ref: tg__1
+        - id: uplink_7
+          name: "tg__0 to vnf__7 link 7"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe7
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '9'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__7
+        - id: downlink_7
+          name: "vnf__7 to tg__1 link 7"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '9'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__7
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe7
+              vnfd-id-ref: tg__1
+        - id: uplink_8
+          name: "tg__0 to vnf__8 link 8"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe8
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '10'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__8
+        - id: downlink_8
+          name: "vnf__8 to tg__1 link 8"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '10'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__8
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe8
+              vnfd-id-ref: tg__1
+        - id: uplink_9
+          name: "tg__0 to vnf__9 link 9"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe9
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '11'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__9
+        - id: downlink_9
+          name: "vnf__9 to tg__1 link 9"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '11'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__9
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe9
+              vnfd-id-ref: tg__1
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-2.yaml
new file mode 100644 (file)
index 0000000..a1043c2
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright (c) 2016 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: 2-vnf-correlated
+      name: 2-vnf-correlated
+      short-name: 2-vnf-correlated
+      description: 2-vnf-correlated
+      constituent-vnfd:
+        - member-vnf-index: '0'
+          vnfd-id-ref: tg__0
+          VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml      #VNF type
+        - member-vnf-index: '1'
+          vnfd-id-ref: tg__1
+          VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml      #VNF type
+        - member-vnf-index: '2'
+          vnfd-id-ref: vnf__0
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '3'
+          vnfd-id-ref: vnf__1
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+
+      vld:
+        - id: uplink_0
+          name: "tg__0 to vnf__0 link 0"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              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__1 link 0"
+          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: xe0
+              vnfd-id-ref: tg__1
+        - id: uplink_1
+          name: "tg__0 to vnf__1 link 1"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '3'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__1
+        - id: downlink_1
+          name: "vnf__1 to tg__1 link 1"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '3'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__1
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: tg__1
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-4.yaml
new file mode 100644 (file)
index 0000000..22e172d
--- /dev/null
@@ -0,0 +1,122 @@
+# Copyright (c) 2016 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: 4-vnf-correlated
+      name: 4-vnf-correlated
+      short-name: 4-vnf-correlated
+      description: 4-vnf-correlated
+      constituent-vnfd:
+        - member-vnf-index: '0'
+          vnfd-id-ref: tg__0
+          VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml      #VNF type
+        - member-vnf-index: '1'
+          vnfd-id-ref: tg__1
+          VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml      #VNF type
+        - member-vnf-index: '2'
+          vnfd-id-ref: vnf__0
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '3'
+          vnfd-id-ref: vnf__1
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '4'
+          vnfd-id-ref: vnf__2
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+        - member-vnf-index: '5'
+          vnfd-id-ref: vnf__3
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+
+      vld:
+        - id: uplink_0
+          name: "tg__0 to vnf__0 link 0"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              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__1 link 0"
+          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: xe0
+              vnfd-id-ref: tg__1
+        - id: uplink_1
+          name: "tg__0 to vnf__1 link 1"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '3'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__1
+        - id: downlink_1
+          name: "vnf__1 to tg__1 link 1"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '3'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__1
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: tg__1
+        - id: uplink_2
+          name: "tg__0 to vnf__2 link 2"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe2
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '4'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__2
+        - id: downlink_2
+          name: "vnf__2 to tg__1 link 2"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '4'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__2
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe2
+              vnfd-id-ref: tg__1
+        - id: uplink_3
+          name: "tg__0 to vnf__3 link 3"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe3
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '5'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__3
+        - id: downlink_3
+          name: "vnf__3 to tg__1 link 3"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '5'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__3
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe3
+              vnfd-id-ref: tg__1
+
diff --git a/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml b/samples/vnf_samples/nsut/vfw/vfw-tg-topology-3node-scale-out.yaml
new file mode 100644 (file)
index 0000000..0052c41
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright (c) 2016 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: {{ num_vnfs }}-vnf-correlated
+      name: {{ num_vnfs }}-vnf-correlated
+      short-name: {{ num_vnfs }}-vnf-correlated
+      description: {{ num_vnfs }}-vnf-correlated
+      constituent-vnfd:
+        - member-vnf-index: '0'
+          vnfd-id-ref: tg__0
+          VNF model: ../../vnf_descriptors/tg_rfc2544_tpl.yaml      #VNF type
+        - member-vnf-index: '1'
+          vnfd-id-ref: tg__1
+          VNF model: ../../vnf_descriptors/udp_replay_vnf.yaml      #VNF type
+{% for vnf_num in range(num_vnfs|int) %}
+        - member-vnf-index: '{{ vnf_num + 2 }}'
+          vnfd-id-ref: vnf__{{ vnf_num }}
+          VNF model: ../../vnf_descriptors/vfw_vnf.yaml      #VNF type
+{% endfor %}
+
+      vld:
+{% for vnf_num in range(num_vnfs|int) %}
+        - id: uplink_{{ vnf_num }}
+          name: "tg__0 to vnf__{{ vnf_num }} link {{ vnf_num }}"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '0'
+              vnfd-connection-point-ref: xe{{ vnf_num }}
+              vnfd-id-ref: tg__0
+            - member-vnf-index-ref: '{{ vnf_num + 2 }}'
+              vnfd-connection-point-ref: xe0
+              vnfd-id-ref: vnf__{{ vnf_num }}
+        - id: downlink_{{ vnf_num }}
+          name: "vnf__{{ vnf_num }} to tg__1 link {{ vnf_num }}"
+          type: ELAN
+          vnfd-connection-point-ref:
+            - member-vnf-index-ref: '{{ vnf_num + 2}}'
+              vnfd-connection-point-ref: xe1
+              vnfd-id-ref: vnf__{{ vnf_num }}
+            - member-vnf-index-ref: '1'
+              vnfd-connection-point-ref: xe{{ vnf_num }}
+              vnfd-id-ref: tg__1
+{% endfor %}
+