Create a SampleVNF MQ consumer class
[yardstick.git] / yardstick / network_services / vnf_generic / vnf / vfw_vnf.py
index 32a08c7..a1523de 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from __future__ import absolute_import
 import logging
 
-from yardstick.benchmark.scenarios.networking.vnf_generic import find_relative_file
-from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, DpdkVnfSetupEnvHelper
-from yardstick.network_services.yang_model import YangModel
+from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF
+from yardstick.network_services.vnf_generic.vnf.acl_vnf import AclApproxSetupEnvSetupEnvHelper
 
 LOG = logging.getLogger(__name__)
 
 # vFW should work the same on all systems, we can provide the binary
-FW_PIPELINE_COMMAND = """sudo {tool_path} -p {ports_len_hex} -f {cfg_file} -s {script}"""
+FW_PIPELINE_COMMAND = "sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script} {hwlb}"
 
 FW_COLLECT_KPI = (r"""VFW TOTAL:[^p]+pkts_received"?:\s(\d+),[^p]+pkts_fw_forwarded"?:\s(\d+),"""
                   r"""[^p]+pkts_drop_fw"?:\s(\d+),\s""")
 
 
-class FWApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
+class FWApproxSetupEnvHelper(AclApproxSetupEnvSetupEnvHelper):
 
     APP_NAME = "vFW"
     CFG_CONFIG = "/tmp/vfw_config"
@@ -38,6 +36,8 @@ class FWApproxSetupEnvHelper(DpdkVnfSetupEnvHelper):
     SW_DEFAULT_CORE = 5
     HW_DEFAULT_CORE = 2
     VNF_TYPE = "VFW"
+    RULE_CMD = "vfw"
+    DEFAULT_FWD_ACTIONS = ["accept", "count", "conntrack"]
 
 
 class FWApproxVnf(SampleVNF):
@@ -52,16 +52,9 @@ class FWApproxVnf(SampleVNF):
         'packets_dropped': 3,
     }
 
-    def __init__(self, name, vnfd, setup_env_helper_type=None, resource_helper_type=None):
+    def __init__(self, name, vnfd, task_id, setup_env_helper_type=None,
+                 resource_helper_type=None):
         if setup_env_helper_type is None:
             setup_env_helper_type = FWApproxSetupEnvHelper
-
-        super(FWApproxVnf, self).__init__(name, vnfd, setup_env_helper_type, resource_helper_type)
-        self.vfw_rules = None
-
-    def _start_vnf(self):
-        yang_model_path = find_relative_file(self.scenario_helper.options['rules'],
-                                             self.scenario_helper.task_path)
-        yang_model = YangModel(yang_model_path)
-        self.vfw_rules = yang_model.get_rules()
-        super(FWApproxVnf, self)._start_vnf()
+        super(FWApproxVnf, self).__init__(
+            name, vnfd, task_id, setup_env_helper_type, resource_helper_type)