tdc_multibatch.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/env python3
  2. # SPDX-License-Identifier: GPL-2.0
  3. """
  4. tdc_multibatch.py - a thin wrapper over tdc_batch.py to generate multiple batch
  5. files
  6. Copyright (C) 2019 Vlad Buslov <vladbu@mellanox.com>
  7. """
  8. import argparse
  9. import os
  10. parser = argparse.ArgumentParser(
  11. description='TC multiple batch file generator')
  12. parser.add_argument("device", help="device name")
  13. parser.add_argument("dir", help="where to put batch files")
  14. parser.add_argument(
  15. "num_filters", type=int, help="how many lines per batch file")
  16. parser.add_argument("num_files", type=int, help="how many batch files")
  17. parser.add_argument(
  18. "operation",
  19. choices=['add', 'del', 'replace'],
  20. help="operation to perform on filters")
  21. parser.add_argument(
  22. "-x",
  23. "--file_prefix",
  24. default="",
  25. help="prefix for generated batch file names")
  26. parser.add_argument(
  27. "-d",
  28. "--duplicate_handles",
  29. action="store_true",
  30. help="duplicate filter handle range in all files")
  31. parser.add_argument(
  32. "-a",
  33. "--handle_start",
  34. type=int,
  35. default=1,
  36. help="start handle range from (default: 1)")
  37. parser.add_argument(
  38. "-m",
  39. "--mac_prefix",
  40. type=int,
  41. default=0,
  42. choices=range(0, 256),
  43. help="add this value to third byte of source MAC address of flower filter"
  44. "(default: 0)")
  45. args = parser.parse_args()
  46. device = args.device
  47. dir = args.dir
  48. file_prefix = args.file_prefix + args.operation + "_"
  49. num_filters = args.num_filters
  50. num_files = args.num_files
  51. operation = args.operation
  52. duplicate_handles = args.duplicate_handles
  53. handle = args.handle_start
  54. mac_prefix = args.mac_prefix
  55. for i in range(num_files):
  56. file = dir + '/' + file_prefix + str(i)
  57. os.system("./tdc_batch.py -n {} -a {} -e {} -m {} {} {}".format(
  58. num_filters, handle, operation, i + mac_prefix, device, file))
  59. if not duplicate_handles:
  60. handle += num_filters