Add PCSCF, HSS classes for NSB-vIMS 49/63849/13
authortreyad <treyad@viosoft.com>
Sun, 21 Oct 2018 16:14:37 +0000 (09:14 -0700)
committertreyad <treyad@viosoft.com>
Fri, 15 Mar 2019 13:06:13 +0000 (06:06 -0700)
Currently, these VNF life cycles are:
- instantiate
- terminate
Pass through function: collect_kpi

JIRA: YARDSTICK-1444
JIRA: YARDSTICK-1445

Change-Id: I418877f79b6578ad4d78d7de4885c8aa20246beb
Signed-off-by: treyad <treyad@viosoft.com>
yardstick/network_services/vnf_generic/vnf/vims_vnf.py [new file with mode: 0644]
yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py [new file with mode: 0644]

diff --git a/yardstick/network_services/vnf_generic/vnf/vims_vnf.py b/yardstick/network_services/vnf_generic/vnf/vims_vnf.py
new file mode 100644 (file)
index 0000000..0e339b1
--- /dev/null
@@ -0,0 +1,105 @@
+# 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.
+
+import logging
+import time
+
+from yardstick.network_services.vnf_generic.vnf import sample_vnf
+
+LOG = logging.getLogger(__name__)
+
+
+class VimsSetupEnvHelper(sample_vnf.SetupEnvHelper):
+
+    def setup_vnf_environment(self):
+        LOG.debug('VimsSetupEnvHelper:\n')
+
+
+class VimsResourceHelper(sample_vnf.ClientResourceHelper):
+    pass
+
+
+class VimsPcscfVnf(sample_vnf.SampleVNF):
+
+    APP_NAME = "VimsPcscf"
+    APP_WORD = "VimsPcscf"
+
+    def __init__(self, name, vnfd, setup_env_helper_type=None,
+                 resource_helper_type=None):
+        if resource_helper_type is None:
+            resource_helper_type = VimsResourceHelper
+        if setup_env_helper_type is None:
+            setup_env_helper_type = VimsSetupEnvHelper
+        super(VimsPcscfVnf, self).__init__(name, vnfd, setup_env_helper_type,
+                                           resource_helper_type)
+
+    def wait_for_instantiate(self):
+        pass
+
+    def _run(self):
+        pass
+
+    def start_collect(self):
+        # TODO
+        pass
+
+    def collect_kpi(self):
+        # TODO
+        pass
+
+
+class VimsHssVnf(sample_vnf.SampleVNF):
+
+    APP_NAME = "VimsHss"
+    APP_WORD = "VimsHss"
+    CMD = "sudo /media/generate_user.sh {} {} >> /dev/null 2>&1"
+
+    def __init__(self, name, vnfd, setup_env_helper_type=None,
+                 resource_helper_type=None):
+        if resource_helper_type is None:
+            resource_helper_type = VimsResourceHelper
+        if setup_env_helper_type is None:
+            setup_env_helper_type = VimsSetupEnvHelper
+        super(VimsHssVnf, self).__init__(name, vnfd, setup_env_helper_type,
+                                         resource_helper_type)
+        self.start_user = 1
+        self.end_user = 10000
+        self.WAIT_TIME = 600
+
+    def instantiate(self, scenario_cfg, context_cfg):
+        LOG.debug("scenario_cfg=%s\n", scenario_cfg)
+        self.start_user = scenario_cfg.get("options", {}).get("start_user", self.start_user)
+        self.end_user = scenario_cfg.get("options", {}).get("end_user", self.end_user)
+        # TODO
+        # Need to check HSS services are ready before generating user accounts
+        # Now, adding time sleep that manually configured by user
+        # to wait for HSS services.
+        # Note: for heat, waiting time is too long (~ 600s)
+        self.WAIT_TIME = scenario_cfg.get("options", {}).get("wait_time", self.WAIT_TIME)
+        time.sleep(self.WAIT_TIME)
+        LOG.debug("Generate user accounts from %d to %d\n",
+                  self.start_user, self.end_user)
+        cmd = self.CMD.format(self.start_user, self.end_user)
+        self.ssh_helper.execute(cmd, None, 3600, False)
+
+    def wait_for_instantiate(self):
+        pass
+
+    def start_collect(self):
+        # TODO
+        pass
+
+    def collect_kpi(self):
+        # TODO
+        pass
diff --git a/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py b/yardstick/tests/unit/network_services/vnf_generic/vnf/test_vims_vnf.py
new file mode 100644 (file)
index 0000000..d86dab8
--- /dev/null
@@ -0,0 +1,713 @@
+# 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.
+
+import unittest
+import mock
+
+from yardstick.network_services.vnf_generic.vnf import vims_vnf
+from yardstick.tests.unit.network_services.vnf_generic.vnf.test_base import mock_ssh
+
+
+class TestVimsPcscfVnf(unittest.TestCase):
+
+    VNFD_0 = {
+        "short-name": "SippVnf",
+        "vdu": [
+            {
+                "id": "sippvnf-baremetal",
+                "routing_table": "",
+                "external-interface": [
+                    {
+                        "virtual-interface": {
+                            "vld_id": "ims_network",
+                            "peer_ifname": "xe0",
+                            "dst_mac": "90:e2:ba:7c:41:e8",
+                            "network": {},
+                            "local_ip": "10.80.3.11",
+                            "peer_intf": {
+                                "vnf__0": {
+                                    "vld_id": "data_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "node_name": "vnf__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:a8"
+                                },
+                                "vnf__1": {
+                                    "vld_id": "ims_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "node_name": "vnf__1",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:e8"
+                                }
+                            },
+                            "node_name": "tg__0",
+                            "netmask": "255.255.255.0",
+                            "peer_name": "vnf__1",
+                            "dst_ip": "10.80.3.7",
+                            "ifname": "xe0",
+                            "local_mac": "90:e2:ba:7c:30:e8"
+                        },
+                        "vnfd-connection-point-ref": "xe0",
+                        "name": "xe0"
+                    },
+                    {
+                        "virtual-interface": {
+                            "vld_id": "ims_network",
+                            "peer_ifname": "xe0",
+                            "dst_mac": "90:e2:ba:7c:41:e8",
+                            "network": {},
+                            "local_ip": "10.80.3.11",
+                            "peer_intf": {
+                                "vnf__0": {
+                                    "vld_id": "data_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "peer_intf": {
+                                        "vld_id": "ims_network",
+                                        "peer_ifname": "xe0",
+                                        "dst_mac": "90:e2:ba:7c:41:e8",
+                                        "network": {},
+                                        "local_ip": "10.80.3.11",
+                                        "node_name": "tg__0",
+                                        "netmask": "255.255.255.0",
+                                        "peer_name": "vnf__1",
+                                        "dst_ip": "10.80.3.7",
+                                        "ifname": "xe0",
+                                        "local_mac": "90:e2:ba:7c:30:e8"
+                                    },
+                                    "node_name": "vnf__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:a8"
+                                },
+                                "vnf__1": {
+                                    "vld_id": "ims_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "peer_intf": {
+                                        "vld_id": "ims_network",
+                                        "peer_ifname": "xe0",
+                                        "dst_mac": "90:e2:ba:7c:41:e8",
+                                        "network": {},
+                                        "local_ip": "10.80.3.11",
+                                        "peer_intf": {
+                                            "vld_id": "data_network",
+                                            "peer_ifname": "xe1",
+                                            "dst_mac": "90:e2:ba:7c:30:e8",
+                                            "network": {},
+                                            "local_ip": "10.80.3.7",
+                                            "node_name": "vnf__0",
+                                            "netmask": "255.255.255.0",
+                                            "peer_name": "tg__0",
+                                            "dst_ip": "10.80.3.11",
+                                            "ifname": "xe0",
+                                            "local_mac": "90:e2:ba:7c:41:a8"
+                                        },
+                                        "node_name": "tg__0",
+                                        "netmask": "255.255.255.0",
+                                        "peer_name": "vnf__1",
+                                        "dst_ip": "10.80.3.7",
+                                        "ifname": "xe0",
+                                        "local_mac": "90:e2:ba:7c:30:e8"
+                                    },
+                                    "node_name": "vnf__1",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:e8"
+                                }
+                            },
+                            "node_name": "tg__0",
+                            "netmask": "255.255.255.0",
+                            "peer_name": "vnf__1",
+                            "dst_ip": "10.80.3.7",
+                            "ifname": "xe1",
+                            "local_mac": "90:e2:ba:7c:30:e8"
+                        },
+                        "vnfd-connection-point-ref": "xe1",
+                        "name": "xe1"
+                    }
+                ],
+                "name": "sippvnf-baremetal",
+                "description": "Sipp"
+            }
+        ],
+        "description": "ImsbenchSipp",
+        "mgmt-interface": {
+            "vdu-id": "sipp-baremetal",
+            "password": "r00t",
+            "user": "root",
+            "ip": "10.80.3.11"
+        },
+        "benchmark": {
+            "kpi": [
+                "packets_in",
+                "packets_fwd",
+                "packets_dropped"
+            ]
+        },
+        "id": "SippVnf",
+        "name": "SippVnf"
+    }
+
+    def setUp(self):
+        self.pcscf_vnf = vims_vnf.VimsPcscfVnf('vnf__0', self.VNFD_0)
+
+    def test___init__(self):
+        self.assertEqual(self.pcscf_vnf.name, 'vnf__0')
+        self.assertIsInstance(self.pcscf_vnf.resource_helper,
+                              vims_vnf.VimsResourceHelper)
+        self.assertIsNone(self.pcscf_vnf._vnf_process)
+
+    def test_wait_for_instantiate(self):
+        self.assertIsNone(self.pcscf_vnf.wait_for_instantiate())
+
+    def test__run(self):
+        self.assertIsNone(self.pcscf_vnf._run())
+
+    def test_start_collect(self):
+        self.assertIsNone(self.pcscf_vnf.start_collect())
+
+    def test_collect_kpi(self):
+        self.assertIsNone(self.pcscf_vnf.collect_kpi())
+
+
+class TestVimsHssVnf(unittest.TestCase):
+
+    VNFD_1 = {
+        "short-name": "SippVnf",
+        "vdu": [
+            {
+                "id": "sippvnf-baremetal",
+                "routing_table": "",
+                "external-interface": [
+                    {
+                        "virtual-interface": {
+                            "vld_id": "ims_network",
+                            "peer_ifname": "xe0",
+                            "dst_mac": "90:e2:ba:7c:41:e8",
+                            "network": {},
+                            "local_ip": "10.80.3.11",
+                            "peer_intf": {
+                                "vnf__0": {
+                                    "vld_id": "data_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "node_name": "vnf__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:a8"
+                                },
+                                "vnf__1": {
+                                    "vld_id": "ims_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "node_name": "vnf__1",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:e8"
+                                }
+                            },
+                            "node_name": "tg__0",
+                            "netmask": "255.255.255.0",
+                            "peer_name": "vnf__1",
+                            "dst_ip": "10.80.3.7",
+                            "ifname": "xe0",
+                            "local_mac": "90:e2:ba:7c:30:e8"
+                        },
+                        "vnfd-connection-point-ref": "xe0",
+                        "name": "xe0"
+                    },
+                    {
+                        "virtual-interface": {
+                            "vld_id": "ims_network",
+                            "peer_ifname": "xe0",
+                            "dst_mac": "90:e2:ba:7c:41:e8",
+                            "network": {},
+                            "local_ip": "10.80.3.11",
+                            "peer_intf": {
+                                "vnf__0": {
+                                    "vld_id": "data_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "peer_intf": {
+                                        "vld_id": "ims_network",
+                                        "peer_ifname": "xe0",
+                                        "dst_mac": "90:e2:ba:7c:41:e8",
+                                        "network": {},
+                                        "local_ip": "10.80.3.11",
+                                        "node_name": "tg__0",
+                                        "netmask": "255.255.255.0",
+                                        "peer_name": "vnf__1",
+                                        "dst_ip": "10.80.3.7",
+                                        "ifname": "xe0",
+                                        "local_mac": "90:e2:ba:7c:30:e8"
+                                    },
+                                    "node_name": "vnf__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:a8"
+                                },
+                                "vnf__1": {
+                                    "vld_id": "ims_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "peer_intf": {
+                                        "vld_id": "ims_network",
+                                        "peer_ifname": "xe0",
+                                        "dst_mac": "90:e2:ba:7c:41:e8",
+                                        "network": {},
+                                        "local_ip": "10.80.3.11",
+                                        "peer_intf": {
+                                            "vld_id": "data_network",
+                                            "peer_ifname": "xe1",
+                                            "dst_mac": "90:e2:ba:7c:30:e8",
+                                            "network": {},
+                                            "local_ip": "10.80.3.7",
+                                            "node_name": "vnf__0",
+                                            "netmask": "255.255.255.0",
+                                            "peer_name": "tg__0",
+                                            "dst_ip": "10.80.3.11",
+                                            "ifname": "xe0",
+                                            "local_mac": "90:e2:ba:7c:41:a8"
+                                        },
+                                        "node_name": "tg__0",
+                                        "netmask": "255.255.255.0",
+                                        "peer_name": "vnf__1",
+                                        "dst_ip": "10.80.3.7",
+                                        "ifname": "xe0",
+                                        "local_mac": "90:e2:ba:7c:30:e8"
+                                    },
+                                    "node_name": "vnf__1",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:e8"
+                                }
+                            },
+                            "node_name": "tg__0",
+                            "netmask": "255.255.255.0",
+                            "peer_name": "vnf__1",
+                            "dst_ip": "10.80.3.7",
+                            "ifname": "xe1",
+                            "local_mac": "90:e2:ba:7c:30:e8"
+                        },
+                        "vnfd-connection-point-ref": "xe1",
+                        "name": "xe1"
+                    }
+                ],
+                "name": "sippvnf-baremetal",
+                "description": "Sipp"
+            }
+        ],
+        "description": "ImsbenchSipp",
+        "mgmt-interface": {
+            "vdu-id": "sipp-baremetal",
+            "password": "r00t",
+            "user": "root",
+            "ip": "10.80.3.11"
+        },
+        "benchmark": {
+            "kpi": [
+                "packets_in",
+                "packets_fwd",
+                "packets_dropped"
+            ]
+        },
+        "id": "SippVnf",
+        "name": "SippVnf"
+    }
+
+    SCENARIO_CFG = {
+        "task_id": "86414e11-5ef5-4426-b175-71baaa00fbd7",
+        "tc": "tc_vims_baremetal_sipp",
+        "runner": {
+            "interval": 1,
+            "output_config": {
+                "DEFAULT": {
+                    "debug": "False",
+                    "dispatcher": [
+                        "influxdb"
+                    ]
+                },
+                "nsb": {
+                    "debug": "False",
+                    "trex_client_lib": "/opt/nsb_bin/trex_client/stl",
+                    "bin_path": "/opt/nsb_bin",
+                    "trex_path": "/opt/nsb_bin/trex/scripts",
+                    "dispatcher": "influxdb"
+                },
+                "dispatcher_influxdb": {
+                    "username": "root",
+                    "target": "http://10.80.3.11:8086",
+                    "db_name": "yardstick",
+                    "timeout": "5",
+                    "debug": "False",
+                    "password": "root",
+                    "dispatcher": "influxdb"
+                },
+                "dispatcher_http": {
+                    "debug": "False",
+                    "dispatcher": "influxdb",
+                    "timeout": "5",
+                    "target": "http://127.0.0.1:8000/results"
+                },
+                "dispatcher_file": {
+                    "debug": "False",
+                    "backup_count": "0",
+                    "max_bytes": "0",
+                    "dispatcher": "influxdb",
+                    "file_path": "/tmp/yardstick.out"
+                }
+            },
+            "runner_id": 22610,
+            "duration": 60,
+            "type": "Vims"
+        },
+        "nodes": {
+            "vnf__0": "pcscf.yardstick-86414e11",
+            "vnf__1": "hss.yardstick-86414e11",
+            "tg__0": "sipp.yardstick-86414e11"
+        },
+        "topology": "vims-topology.yaml",
+        "type": "NSPerf",
+        "traffic_profile": "../../traffic_profiles/ipv4_throughput.yaml",
+        "task_path": "samples/vnf_samples/nsut/vims",
+        "options": {
+            "init_reg_max": 5000,
+            "end_user": 10000,
+            "reg_cps": 20,
+            "rereg_cps": 20,
+            "rereg_step": 10,
+            "wait_time": 5,
+            "start_user": 1,
+            "msgc_cps": 10,
+            "dereg_step": 10,
+            "call_cps": 10,
+            "reg_step": 10,
+            "init_reg_cps": 50,
+            "dereg_cps": 20,
+            "msgc_step": 5,
+            "call_step": 5,
+            "hold_time": 15,
+            "port": 5060,
+            "run_mode": "nortp"
+        }
+    }
+
+    CONTEXT_CFG = {
+        "nodes": {
+            "tg__0": {
+                "ip": "10.80.3.11",
+                "interfaces": {
+                    "xe0": {
+                        "vld_id": "ims_network",
+                        "peer_ifname": "xe0",
+                        "dst_mac": "90:e2:ba:7c:41:e8",
+                        "network": {},
+                        "local_ip": "10.80.3.11",
+                        "peer_intf": {
+                            "vnf__0": {
+                                "vld_id": "data_network",
+                                "peer_ifname": "xe1",
+                                "dst_mac": "90:e2:ba:7c:30:e8",
+                                "network": {},
+                                "local_ip": "10.80.3.7",
+                                "node_name": "vnf__0",
+                                "netmask": "255.255.255.0",
+                                "peer_name": "tg__0",
+                                "dst_ip": "10.80.3.11",
+                                "ifname": "xe0",
+                                "local_mac": "90:e2:ba:7c:41:a8"
+                            },
+                            "vnf__1": {
+                                "vld_id": "ims_network",
+                                "peer_ifname": "xe1",
+                                "dst_mac": "90:e2:ba:7c:30:e8",
+                                "network": {},
+                                "local_ip": "10.80.3.7",
+                                "node_name": "vnf__1",
+                                "netmask": "255.255.255.0",
+                                "peer_name": "tg__0",
+                                "dst_ip": "10.80.3.11",
+                                "ifname": "xe0",
+                                "local_mac": "90:e2:ba:7c:41:e8"
+                            }
+                        },
+                        "node_name": "tg__0",
+                        "netmask": "255.255.255.0",
+                        "peer_name": "vnf__1",
+                        "dst_ip": "10.80.3.7",
+                        "ifname": "xe0",
+                        "local_mac": "90:e2:ba:7c:30:e8"
+                    },
+                    "xe1": {
+                        "vld_id": "ims_network",
+                        "peer_ifname": "xe0",
+                        "dst_mac": "90:e2:ba:7c:41:e8",
+                        "network": {},
+                        "local_ip": "10.80.3.11",
+                        "peer_intf": {
+                            "vnf__0": {
+                                "vld_id": "data_network",
+                                "peer_ifname": "xe1",
+                                "dst_mac": "90:e2:ba:7c:30:e8",
+                                "network": {},
+                                "local_ip": "10.80.3.7",
+                                "peer_intf": {
+                                    "vld_id": "ims_network",
+                                    "peer_ifname": "xe0",
+                                    "dst_mac": "90:e2:ba:7c:41:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.11",
+                                    "node_name": "tg__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "vnf__1",
+                                    "dst_ip": "10.80.3.7",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:30:e8"
+                                },
+                                "node_name": "vnf__0",
+                                "netmask": "255.255.255.0",
+                                "peer_name": "tg__0",
+                                "dst_ip": "10.80.3.11",
+                                "ifname": "xe0",
+                                "local_mac": "90:e2:ba:7c:41:a8"
+                            },
+                            "vnf__1": {
+                                "vld_id": "ims_network",
+                                "peer_ifname": "xe1",
+                                "dst_mac": "90:e2:ba:7c:30:e8",
+                                "network": {},
+                                "local_ip": "10.80.3.7",
+                                "peer_intf": {
+                                    "vld_id": "ims_network",
+                                    "peer_ifname": "xe0",
+                                    "dst_mac": "90:e2:ba:7c:41:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.11",
+                                    "peer_intf": {
+                                        "vld_id": "data_network",
+                                        "peer_ifname": "xe1",
+                                        "dst_mac": "90:e2:ba:7c:30:e8",
+                                        "network": {},
+                                        "local_ip": "10.80.3.7",
+                                        "node_name": "vnf__0",
+                                        "netmask": "255.255.255.0",
+                                        "peer_name": "tg__0",
+                                        "dst_ip": "10.80.3.11",
+                                        "ifname": "xe0",
+                                        "local_mac": "90:e2:ba:7c:41:a8"
+                                    },
+                                    "node_name": "tg__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "vnf__1",
+                                    "dst_ip": "10.80.3.7",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:30:e8"
+                                },
+                                "node_name": "vnf__1",
+                                "netmask": "255.255.255.0",
+                                "peer_name": "tg__0",
+                                "dst_ip": "10.80.3.11",
+                                "ifname": "xe0",
+                                "local_mac": "90:e2:ba:7c:41:e8"
+                            }
+                        },
+                        "node_name": "tg__0",
+                        "netmask": "255.255.255.0",
+                        "peer_name": "vnf__1",
+                        "dst_ip": "10.80.3.7",
+                        "ifname": "xe1",
+                        "local_mac": "90:e2:ba:7c:30:e8"
+                    }
+                },
+                "user": "root",
+                "password": "r00t",
+                "VNF model": "../../vnf_descriptors/tg_sipp_vnfd.yaml",
+                "name": "sipp.yardstick-86414e11",
+                "vnfd-id-ref": "tg__0",
+                "member-vnf-index": "1",
+                "role": "TrafficGen",
+                "ctx_type": "Node"
+            },
+            "vnf__0": {
+                "ip": "10.80.3.7",
+                "interfaces": {
+                    "xe0": {
+                        "vld_id": "data_network",
+                        "peer_ifname": "xe1",
+                        "dst_mac": "90:e2:ba:7c:30:e8",
+                        "network": {},
+                        "local_ip": "10.80.3.7",
+                        "peer_intf": {
+                            "tg__0": {
+                                "vld_id": "ims_network",
+                                "peer_ifname": "xe0",
+                                "dst_mac": "90:e2:ba:7c:41:e8",
+                                "network": {},
+                                "local_ip": "10.80.3.11",
+                                "node_name": "tg__0",
+                                "netmask": "255.255.255.0",
+                                "peer_name": "vnf__1",
+                                "dst_ip": "10.80.3.7",
+                                "ifname": "xe1",
+                                "local_mac": "90:e2:ba:7c:30:e8"
+                            }
+                        },
+                        "node_name": "vnf__0",
+                        "netmask": "255.255.255.0",
+                        "peer_name": "tg__0",
+                        "dst_ip": "10.80.3.11",
+                        "ifname": "xe0",
+                        "local_mac": "90:e2:ba:7c:41:a8"
+                    }
+                },
+                "user": "root",
+                "password": "r00t",
+                "VNF model": "../../vnf_descriptors/vims_pcscf_vnfd.yaml",
+                "name": "pcscf.yardstick-86414e11",
+                "vnfd-id-ref": "vnf__0",
+                "member-vnf-index": "2",
+                "role": "VirtualNetworkFunction",
+                "ctx_type": "Node"
+            },
+            "vnf__1": {
+                "ip": "10.80.3.7",
+                "interfaces": {
+                    "xe0": {
+                        "vld_id": "ims_network",
+                        "peer_ifname": "xe1",
+                        "dst_mac": "90:e2:ba:7c:30:e8",
+                        "network": {},
+                        "local_ip": "10.80.3.7",
+                        "peer_intf": {
+                            "tg__0": {
+                                "vld_id": "ims_network",
+                                "peer_ifname": "xe0",
+                                "dst_mac": "90:e2:ba:7c:41:e8",
+                                "network": {},
+                                "local_ip": "10.80.3.11",
+                                "peer_intf": {
+                                    "vld_id": "data_network",
+                                    "peer_ifname": "xe1",
+                                    "dst_mac": "90:e2:ba:7c:30:e8",
+                                    "network": {},
+                                    "local_ip": "10.80.3.7",
+                                    "peer_intf": {
+                                        "vld_id": "ims_network",
+                                        "peer_ifname": "xe0",
+                                        "dst_mac": "90:e2:ba:7c:41:e8",
+                                        "network": {},
+                                        "local_ip": "10.80.3.11",
+                                        "node_name": "tg__0",
+                                        "netmask": "255.255.255.0",
+                                        "peer_name": "vnf__1",
+                                        "dst_ip": "10.80.3.7",
+                                        "ifname": "xe0",
+                                        "local_mac": "90:e2:ba:7c:30:e8"
+                                    },
+                                    "node_name": "vnf__0",
+                                    "netmask": "255.255.255.0",
+                                    "peer_name": "tg__0",
+                                    "dst_ip": "10.80.3.11",
+                                    "ifname": "xe0",
+                                    "local_mac": "90:e2:ba:7c:41:a8"
+                                },
+                                "node_name": "tg__0",
+                                "netmask": "255.255.255.0",
+                                "peer_name": "vnf__1",
+                                "dst_ip": "10.80.3.7",
+                                "ifname": "xe1",
+                                "local_mac": "90:e2:ba:7c:30:e8"
+                            }
+                        },
+                        "node_name": "vnf__1",
+                        "netmask": "255.255.255.0",
+                        "peer_name": "tg__0",
+                        "dst_ip": "10.80.3.11",
+                        "ifname": "xe0",
+                        "local_mac": "90:e2:ba:7c:41:e8"
+                    }
+                },
+                "user": "root",
+                "password": "r00t",
+                "VNF model": "../../vnf_descriptors/vims_hss_vnfd.yaml",
+                "name": "hss.yardstick-86414e11",
+                "vnfd-id-ref": "vnf__1",
+                "member-vnf-index": "3",
+                "role": "VirtualNetworkFunction",
+                "ctx_type": "Node"
+            }
+        },
+        "networks": {}
+    }
+
+    def setUp(self):
+        self.hss_vnf = vims_vnf.VimsHssVnf('vnf__1', self.VNFD_1)
+
+    def test___init__(self):
+        self.assertIsInstance(self.hss_vnf.resource_helper,
+                              vims_vnf.VimsResourceHelper)
+        self.assertIsNone(self.hss_vnf._vnf_process)
+
+    @mock.patch("yardstick.network_services.vnf_generic.vnf.sample_vnf.VnfSshHelper")
+    def test_instantiate(self, ssh):
+        mock_ssh(ssh)
+        hss_vnf = vims_vnf.VimsHssVnf('vnf__1', self.VNFD_1)
+        self.assertIsNone(hss_vnf.instantiate(self.SCENARIO_CFG,
+                          self.CONTEXT_CFG))
+
+    def test_wait_for_instantiate(self):
+        self.assertIsNone(self.hss_vnf.wait_for_instantiate())
+
+    def test_start_collect(self):
+        self.assertIsNone(self.hss_vnf.start_collect())
+
+    def test_collect_kpi(self):
+        self.assertIsNone(self.hss_vnf.collect_kpi())