Adding ping testcase to demonstrate the isb Generic framework 27/26627/4
authorDeepak S <deepak.s@linux.intel.com>
Fri, 30 Dec 2016 17:24:21 +0000 (09:24 -0800)
committerDeepak S <deepak.s@linux.intel.com>
Thu, 19 Jan 2017 02:59:15 +0000 (08:29 +0530)
This patch defines
  - 2tg-topology-baremetal.yaml --> Define topology
  - pod.yaml -> sample pod.yaml describing TG & VNF unit details
  - tc.yaml --> test case in yardstick format (scenarios/context)
  - tg_ping_tpl.yaml --> VNF descriptor explaining how units are connected,
eg Host (Xe0) --> Target (Xe0)
   Host (Xe1) --> Target (Xe1)

JIRA: YARDSTICK-491
Change-Id:I41b69f457a6caa58d806cac9af8e831752ad314d
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
samples/vnf_samples/nsut/ping/ping_tg_topology.yaml [new file with mode: 0644]
samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml [new file with mode: 0644]
samples/vnf_samples/vnf_descriptors/tg_ping_tpl.yaml [new file with mode: 0644]

diff --git a/samples/vnf_samples/nsut/ping/ping_tg_topology.yaml b/samples/vnf_samples/nsut/ping/ping_tg_topology.yaml
new file mode 100644 (file)
index 0000000..b2b852a
--- /dev/null
@@ -0,0 +1,50 @@
+# 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: ping-tg-topology
+        name: ping-tg-topology
+        short-name: ping-tg-topology
+        description: ping-tg-topology
+        constituent-vnfd:
+        -   member-vnf-index: '1'
+            vnfd-id-ref: tg__1
+            VNF model: ../../vnf_descriptors/tg_ping_tpl.yaml      #VNF type
+        -   member-vnf-index: '2'
+            vnfd-id-ref: vnf__1
+            VNF model: ../../vnf_descriptors/tg_ping_tpl.yaml      #VNF type
+
+        vld:
+        -   id: private
+            name: tg__1 to vnf__1 link 1
+            type: ELAN
+            vnfd-connection-point-ref:
+            -   member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: xe0
+                vnfd-id-ref: trexgen
+            -   member-vnf-index-ref: '2'
+                vnfd-connection-point-ref: xe0
+                vnfd-id-ref: trexgen
+
+        -   id: public
+            name: vnf__1 to tg__1 link 2
+            type: ELAN
+            vnfd-connection-point-ref:
+            -   member-vnf-index-ref: '1'
+                vnfd-connection-point-ref: xe1
+                vnfd-id-ref: trexgen
+            -   member-vnf-index-ref: '2'
+                vnfd-connection-point-ref: xe1
+                vnfd-id-ref: trexgen
diff --git a/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml b/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml
new file mode 100644 (file)
index 0000000..5f2c55b
--- /dev/null
@@ -0,0 +1,41 @@
+# 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/fixed.yaml
+  topology: ping_tg_topology.yaml  # TODO: look in relative path where the tc.yaml is found
+
+  nodes:  # This section is copied from pod.xml or resolved via Heat
+    tg__1: trafficgen_1.yardstick
+    vnf__1: vnf.yardstick
+
+  vnf_options:
+    tg__1:
+      target_ip: pingvnf__1.xe0.local_ip  # TODO: resolve to config vars
+    vnf__1:
+      target_ip: pinggen__1.xe1.local_ip  # TODO: resolve to config vars
+  runner:
+    type: Duration
+    duration: 10
+
+context:
+  type: Node
+  name: yardstick
+  nfvi_type: baremetal
+  file: /etc/yardstick/nodes/pod.yaml
diff --git a/samples/vnf_samples/vnf_descriptors/tg_ping_tpl.yaml b/samples/vnf_samples/vnf_descriptors/tg_ping_tpl.yaml
new file mode 100644 (file)
index 0000000..6e8fcf7
--- /dev/null
@@ -0,0 +1,68 @@
+# 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.
+
+vnfd:vnfd-catalog:
+    vnfd:
+    -   id: PingTrafficGen
+        name: pinggen
+        short-name: pinggen
+        description: Sample 1-port ping generator
+        vm-flavor:
+            vcpu-count: '4'
+            memory-mb: '4096'
+        mgmt-interface:
+            vdu-id: pinggen-baremetal
+            user: '{{user}}'  # Value filled by vnfdgen
+            password: '{{password}}'  # Value filled by vnfdgen
+            ip: '{{ip}}'  # Value filled by vnfdgen
+        connection-point:
+        -   name: xe0
+            type: VPORT
+        -   name: xe1
+            type: VPORT
+        vdu:
+        -   id: pinggen-baremetal
+            name: pinggen-baremetal
+            description: Sample 1-port ping generator
+            external-interface:
+            -   name: xe0
+                virtual-interface:
+                    type: virtio
+                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+                    vpci: '{{ interfaces.xe0.vpci }}' # Value filled by vnfdgen
+                    local_iface_name: '{{ interfaces.xe0.local_iface_name }}' # Value filled by vnfdgen
+                    driver: '{{ interfaces.xe0.driver}}' # Value filled by vnfdgen
+                    local_ip: '{{ interfaces.xe0.local_ip }}' # Value filled by vnfdgen
+                    dst_ip: '{{ interfaces.xe0.dst_ip }}' # Value filled by vnfdgen
+                    local_mac: '{{ interfaces.xe0.local_mac }}' # Value filled by vnfdgen
+                    dst_mac: '{{ interfaces.xe0.dst_mac }}' # Value filled by vnfdgen
+                    bandwidth: 10 Gbps
+                vnfd-connection-point-ref: xe0
+            -   name: xe1
+                virtual-interface:
+                    type: virtio
+                    # Substitution variables MUST be quoted. Otherwise Python can misinterpet them.
+                    vpci: '{{ interfaces.xe1.vpci }}' # Value filled by vnfdgen
+                    local_iface_name: '{{ interfaces.xe1.local_iface_name }}' # Value filled by vnfdgen
+                    local_ip: '{{ interfaces.xe1.local_ip }}' # Value filled by vnfdgen
+                    driver: '{{ interfaces.xe1.driver}}' # Value filled by vnfdgen
+                    dst_ip: '{{ interfaces.xe1.dst_ip }}' # Value filled by vnfdgen
+                    local_mac: '{{ interfaces.xe1.local_mac }}' # Value filled by vnfdgen
+                    dst_mac: '{{ interfaces.xe1.dst_mac }}' # Value filled by vnfdgen
+                    bandwidth: 10 Gbps
+                vnfd-connection-point-ref: xe0
+        benchmark:
+            kpi:
+                - rtt
+                - packets_trasmitted