tdl-xoa-driver 1.0.0b1__py3-none-any.whl

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 (325) hide show
  1. tdl_xoa_driver-1.0.0b1.dist-info/LICENSE +202 -0
  2. tdl_xoa_driver-1.0.0b1.dist-info/METADATA +177 -0
  3. tdl_xoa_driver-1.0.0b1.dist-info/RECORD +325 -0
  4. tdl_xoa_driver-1.0.0b1.dist-info/WHEEL +5 -0
  5. tdl_xoa_driver-1.0.0b1.dist-info/top_level.txt +1 -0
  6. xoa_driver/__init__.py +2 -0
  7. xoa_driver/enums.py +399 -0
  8. xoa_driver/exceptions.py +77 -0
  9. xoa_driver/functions/__init__.py +0 -0
  10. xoa_driver/functions/anlt.py +744 -0
  11. xoa_driver/functions/anlt_ll_debug.py +429 -0
  12. xoa_driver/functions/cli.py +581 -0
  13. xoa_driver/functions/exceptions.py +72 -0
  14. xoa_driver/functions/headers.py +608 -0
  15. xoa_driver/functions/mgmt.py +515 -0
  16. xoa_driver/functions/tools.py +256 -0
  17. xoa_driver/hlfuncs.py +18 -0
  18. xoa_driver/internals/__init__.py +0 -0
  19. xoa_driver/internals/commands/__init__.py +31 -0
  20. xoa_driver/internals/commands/c_commands.py +2041 -0
  21. xoa_driver/internals/commands/enums.py +3289 -0
  22. xoa_driver/internals/commands/m4_commands.py +700 -0
  23. xoa_driver/internals/commands/m4e_commands.py +107 -0
  24. xoa_driver/internals/commands/m_commands.py +1875 -0
  25. xoa_driver/internals/commands/p4_commands.py +2221 -0
  26. xoa_driver/internals/commands/p4e_commands.py +160 -0
  27. xoa_driver/internals/commands/p4g_commands.py +7253 -0
  28. xoa_driver/internals/commands/p_commands.py +6000 -0
  29. xoa_driver/internals/commands/pc_commands.py +335 -0
  30. xoa_driver/internals/commands/pd_commands.py +355 -0
  31. xoa_driver/internals/commands/pe_commands.py +1018 -0
  32. xoa_driver/internals/commands/pec_commands.py +265 -0
  33. xoa_driver/internals/commands/ped_commands.py +1034 -0
  34. xoa_driver/internals/commands/pef_commands.py +2216 -0
  35. xoa_driver/internals/commands/pf_commands.py +379 -0
  36. xoa_driver/internals/commands/pl1_commands.py +1588 -0
  37. xoa_driver/internals/commands/pl_commands.py +178 -0
  38. xoa_driver/internals/commands/pm_commands.py +256 -0
  39. xoa_driver/internals/commands/pp_commands.py +2341 -0
  40. xoa_driver/internals/commands/pr_commands.py +812 -0
  41. xoa_driver/internals/commands/ps_commands.py +2311 -0
  42. xoa_driver/internals/commands/pt_commands.py +370 -0
  43. xoa_driver/internals/commands/px_commands.py +303 -0
  44. xoa_driver/internals/commands/subtypes.py +86 -0
  45. xoa_driver/internals/core/__init__.py +0 -0
  46. xoa_driver/internals/core/builders.py +39 -0
  47. xoa_driver/internals/core/exceptions.py +69 -0
  48. xoa_driver/internals/core/funcs.py +81 -0
  49. xoa_driver/internals/core/funcs.pyi +1072 -0
  50. xoa_driver/internals/core/interfaces.py +47 -0
  51. xoa_driver/internals/core/token.py +44 -0
  52. xoa_driver/internals/core/transporter/__init__.py +0 -0
  53. xoa_driver/internals/core/transporter/_processor.py +83 -0
  54. xoa_driver/internals/core/transporter/_publisher.py +101 -0
  55. xoa_driver/internals/core/transporter/_request_id_counter.py +28 -0
  56. xoa_driver/internals/core/transporter/_stream.py +99 -0
  57. xoa_driver/internals/core/transporter/_typings.py +43 -0
  58. xoa_driver/internals/core/transporter/exceptions.py +44 -0
  59. xoa_driver/internals/core/transporter/handler.py +127 -0
  60. xoa_driver/internals/core/transporter/logger/__init__.py +10 -0
  61. xoa_driver/internals/core/transporter/logger/__logger.py +94 -0
  62. xoa_driver/internals/core/transporter/logger/__state_off.py +32 -0
  63. xoa_driver/internals/core/transporter/logger/__state_on_default.py +70 -0
  64. xoa_driver/internals/core/transporter/logger/__state_on_loguru.py +51 -0
  65. xoa_driver/internals/core/transporter/logger/__state_on_user.py +48 -0
  66. xoa_driver/internals/core/transporter/protocol/__init__.py +0 -0
  67. xoa_driver/internals/core/transporter/protocol/_constants.py +77 -0
  68. xoa_driver/internals/core/transporter/protocol/_utils.py +59 -0
  69. xoa_driver/internals/core/transporter/protocol/exceptions.py +271 -0
  70. xoa_driver/internals/core/transporter/protocol/payload/__init__.py +70 -0
  71. xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +283 -0
  72. xoa_driver/internals/core/transporter/protocol/payload/descriptor.py +119 -0
  73. xoa_driver/internals/core/transporter/protocol/payload/exceptions.py +20 -0
  74. xoa_driver/internals/core/transporter/protocol/payload/field.py +296 -0
  75. xoa_driver/internals/core/transporter/protocol/payload/types.py +173 -0
  76. xoa_driver/internals/core/transporter/protocol/payload/utils.py +53 -0
  77. xoa_driver/internals/core/transporter/protocol/struct_header.py +123 -0
  78. xoa_driver/internals/core/transporter/protocol/struct_request.py +65 -0
  79. xoa_driver/internals/core/transporter/protocol/struct_response.py +89 -0
  80. xoa_driver/internals/core/transporter/registry.py +43 -0
  81. xoa_driver/internals/exceptions/__init__.py +9 -0
  82. xoa_driver/internals/exceptions/modules.py +13 -0
  83. xoa_driver/internals/exceptions/testers.py +21 -0
  84. xoa_driver/internals/hli_v1/__init__.py +0 -0
  85. xoa_driver/internals/hli_v1/indices/__init__.py +0 -0
  86. xoa_driver/internals/hli_v1/indices/base_index.py +39 -0
  87. xoa_driver/internals/hli_v1/indices/connection_group/__init__.py +0 -0
  88. xoa_driver/internals/hli_v1/indices/connection_group/cg.py +186 -0
  89. xoa_driver/internals/hli_v1/indices/connection_group/histogram.py +78 -0
  90. xoa_driver/internals/hli_v1/indices/connection_group/l2.py +94 -0
  91. xoa_driver/internals/hli_v1/indices/connection_group/l3.py +130 -0
  92. xoa_driver/internals/hli_v1/indices/connection_group/raw.py +200 -0
  93. xoa_driver/internals/hli_v1/indices/connection_group/replay.py +109 -0
  94. xoa_driver/internals/hli_v1/indices/connection_group/tcp.py +314 -0
  95. xoa_driver/internals/hli_v1/indices/connection_group/tls.py +198 -0
  96. xoa_driver/internals/hli_v1/indices/connection_group/udp.py +133 -0
  97. xoa_driver/internals/hli_v1/indices/connection_group/user_state.py +28 -0
  98. xoa_driver/internals/hli_v1/indices/filter/__init__.py +0 -0
  99. xoa_driver/internals/hli_v1/indices/filter/base_filter.py +65 -0
  100. xoa_driver/internals/hli_v1/indices/filter/genuine_filter.py +20 -0
  101. xoa_driver/internals/hli_v1/indices/length_term.py +49 -0
  102. xoa_driver/internals/hli_v1/indices/macsecscs/__init__.py +0 -0
  103. xoa_driver/internals/hli_v1/indices/macsecscs/base_macsecsc.py +224 -0
  104. xoa_driver/internals/hli_v1/indices/macsecscs/genuine_macsecsc.py +72 -0
  105. xoa_driver/internals/hli_v1/indices/match_term.py +64 -0
  106. xoa_driver/internals/hli_v1/indices/port_dataset.py +72 -0
  107. xoa_driver/internals/hli_v1/indices/streams/__init__.py +0 -0
  108. xoa_driver/internals/hli_v1/indices/streams/base_stream.py +405 -0
  109. xoa_driver/internals/hli_v1/indices/streams/genuine_stream.py +64 -0
  110. xoa_driver/internals/hli_v1/modules/__init__.py +0 -0
  111. xoa_driver/internals/hli_v1/modules/__interfaces.py +21 -0
  112. xoa_driver/internals/hli_v1/modules/base_module.py +138 -0
  113. xoa_driver/internals/hli_v1/modules/module_chimera.py +366 -0
  114. xoa_driver/internals/hli_v1/modules/module_l23ve.py +73 -0
  115. xoa_driver/internals/hli_v1/modules/module_l47.py +397 -0
  116. xoa_driver/internals/hli_v1/modules/module_l47ve.py +9 -0
  117. xoa_driver/internals/hli_v1/modules/modules_l23/__init__.py +0 -0
  118. xoa_driver/internals/hli_v1/modules/modules_l23/family_combi.py +83 -0
  119. xoa_driver/internals/hli_v1/modules/modules_l23/family_d.py +75 -0
  120. xoa_driver/internals/hli_v1/modules/modules_l23/family_e.py +85 -0
  121. xoa_driver/internals/hli_v1/modules/modules_l23/family_f.py +145 -0
  122. xoa_driver/internals/hli_v1/modules/modules_l23/family_g.py +84 -0
  123. xoa_driver/internals/hli_v1/modules/modules_l23/family_h.py +40 -0
  124. xoa_driver/internals/hli_v1/modules/modules_l23/family_i.py +25 -0
  125. xoa_driver/internals/hli_v1/modules/modules_l23/family_j.py +25 -0
  126. xoa_driver/internals/hli_v1/modules/modules_l23/family_k.py +39 -0
  127. xoa_driver/internals/hli_v1/modules/modules_l23/family_l.py +55 -0
  128. xoa_driver/internals/hli_v1/modules/modules_l23/family_l1.py +800 -0
  129. xoa_driver/internals/hli_v1/modules/modules_l23/family_m.py +25 -0
  130. xoa_driver/internals/hli_v1/modules/modules_l23/family_n.py +40 -0
  131. xoa_driver/internals/hli_v1/modules/modules_l23/module_l23_base.py +383 -0
  132. xoa_driver/internals/hli_v1/ports/__init__.py +0 -0
  133. xoa_driver/internals/hli_v1/ports/base_port.py +125 -0
  134. xoa_driver/internals/hli_v1/ports/port_l23/__init__.py +0 -0
  135. xoa_driver/internals/hli_v1/ports/port_l23/bases/__init__.py +0 -0
  136. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_capture.py +70 -0
  137. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23.py +527 -0
  138. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23_genuine.py +229 -0
  139. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_reception_statistics.py +231 -0
  140. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +117 -0
  141. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transmission_statistics.py +131 -0
  142. xoa_driver/internals/hli_v1/ports/port_l23/chimera/__init__.py +0 -0
  143. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  144. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/_utils.py +15 -0
  145. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/general.py +396 -0
  146. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/shadow.py +104 -0
  147. xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/working.py +36 -0
  148. xoa_driver/internals/hli_v1/ports/port_l23/chimera/pe_custom_distribution.py +125 -0
  149. xoa_driver/internals/hli_v1/ports/port_l23/chimera/pe_distribution.py +174 -0
  150. xoa_driver/internals/hli_v1/ports/port_l23/chimera/port_chimera.py +119 -0
  151. xoa_driver/internals/hli_v1/ports/port_l23/chimera/port_emulation.py +244 -0
  152. xoa_driver/internals/hli_v1/ports/port_l23/chimera/reception_statistics.py +24 -0
  153. xoa_driver/internals/hli_v1/ports/port_l23/chimera/transmission_statistics.py +24 -0
  154. xoa_driver/internals/hli_v1/ports/port_l23/family_combi.py +37 -0
  155. xoa_driver/internals/hli_v1/ports/port_l23/family_d.py +51 -0
  156. xoa_driver/internals/hli_v1/ports/port_l23/family_e.py +107 -0
  157. xoa_driver/internals/hli_v1/ports/port_l23/family_f.py +151 -0
  158. xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +77 -0
  159. xoa_driver/internals/hli_v1/ports/port_l23/family_h.py +67 -0
  160. xoa_driver/internals/hli_v1/ports/port_l23/family_i.py +84 -0
  161. xoa_driver/internals/hli_v1/ports/port_l23/family_j.py +68 -0
  162. xoa_driver/internals/hli_v1/ports/port_l23/family_k.py +73 -0
  163. xoa_driver/internals/hli_v1/ports/port_l23/family_l.py +82 -0
  164. xoa_driver/internals/hli_v1/ports/port_l23/family_l1.py +166 -0
  165. xoa_driver/internals/hli_v1/ports/port_l23/family_m.py +29 -0
  166. xoa_driver/internals/hli_v1/ports/port_l23/fault_jkl.py +24 -0
  167. xoa_driver/internals/hli_v1/ports/port_l23/freya_l1.py +722 -0
  168. xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_ghijkl.py +369 -0
  169. xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_ijkl_chimera.py +60 -0
  170. xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_l.py +78 -0
  171. xoa_driver/internals/hli_v1/ports/port_l23/port_l23ve.py +101 -0
  172. xoa_driver/internals/hli_v1/ports/port_l47/__init__.py +0 -0
  173. xoa_driver/internals/hli_v1/ports/port_l47/counters.py +174 -0
  174. xoa_driver/internals/hli_v1/ports/port_l47/main.py +228 -0
  175. xoa_driver/internals/hli_v1/ports/port_l47/packet_engine.py +31 -0
  176. xoa_driver/internals/hli_v1/revisions.py +11 -0
  177. xoa_driver/internals/hli_v1/testers/__init__.py +0 -0
  178. xoa_driver/internals/hli_v1/testers/_base_tester.py +259 -0
  179. xoa_driver/internals/hli_v1/testers/genuine/__init__.py +0 -0
  180. xoa_driver/internals/hli_v1/testers/genuine/l_23/__init__.py +0 -0
  181. xoa_driver/internals/hli_v1/testers/genuine/l_23/health.py +16 -0
  182. xoa_driver/internals/hli_v1/testers/genuine/l_23/rest_api.py +38 -0
  183. xoa_driver/internals/hli_v1/testers/genuine/l_23/time_keeper.py +57 -0
  184. xoa_driver/internals/hli_v1/testers/genuine/l_23/upload_file.py +29 -0
  185. xoa_driver/internals/hli_v1/testers/genuine/management_interface.py +42 -0
  186. xoa_driver/internals/hli_v1/testers/l23_tester.py +196 -0
  187. xoa_driver/internals/hli_v1/testers/l23ve_tester.py +114 -0
  188. xoa_driver/internals/hli_v1/testers/l47_tester.py +106 -0
  189. xoa_driver/internals/hli_v1/testers/l47ve_tester.py +54 -0
  190. xoa_driver/internals/hli_v2/__init__.py +0 -0
  191. xoa_driver/internals/hli_v2/indices/__init__.py +0 -0
  192. xoa_driver/internals/hli_v2/indices/base_index.py +39 -0
  193. xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
  194. xoa_driver/internals/hli_v2/indices/connection_group/cg.py +115 -0
  195. xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +59 -0
  196. xoa_driver/internals/hli_v2/indices/connection_group/l2.py +71 -0
  197. xoa_driver/internals/hli_v2/indices/connection_group/l3.py +96 -0
  198. xoa_driver/internals/hli_v2/indices/connection_group/raw.py +148 -0
  199. xoa_driver/internals/hli_v2/indices/connection_group/replay.py +89 -0
  200. xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +261 -0
  201. xoa_driver/internals/hli_v2/indices/connection_group/tls.py +166 -0
  202. xoa_driver/internals/hli_v2/indices/connection_group/udp.py +112 -0
  203. xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +25 -0
  204. xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
  205. xoa_driver/internals/hli_v2/indices/filter/base_filter.py +50 -0
  206. xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +17 -0
  207. xoa_driver/internals/hli_v2/indices/length_term.py +44 -0
  208. xoa_driver/internals/hli_v2/indices/match_term.py +49 -0
  209. xoa_driver/internals/hli_v2/indices/port_dataset.py +53 -0
  210. xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
  211. xoa_driver/internals/hli_v2/indices/streams/base_stream.py +234 -0
  212. xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +32 -0
  213. xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
  214. xoa_driver/internals/hli_v2/modules/__interfaces.py +21 -0
  215. xoa_driver/internals/hli_v2/modules/base_module.py +125 -0
  216. xoa_driver/internals/hli_v2/modules/module_chimera.py +358 -0
  217. xoa_driver/internals/hli_v2/modules/module_l23ve.py +58 -0
  218. xoa_driver/internals/hli_v2/modules/module_l47.py +230 -0
  219. xoa_driver/internals/hli_v2/modules/module_l47ve.py +8 -0
  220. xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
  221. xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +73 -0
  222. xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +75 -0
  223. xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +85 -0
  224. xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +144 -0
  225. xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +84 -0
  226. xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +40 -0
  227. xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +25 -0
  228. xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +25 -0
  229. xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +39 -0
  230. xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +55 -0
  231. xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +797 -0
  232. xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +25 -0
  233. xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +40 -0
  234. xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +339 -0
  235. xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
  236. xoa_driver/internals/hli_v2/ports/base_port.py +105 -0
  237. xoa_driver/internals/hli_v2/ports/port_l23/__init__.py +0 -0
  238. xoa_driver/internals/hli_v2/ports/port_l23/bases/__init__.py +0 -0
  239. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_capture.py +64 -0
  240. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +441 -0
  241. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +172 -0
  242. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +156 -0
  243. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +117 -0
  244. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +59 -0
  245. xoa_driver/internals/hli_v2/ports/port_l23/chimera/__init__.py +0 -0
  246. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  247. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/_utils.py +15 -0
  248. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +340 -0
  249. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +99 -0
  250. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +36 -0
  251. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +116 -0
  252. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +102 -0
  253. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +113 -0
  254. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +420 -0
  255. xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +22 -0
  256. xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +22 -0
  257. xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +36 -0
  258. xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +49 -0
  259. xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +96 -0
  260. xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +144 -0
  261. xoa_driver/internals/hli_v2/ports/port_l23/family_g.py +77 -0
  262. xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +60 -0
  263. xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +66 -0
  264. xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +53 -0
  265. xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +58 -0
  266. xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +67 -0
  267. xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +149 -0
  268. xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +28 -0
  269. xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +22 -0
  270. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +342 -0
  271. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +50 -0
  272. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +65 -0
  273. xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +81 -0
  274. xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
  275. xoa_driver/internals/hli_v2/ports/port_l47/counters.py +146 -0
  276. xoa_driver/internals/hli_v2/ports/port_l47/main.py +137 -0
  277. xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +20 -0
  278. xoa_driver/internals/hli_v2/revisions.py +11 -0
  279. xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
  280. xoa_driver/internals/hli_v2/testers/_base_tester.py +207 -0
  281. xoa_driver/internals/hli_v2/testers/genuine/__init__.py +0 -0
  282. xoa_driver/internals/hli_v2/testers/genuine/l_23/__init__.py +0 -0
  283. xoa_driver/internals/hli_v2/testers/genuine/l_23/health.py +16 -0
  284. xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +34 -0
  285. xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +50 -0
  286. xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +26 -0
  287. xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +38 -0
  288. xoa_driver/internals/hli_v2/testers/l23_tester.py +159 -0
  289. xoa_driver/internals/hli_v2/testers/l23ve_tester.py +98 -0
  290. xoa_driver/internals/hli_v2/testers/l47_tester.py +95 -0
  291. xoa_driver/internals/hli_v2/testers/l47ve_tester.py +50 -0
  292. xoa_driver/internals/state_storage/__init__.py +0 -0
  293. xoa_driver/internals/state_storage/_speed_detector.py +121 -0
  294. xoa_driver/internals/state_storage/modules_state.py +128 -0
  295. xoa_driver/internals/state_storage/ports_state.py +154 -0
  296. xoa_driver/internals/state_storage/testers_state.py +104 -0
  297. xoa_driver/internals/utils/__init__.py +0 -0
  298. xoa_driver/internals/utils/attributes.py +33 -0
  299. xoa_driver/internals/utils/cap_id.py +63 -0
  300. xoa_driver/internals/utils/con_traffic_light.py +88 -0
  301. xoa_driver/internals/utils/indices/__init__.py +0 -0
  302. xoa_driver/internals/utils/indices/_interfaces.py +26 -0
  303. xoa_driver/internals/utils/indices/header_modifier_manager.py +56 -0
  304. xoa_driver/internals/utils/indices/index_manager.py +95 -0
  305. xoa_driver/internals/utils/indices/observer.py +17 -0
  306. xoa_driver/internals/utils/kind.py +19 -0
  307. xoa_driver/internals/utils/managers/__init__.py +0 -0
  308. xoa_driver/internals/utils/managers/abc.py +44 -0
  309. xoa_driver/internals/utils/managers/exceptions.py +22 -0
  310. xoa_driver/internals/utils/managers/modules_manager.py +118 -0
  311. xoa_driver/internals/utils/managers/ports_manager.py +116 -0
  312. xoa_driver/internals/utils/rev_tool.py +21 -0
  313. xoa_driver/internals/utils/session.py +117 -0
  314. xoa_driver/internals/warn.py +32 -0
  315. xoa_driver/lli.py +15 -0
  316. xoa_driver/misc.py +57 -0
  317. xoa_driver/modules.py +448 -0
  318. xoa_driver/ports.py +332 -0
  319. xoa_driver/testers.py +37 -0
  320. xoa_driver/utils.py +12 -0
  321. xoa_driver/v2/__init__.py +11 -0
  322. xoa_driver/v2/misc.py +77 -0
  323. xoa_driver/v2/modules.py +308 -0
  324. xoa_driver/v2/ports.py +232 -0
  325. xoa_driver/v2/testers.py +24 -0
@@ -0,0 +1,700 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ import typing
4
+ import functools
5
+
6
+ from xoa_driver.internals.core.builders import (
7
+ build_get_request,
8
+ build_set_request
9
+ )
10
+ from xoa_driver.internals.core import interfaces
11
+ from xoa_driver.internals.core.token import Token
12
+ from xoa_driver.internals.core.transporter.registry import register_command
13
+ from xoa_driver.internals.core.transporter.protocol.payload import (
14
+ field,
15
+ RequestBodyStruct,
16
+ ResponseBodyStruct,
17
+ XmpByte,
18
+ XmpHex,
19
+ XmpInt,
20
+ XmpLong,
21
+ XmpSequence,
22
+ XmpStr,
23
+ Hex,
24
+ )
25
+ from .enums import (
26
+ CaptureSize,
27
+ ReplayParserState,
28
+ )
29
+
30
+
31
+ @register_command
32
+ @dataclass
33
+ class M4_SYSTEMID:
34
+ """
35
+ Return the system identifier of a L47 module.
36
+ """
37
+
38
+ code: typing.ClassVar[int] = 803
39
+ pushed: typing.ClassVar[bool] = False
40
+
41
+ _connection: 'interfaces.IConnection'
42
+ _module: int
43
+
44
+ class GetDataAttr(ResponseBodyStruct):
45
+ system_id: str = field(XmpStr())
46
+ """string, module system identifier."""
47
+
48
+ def get(self) -> Token[GetDataAttr]:
49
+ """Get the system identifier of a L47 module.
50
+
51
+ :return: the system identifier of a L47 module.
52
+ :rtype: M4_SYSTEMID.GetDataAttr
53
+ """
54
+
55
+ return Token(self._connection, build_get_request(self, module=self._module))
56
+
57
+
58
+ @register_command
59
+ @dataclass
60
+ class M4_VERSIONNO:
61
+ """
62
+ Returns a version string containing a combination of information regarding the
63
+ software version and the build environment. The first part of the string is the
64
+ software build version.
65
+ """
66
+
67
+ code: typing.ClassVar[int] = 804
68
+ pushed: typing.ClassVar[bool] = False
69
+
70
+ _connection: 'interfaces.IConnection'
71
+ _module: int
72
+
73
+ class GetDataAttr(ResponseBodyStruct):
74
+ version_string: str = field(XmpStr())
75
+ """string, module version string."""
76
+
77
+ def get(self) -> Token[GetDataAttr]:
78
+ """Get a version string containing a combination of information regarding the software version and the build environment.
79
+
80
+ :return: a version string containing a combination of information regarding the software version and the build environment
81
+ :rtype: M4_VERSIONNO.GetDataAttr
82
+ """
83
+
84
+ return Token(self._connection, build_get_request(self, module=self._module))
85
+
86
+
87
+ @register_command
88
+ @dataclass
89
+ class M4_SYSTEM_STATUS:
90
+ """
91
+ Returns the L47 module system status in a text string.
92
+ """
93
+
94
+ code: typing.ClassVar[int] = 805
95
+ pushed: typing.ClassVar[bool] = False
96
+
97
+ _connection: 'interfaces.IConnection'
98
+ _module: int
99
+
100
+ class GetDataAttr(ResponseBodyStruct):
101
+ status_string: str = field(XmpStr())
102
+ """string, module status string."""
103
+
104
+ def get(self) -> Token[GetDataAttr]:
105
+ """Get the L47 module system status in a text string
106
+
107
+ :return: the L47 module system status in a text string
108
+ :rtype: M4_SYSTEM_STATUS.GetDataAttr
109
+ """
110
+
111
+ return Token(self._connection, build_get_request(self, module=self._module))
112
+
113
+
114
+ @register_command
115
+ @dataclass
116
+ class M4_COMPATIBLE_CLIENT_VERSION:
117
+ """
118
+ Returns the recommended and required VulcanMananger client version.
119
+ """
120
+
121
+ code: typing.ClassVar[int] = 806
122
+ pushed: typing.ClassVar[bool] = False
123
+
124
+ _connection: 'interfaces.IConnection'
125
+ _module: int
126
+
127
+ class GetDataAttr(ResponseBodyStruct):
128
+ recommended_major: int = field(XmpInt())
129
+ """string, recommended major version."""
130
+ recommended_minor: int = field(XmpInt())
131
+ """string, recommended minor version."""
132
+ recommended_minor_2: int = field(XmpInt())
133
+ """string, recommended minor 2 version."""
134
+ recommended_minor_3: int = field(XmpInt())
135
+ """string, recommended minor 3 version."""
136
+ required_major: int = field(XmpInt())
137
+ """string, required major version."""
138
+ required_minor: int = field(XmpInt())
139
+ """string, required minor version."""
140
+ required_minor_2: int = field(XmpInt())
141
+ """string, required minor 2 version."""
142
+ required_minor_3: int = field(XmpInt())
143
+ """string, required minor 3 version."""
144
+
145
+ def get(self) -> Token[GetDataAttr]:
146
+ """Get the recommended and required VulcanMananger client version.
147
+
148
+ :return: the recommended and required VulcanMananger client version.
149
+ :rtype: M4_COMPATIBLE_CLIENT_VERSION.GetDataAttr
150
+ """
151
+
152
+ return Token(self._connection, build_get_request(self, module=self._module))
153
+
154
+
155
+ @register_command
156
+ @dataclass
157
+ class M4_TIME:
158
+ """
159
+ Returns the module time in millisecond.
160
+ """
161
+
162
+ code: typing.ClassVar[int] = 807
163
+ pushed: typing.ClassVar[bool] = False
164
+
165
+ _connection: 'interfaces.IConnection'
166
+ _module: int
167
+
168
+ class GetDataAttr(ResponseBodyStruct):
169
+ time_now: int = field(XmpLong())
170
+ """long integer, the current time (mSec since module restart)"""
171
+
172
+ def get(self) -> Token[GetDataAttr]:
173
+ """Get the module time in millisecond.
174
+
175
+ :return: the module time in millisecond.
176
+ :rtype: M4_TIME.GetDataAttr
177
+ """
178
+
179
+ return Token(self._connection, build_get_request(self, module=self._module))
180
+
181
+
182
+ @register_command
183
+ @dataclass
184
+ class M4_SYSTEM_TIME:
185
+ """
186
+ Sets or returns the modules system time in UTC.
187
+ """
188
+
189
+ code: typing.ClassVar[int] = 808
190
+ pushed: typing.ClassVar[bool] = False
191
+
192
+ _connection: 'interfaces.IConnection'
193
+ _module: int
194
+
195
+ class GetDataAttr(ResponseBodyStruct):
196
+ year: int = field(XmpInt())
197
+ """integer, the year."""
198
+ month: int = field(XmpInt())
199
+ """integer, the month."""
200
+ day: int = field(XmpInt())
201
+ """integer, the day of the mont."""
202
+ hour: int = field(XmpInt())
203
+ """integer, the hour."""
204
+ minute: int = field(XmpInt())
205
+ """integer, the minute."""
206
+ second: int = field(XmpInt())
207
+ """integer, the second."""
208
+
209
+ class SetDataAttr(RequestBodyStruct):
210
+ year: int = field(XmpInt())
211
+ """integer, the year."""
212
+ month: int = field(XmpInt())
213
+ """integer, the month."""
214
+ day: int = field(XmpInt())
215
+ """integer, the day of the mont."""
216
+ hour: int = field(XmpInt())
217
+ """integer, the hour."""
218
+ minute: int = field(XmpInt())
219
+ """integer, the minute."""
220
+ second: int = field(XmpInt())
221
+ """integer, the second."""
222
+
223
+ def get(self) -> Token[GetDataAttr]:
224
+ """Get the modules system time in UTC.
225
+
226
+ :return: the modules system time in UTC.
227
+ :rtype: M4_SYSTEM_TIME.GetDataAttr
228
+ """
229
+
230
+ return Token(self._connection, build_get_request(self, module=self._module))
231
+
232
+ def set(self, year: int, month: int, day: int, hour: int, minute: int, second: int) -> Token[None]:
233
+ """Set the modules system time in UTC.
234
+
235
+ :param year: the year
236
+ :type year: int
237
+ :param month: the month
238
+ :type month: int
239
+ :param day: the day of the month
240
+ :type day: int
241
+ :param hour: the hour
242
+ :type hour: int
243
+ :param minute: the minute
244
+ :type minute: int
245
+ :param second: the second
246
+ :type second: int
247
+ """
248
+
249
+ return Token(self._connection, build_set_request(self, module=self._module, year=year, month=month, day=day, hour=hour, minute=minute, second=second))
250
+
251
+
252
+ @register_command
253
+ @dataclass
254
+ class M4_MEM_INFO:
255
+ """
256
+ Return the system memory information.
257
+ """
258
+
259
+ code: typing.ClassVar[int] = 809
260
+ pushed: typing.ClassVar[bool] = False
261
+
262
+ _connection: 'interfaces.IConnection'
263
+ _module: int
264
+
265
+ class GetDataAttr(ResponseBodyStruct):
266
+ year: int = field(XmpLong())
267
+ """long integer, total memory."""
268
+ month: int = field(XmpLong())
269
+ """long integer, free memory."""
270
+
271
+ def get(self) -> Token[GetDataAttr]:
272
+ """Get the system memory information.
273
+
274
+ :return: the system memory information.
275
+ :rtype: M4_MEM_INFO.GetDataAttr
276
+ """
277
+
278
+ return Token(self._connection, build_get_request(self, module=self._module))
279
+
280
+
281
+ @register_command
282
+ @dataclass
283
+ class M4_CAPTURE_SIZE:
284
+ """
285
+ Specify whether to capture whole packets(large) or truncated packets. When
286
+ truncated (small) is selected only the first 128 bytes of the packet are saved.
287
+ """
288
+
289
+ code: typing.ClassVar[int] = 810
290
+ pushed: typing.ClassVar[bool] = False
291
+
292
+ _connection: 'interfaces.IConnection'
293
+ _module: int
294
+
295
+ class GetDataAttr(ResponseBodyStruct):
296
+ size: CaptureSize = field(XmpByte())
297
+ """coded byte, specifying whether to capture whole packets or truncated packets."""
298
+
299
+ class SetDataAttr(RequestBodyStruct):
300
+ size: CaptureSize = field(XmpByte())
301
+ """coded byte, specifying whether to capture whole packets or truncated packets."""
302
+
303
+ def get(self) -> Token[GetDataAttr]:
304
+ """Get whether to capture whole packets(large) or truncated packets.
305
+
306
+ :return: whether to capture whole packets(large) or truncated packets.
307
+ :rtype: M4_CAPTURE_SIZE.GetDataAttr
308
+ """
309
+
310
+ return Token(self._connection, build_get_request(self, module=self._module))
311
+
312
+ def set(self, size: CaptureSize) -> Token[None]:
313
+ """Set whether to capture whole packets(large) or truncated packets.
314
+
315
+ :param size: specifying whether to capture whole packets or truncated packets.
316
+ :type size: CaptureSize
317
+ """
318
+
319
+ return Token(self._connection, build_set_request(self, module=self._module, size=size))
320
+
321
+ set_full = functools.partialmethod(set, CaptureSize.FULL)
322
+ """Capture whole packets"""
323
+
324
+ set_small = functools.partialmethod(set, CaptureSize.SMALL)
325
+ """Capture truncated packets"""
326
+
327
+
328
+ @register_command
329
+ @dataclass
330
+ class M4_LICENSE_INFO:
331
+ """
332
+ Returns the number of available and free PE licenses. Only 'available' number of PEs
333
+ can simultaneously be assigned to reserved ports.
334
+ """
335
+
336
+ code: typing.ClassVar[int] = 820
337
+ pushed: typing.ClassVar[bool] = False
338
+
339
+ _connection: 'interfaces.IConnection'
340
+ _module: int
341
+
342
+ class GetDataAttr(ResponseBodyStruct):
343
+ pes_available: int = field(XmpInt())
344
+ """integer, number of PEs that are licensed on the module, and can be used simultaneously."""
345
+ pes_free: int = field(XmpInt())
346
+ """integer, number of free PE licenses on the module 1G available: integer, number of 1G licenses on the module, that can be used simultaneously."""
347
+ N1g_available: int = field(XmpInt())
348
+ """integer, number of 1G speed licenses that are licensed on the module, and can be used simultaneously."""
349
+ N1g_free: int = field(XmpInt())
350
+ """integer, number of 1G speed licenses on the module 1G available: integer, number of 1G licenses on the module, that can be used simultaneously."""
351
+ N10g_available: int = field(XmpInt())
352
+ """integer, number of 10G speed licenses that are licensed on the module, and can be used simultaneously."""
353
+ N10g_free: int = field(XmpInt())
354
+ """integer, number of free 10G speed licenses on the module 1G available: integer, number of 1G licenses on the module, that can be used simultaneously."""
355
+ N25g_available: int = field(XmpInt())
356
+ """integer, number of 25G speed licenses that are licensed on the module, and can be used simultaneously."""
357
+ N25g_free: int = field(XmpInt())
358
+ """integer, number of free 25G speed licenses on the module 1G available: integer, number of 1G licenses on the module, that can be used simultaneously."""
359
+ N40g_available: int = field(XmpInt())
360
+ """integer, number of 40G speed licenses that are licensed on the module, and can be used simultaneously."""
361
+ N40g_free: int = field(XmpInt())
362
+ """integer, number of free 40G speed licenses on the module 1G available: integer, number of 1G licenses on the module, that can be used simultaneously."""
363
+
364
+ def get(self) -> Token[GetDataAttr]:
365
+ """Get the number of available and free PE licenses.
366
+
367
+ :return: the number of available and free PE licenses
368
+ :rtype: M4_LICENSE_INFO.GetDataAttr
369
+ """
370
+
371
+ return Token(self._connection, build_get_request(self, module=self._module))
372
+
373
+
374
+ @register_command
375
+ @dataclass
376
+ class M4_REPLAY_PARSE_START:
377
+ """
378
+ Command to start parsing an uploaded Capture File (in PCAP format) intended for
379
+ use in a replay test scenario. The result of the parsing - if successful - is a
380
+ Replay File (in BSON format) with the same name as the Capture File, which can
381
+ be used as parameter to P4G_REPLAY_filename command. If parsing is unsuccessful,
382
+ a Replay File is created containing the parse result. The
383
+ M4_REPLAY_FILE_INFO_BSON command can be used to get information about a Replay
384
+ File - including the parse result. PCAP Capture Files can be uploaded to the L47
385
+ chassis using FTP. The 'root' location of Capture Files uploaded manually by the
386
+ user is /var/ftp/pub/replay/pcap/. Three subdirectories exist: cache/, user/ and
387
+ xena/. cache / and xena/ is used by Vulcan Manager, and user/ is intended for
388
+ manual upload and parsing of Capture Files. A similar directory structure is
389
+ present for Replay Files generated by the parsing, and the 'root' location is
390
+ /var/ftp/pub/replay/bson/.
391
+ """
392
+
393
+ code: typing.ClassVar[int] = 830
394
+ pushed: typing.ClassVar[bool] = False
395
+
396
+ _connection: 'interfaces.IConnection'
397
+ _module: int
398
+
399
+ class SetDataAttr(RequestBodyStruct):
400
+ filename: str = field(XmpStr())
401
+ """string, filename (including relative path and excluding the '.pcap' extension)."""
402
+
403
+ def set(self, filename: str) -> Token[None]:
404
+ """Start parsing an uploaded Capture File
405
+
406
+ :param filename: filename (including relative path and excluding the '.pcap' extension).
407
+ :type filename: str
408
+ """
409
+
410
+ return Token(self._connection, build_set_request(self, module=self._module, filename=filename))
411
+
412
+
413
+ @register_command
414
+ @dataclass
415
+ class M4_REPLAY_PARSE_STOP:
416
+ """
417
+ Command to stop parsing a Capture File. Parsing of very large Capture Files may
418
+ take several seconds, and may be aborted using this command. No parameters
419
+ """
420
+
421
+ code: typing.ClassVar[int] = 831
422
+ pushed: typing.ClassVar[bool] = False
423
+
424
+ _connection: 'interfaces.IConnection'
425
+ _module: int
426
+
427
+ class SetDataAttr(RequestBodyStruct):
428
+ pass
429
+
430
+ def set(self) -> Token[None]:
431
+ """Stop parsing a Capture File.
432
+ """
433
+
434
+ return Token(self._connection, build_set_request(self, module=self._module))
435
+
436
+
437
+ @register_command
438
+ @dataclass
439
+ class M4_REPLAY_PARSE_STATE:
440
+ """
441
+ Only one Capture File can be parsed at a time. This command returns the state of
442
+ the parser, which can be PARSING or OFF. M4_REPLAY_PARSE_START command is only
443
+ accepted when the parser state is OFF.
444
+ """
445
+
446
+ code: typing.ClassVar[int] = 832
447
+ pushed: typing.ClassVar[bool] = False
448
+
449
+ _connection: 'interfaces.IConnection'
450
+ _module: int
451
+
452
+ class GetDataAttr(ResponseBodyStruct):
453
+ state: ReplayParserState = field(XmpByte())
454
+ """coded byte, state of the replay parser"""
455
+
456
+ def get(self) -> Token[GetDataAttr]:
457
+ """Get capture file parsing state.
458
+
459
+ :return: capture file parsing state
460
+ :rtype: M4_REPLAY_PARSE_STATE.GetDataAttr
461
+ """
462
+
463
+ return Token(self._connection, build_get_request(self, module=self._module))
464
+
465
+
466
+ @register_command
467
+ @dataclass
468
+ class M4_REPLAY_PARSER_PARAMS:
469
+ """
470
+ Configuration of parameters for the parsing of pcap files.
471
+ """
472
+
473
+ code: typing.ClassVar[int] = 833
474
+ pushed: typing.ClassVar[bool] = False
475
+
476
+ _connection: 'interfaces.IConnection'
477
+ _module: int
478
+
479
+ class GetDataAttr(ResponseBodyStruct):
480
+ tcp_port: int = field(XmpInt())
481
+ """integer, server TCP Port of dummy TCP connection inserted in UDP only replay files"""
482
+
483
+ class SetDataAttr(RequestBodyStruct):
484
+ tcp_port: int = field(XmpInt())
485
+ """integer, server TCP Port of dummy TCP connection inserted in UDP only replay files"""
486
+
487
+ def get(self) -> Token[GetDataAttr]:
488
+ """Get the configuration of parameters for the parsing of pcap files.
489
+
490
+ :return: the configuration of parameters for the parsing of pcap files
491
+ :rtype: M4_REPLAY_PARSER_PARAMS.GetDataAttr
492
+ """
493
+
494
+ return Token(self._connection, build_get_request(self, module=self._module))
495
+
496
+ def set(self, tcp_port: int) -> Token[None]:
497
+ """Set the configuration of parameters for the parsing of pcap files.
498
+
499
+ :param tcp_port: server-side TCP port of the dummy TCP connection inserted in UDP.
500
+ :type tcp_port: int
501
+ """
502
+
503
+ return Token(self._connection, build_set_request(self, module=self._module, tcp_port=tcp_port))
504
+
505
+
506
+ @register_command
507
+ @dataclass
508
+ class M4_REPLAY_FILE_LIST_BSON:
509
+ """
510
+ Works as ``M4_REPLAY_FILE_LIST``, but returns the file list formatted as a BSON
511
+ document.
512
+ """
513
+
514
+ code: typing.ClassVar[int] = 840
515
+ pushed: typing.ClassVar[bool] = False
516
+
517
+ _connection: 'interfaces.IConnection'
518
+ _module: int
519
+
520
+ class GetDataAttr(ResponseBodyStruct):
521
+ bson: typing.List[int] = field(XmpSequence(types_chunk=[XmpByte()]))
522
+ """list of hex bytes, bson document containing the file list"""
523
+
524
+ def get(self) -> Token[GetDataAttr]:
525
+ """Get the replay file list in BSON document format.
526
+
527
+ :return: the replay file list in BSON format
528
+ :rtype: M4_REPLAY_FILE_LIST_BSON.GetDataAttr
529
+ """
530
+
531
+ return Token(self._connection, build_get_request(self, module=self._module))
532
+
533
+
534
+ @register_command
535
+ @dataclass
536
+ class M4_REPLAY_FILE_LIST:
537
+ """
538
+ Returns a list of Replay Files (``.bson`` files) in the 'user' Replay File
539
+ directory (``/var/ftp/pub/replay/bson/user/``).
540
+ """
541
+
542
+ code: typing.ClassVar[int] = 841
543
+ pushed: typing.ClassVar[bool] = False
544
+
545
+ _connection: 'interfaces.IConnection'
546
+ _module: int
547
+
548
+ class GetDataAttr(ResponseBodyStruct):
549
+ file_list: str = field(XmpStr())
550
+ """string, comma separated list of filenames excluding the '.bson' extension."""
551
+
552
+ def get(self) -> Token[GetDataAttr]:
553
+ """Generate a list of Replay Files in BSON document on the tester.
554
+
555
+ :return: a list of Replay Files in BSON document on the tester
556
+ :rtype: M4_REPLAY_FILE_LIST.GetDataAttr
557
+ """
558
+
559
+ return Token(self._connection, build_get_request(self, module=self._module))
560
+
561
+
562
+ @register_command
563
+ @dataclass
564
+ class M4_CAPTURE_FILE_LIST_BSON:
565
+ """
566
+ Works as ``M4_CAPTURE_FILE_LIST``, but returns the file list formatted as a BSON
567
+ document.
568
+ """
569
+
570
+ code: typing.ClassVar[int] = 842
571
+ pushed: typing.ClassVar[bool] = False
572
+
573
+ _connection: 'interfaces.IConnection'
574
+ _module: int
575
+
576
+ class GetDataAttr(ResponseBodyStruct):
577
+ bson: typing.List[int] = field(XmpSequence(types_chunk=[XmpByte()]))
578
+ """list of hex bytes, bson document containing the file list"""
579
+
580
+ def get(self) -> Token[GetDataAttr]:
581
+ """Get the capture file list in BSON document.
582
+
583
+ :return: the capture file list in BSON document
584
+ :rtype: M4_CAPTURE_FILE_LIST_BSON.GetDataAttr
585
+ """
586
+
587
+ return Token(self._connection, build_get_request(self, module=self._module))
588
+
589
+
590
+ @register_command
591
+ @dataclass
592
+ class M4_CAPTURE_FILE_LIST:
593
+ """
594
+ Returns a list of Capture Files (``.pcap`` files) in the 'user' Capture File
595
+ directory (``/var/ftp/pub/replay/pcap/user/``).
596
+ """
597
+
598
+ code: typing.ClassVar[int] = 843
599
+ pushed: typing.ClassVar[bool] = False
600
+
601
+ _connection: 'interfaces.IConnection'
602
+ _module: int
603
+
604
+ class GetDataAttr(ResponseBodyStruct):
605
+ file_list: str = field(XmpStr())
606
+ """string, comma separated list of filenames excluding the '.pcap' extension."""
607
+
608
+ def get(self) -> Token[GetDataAttr]:
609
+ """Generate a list of Capture Files in BSON document on the tester.
610
+
611
+ :return: list of Capture Files in BSON document on the tester
612
+ :rtype: M4_CAPTURE_FILE_LIST.GetDataAttr
613
+ """
614
+
615
+ return Token(self._connection, build_get_request(self, module=self._module))
616
+
617
+
618
+ @register_command
619
+ @dataclass
620
+ class M4_REPLAY_FILE_DELETE:
621
+ """
622
+ Command to delete a Replay File (``.bson`` file) in the Replay File directory
623
+ (``/var/ftp/pub/replay/bson/``). For information about the location and directory
624
+ structure for the Replay Files, see: M4_REPLAY_PARSE_START
625
+ """
626
+
627
+ code: typing.ClassVar[int] = 845
628
+ pushed: typing.ClassVar[bool] = False
629
+
630
+ _connection: 'interfaces.IConnection'
631
+ _module: int
632
+
633
+ class SetDataAttr(RequestBodyStruct):
634
+ filename: str = field(XmpStr())
635
+ """string, file name (including relative path and excluding the '.bson' extension)."""
636
+
637
+ def set(self, filename: str) -> Token[None]:
638
+ """Delete a Replay File in the Replay File directory.
639
+
640
+ :param filename: file name (including relative path and excluding the ``.bson`` extension).
641
+ :type filename: str
642
+ """
643
+
644
+ return Token(self._connection, build_set_request(self, module=self._module, filename=filename))
645
+
646
+
647
+ @register_command
648
+ @dataclass
649
+ class M4_CAPTURE_FILE_DELETE:
650
+ """
651
+ Command to delete a Capture File (``.pcap`` file) in the Capture File directory
652
+ (``/var/ftp/pub/replay/pcap/``). For information about the location and directory
653
+ structure for the Capture Files, see: M4_REPLAY_PARSE_START
654
+ """
655
+
656
+ code: typing.ClassVar[int] = 846
657
+ pushed: typing.ClassVar[bool] = False
658
+
659
+ _connection: 'interfaces.IConnection'
660
+ _module: int
661
+
662
+ class SetDataAttr(RequestBodyStruct):
663
+ filename: str = field(XmpStr())
664
+ """string, file name (including relative path and excluding the '.pcap' extension)."""
665
+
666
+ def set(self, filename: str) -> Token[None]:
667
+ """Delete a Capture File in the Capture File directory.
668
+
669
+ :param filename: file name (including relative path and excluding the ``.pcap`` extension).
670
+ :type filename: str
671
+ """
672
+
673
+ return Token(self._connection, build_set_request(self, module=self._module, filename=filename))
674
+
675
+
676
+ @register_command
677
+ @dataclass
678
+ class M4_TLS_CIPHER_SUITES:
679
+ """
680
+ Returns a list of supported TLS Cipher Suites.
681
+ """
682
+
683
+ code: typing.ClassVar[int] = 852
684
+ pushed: typing.ClassVar[bool] = False
685
+
686
+ _connection: 'interfaces.IConnection'
687
+ _module: int
688
+
689
+ class GetDataAttr(ResponseBodyStruct):
690
+ cipher_suites: Hex = field(XmpHex())
691
+ """list of hex bytes, list of IANA values of supported cipher suites"""
692
+
693
+ def get(self) -> Token[GetDataAttr]:
694
+ """Get a list of supported TLS Cipher Suites.
695
+
696
+ :return: list of IANA values of supported cipher suites
697
+ :rtype: M4_TLS_CIPHER_SUITES.GetDataAttr
698
+ """
699
+
700
+ return Token(self._connection, build_get_request(self, module=self._module))