X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=yardstick%2Fnetwork_services%2Fvnf_generic%2Fvnf%2Fcgnapt_vnf.py;h=53f73b4d7eb50882af4e610b9bc6076b672ebaa9;hb=35ca724899b3e0a8c58af6323dc4622736ee0625;hp=f9980b165be502757db612bc439cc523cd19ffd4;hpb=4d301304687229c841c15e325474ad946d883ff0;p=yardstick.git diff --git a/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py b/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py index f9980b165..53f73b4d7 100644 --- a/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py +++ b/yardstick/network_services/vnf_generic/vnf/cgnapt_vnf.py @@ -13,16 +13,15 @@ # limitations under the License. from __future__ import absolute_import -import time import logging +import time -from six.moves import zip from yardstick.network_services.vnf_generic.vnf.sample_vnf import SampleVNF, DpdkVnfSetupEnvHelper LOG = logging.getLogger(__name__) # CGNAPT should work the same on all systems, we can provide the binary -CGNAPT_PIPELINE_COMMAND = 'sudo {tool_path} -p {ports_len_hex} -f {cfg_file} -s {script}' +CGNAPT_PIPELINE_COMMAND = 'sudo {tool_path} -p {port_mask_hex} -f {cfg_file} -s {script}' WAIT_FOR_STATIC_NAPT = 4 CGNAPT_COLLECT_KPI = """\ @@ -55,7 +54,7 @@ class CgnaptApproxSetupEnvHelper(DpdkVnfSetupEnvHelper): yield '.'.join(ip_parts) @staticmethod - def _update_cgnat_script_file(ip_pipeline_cfg, mcpi, vnf_str): + def _update_cgnat_script_file(ip_pipeline_cfg, mcpi): pipeline_config_str = str(ip_pipeline_cfg) input_cmds = '\n'.join(mcpi) icmp_flag = 'link 0 down' in input_cmds @@ -66,17 +65,12 @@ class CgnaptApproxSetupEnvHelper(DpdkVnfSetupEnvHelper): def scale(self, flavor=""): raise NotImplementedError - def _get_cgnapt_config(self, interfaces=None): - if interfaces is None: - interfaces = self.vnfd_helper.interfaces - - gateway_ips = [] - + def _get_cgnapt_config(self): # fixme: Get private port and gateway from port list - priv_ports = interfaces[::2] - for interface in priv_ports: - gateway_ips.append(self._get_ports_gateway(interface["name"])) - return gateway_ips + uplink_ports = self.vnfd_helper.port_pairs.uplink_ports + return \ + [self.vnfd_helper.find_interface(name=intf)["virtual-interface"]['dst_ip'] + for intf in uplink_ports] class CgnaptApproxVnf(SampleVNF): @@ -103,7 +97,9 @@ class CgnaptApproxVnf(SampleVNF): if self.scenario_helper.options.get('napt', 'static') != 'static': return - ip_iter = self.setup_helper._generate_ip_from_pool("152.16.40.10") + flow = self.scenario_helper.all_options.get('flow', {}) + public_ip = flow.get('public_ip', ['152.16.40.10']).pop() + ip_iter = self.setup_helper._generate_ip_from_pool(public_ip) gw_ips = self.setup_helper._get_cgnapt_config() if self.scenario_helper.vnf_cfg.get("lb_config", "SW") == 'HW': pipeline = self.setup_helper.HW_DEFAULT_CORE @@ -113,11 +109,14 @@ class CgnaptApproxVnf(SampleVNF): offset = 0 worker_threads = int(self.scenario_helper.vnf_cfg["worker_threads"]) + # p entry addm prvport> + # cmd_template = "p {0} entry addm {1} 1 {2} 1 0 32 65535 65535 65535" for gw, ip in zip(gw_ips, ip_iter): cmd = cmd_template.format(pipeline, gw, ip) pipeline += worker_threads pipeline += offset + LOG.info(cmd) self.vnf_execute(cmd) time.sleep(WAIT_FOR_STATIC_NAPT)