From 06432a93864b7c742e3194cc1296cbdcb68d5cfc Mon Sep 17 00:00:00 2001 From: Deepak S Date: Fri, 30 Dec 2016 09:24:21 -0800 Subject: Adding ping testcase to demonstrate the isb Generic framework 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 --- .../vnf_samples/nsut/ping/ping_tg_topology.yaml | 50 ++++++++++++++++ .../nsut/ping/tc_ping_baremetal_context.yaml | 41 +++++++++++++ .../vnf_samples/vnf_descriptors/tg_ping_tpl.yaml | 68 ++++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 samples/vnf_samples/nsut/ping/ping_tg_topology.yaml create mode 100644 samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml create mode 100644 samples/vnf_samples/vnf_descriptors/tg_ping_tpl.yaml 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 index 000000000..b2b852a79 --- /dev/null +++ b/samples/vnf_samples/nsut/ping/ping_tg_topology.yaml @@ -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 index 000000000..5f2c55b81 --- /dev/null +++ b/samples/vnf_samples/nsut/ping/tc_ping_baremetal_context.yaml @@ -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 index 000000000..6e8fcf77e --- /dev/null +++ b/samples/vnf_samples/vnf_descriptors/tg_ping_tpl.yaml @@ -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 -- cgit 1.2.3-korg