From cf4e74be539e7e5e6e7073a6bc77e2ce68b07670 Mon Sep 17 00:00:00 2001 From: treyad Date: Wed, 24 Oct 2018 18:17:00 -0700 Subject: Add VNF descriptor for vIMS testcase This patch defines: - vims-topology.yaml --> Define topology - tc_vims_baremetal_sipp.yaml,tc_vims_heat_sipp.yaml --> test cases in yardstick format (scenarios/context) JIRA: YARDSTICK-1443 Change-Id: Id0253c9fe7e0b65cdb1d57f853b229f7d628c84f Signed-off-by: treyad --- .../nodes/standalone/sipp_baremetal_pod.yaml | 52 ++++++++++++ etc/yardstick/nodes/standalone/sipp_pod.yaml | 30 +++++++ .../nsut/vims/tc_vims_baremetal_sipp.yaml | 57 +++++++++++++ .../vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml | 97 ++++++++++++++++++++++ samples/vnf_samples/nsut/vims/vims-topology.yaml | 52 ++++++++++++ .../vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml | 54 ++++++++++++ .../vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml | 54 ++++++++++++ .../vnf_descriptors/vims_pcscf_vnfd.yaml | 54 ++++++++++++ 8 files changed, 450 insertions(+) create mode 100644 etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml create mode 100644 etc/yardstick/nodes/standalone/sipp_pod.yaml create mode 100644 samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml create mode 100644 samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml create mode 100644 samples/vnf_samples/nsut/vims/vims-topology.yaml create mode 100644 samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml create mode 100644 samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml create mode 100644 samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml diff --git a/etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml b/etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml new file mode 100644 index 000000000..c7a0af1dd --- /dev/null +++ b/etc/yardstick/nodes/standalone/sipp_baremetal_pod.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2019 Viosoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +nodes: +- + name: sipp + role: TrafficGen + ip: 10.80.3.7 + user: USER_ROOT + password: PASSWORD_ROOT + interfaces: + xe0: # logical name from topology.yaml and vnfd.yaml + local_ip: "10.80.3.7" + netmask: "255.255.255.0" + local_mac: "90:e2:ba:7c:30:e8" + xe1: + local_ip: "10.80.3.7" + netmask: "255.255.255.0" + local_mac: "90:e2:ba:7c:30:e8" +- + name: pcscf + role: VirtualNetworkFunction + ip: 10.80.3.11 + user: USER_ROOT + password: PASSWORD_ROOT + interfaces: + xe0: + local_ip: "10.80.3.11" + netmask: "255.255.255.0" + local_mac: "90:e2:ba:7c:41:a8" +- + name: hss + role: VirtualNetworkFunction + ip: 10.80.3.11 + user: USER_ROOT + password: PASSWORD_ROOT + interfaces: + xe0: + local_ip: "10.80.3.11" + netmask: "255.255.255.0" + local_mac: "90:e2:ba:7c:41:a8" diff --git a/etc/yardstick/nodes/standalone/sipp_pod.yaml b/etc/yardstick/nodes/standalone/sipp_pod.yaml new file mode 100644 index 000000000..ae473c509 --- /dev/null +++ b/etc/yardstick/nodes/standalone/sipp_pod.yaml @@ -0,0 +1,30 @@ +# Copyright (c) 2019 Viosoft Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +nodes: +- + name: sipp + role: TrafficGen + ip: 10.80.3.7 + user: USER_ROOT + password: PASSWORD_ROOT + interfaces: + xe0: # logical name from topology.yaml and vnfd.yaml + local_ip: "10.80.3.7" + netmask: "255.255.255.0" + local_mac: "0c:c4:7a:de:8f:da" + xe1: # logical name from topology.yaml and vnfd.yaml + local_ip: "10.80.3.7" + netmask: "255.255.255.0" + local_mac: "0c:c4:7a:de:8f:da" diff --git a/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml b/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml new file mode 100644 index 000000000..bf9f5a44a --- /dev/null +++ b/samples/vnf_samples/nsut/vims/tc_vims_baremetal_sipp.yaml @@ -0,0 +1,57 @@ +# Copyright (c) 2019 Viosoft 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 +run_in_parallel: false +scenarios: +- + type: NSPerf + traffic_profile: "../../traffic_profiles/sip.yaml" + topology: vims-topology.yaml + + nodes: + vnf__0: pcscf.yardstick + vnf__1: hss.yardstick + tg__0: sipp.yardstick + + runner: + type: Duration + duration: 10000 + interval: 1 + options: + port: 5060 + start_user: 1 + end_user: 10000 + init_reg_cps: 50 + init_reg_max: 5000 + reg_cps: 20 + reg_step: 10 + rereg_cps: 20 + rereg_step: 10 + dereg_cps: 20 + dereg_step: 10 + msgc_cps: 10 + msgc_step: 5 + run_mode: nortp + call_cps: 10 + hold_time: 15 + call_step: 5 + + wait_time: 5 + +context: + type: Node + name: yardstick + nfvi_type: baremetal + file: /etc/yardstick/nodes/sipp_baremetal_pod.yaml diff --git a/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml b/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml new file mode 100644 index 000000000..8bf59c962 --- /dev/null +++ b/samples/vnf_samples/nsut/vims/tc_vims_heat_sipp.yaml @@ -0,0 +1,97 @@ +# Copyright (c) 2019 Viosoft 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" +run_in_parallel: false +scenarios: +- + type: NSPerf + traffic_profile: "../../traffic_profiles/sip.yaml" + topology: vims-topology.yaml + nodes: + tg__0: sipp.trafficgen + vnf__0: + name: bono-0.yardstick + public_ip_attr: "bono_public_ip" + private_ip_attr: "bono_private_ip" + interfaces: + ims_network: + local_ip: bono_private_ip + local_mac: bono_local_mac + netmask: "255.255.255.0" + network: private_net_name + gateway_ip: private_net_gateway + + vnf__1: + name: homestead-0.yardstick + public_ip_attr: "homestead_public_ip" + private_ip_attr: "homestead_private_ip" + interfaces: + ims_network: + local_ip: homestead_private_ip + local_mac: homestead_local_mac + netmask: "255.255.255.0" + network: private_net_name + gateway_ip: private_net_gateway + options: + # Public key to create keypair on openstack + key_name: yardstick + public_key: "" + port: 5060 + start_user: 1 + end_user: 10000 + init_reg_cps: 50 + init_reg_max: 5000 + reg_cps: 50 + reg_step: 10 + rereg_cps: 10 + rereg_step: 5 + dereg_cps: 10 + dereg_step: 5 + msgc_cps: 10 + msgc_step: 2 + run_mode: rtp + call_cps: 10 + hold_time: 15 + call_step: 5 + wait_time: 600 + runner: + type: Duration + duration: 10000 + interval: 1 +contexts: +# put node context first, so we don't HEAT deploy if node has errors +- + name: trafficgen + type: Node + nfvi_type: baremetal + file: /etc/yardstick/nodes/sipp_pod.yaml + +- + name: yardstick + user: ubuntu + # Private key to access VM + key_filename: /etc/yardstick/yardstick.pem + heat_template: /tmp/clearwater.yaml + heat_parameters: + image: "Ubuntu_14_trusty" + flavor: m1.small + key_name: yardstick + public_net_id: "public1" + repo_url: "http://repo.cw-ngv.com/archive/repo107/" + dnssec_key: "HOz2ZYgvbyCFRUymRLBXyLD4+tESevesP07hhzs/uKUD+Oy3aWvReEWMKgBwy75FAl9XQqw6wIGb" + private_net_name: "ims_network" + private_net_cidr: "10.0.1.0/24" + private_net_gateway: "10.0.1.1" + private_net_pool_start: "10.0.1.2" diff --git a/samples/vnf_samples/nsut/vims/vims-topology.yaml b/samples/vnf_samples/nsut/vims/vims-topology.yaml new file mode 100644 index 000000000..a7525ab57 --- /dev/null +++ b/samples/vnf_samples/nsut/vims/vims-topology.yaml @@ -0,0 +1,52 @@ +# Copyright (c) 2019 Viosoft 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: vims-tg-topology + name: vims-tg-topology + short-name: vims-tg-topology + description: vims-tg-topology + constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: tg__0 + VNF model: ../../vnf_descriptors/tg_sipp_vnfd.yaml # Traffic Generator + - member-vnf-index: '2' + vnfd-id-ref: vnf__0 + VNF model: ../../vnf_descriptors/vims_pcscf_vnfd.yaml # vims + - member-vnf-index: '3' + vnfd-id-ref: vnf__1 + VNF model: ../../vnf_descriptors/vims_hss_vnfd.yaml # vims + + vld: + - id: ims_network + 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: data_network + name: tg__0 to vnf__0 link 2 + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: xe1 + vnfd-id-ref: tg__0 + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: xe0 + vnfd-id-ref: vnf__0 diff --git a/samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml b/samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml new file mode 100644 index 000000000..4a9d7055b --- /dev/null +++ b/samples/vnf_samples/vnf_descriptors/tg_sipp_vnfd.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2019 Viosoft 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: SippVnf + name: SippVnf + short-name: SippVnf + description: ImsbenchSipp + mgmt-interface: + vdu-id: sippvnf-baremetal + {% if user is defined %} + user: '{{user}}' # Value filled by vnfdgen + {% endif %} + {% if password is defined %} + password: '{{password}}' # Value filled by vnfdgen + {% endif %} + {% if ip is defined %} + ip: '{{ip}}' # Value filled by vnfdgen + {% endif %} + {% if key_filename is defined %} + key_filename: '{{key_filename}}' # Value filled by vnfdgen + {% endif %} + vdu: + - id: sippvnf-baremetal + name: sippvnf-baremetal + description: Sipp + routing_table: {{ routing_table }} + external-interface: + - name: xe0 + virtual-interface: + local_ip: '{{ interfaces.xe0.local_ip }}' + dst_ip: '{{ interfaces.xe0.dst_ip }}' + vnfd-connection-point-ref: xe0 + - name: xe1 + virtual-interface: + local_ip: '{{ interfaces.xe1.local_ip }}' + vnfd-connection-point-ref: xe1 + benchmark: + kpi: + - packets_in + - packets_fwd + - packets_dropped diff --git a/samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml b/samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml new file mode 100644 index 000000000..835ca4987 --- /dev/null +++ b/samples/vnf_samples/vnf_descriptors/vims_hss_vnfd.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2019 Viosoft 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: VimsHssVnf + name: HssVnf + short-name: HssVnf + description: IMS Database + mgmt-interface: + vdu-id: HssVnf + {% if user is defined %} + user: '{{user}}' # Value filled by vnfdgen + {% endif %} + {% if password is defined %} + password: '{{password}}' # Value filled by vnfdgen + {% endif %} + {% if ip is defined %} + ip: '{{ip}}' # Value filled by vnfdgen + {% endif %} + {% if key_filename is defined %} + key_filename: '{{key_filename}}' # Value filled by vnfdgen + {% endif %} + vdu: + - id: HssVnf + name: HssVnf + description: IMS Database + external-interface: + - name: ims_network + virtual-interface: + local_ip: '{{ip}}' + local_mac: '{{local_mac}}' + netmask: '{{netmask}}' + vm-flavor: + vcpu-count: '4' + memory-mb: '4096' + routing_table: {{ routing_table }} + nd_route_tbl: {{ nd_route_tbl }} + benchmark: + kpi: + - packets_in + - packets_fwd + - packets_dropped diff --git a/samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml b/samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml new file mode 100644 index 000000000..02a96d037 --- /dev/null +++ b/samples/vnf_samples/vnf_descriptors/vims_pcscf_vnfd.yaml @@ -0,0 +1,54 @@ +# Copyright (c) 2019 Viosoft 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: VimsPcscfVnf + name: PcscfVnf + short-name: PcscfVnf + description: IMS Gateway + mgmt-interface: + vdu-id: PcscfVnf + {% if user is defined %} + user: '{{user}}' # Value filled by vnfdgen + {% endif %} + {% if password is defined %} + password: '{{password}}' # Value filled by vnfdgen + {% endif %} + {% if ip is defined %} + ip: '{{ip}}' # Value filled by vnfdgen + {% endif %} + {% if key_filename is defined %} + key_filename: '{{key_filename}}' # Value filled by vnfdgen + {% endif %} + vdu: + - id: PcscfVnf + name: PcscfVnf + description: VIMS Gateway + external-interface: + - name: ims_network + virtual-interface: + local_ip: '{{ip}}' + local_mac: '{{local_mac}}' + netmask: '{{netmask}}' + vm-flavor: + vcpu-count: '4' + memory-mb: '4096' + routing_table: {{ routing_table }} + nd_route_tbl: {{ nd_route_tbl }} + benchmark: + kpi: + - packets_in + - packets_fwd + - packets_dropped -- cgit 1.2.3-korg