1*c25ce589SFinn Behrens#!/usr/bin/env python3 2450ef620SVlad Buslov# SPDX-License-Identifier: GPL-2.0 3450ef620SVlad Buslov""" 4450ef620SVlad Buslovtdc_multibatch.py - a thin wrapper over tdc_batch.py to generate multiple batch 5450ef620SVlad Buslovfiles 6450ef620SVlad Buslov 7450ef620SVlad BuslovCopyright (C) 2019 Vlad Buslov <vladbu@mellanox.com> 8450ef620SVlad Buslov""" 9450ef620SVlad Buslov 10450ef620SVlad Buslovimport argparse 11450ef620SVlad Buslovimport os 12450ef620SVlad Buslov 13450ef620SVlad Buslovparser = argparse.ArgumentParser( 14450ef620SVlad Buslov description='TC multiple batch file generator') 15450ef620SVlad Buslovparser.add_argument("device", help="device name") 16450ef620SVlad Buslovparser.add_argument("dir", help="where to put batch files") 17450ef620SVlad Buslovparser.add_argument( 18450ef620SVlad Buslov "num_filters", type=int, help="how many lines per batch file") 19450ef620SVlad Buslovparser.add_argument("num_files", type=int, help="how many batch files") 20450ef620SVlad Buslovparser.add_argument( 21450ef620SVlad Buslov "operation", 22450ef620SVlad Buslov choices=['add', 'del', 'replace'], 23450ef620SVlad Buslov help="operation to perform on filters") 24424c5bd4SVlad Buslovparser.add_argument( 25be6b294dSVlad Buslov "-x", 26be6b294dSVlad Buslov "--file_prefix", 27be6b294dSVlad Buslov default="", 28be6b294dSVlad Buslov help="prefix for generated batch file names") 29be6b294dSVlad Buslovparser.add_argument( 30424c5bd4SVlad Buslov "-d", 31424c5bd4SVlad Buslov "--duplicate_handles", 32424c5bd4SVlad Buslov action="store_true", 33424c5bd4SVlad Buslov help="duplicate filter handle range in all files") 34be6b294dSVlad Buslovparser.add_argument( 35be6b294dSVlad Buslov "-a", 36be6b294dSVlad Buslov "--handle_start", 37be6b294dSVlad Buslov type=int, 38be6b294dSVlad Buslov default=1, 39be6b294dSVlad Buslov help="start handle range from (default: 1)") 40be6b294dSVlad Buslovparser.add_argument( 41be6b294dSVlad Buslov "-m", 42be6b294dSVlad Buslov "--mac_prefix", 43be6b294dSVlad Buslov type=int, 44be6b294dSVlad Buslov default=0, 45be6b294dSVlad Buslov choices=range(0, 256), 46be6b294dSVlad Buslov help="add this value to third byte of source MAC address of flower filter" 47be6b294dSVlad Buslov "(default: 0)") 48450ef620SVlad Buslovargs = parser.parse_args() 49450ef620SVlad Buslov 50450ef620SVlad Buslovdevice = args.device 51450ef620SVlad Buslovdir = args.dir 52be6b294dSVlad Buslovfile_prefix = args.file_prefix + args.operation + "_" 53450ef620SVlad Buslovnum_filters = args.num_filters 54450ef620SVlad Buslovnum_files = args.num_files 55450ef620SVlad Buslovoperation = args.operation 56424c5bd4SVlad Buslovduplicate_handles = args.duplicate_handles 57be6b294dSVlad Buslovhandle = args.handle_start 58be6b294dSVlad Buslovmac_prefix = args.mac_prefix 59450ef620SVlad Buslov 60450ef620SVlad Buslovfor i in range(num_files): 61450ef620SVlad Buslov file = dir + '/' + file_prefix + str(i) 62450ef620SVlad Buslov os.system("./tdc_batch.py -n {} -a {} -e {} -m {} {} {}".format( 63be6b294dSVlad Buslov num_filters, handle, operation, i + mac_prefix, device, file)) 64424c5bd4SVlad Buslov if not duplicate_handles: 65450ef620SVlad Buslov handle += num_filters 66