162306a36Sopenharmony_ci#!/usr/bin/env python3 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci""" 462306a36Sopenharmony_citdc_multibatch.py - a thin wrapper over tdc_batch.py to generate multiple batch 562306a36Sopenharmony_cifiles 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciCopyright (C) 2019 Vlad Buslov <vladbu@mellanox.com> 862306a36Sopenharmony_ci""" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciimport argparse 1162306a36Sopenharmony_ciimport os 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciparser = argparse.ArgumentParser( 1462306a36Sopenharmony_ci description='TC multiple batch file generator') 1562306a36Sopenharmony_ciparser.add_argument("device", help="device name") 1662306a36Sopenharmony_ciparser.add_argument("dir", help="where to put batch files") 1762306a36Sopenharmony_ciparser.add_argument( 1862306a36Sopenharmony_ci "num_filters", type=int, help="how many lines per batch file") 1962306a36Sopenharmony_ciparser.add_argument("num_files", type=int, help="how many batch files") 2062306a36Sopenharmony_ciparser.add_argument( 2162306a36Sopenharmony_ci "operation", 2262306a36Sopenharmony_ci choices=['add', 'del', 'replace'], 2362306a36Sopenharmony_ci help="operation to perform on filters") 2462306a36Sopenharmony_ciparser.add_argument( 2562306a36Sopenharmony_ci "-x", 2662306a36Sopenharmony_ci "--file_prefix", 2762306a36Sopenharmony_ci default="", 2862306a36Sopenharmony_ci help="prefix for generated batch file names") 2962306a36Sopenharmony_ciparser.add_argument( 3062306a36Sopenharmony_ci "-d", 3162306a36Sopenharmony_ci "--duplicate_handles", 3262306a36Sopenharmony_ci action="store_true", 3362306a36Sopenharmony_ci help="duplicate filter handle range in all files") 3462306a36Sopenharmony_ciparser.add_argument( 3562306a36Sopenharmony_ci "-a", 3662306a36Sopenharmony_ci "--handle_start", 3762306a36Sopenharmony_ci type=int, 3862306a36Sopenharmony_ci default=1, 3962306a36Sopenharmony_ci help="start handle range from (default: 1)") 4062306a36Sopenharmony_ciparser.add_argument( 4162306a36Sopenharmony_ci "-m", 4262306a36Sopenharmony_ci "--mac_prefix", 4362306a36Sopenharmony_ci type=int, 4462306a36Sopenharmony_ci default=0, 4562306a36Sopenharmony_ci choices=range(0, 256), 4662306a36Sopenharmony_ci help="add this value to third byte of source MAC address of flower filter" 4762306a36Sopenharmony_ci "(default: 0)") 4862306a36Sopenharmony_ciargs = parser.parse_args() 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_cidevice = args.device 5162306a36Sopenharmony_cidir = args.dir 5262306a36Sopenharmony_cifile_prefix = args.file_prefix + args.operation + "_" 5362306a36Sopenharmony_cinum_filters = args.num_filters 5462306a36Sopenharmony_cinum_files = args.num_files 5562306a36Sopenharmony_cioperation = args.operation 5662306a36Sopenharmony_ciduplicate_handles = args.duplicate_handles 5762306a36Sopenharmony_cihandle = args.handle_start 5862306a36Sopenharmony_cimac_prefix = args.mac_prefix 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_cifor i in range(num_files): 6162306a36Sopenharmony_ci file = dir + '/' + file_prefix + str(i) 6262306a36Sopenharmony_ci os.system("./tdc_batch.py -n {} -a {} -e {} -m {} {} {}".format( 6362306a36Sopenharmony_ci num_filters, handle, operation, i + mac_prefix, device, file)) 6462306a36Sopenharmony_ci if not duplicate_handles: 6562306a36Sopenharmony_ci handle += num_filters 66