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,379 @@
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
+ XmpInt,
19
+ XmpSequence,
20
+ XmpStr
21
+ )
22
+ from .enums import OnOff
23
+
24
+
25
+ @register_command
26
+ @dataclass
27
+ class PF_INDICES:
28
+ """
29
+ The full list of which filters are defined for a port. These are the sub-index
30
+ values that are used for the parameters defining the compound conditions on the
31
+ match/length terms operating on the packets received for the port. Setting the
32
+ value of this parameter creates a new empty filter for each value that is not
33
+ already in use, and deletes each filter that is not mentioned in the list. The
34
+ same can be accomplished one-filter-at-a-time using the PF_CREATE and PF_DELETE
35
+ commands.
36
+ """
37
+
38
+ code: typing.ClassVar[int] = 211
39
+ pushed: typing.ClassVar[bool] = True
40
+
41
+ _connection: 'interfaces.IConnection'
42
+ _module: int
43
+ _port: int
44
+
45
+ class GetDataAttr(ResponseBodyStruct):
46
+ filter_xindices: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()]))
47
+ """list of integers, the list of indices of filters on a port."""
48
+
49
+ class SetDataAttr(RequestBodyStruct):
50
+ filter_xindices: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()]))
51
+ """list of integers, the list of indices of filters on a port."""
52
+
53
+ def get(self) -> Token[GetDataAttr]:
54
+ """Get the full list of which filters are defined for a port.
55
+
56
+ :return: the list of indices of filters on a port
57
+ :rtype: PF_INDICES.GetDataAttr
58
+ """
59
+
60
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
61
+
62
+ def set(self, filter_xindices: typing.List[int]) -> Token[None]:
63
+ """Create a new empty filter for each index value that is not already in use, and deletes each filter that is not mentioned in the list.
64
+
65
+ :param filter_xindices: the list of indices of filters to be created on a port.
66
+ :type filter_xindices: typing.List[int]
67
+ """
68
+
69
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, filter_xindices=filter_xindices))
70
+
71
+
72
+ @register_command
73
+ @dataclass
74
+ class PF_CREATE:
75
+ """
76
+ Creates an empty filter definition with the specified sub-index value.
77
+ """
78
+
79
+ code: typing.ClassVar[int] = 212
80
+ pushed: typing.ClassVar[bool] = False
81
+
82
+ _connection: 'interfaces.IConnection'
83
+ _module: int
84
+ _port: int
85
+ _filter_xindex: int
86
+
87
+ class SetDataAttr(RequestBodyStruct):
88
+ pass
89
+
90
+ def set(self) -> Token[None]:
91
+ """Creates an empty filter definition with the specified sub-index value.
92
+ """
93
+
94
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
95
+
96
+
97
+ @register_command
98
+ @dataclass
99
+ class PF_DELETE:
100
+ """
101
+ Deletes the filter definition with the specified sub-index value.
102
+ """
103
+
104
+ code: typing.ClassVar[int] = 213
105
+ pushed: typing.ClassVar[bool] = False
106
+
107
+ _connection: 'interfaces.IConnection'
108
+ _module: int
109
+ _port: int
110
+ _filter_xindex: int
111
+
112
+ class SetDataAttr(RequestBodyStruct):
113
+ pass
114
+
115
+ def set(self) -> Token[None]:
116
+ """Delete the filter definition with the specified sub-index value.
117
+ """
118
+
119
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
120
+
121
+
122
+ @register_command
123
+ @dataclass
124
+ class PF_ENABLE:
125
+ """
126
+ Whether a filter is currently active on a port. While a filter is enabled its
127
+ condition cannot be changed, nor can any match term or length terms used by it.
128
+ """
129
+
130
+ code: typing.ClassVar[int] = 214
131
+ pushed: typing.ClassVar[bool] = True
132
+
133
+ _connection: 'interfaces.IConnection'
134
+ _module: int
135
+ _port: int
136
+ _filter_xindex: int
137
+
138
+ class GetDataAttr(ResponseBodyStruct):
139
+ on_off: OnOff = field(XmpByte())
140
+ """coded byte, whether the filter is enabled."""
141
+
142
+ class SetDataAttr(RequestBodyStruct):
143
+ on_off: OnOff = field(XmpByte())
144
+ """coded byte, whether the filter is enabled."""
145
+
146
+ def get(self) -> Token[GetDataAttr]:
147
+ """Get whether a filter is currently active on the port.
148
+
149
+ :return: whether the filter is enabled
150
+ :rtype: PF_ENABLE.GetDataAttr
151
+ """
152
+
153
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
154
+
155
+ def set(self, on_off: OnOff) -> Token[None]:
156
+ """Set whether a filter is currently active on the port.
157
+
158
+ :param on_off: whether the filter is enabled
159
+ :type on_off: OnOff
160
+ """
161
+
162
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._filter_xindex], on_off=on_off))
163
+
164
+ set_off = functools.partialmethod(set, OnOff.OFF)
165
+ """Disable a filter on a port.
166
+ """
167
+
168
+ set_on = functools.partialmethod(set, OnOff.ON)
169
+ """Enable a filter on a port.
170
+ """
171
+
172
+
173
+ @register_command
174
+ @dataclass
175
+ class PF_COMMENT:
176
+ """
177
+ The description of a filter.
178
+ """
179
+
180
+ code: typing.ClassVar[int] = 215
181
+ pushed: typing.ClassVar[bool] = True
182
+
183
+ _connection: 'interfaces.IConnection'
184
+ _module: int
185
+ _port: int
186
+ _filter_xindex: int
187
+
188
+ class GetDataAttr(ResponseBodyStruct):
189
+ comment: str = field(XmpStr())
190
+ """string, the description of the filter."""
191
+
192
+ class SetDataAttr(RequestBodyStruct):
193
+ comment: str = field(XmpStr())
194
+ """string, the description of the filter."""
195
+
196
+ def get(self) -> Token[GetDataAttr]:
197
+ """Get the description of a filter.
198
+
199
+ :return: the description of the filter
200
+ :rtype: PF_COMMENT.GetDataAttr
201
+ """
202
+
203
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
204
+
205
+ def set(self, comment: str) -> Token[None]:
206
+ """Set the description of a filter.
207
+
208
+ :param comment: the description of the filter.
209
+ :type comment: str
210
+ """
211
+
212
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._filter_xindex], comment=comment))
213
+
214
+
215
+ @register_command
216
+ @dataclass
217
+ class PF_CONDITION:
218
+ """
219
+ The boolean condition on the terms specifying when the filter is satisfied. The condition uses a canonical and-or-not expression on the match terms and length terms.
220
+ The condition is specified using a number of compound terms, each encoded as an integer value specifying an arbitrary set of the match terms
221
+ and length terms defined for the port. Each match or length term has a specific power-of-two value, and the set is encoded as the sum of the values for the contained terms:
222
+
223
+ Value for match term ``[match_term_xindex] = 2^match_term_xindex``
224
+
225
+ Value for length term ``[length_term_xindex] = 2^(length_term_xindex+16)``
226
+
227
+ A compound term is true if all the match terms and length terms contained in it are true. This supports the and-part of the condition.
228
+ If some compound term is satisfied, the condition as a whole is true.
229
+
230
+ This is the or-part of the condition. The first few compound terms at the even positions (second, fourth, ...) are inverted,
231
+ and all the contained match terms and length terms must be false at the same time that the those of the preceding compound term are true.
232
+ This is the not-part of the condition.
233
+
234
+ At the top level, a condition is a bunch of things or-ed together.
235
+
236
+ ``<filter-condition> = <or-expr>``
237
+
238
+ Two of the or-operands are *general*, two are 'simple'.
239
+
240
+ ``<or-expr> = <general-and-expr> or <general-and-expr> or <simple-and-expr> or <simple-and-expr>``
241
+
242
+ A 'general' and-expression can include negated terms.
243
+
244
+ ``<general-and-expr> = <term> and <term> and ... and not <term> and ... and not <term>``
245
+
246
+ A 'simple' and-expression can only have non-negated terms.
247
+
248
+ ``<simple-and-expr> = <term> and <term> and ... and <term>``
249
+
250
+ ``<term> = <match-term>``
251
+
252
+ ``<term> = <length-term>``
253
+
254
+ In practice, the simplest way to generate these encodings is to use the ValkyrieManager,
255
+ which supports Boolean expressions using the operators ``&, |, and ~``, and simply query the chassis for the resulting script-level definition.
256
+
257
+ """
258
+
259
+ code: typing.ClassVar[int] = 216
260
+ pushed: typing.ClassVar[bool] = True
261
+
262
+ _connection: 'interfaces.IConnection'
263
+ _module: int
264
+ _port: int
265
+ _filter_xindex: int
266
+
267
+ class GetDataAttr(ResponseBodyStruct):
268
+ and_expression_0: int = field(XmpInt())
269
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
270
+ and_not_expression_0: int = field(XmpInt())
271
+ """unsigned integer, encoding a compound term which is a set of the match NOT terms AND length NOT terms."""
272
+ and_expression_1: int = field(XmpInt())
273
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
274
+ and_not_expression_1: int = field(XmpInt())
275
+ """unsigned integer, encoding a compound term which is a set of the match NOT terms AND length NOT terms."""
276
+ and_expression_2: int = field(XmpInt())
277
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
278
+ and_expression_3: int = field(XmpInt())
279
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
280
+
281
+ class SetDataAttr(RequestBodyStruct):
282
+ and_expression_0: int = field(XmpInt())
283
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
284
+ and_not_expression_0: int = field(XmpInt())
285
+ """unsigned integer, encoding a compound term which is a set of the match NOT terms AND length NOT terms."""
286
+ and_expression_1: int = field(XmpInt())
287
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
288
+ and_not_expression_1: int = field(XmpInt())
289
+ """unsigned integer, encoding a compound term which is a set of the match NOT terms AND length NOT terms."""
290
+ and_expression_2: int = field(XmpInt())
291
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
292
+ and_expression_3: int = field(XmpInt())
293
+ """unsigned integer, encoding a compound term which is a set of the match terms AND length terms."""
294
+
295
+ def get(self) -> Token[GetDataAttr]:
296
+ """Get the condition on the terms specifying when the filter is satisfied.
297
+
298
+ :return: and_expression_0, and_not_expression_0, and_expression_1, and_not_expression_1, and_expression_2, and and_expression_3.
299
+
300
+ :rtype: ~PF_CONDITION.GetDataAttr
301
+ """
302
+
303
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
304
+
305
+ def set(self, and_expression_0: int, and_not_expression_0: int, and_expression_1: int, and_not_expression_1: int, and_expression_2: int, and_expression_3: int) -> Token[None]:
306
+ """Set the condition on the terms specifying when the filter is satisfied.
307
+
308
+ :param and_expression_0: encoding a compound term which is a set of the match terms AND length terms.
309
+ :type and_expression_0: int
310
+ :param and_not_expression_0: encoding a compound term which is a set of the match NOT terms AND length NOT terms.
311
+ :type and_not_expression_0: int
312
+ :param and_expression_1: encoding a compound term which is a set of the match terms AND length terms.
313
+ :type and_expression_1: int
314
+ :param and_not_expression_1: encoding a compound term which is a set of the match NOT terms AND length NOT terms.
315
+ :type and_not_expression_1: int
316
+ :param and_expression_2: encoding a compound term which is a set of the match terms AND length terms.
317
+ :type and_expression_2: int
318
+ :param and_expression_3: encoding a compound term which is a set of the match terms AND length terms.
319
+ :type and_expression_3: int
320
+
321
+ """
322
+
323
+ return Token(
324
+ self._connection,
325
+ build_set_request(
326
+ self,
327
+ module=self._module,
328
+ port=self._port,
329
+ indices=[self._filter_xindex],
330
+ and_expression_0=and_expression_0,
331
+ and_not_expression_0=and_not_expression_0,
332
+ and_expression_1=and_expression_1,
333
+ and_not_expression_1=and_not_expression_1,
334
+ and_expression_2=and_expression_2,
335
+ and_expression_3=and_expression_3
336
+ )
337
+ )
338
+
339
+
340
+ @register_command
341
+ @dataclass
342
+ class PF_STRING:
343
+ """
344
+ The string representation of a filter.
345
+ """
346
+
347
+ code: typing.ClassVar[int] = 217
348
+ pushed: typing.ClassVar[bool] = False
349
+
350
+ _connection: 'interfaces.IConnection'
351
+ _module: int
352
+ _port: int
353
+ _filter_xindex: int
354
+
355
+ class GetDataAttr(ResponseBodyStruct):
356
+ string_name: str = field(XmpStr())
357
+ """string, the string representation of the filter."""
358
+
359
+ class SetDataAttr(RequestBodyStruct):
360
+ string_name: str = field(XmpStr())
361
+ """string, the string representation of the filter."""
362
+
363
+ def get(self) -> Token[GetDataAttr]:
364
+ """Get the string representation of a filter.
365
+
366
+ :return: the string representation of a filter
367
+ :rtype: ~PF_STRING.GetDataAttr
368
+ """
369
+
370
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
371
+
372
+ def set(self, string_name: str) -> Token[None]:
373
+ """Set the string representation of a filter.
374
+
375
+ :param string_name: the string representation of the filter
376
+ :type string_name: str
377
+ """
378
+
379
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._filter_xindex], string_name=string_name))