brintos

brintos / linux-shallow public Read only

0
0
Text · 1.8 KiB · 48e1f17 Raw
66 lines · python
1#!/usr/bin/env python32# SPDX-License-Identifier: GPL-2.03"""4tdc_multibatch.py - a thin wrapper over tdc_batch.py to generate multiple batch5files6 7Copyright (C) 2019 Vlad Buslov <vladbu@mellanox.com>8"""9 10import argparse11import os12 13parser = argparse.ArgumentParser(14    description='TC multiple batch file generator')15parser.add_argument("device", help="device name")16parser.add_argument("dir", help="where to put batch files")17parser.add_argument(18    "num_filters", type=int, help="how many lines per batch file")19parser.add_argument("num_files", type=int, help="how many batch files")20parser.add_argument(21    "operation",22    choices=['add', 'del', 'replace'],23    help="operation to perform on filters")24parser.add_argument(25    "-x",26    "--file_prefix",27    default="",28    help="prefix for generated batch file names")29parser.add_argument(30    "-d",31    "--duplicate_handles",32    action="store_true",33    help="duplicate filter handle range in all files")34parser.add_argument(35    "-a",36    "--handle_start",37    type=int,38    default=1,39    help="start handle range from (default: 1)")40parser.add_argument(41    "-m",42    "--mac_prefix",43    type=int,44    default=0,45    choices=range(0, 256),46    help="add this value to third byte of source MAC address of flower filter"47    "(default: 0)")48args = parser.parse_args()49 50device = args.device51dir = args.dir52file_prefix = args.file_prefix + args.operation + "_"53num_filters = args.num_filters54num_files = args.num_files55operation = args.operation56duplicate_handles = args.duplicate_handles57handle = args.handle_start58mac_prefix = args.mac_prefix59 60for i in range(num_files):61    file = dir + '/' + file_prefix + str(i)62    os.system("./tdc_batch.py -n {} -a {} -e {} -m {} {} {}".format(63        num_filters, handle, operation, i + mac_prefix, device, file))64    if not duplicate_handles:65        handle += num_filters66