From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mogw0909.ocn.ad.jp (mogw0909.ocn.ad.jp [153.149.227.15]) by dpdk.org (Postfix) with ESMTP id 778DE1D908 for ; Fri, 15 Jun 2018 10:38:04 +0200 (CEST) Received: from mf-smf-ucb025c1 (mf-smf-ucb025c1.ocn.ad.jp [153.153.66.163]) by mogw0909.ocn.ad.jp (Postfix) with ESMTP id 080841080246; Fri, 15 Jun 2018 17:38:03 +0900 (JST) Received: from ntt.pod01.mv-mta-ucb029 ([153.149.230.163]) by mf-smf-ucb025c1 with ESMTP id TkF8fS6Xm2qCXTkF9faMUd; Fri, 15 Jun 2018 17:38:03 +0900 Received: from smtp.ocn.ne.jp ([153.149.227.166]) by ntt.pod01.mv-mta-ucb029 with id ywe21x00c3c2f7501we21g; Fri, 15 Jun 2018 08:38:02 +0000 Received: from localhost.localdomain (p5164-ipngn8501marunouchi.tokyo.ocn.ne.jp [153.214.228.164]) by smtp.ocn.ne.jp (Postfix) with ESMTPA; Fri, 15 Jun 2018 17:38:02 +0900 (JST) From: ogawa.yasufumi@lab.ntt.co.jp To: ferruh.yigit@intel.com, spp@dpdk.org Cc: Yasufumi Ogawa Date: Fri, 15 Jun 2018 17:37:45 +0900 Message-Id: <20180615083754.20220-7-ogawa.yasufumi@lab.ntt.co.jp> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180615083754.20220-1-ogawa.yasufumi@lab.ntt.co.jp> References: <20180615083754.20220-1-ogawa.yasufumi@lab.ntt.co.jp> Subject: [spp] [PATCH 06/15] tools/sppc: add spp-nfv app continer X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2018 08:38:05 -0000 From: Yasufumi Ogawa Signed-off-by: Yasufumi Ogawa --- tools/sppc/app/spp-nfv.py | 127 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100755 tools/sppc/app/spp-nfv.py diff --git a/tools/sppc/app/spp-nfv.py b/tools/sppc/app/spp-nfv.py new file mode 100755 index 0000000..cdb61a8 --- /dev/null +++ b/tools/sppc/app/spp-nfv.py @@ -0,0 +1,127 @@ +#!/usr/bin/env python +# SPDX-License-Identifier: BSD-3-Clause +# Copyright(c) 2018 Nippon Telegraph and Telephone Corporation + +import argparse +import os +import subprocess +import sys + +work_dir = os.path.dirname(__file__) +sys.path.append(work_dir + '/..') +from conf import env +from lib import app_helper +from lib import common + +target_name = 'spp' + + +def parse_args(): + parser = argparse.ArgumentParser( + description="Launcher for spp-nfv application container") + + parser = app_helper.add_eal_args(parser) + + # Application specific arguments + parser.add_argument( + '-i', '--sec-id', + type=int, + help='Secondary ID') + parser.add_argument( + '-ip', '--ctrl-ip', + type=str, + help="IP address of SPP controller") + parser.add_argument( + '--ctrl-port', + type=int, + default=6666, + help="Port of SPP controller") + + parser = app_helper.add_sppc_args(parser) + + return parser.parse_args() + + +def main(): + args = parse_args() + + # Setup docker command. + docker_cmd = ['sudo', 'docker', 'run', '\\'] + docker_opts = [] + + # This container is running in backgroud in defualt. + if args.foreground is not True: + docker_opts += ['-d', '\\'] + else: + docker_opts += ['-it', '\\'] + + if args.container_image is not None: + container_image = args.container_image + else: + # Container image name, for exp 'sppc/dpdk-ubuntu:18.04' + container_image = common.container_img_name( + env.CONTAINER_IMG_NAME[target_name], + args.dist_name, + args.dist_ver) + + docker_opts += [ + '--privileged', '\\', # should be privileged + '-v', '/dev/hugepages:/dev/hugepages', '\\', + '-v', '/var/run/:/var/run/', '\\', + '-v', '/tmp/:/tmp/', '\\', + container_image, '\\' + ] + + # This container is running in backgroud in defualt. + if args.foreground is not True: + docker_run_opt = '-d' + else: + docker_run_opt = '-it' + + # Setup spp_nfv command. + cmd_path = '%s/../spp/src/nfv/%s/spp_nfv' % ( + env.RTE_SDK, env.RTE_TARGET) + + spp_cmd = [cmd_path, '\\'] + + # Do not use 'app_helper.setup_eal_opts()' because spp_nfv does + # not use virtio. + core_opt = app_helper.get_core_opt(args) + mem_opt = app_helper.get_mem_opt(args) + eal_opts = [ + core_opt['attr'], core_opt['val'], '\\', + '-n', str(args.nof_memchan), '\\', + mem_opt['attr'], mem_opt['val'], '\\', + '--proc-type', 'secondary', '\\', + '--', '\\'] + + spp_opts = [] + # Check for other mandatory opitons. + if args.sec_id is None: + common.error_exit('--sec-id') + else: + spp_opts += ['-n', str(args.sec_id), '\\'] + + # IP address of SPP controller. + ctrl_ip = os.getenv('SPP_CTRL_IP', args.ctrl_ip) + if ctrl_ip is None: + common.error_exit('SPP_CTRL_IP') + else: + spp_opts += ['-s', '%s:%d' % (ctrl_ip, args.ctrl_port), '\\'] + + cmds = docker_cmd + docker_opts + spp_cmd + eal_opts + spp_opts + if cmds[-1] == '\\': + cmds.pop() + common.print_pretty_commands(cmds) + + if args.dry_run is True: + exit() + + # Remove delimiters for print_pretty_commands(). + while '\\' in cmds: + cmds.remove('\\') + subprocess.call(cmds) + + +if __name__ == '__main__': + main() -- 2.17.1