tdl-xoa-driver 1.5.0b2__tar.gz → 1.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. {tdl_xoa_driver-1.5.0b2/tdl_xoa_driver.egg-info → tdl_xoa_driver-1.5.1}/PKG-INFO +8 -8
  2. tdl_xoa_driver-1.5.1/README.md +22 -0
  3. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/setup.py +2 -2
  4. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1/tdl_xoa_driver.egg-info}/PKG-INFO +8 -8
  5. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/tdl_xoa_driver.egg-info/SOURCES.txt +2 -1
  6. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/__init__.py +1 -1
  7. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/__init__.py +5 -5
  8. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/port_config.py +16 -7
  9. tdl_xoa_driver-1.5.0b2/xoa_driver/functions/cli/test_case_config.py → tdl_xoa_driver-1.5.1/xoa_driver/functions/cli/testbed_config.py +53 -46
  10. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p_commands.py +38 -2
  11. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pl1_commands.py +130 -73
  12. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pp_commands.py +44 -55
  13. tdl_xoa_driver-1.5.1/xoa_driver/internals/hli/ports/port_l23/edun_l1.py +181 -0
  14. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_edun.py +9 -9
  15. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_l1.py +8 -8
  16. tdl_xoa_driver-1.5.0b2/README.md +0 -22
  17. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/LICENSE +0 -0
  18. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/pyproject.toml +0 -0
  19. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/setup.cfg +0 -0
  20. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/tdl_xoa_driver.egg-info/dependency_links.txt +0 -0
  21. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/tdl_xoa_driver.egg-info/top_level.txt +0 -0
  22. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/enums.py +0 -0
  23. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/exceptions.py +0 -0
  24. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/__init__.py +0 -0
  25. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/anlt.py +0 -0
  26. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/anlt_ll_debug.py +0 -0
  27. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/_cli_manager.py +0 -0
  28. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/_config_block.py +0 -0
  29. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cli/_socket_driver.py +0 -0
  30. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/__init__.py +0 -0
  31. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/_constants.py +0 -0
  32. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/_replies.py +0 -0
  33. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/_utils.py +0 -0
  34. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/cmis/cdb.py +0 -0
  35. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/exceptions.py +0 -0
  36. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/headers.py +0 -0
  37. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/mgmt.py +0 -0
  38. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/functions/tools.py +0 -0
  39. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/hlfuncs.py +0 -0
  40. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/__init__.py +0 -0
  41. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/__init__.py +0 -0
  42. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/c_commands.py +0 -0
  43. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/enums.py +0 -0
  44. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/m4_commands.py +0 -0
  45. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/m4e_commands.py +0 -0
  46. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/m_commands.py +0 -0
  47. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p4_commands.py +0 -0
  48. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p4e_commands.py +0 -0
  49. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/p4g_commands.py +0 -0
  50. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pc_commands.py +0 -0
  51. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pd_commands.py +0 -0
  52. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pe_commands.py +0 -0
  53. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pec_commands.py +0 -0
  54. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/ped_commands.py +0 -0
  55. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pef_commands.py +0 -0
  56. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pf_commands.py +0 -0
  57. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pl_commands.py +0 -0
  58. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pm_commands.py +0 -0
  59. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pr_commands.py +0 -0
  60. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/ps_commands.py +0 -0
  61. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/pt_commands.py +0 -0
  62. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/px_commands.py +0 -0
  63. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/commands/subtypes.py +0 -0
  64. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/__init__.py +0 -0
  65. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/builders.py +0 -0
  66. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/exceptions.py +0 -0
  67. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/funcs.py +0 -0
  68. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/funcs.pyi +0 -0
  69. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/interfaces.py +0 -0
  70. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/token.py +0 -0
  71. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/__init__.py +0 -0
  72. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_processor.py +0 -0
  73. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_publisher.py +0 -0
  74. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_request_id_counter.py +0 -0
  75. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_stream.py +0 -0
  76. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/_typings.py +0 -0
  77. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/exceptions.py +0 -0
  78. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/handler.py +0 -0
  79. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__init__.py +0 -0
  80. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__logger.py +0 -0
  81. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_off.py +0 -0
  82. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_on_default.py +0 -0
  83. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_on_loguru.py +0 -0
  84. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/logger/__state_on_user.py +0 -0
  85. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/__init__.py +0 -0
  86. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/_constants.py +0 -0
  87. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/_utils.py +0 -0
  88. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/exceptions.py +0 -0
  89. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/__init__.py +0 -0
  90. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +0 -0
  91. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/descriptor.py +0 -0
  92. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/exceptions.py +0 -0
  93. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/field.py +0 -0
  94. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/types.py +0 -0
  95. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/payload/utils.py +0 -0
  96. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/struct_header.py +0 -0
  97. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/struct_request.py +0 -0
  98. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/protocol/struct_response.py +0 -0
  99. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/core/transporter/registry.py +0 -0
  100. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/exceptions/__init__.py +0 -0
  101. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/exceptions/modules.py +0 -0
  102. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/exceptions/testers.py +0 -0
  103. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/__init__.py +0 -0
  104. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/__init__.py +0 -0
  105. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/base_index.py +0 -0
  106. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/__init__.py +0 -0
  107. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/cg.py +0 -0
  108. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/histogram.py +0 -0
  109. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/l2.py +0 -0
  110. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/l3.py +0 -0
  111. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/raw.py +0 -0
  112. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/replay.py +0 -0
  113. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/tcp.py +0 -0
  114. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/tls.py +0 -0
  115. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/udp.py +0 -0
  116. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/connection_group/user_state.py +0 -0
  117. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/filter/__init__.py +0 -0
  118. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/filter/base_filter.py +0 -0
  119. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/filter/genuine_filter.py +0 -0
  120. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/length_term.py +0 -0
  121. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/macsecscs/__init__.py +0 -0
  122. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/macsecscs/base_macsecsc.py +0 -0
  123. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/macsecscs/genuine_macsecsc.py +0 -0
  124. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/match_term.py +0 -0
  125. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/port_dataset.py +0 -0
  126. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/streams/__init__.py +0 -0
  127. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/streams/base_stream.py +0 -0
  128. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/indices/streams/genuine_stream.py +0 -0
  129. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/__init__.py +0 -0
  130. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/__interfaces.py +0 -0
  131. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/base_module.py +0 -0
  132. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_chimera.py +0 -0
  133. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_l23ve.py +0 -0
  134. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_l47.py +0 -0
  135. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/module_l47ve.py +0 -0
  136. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/__init__.py +0 -0
  137. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_combi.py +0 -0
  138. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_d.py +0 -0
  139. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_e.py +0 -0
  140. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_edun.py +0 -0
  141. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_f.py +0 -0
  142. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_g.py +0 -0
  143. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_h.py +0 -0
  144. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_i.py +0 -0
  145. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_j.py +0 -0
  146. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_k.py +0 -0
  147. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_l.py +0 -0
  148. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_l1.py +0 -0
  149. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_m.py +0 -0
  150. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/family_n.py +0 -0
  151. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/modules/modules_l23/module_l23_base.py +0 -0
  152. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/__init__.py +0 -0
  153. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/base_port.py +0 -0
  154. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/__init__.py +0 -0
  155. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/__init__.py +0 -0
  156. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_capture.py +0 -0
  157. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_l23.py +0 -0
  158. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_l23_genuine.py +0 -0
  159. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_reception_statistics.py +0 -0
  160. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_transceiver.py +0 -0
  161. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/bases/port_transmission_statistics.py +0 -0
  162. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/__init__.py +0 -0
  163. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  164. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/_utils.py +0 -0
  165. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/general.py +0 -0
  166. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/shadow.py +0 -0
  167. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/filter_definition/working.py +0 -0
  168. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/pe_custom_distribution.py +0 -0
  169. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/pe_distribution.py +0 -0
  170. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/port_chimera.py +0 -0
  171. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/port_emulation.py +0 -0
  172. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/reception_statistics.py +0 -0
  173. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/chimera/transmission_statistics.py +0 -0
  174. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_combi.py +0 -0
  175. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_d.py +0 -0
  176. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_e.py +0 -0
  177. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_f.py +0 -0
  178. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_g.py +0 -0
  179. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_h.py +0 -0
  180. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_i.py +0 -0
  181. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_j.py +0 -0
  182. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_k.py +0 -0
  183. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_l.py +0 -0
  184. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/family_m.py +0 -0
  185. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/fault_jkl.py +0 -0
  186. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/freya_l1.py +0 -0
  187. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/pcs_pma_ghijkl.py +0 -0
  188. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -0
  189. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/pcs_pma_l.py +0 -0
  190. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l23/port_l23ve.py +0 -0
  191. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/__init__.py +0 -0
  192. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/counters.py +0 -0
  193. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/main.py +0 -0
  194. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/ports/port_l47/packet_engine.py +0 -0
  195. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/revisions.py +0 -0
  196. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/__init__.py +0 -0
  197. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/_base_tester.py +0 -0
  198. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/__init__.py +0 -0
  199. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/__init__.py +0 -0
  200. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/health.py +0 -0
  201. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/rest_api.py +0 -0
  202. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/time_keeper.py +0 -0
  203. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/l_23/upload_file.py +0 -0
  204. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/genuine/management_interface.py +0 -0
  205. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l23_tester.py +0 -0
  206. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l23ve_tester.py +0 -0
  207. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l47_tester.py +0 -0
  208. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/hli/testers/l47ve_tester.py +0 -0
  209. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/__init__.py +0 -0
  210. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/_speed_detector.py +0 -0
  211. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/modules_state.py +0 -0
  212. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/ports_state.py +0 -0
  213. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/state_storage/testers_state.py +0 -0
  214. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/__init__.py +0 -0
  215. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/attributes.py +0 -0
  216. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/cap_id.py +0 -0
  217. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/con_traffic_light.py +0 -0
  218. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/__init__.py +0 -0
  219. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/_interfaces.py +0 -0
  220. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/header_modifier_manager.py +0 -0
  221. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/index_manager.py +0 -0
  222. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/indices/observer.py +0 -0
  223. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/kind.py +0 -0
  224. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/__init__.py +0 -0
  225. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/abc.py +0 -0
  226. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/exceptions.py +0 -0
  227. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/modules_manager.py +0 -0
  228. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/managers/ports_manager.py +0 -0
  229. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/rev_tool.py +0 -0
  230. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/utils/session.py +0 -0
  231. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/internals/warn.py +0 -0
  232. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/lli.py +0 -0
  233. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/misc.py +0 -0
  234. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/modules.py +0 -0
  235. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/ports.py +0 -0
  236. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/testers.py +0 -0
  237. {tdl_xoa_driver-1.5.0b2 → tdl_xoa_driver-1.5.1}/xoa_driver/utils.py +0 -0
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tdl-xoa-driver
3
- Version: 1.5.0b2
4
- Summary: XOA Driver is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
3
+ Version: 1.5.1
4
+ Summary: TDL XOA Python API is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
5
5
  Home-page: https://github.com/xenanetworks/tdl-xoa-driver
6
6
  Author: Leonard Yu, Zoltan Hanisch
7
7
  Author-email: Leonard.Yu@teledyne.com, Zoltan.Hanisch@teledyne.com
8
8
  Maintainer: Teledyne LeCroy Xena
9
9
  Maintainer-email: xena-sales@teledyne.com
10
10
  License: Apache 2.0
11
- Classifier: Development Status :: 4 - Beta
11
+ Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
14
  Classifier: License :: OSI Approved :: Apache Software License
@@ -33,15 +33,15 @@ Dynamic: requires-python
33
33
  Dynamic: summary
34
34
 
35
35
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tdl-xoa-driver) [![PyPI](https://img.shields.io/pypi/v/tdl-xoa-driver)](https://pypi.python.org/pypi/tdl-xoa-driver) [![Documentation Status](https://readthedocs.com/projects/xena-networks-tdl-xoa-driver/badge/?version=latest)](https://docs.xenanetworks.com/projects/tdl-xoa-driver/en/latest/?badge=latest)
36
- # XOA Driver
37
- XOA Driver is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
36
+ # TDL XOA Python API
37
+ TDL XOA Python API is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
38
38
 
39
39
  ## Introduction
40
- The XOA Driver is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
40
+ The TDL XOA Python API is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
41
41
 
42
- The XOA Driver simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the XOA Driver, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
42
+ The TDL XOA Python API simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the TDL XOA Python API, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
43
43
 
44
- Overall, the XOA Driver is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the XOA Driver provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
44
+ Overall, the TDL XOA Python API is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the TDL XOA Python API provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
45
45
 
46
46
  ## Documentation
47
47
  The user documentation is hosted:
@@ -0,0 +1,22 @@
1
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tdl-xoa-driver) [![PyPI](https://img.shields.io/pypi/v/tdl-xoa-driver)](https://pypi.python.org/pypi/tdl-xoa-driver) [![Documentation Status](https://readthedocs.com/projects/xena-networks-tdl-xoa-driver/badge/?version=latest)](https://docs.xenanetworks.com/projects/tdl-xoa-driver/en/latest/?badge=latest)
2
+ # TDL XOA Python API
3
+ TDL XOA Python API is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
4
+
5
+ ## Introduction
6
+ The TDL XOA Python API is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
7
+
8
+ The TDL XOA Python API simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the TDL XOA Python API, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
9
+
10
+ Overall, the TDL XOA Python API is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the TDL XOA Python API provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
11
+
12
+ ## Documentation
13
+ The user documentation is hosted:
14
+ [XOA Driver Documentation](https://docs.xenanetworks.com/projects/tdl-xoa-driver)
15
+
16
+ ## Key Features
17
+ * Objected-oriented, high-level abstraction, to help users save time on parsing command responses.
18
+ * Supporting sending commands in batches to increase code execution efficiency.
19
+ * Automatically matching command requests and server response, providing clear information in case a command gets an error response.
20
+ * Supporting server-to-client push notification, and event subscription, to reduce user code complexity.
21
+ * Covering commands of Xena testers, including Xena Valkyrie, Vulcan, and Chimera.
22
+ * Supporting IDE auto-complete with built-in class/function/API use manual, to increase development efficiency.
@@ -8,7 +8,7 @@ def main():
8
8
  setuptools.setup(
9
9
  name="tdl-xoa-driver",
10
10
  description=(
11
- "XOA Driver is a Python library providing user-friendly communication"
11
+ "TDL XOA Python API is a Python library providing user-friendly communication"
12
12
  " interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment."
13
13
  " It provides a rich collection of APIs that can be used to either write"
14
14
  " test scripts or develop applications."
@@ -23,7 +23,7 @@ def main():
23
23
  packages=setuptools.find_packages(),
24
24
  license='Apache 2.0',
25
25
  classifiers=[
26
- "Development Status :: 4 - Beta",
26
+ "Development Status :: 5 - Production/Stable",
27
27
  "Intended Audience :: Developers",
28
28
  "Topic :: Software Development :: Libraries :: Python Modules",
29
29
  "License :: OSI Approved :: Apache Software License",
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tdl-xoa-driver
3
- Version: 1.5.0b2
4
- Summary: XOA Driver is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
3
+ Version: 1.5.1
4
+ Summary: TDL XOA Python API is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
5
5
  Home-page: https://github.com/xenanetworks/tdl-xoa-driver
6
6
  Author: Leonard Yu, Zoltan Hanisch
7
7
  Author-email: Leonard.Yu@teledyne.com, Zoltan.Hanisch@teledyne.com
8
8
  Maintainer: Teledyne LeCroy Xena
9
9
  Maintainer-email: xena-sales@teledyne.com
10
10
  License: Apache 2.0
11
- Classifier: Development Status :: 4 - Beta
11
+ Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Intended Audience :: Developers
13
13
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
14
  Classifier: License :: OSI Approved :: Apache Software License
@@ -33,15 +33,15 @@ Dynamic: requires-python
33
33
  Dynamic: summary
34
34
 
35
35
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/tdl-xoa-driver) [![PyPI](https://img.shields.io/pypi/v/tdl-xoa-driver)](https://pypi.python.org/pypi/tdl-xoa-driver) [![Documentation Status](https://readthedocs.com/projects/xena-networks-tdl-xoa-driver/badge/?version=latest)](https://docs.xenanetworks.com/projects/tdl-xoa-driver/en/latest/?badge=latest)
36
- # XOA Driver
37
- XOA Driver is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
36
+ # TDL XOA Python API
37
+ TDL XOA Python API is a standalone Python library that provides a user-friendly and powerful interface for automating network testing tasks using Xena Networks test equipment. Xena test equipment is a high-performance network test device designed for testing and measuring the performance of network equipment and applications.
38
38
 
39
39
  ## Introduction
40
- The XOA Driver is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
40
+ The TDL XOA Python API is designed to be easy to use and integrate with other automation tools and frameworks. It provides a comprehensive set of methods and classes for interacting with Xena test equipment, including the ability to create and run complex test scenarios, generate and analyze traffic at line rate, and perform detailed analysis of network performance and behavior.
41
41
 
42
- The XOA Driver simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the XOA Driver, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
42
+ The TDL XOA Python API simplifies the process of automating network testing tasks using Xena test equipment. It provides a simple, yet powerful, interface for interacting with Xena test equipment using the Python programming language. With the TDL XOA Python API, network engineers and testing professionals can easily create and execute test scenarios, generate and analyze traffic, and perform detailed analysis of network performance and behavior, all while leveraging the power and flexibility of the Python programming language.
43
43
 
44
- Overall, the XOA Driver is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the XOA Driver provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
44
+ Overall, the TDL XOA Python API is a valuable tool for anyone looking to automate their network testing tasks using Xena test equipment. With its simple, yet powerful, interface and support for the Python programming language, the TDL XOA Python API provides a flexible and extensible framework for automating network testing tasks and improving the quality of network infrastructure.
45
45
 
46
46
  ## Documentation
47
47
  The user documentation is hosted:
@@ -29,7 +29,7 @@ xoa_driver/functions/cli/_cli_manager.py
29
29
  xoa_driver/functions/cli/_config_block.py
30
30
  xoa_driver/functions/cli/_socket_driver.py
31
31
  xoa_driver/functions/cli/port_config.py
32
- xoa_driver/functions/cli/test_case_config.py
32
+ xoa_driver/functions/cli/testbed_config.py
33
33
  xoa_driver/functions/cmis/__init__.py
34
34
  xoa_driver/functions/cmis/_constants.py
35
35
  xoa_driver/functions/cmis/_replies.py
@@ -155,6 +155,7 @@ xoa_driver/internals/hli/modules/modules_l23/module_l23_base.py
155
155
  xoa_driver/internals/hli/ports/__init__.py
156
156
  xoa_driver/internals/hli/ports/base_port.py
157
157
  xoa_driver/internals/hli/ports/port_l23/__init__.py
158
+ xoa_driver/internals/hli/ports/port_l23/edun_l1.py
158
159
  xoa_driver/internals/hli/ports/port_l23/family_combi.py
159
160
  xoa_driver/internals/hli/ports/port_l23/family_d.py
160
161
  xoa_driver/internals/hli/ports/port_l23/family_e.py
@@ -1,2 +1,2 @@
1
- __version__ = "1.5.0b2"
1
+ __version__ = "1.5.1"
2
2
  __short_version__ = "1.5"
@@ -6,16 +6,16 @@ from .port_config import (
6
6
  load_port_config,
7
7
  port_config_from_file,
8
8
  )
9
- from .test_case_config import (
10
- save_test_case_config,
11
- load_test_case_config,
9
+ from .testbed_config import (
10
+ save_testbed_config,
11
+ load_testbed_config,
12
12
  module_config_from_file,
13
13
  )
14
14
  __all__ = (
15
15
  "save_port_config",
16
16
  "load_port_config",
17
17
  "port_config_from_file",
18
- "save_test_case_config",
19
- "load_test_case_config",
18
+ "save_testbed_config",
19
+ "load_testbed_config",
20
20
  "module_config_from_file",
21
21
  )
@@ -1,10 +1,11 @@
1
1
  import asyncio
2
2
  from xoa_driver import testers, ports
3
+ from typing import List, Tuple
3
4
  from ._cli_manager import XOACLIManager
4
5
  from ._config_block import *
5
6
 
6
7
  async def save_port_config(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> str:
7
- """Save configuration from the test port to the specified filepath
8
+ """Save port config to the specified filepath
8
9
 
9
10
  :param tester: Chassis object
10
11
  :type tester: testers.L23Tester
@@ -52,8 +53,8 @@ async def save_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
52
53
  xpcfile.write(result)
53
54
  return result
54
55
 
55
- async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> None:
56
- """Load configuration to the test port from the specified filepath
56
+ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
57
+ """Load port config from the specified filepath
57
58
 
58
59
  :param tester: Chassis object
59
60
  :type tester: testers.L23Tester
@@ -61,6 +62,8 @@ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
61
62
  :type port: ports.GenericL23Port
62
63
  :param load_path: File path to load the port configuration from
63
64
  :type load_path: str
65
+ :return: List of tuples containing response and the corresponding command sent
66
+ :rtype: List[Tuple[str, str]]
64
67
  """
65
68
 
66
69
  tester_ip = tester.info.host
@@ -77,8 +80,10 @@ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
77
80
  # Reserve the port before applying configuration
78
81
  xm.reserve_port(port_index)
79
82
 
83
+ result: List[Tuple[str, str]] = []
84
+
80
85
  # Read configuration from file
81
- with open(path, 'r') as xpcfile:
86
+ with open(path, 'r', encoding='utf-8') as xpcfile:
82
87
  config_data = xpcfile.read()
83
88
 
84
89
  # Deserialize config block and send CLI commands
@@ -87,12 +92,14 @@ async def load_port_config(tester: testers.L23Tester, port: ports.GenericL23Port
87
92
  cli_cmds = config_block.commands
88
93
  for cmd in cli_cmds:
89
94
  if cmd.strip(): # Ensure the command is not empty
90
- xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
95
+ resp = xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
96
+ result.append((resp, f"{port_index} {cmd}"))
91
97
 
92
98
  # Free the port after applying configuration
93
99
  xm.free_port(port_index)
100
+ return result
94
101
 
95
- async def port_config_from_file(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> None:
102
+ async def port_config_from_file(tester: testers.L23Tester, port: ports.GenericL23Port, path: str, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
96
103
  """Load port configuration from the specifiied filepath. This function is a wrapper around load_port_config to provide backward compatibility.
97
104
 
98
105
  :param tester: Chassis object
@@ -101,7 +108,9 @@ async def port_config_from_file(tester: testers.L23Tester, port: ports.GenericL2
101
108
  :type port: ports.GenericL23Port
102
109
  :param load_path: File path to load the port configuration from
103
110
  :type load_path: str
111
+ :return: List of tuples containing response and command sent
112
+ :rtype: List[Tuple[str, str]]
104
113
  """
105
- await load_port_config(tester, port, path, debug=debug, halt_on_error=halt_on_error)
114
+ return await load_port_config(tester, port, path, debug=debug, halt_on_error=halt_on_error)
106
115
 
107
116
 
@@ -1,12 +1,12 @@
1
1
  import asyncio
2
2
  from xoa_driver import testers, modules, ports
3
3
  from ._cli_manager import XOACLIManager
4
- from typing import List
4
+ from typing import List, Tuple
5
5
  from ..mgmt import *
6
6
  from ._config_block import *
7
7
 
8
- async def save_test_case_config(tester: testers.L23Tester, ports: List[ports.GenericL23Port], path: str, testbed_name: str = "<testbed>", with_module_config: bool = True, debug=False, halt_on_error=False) -> str:
9
- """Save module configuration to the specifiied filepath
8
+ async def save_testbed_config(tester: testers.L23Tester, ports: List[ports.GenericL23Port], path: str, testbed_name: str = "<testbed>", with_module_config: bool = True, debug=False, halt_on_error=False) -> str:
9
+ """Save testbed configuration to the specifiied filepath
10
10
 
11
11
  :param tester: Chassis object
12
12
  :type tester: testers.L23Tester
@@ -95,8 +95,8 @@ async def save_test_case_config(tester: testers.L23Tester, ports: List[ports.Gen
95
95
 
96
96
  return result
97
97
 
98
- async def load_test_case_config(tester: testers.L23Tester, path: str, mode: str = "default", delay_after_module_config: int = 5, debug=False, halt_on_error=False) -> None:
99
- """Load module configuration from the specifiied filepath
98
+ async def load_testbed_config(tester: testers.L23Tester, path: str, mode: str = "default", delay_after_module_config: int = 5, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
99
+ """Load testbed configuration from the specifiied filepath
100
100
 
101
101
  :param tester: Chassis object
102
102
  :type tester: testers.L23Tester
@@ -106,6 +106,8 @@ async def load_test_case_config(tester: testers.L23Tester, path: str, mode: str
106
106
  :type mode: str
107
107
  :param delay_after_module_config: Delay in seconds after configuring each module to ensure proper configuration
108
108
  :type delay_after_module_config: int
109
+ :return: List of tuples containing response and the corresponding command sent
110
+ :rtype: List[Tuple[str, str]]
109
111
  """
110
112
 
111
113
  tester_ip = tester.info.host
@@ -118,50 +120,55 @@ async def load_test_case_config(tester: testers.L23Tester, path: str, mode: str
118
120
  # Log on and set username
119
121
  xm.logon_set_owner(tester_password)
120
122
 
123
+ result: List[Tuple[str, str]] = []
124
+
121
125
  # Read configuration from file
122
126
  with open(path, 'r') as xpcfile:
123
127
  config_data = xpcfile.read()
124
128
 
125
- # Parse the config data to configure modules and ports block by block
126
- config_datas = config_data.split(f";\n")
127
- for block in config_datas:
128
- if config_block_type(config_block_str=block) == ConfigMetadataType.MODULE and mode in ["default", "module"]:
129
- module_block = ConfigBlock()
130
- module_block.config_block_str = block
131
- module_index = module_block.module_id
132
-
133
- # Free the module before applying configuration
134
- module = tester.modules.obtain(int(module_index))
135
- await release_module(module=module, should_release_ports=True)
136
- # Reserve the module before applying configuration
137
- xm.reserve_module(module_index)
138
-
139
- # Send each command to the tester
140
- for cmd in module_block.commands:
141
- if cmd.strip(): # Ensure the command is not empty
142
- # print(f"Applying command: {module_index} {cmd}")
143
- xm.send(cmd=f"{module_index} {cmd}", sync_on=False)
144
- # Free the module after applying configuration
145
- xm.free_module(module_index)
146
- await asyncio.sleep(delay_after_module_config) # Small delay to ensure proper module configuration
147
-
148
- elif config_block_type(config_block_str=block) == ConfigMetadataType.PORT and mode in ["default", "port"]:
149
- port_block = ConfigBlock()
150
- port_block.config_block_str = block
151
- port_index = port_block.port_id
152
-
153
- # Reserve the port before applying configuration
154
- xm.reserve_port(port_index)
155
-
156
- # Send each command to the tester
157
- for cmd in port_block.commands:
158
- if cmd.strip(): # Ensure the command is not empty
159
- # print(f"Applying command: {port_index} {cmd}")
160
- xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
161
- # Free the port after applying configuration
162
- xm.free_port(port_index)
163
-
164
- async def module_config_from_file(tester: testers.L23Tester, path: str, debug=False, halt_on_error=False) -> None:
129
+ # Parse the config data to configure modules and ports block by block
130
+ config_datas = config_data.split(f";\n")
131
+ for block in config_datas:
132
+ if config_block_type(config_block_str=block) == ConfigMetadataType.MODULE and mode in ["default", "module"]:
133
+ module_block = ConfigBlock()
134
+ module_block.config_block_str = block
135
+ module_index = module_block.module_id
136
+
137
+ # Free the module before applying configuration
138
+ module = tester.modules.obtain(int(module_index))
139
+ await release_module(module=module, should_release_ports=True)
140
+ # Reserve the module before applying configuration
141
+ xm.reserve_module(module_index)
142
+
143
+ # Send each command to the tester
144
+ for cmd in module_block.commands:
145
+ if cmd.strip(): # Ensure the command is not empty
146
+ # print(f"Applying command: {module_index} {cmd}")
147
+ resp = xm.send(cmd=f"{module_index} {cmd}", sync_on=False)
148
+ result.append((resp, f"{module_index} {cmd}"))
149
+ # Free the module after applying configuration
150
+ xm.free_module(module_index)
151
+ await asyncio.sleep(delay_after_module_config) # Small delay to ensure proper module configuration
152
+
153
+ elif config_block_type(config_block_str=block) == ConfigMetadataType.PORT and mode in ["default", "port"]:
154
+ port_block = ConfigBlock()
155
+ port_block.config_block_str = block
156
+ port_index = port_block.port_id
157
+
158
+ # Reserve the port before applying configuration
159
+ xm.reserve_port(port_index)
160
+
161
+ # Send each command to the tester
162
+ for cmd in port_block.commands:
163
+ if cmd.strip(): # Ensure the command is not empty
164
+ # print(f"Applying command: {port_index} {cmd}")
165
+ resp = xm.send(cmd=f"{port_index} {cmd}", sync_on=False)
166
+ result.append((resp, f"{port_index} {cmd}"))
167
+ # Free the port after applying configuration
168
+ xm.free_port(port_index)
169
+ return result
170
+
171
+ async def module_config_from_file(tester: testers.L23Tester, path: str, debug=False, halt_on_error=False) -> List[Tuple[str, str]]:
165
172
  """Load module configuration from the specifiied filepath. This function is a wrapper around load_module_config to provide backward compatibility.
166
173
 
167
174
  :param tester: Chassis object
@@ -169,4 +176,4 @@ async def module_config_from_file(tester: testers.L23Tester, path: str, debug=Fa
169
176
  :param path: File path to load the module configuration from
170
177
  :type path: str
171
178
  """
172
- await load_test_case_config(tester, path, mode="module", debug=debug, halt_on_error=halt_on_error)
179
+ return await load_testbed_config(tester, path, mode="module", debug=debug, halt_on_error=halt_on_error)
@@ -601,7 +601,44 @@ class P_CAPABILITIES:
601
601
  * Bit 0: Normal modifier (16/24-bit) supports little-endian
602
602
  * Bit 1: Extended modifier (32-bit) supports little-endian
603
603
  """
604
-
604
+ capture_bitmask: int = field(XmpInt(), min_version=470)
605
+ """integer, bitmask indicating capture capabilities.
606
+
607
+ If all bits are 0: CAPTURE_NOT_SUPPORTED
608
+
609
+ Bits [0:11] are for Start triggers:
610
+
611
+ * Bit 0: CAPTURE_START_ON
612
+ * Bit 1: CAPTURE_START_FCSERROR
613
+ * Bit 2: CAPTURE_START_FILTER
614
+ * Bit 3: CAPTURE_START_PLDERROR
615
+ * Bit 4-11: Reserved
616
+
617
+ Bits [12:23] are for Stop triggers:
618
+
619
+ * Bit 12: CAPTURE_STOP_FULL
620
+ * Bit 13: CAPTURE_STOP_FCSERROR
621
+ * Bit 14: CAPTURE_STOP_FILTER
622
+ * Bit 15: CAPTURE_STOP_PLDERROR
623
+ * Bit 16: CAPTURE_STOP_USERSTOP
624
+ * Bit 17-23: Reserved
625
+
626
+ Bits [24:31] are for Keep modes:
627
+
628
+ * Bit 24: CAPTURE_KEEP_ALL
629
+ * Bit 25: CAPTURE_KEEP_FCSERR
630
+ * Bit 26: CAPTURE_KEEP_NOTPLD
631
+ * Bit 27: CAPTURE_KEEP_TPLD
632
+ * Bit 28: CAPTURE_KEEP_FILTER
633
+ * Bit 29: CAPTURE_KEEP_PLDERR
634
+ * Bit 30-31: Reserved
635
+ """
636
+ num_txeq_pre: int = field(XmpInt(), min_version=470)
637
+ """The number of postcursors = num_txeq - num_txeq_pre - 1."""
638
+ txeq_max_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
639
+ """max value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
640
+ txeq_min_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
641
+ """min-value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
605
642
 
606
643
 
607
644
  def get(self) -> Token[GetDataAttr]:
@@ -1512,7 +1549,6 @@ class P_XMITONE:
1512
1549
  A valid Frame Check Sum is written into the final four bytes.
1513
1550
 
1514
1551
  :param hex_data: raw bytes of the packet in hex to transmit
1515
- :rtype: typing.List[str]
1516
1552
  """
1517
1553
 
1518
1554
  return Token(self._connection, build_set_request(self, module=self._module, port=self._port, hex_data=hex_data))