tdl-xoa-driver 1.0.0__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.0.dist-info/LICENSE +202 -0
  2. tdl_xoa_driver-1.0.0.dist-info/METADATA +177 -0
  3. tdl_xoa_driver-1.0.0.dist-info/RECORD +325 -0
  4. tdl_xoa_driver-1.0.0.dist-info/WHEEL +5 -0
  5. tdl_xoa_driver-1.0.0.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,527 @@
1
+ import functools
2
+ import typing
3
+ from xoa_driver.internals.commands import (
4
+ P_CAPABILITIES,
5
+ P_SPEED,
6
+ P_SPEEDREDUCTION,
7
+ P_INTERFRAMEGAP,
8
+ P_MACADDRESS,
9
+ P_IPADDRESS,
10
+ P_ARPREPLY,
11
+ P_PINGREPLY,
12
+ P_PAUSE,
13
+ P_RANDOMSEED,
14
+ P_LOOPBACK,
15
+ P_TRAFFIC,
16
+ # P_CAPTURE,
17
+ P_XMITONE,
18
+ P_LATENCYOFFSET,
19
+ P_LATENCYMODE,
20
+ P_AUTOTRAIN,
21
+ P_MIXWEIGHTS,
22
+ P_TRAFFICERR,
23
+ P_GAPMONITOR,
24
+ P_CHECKSUM,
25
+ P_MIXLENGTH,
26
+ P_ARPRXTABLE,
27
+ P_NDPRXTABLE,
28
+ P_MULTICAST,
29
+ P_MULTICASTEXT,
30
+ P_MCSRCLIST,
31
+ P_MULTICASTHDR,
32
+ P_TXMODE,
33
+ P_RATEFRACTION,
34
+ P_RATEPPS,
35
+ P_RATEL2BPS,
36
+ P_PAYLOADMODE,
37
+ P_TXENABLE,
38
+ P_MAXHEADERLENGTH,
39
+ P_TXTIMELIMIT,
40
+ P_TXTIME,
41
+ P_XMITONETIME,
42
+ P_IPV6ADDRESS,
43
+ P_ARPV6REPLY,
44
+ P_PINGV6REPLY,
45
+ P_ERRORS,
46
+ P_TXPREPARE,
47
+ P_TXDELAY,
48
+ P_TPLDMODE,
49
+ P_TXPACKETLIMIT,
50
+ P_PFCENABLE,
51
+ P_TXBURSTPERIOD,
52
+ P_CAPABILITIES_EXT,
53
+ P_IGMPV3_GROUP_RECORD_BUNDLE,
54
+ )
55
+ if typing.TYPE_CHECKING:
56
+ from xoa_driver.internals.core import interfaces as itf
57
+ from xoa_driver.internals.hli_v1.ports import base_port
58
+ from xoa_driver.internals.utils import attributes as utils
59
+ from xoa_driver.internals.utils.indices import index_manager as idx_mgr
60
+ from xoa_driver.internals.state_storage import ports_state
61
+ from xoa_driver.internals.hli_v1.indices.length_term import LengthTermIdx
62
+ from xoa_driver.internals.hli_v1.indices.match_term import MatchTermIdx
63
+
64
+ from .port_capture import PortCapture
65
+
66
+ LengthTermIndices = idx_mgr.IndexManager[LengthTermIdx]
67
+ MatchTermIndices = idx_mgr.IndexManager[MatchTermIdx]
68
+
69
+
70
+ class TxSinglePacket:
71
+ """L23 port single-packet transmission"""
72
+
73
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
74
+ self.send = P_XMITONE(conn, module_id, port_id)
75
+ """Send one packet from the L23 port without a stream config.
76
+
77
+ :type: P_XMITONE
78
+ """
79
+
80
+ self.time = P_XMITONETIME(conn, module_id, port_id)
81
+ """The time at which the latest packet was transmitted using the P_XMITONE` command.
82
+
83
+ :type: P_XMITONETIME
84
+ """
85
+
86
+
87
+ class TxConfiguration:
88
+ """L23 port TX configuration"""
89
+
90
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
91
+ self.mode = P_TXMODE(conn, module_id, port_id)
92
+ """L23 port TX mode.
93
+
94
+ :type: P_TXMODE
95
+ """
96
+
97
+ self.enable = P_TXENABLE(conn, module_id, port_id)
98
+ """Enabling L23 port TX.
99
+
100
+ :type: P_TXENABLE
101
+ """
102
+
103
+ self.time_limit = P_TXTIMELIMIT(conn, module_id, port_id)
104
+ """L23 port TX time limit.
105
+
106
+ :type: P_TXTIMELIMIT
107
+ """
108
+
109
+ self.time = P_TXTIME(conn, module_id, port_id)
110
+ """L23 port TX time.
111
+
112
+ :type: P_TXTIME
113
+ """
114
+
115
+ self.prepare = P_TXPREPARE(conn, module_id, port_id)
116
+ """Prepare L23 port for transmission.
117
+
118
+ :type: P_TXPREPARE
119
+ """
120
+
121
+ self.delay = P_TXDELAY(conn, module_id, port_id)
122
+ """L23 port TX delay.
123
+
124
+ :type: P_TXDELAY
125
+ """
126
+
127
+ self.packet_limit = P_TXPACKETLIMIT(conn, module_id, port_id)
128
+ """L23 port TX packet limit
129
+
130
+ :type: P_TXPACKETLIMIT
131
+ """
132
+
133
+ self.burst_period = P_TXBURSTPERIOD(conn, module_id, port_id)
134
+ """L23 port TX burst period.
135
+
136
+ :type: P_TXBURSTPERIOD
137
+ """
138
+
139
+
140
+ class Rate:
141
+ """L23 port TX rate"""
142
+
143
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
144
+ self.fraction = P_RATEFRACTION(conn, module_id, port_id)
145
+ """L23 port rate in ppm.
146
+
147
+ :type: P_RATEFRACTION
148
+ """
149
+
150
+ self.pps = P_RATEPPS(conn, module_id, port_id)
151
+ """L23 port rate in packets per second.
152
+
153
+ :type: P_RATEPPS
154
+ """
155
+
156
+ self.l2_bps = P_RATEL2BPS(conn, module_id, port_id)
157
+ """L23 port rate in L2 bits per second.
158
+
159
+ :type: P_RATEL2BPS
160
+ """
161
+
162
+
163
+ class Multicast:
164
+ """L23 port multicast configuration"""
165
+
166
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
167
+ self.mode = P_MULTICAST(conn, module_id, port_id)
168
+ """L23 port multicast mode.
169
+
170
+ :type: P_MULTICAST
171
+ """
172
+
173
+ self.mode_extended = P_MULTICASTEXT(conn, module_id, port_id)
174
+ """L23 port multicast extended mode.
175
+
176
+ :type: P_MULTICASTEXT
177
+ """
178
+
179
+ self.source_list = P_MCSRCLIST(conn, module_id, port_id)
180
+ """L23 port multicast source list.
181
+
182
+ :type: P_MCSRCLIST
183
+ """
184
+
185
+ self.header = P_MULTICASTHDR(conn, module_id, port_id)
186
+ """L23 port multicast IGMP header.
187
+
188
+ :type: P_MULTICASTHDR
189
+ """
190
+
191
+ self.igmpv3_group_record_bundle = P_IGMPV3_GROUP_RECORD_BUNDLE(conn, module_id, port_id)
192
+ """Configure if a single membership report bundles multiple multicast group records to decrease the number of packets sent when using IGMPv3. This command returns <NOTVALID> when the IGMP version is not IGMPv3.
193
+
194
+ :type: P_IGMPV3_GROUP_RECORD_BUNDLE
195
+ """
196
+
197
+ class IPv4:
198
+ """L23 port IPv4 configuration"""
199
+
200
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
201
+ self.address = P_IPADDRESS(conn, module_id, port_id)
202
+ """L23 port IPv4 address.
203
+
204
+ :type: P_IPADDRESS
205
+ """
206
+
207
+ self.arp_reply = P_ARPREPLY(conn, module_id, port_id)
208
+ """L23 port reply to ARP request.
209
+
210
+ :type: P_ARPREPLY
211
+ """
212
+
213
+ self.ping_reply = P_PINGREPLY(conn, module_id, port_id)
214
+ """L23 port reply to PING request.
215
+
216
+ :type: P_PINGREPLY
217
+ """
218
+
219
+
220
+ class IPv6:
221
+ """L23 port IPv6 configuration"""
222
+
223
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
224
+ self.address = P_IPV6ADDRESS(conn, module_id, port_id)
225
+ """L23 port IPv6 address.
226
+
227
+ :type: P_IPV6ADDRESS
228
+ """
229
+
230
+ self.arp_reply = P_ARPV6REPLY(conn, module_id, port_id)
231
+ """L23 port reply to NDP Neighbor Solicitation.
232
+
233
+ :type: P_ARPV6REPLY
234
+ """
235
+
236
+ self.ping_reply = P_PINGV6REPLY(conn, module_id, port_id)
237
+ """L23 port reply to PINGv6 request.
238
+
239
+ :type: P_PINGV6REPLY
240
+ """
241
+
242
+
243
+ class NetworkConfiguration: # will be extended in genuine ports
244
+ """L23 port networking configuration"""
245
+
246
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
247
+ self.mac_address = P_MACADDRESS(conn, module_id, port_id)
248
+ """L23 port MAC address.
249
+
250
+ :type: P_MACADDRESS
251
+ """
252
+
253
+ self.ipv4 = IPv4(conn, module_id, port_id)
254
+ """L23 port IPv4 address configuration.
255
+ """
256
+
257
+ self.ipv6 = IPv6(conn, module_id, port_id)
258
+ """L23 port IPv6 address configuration.
259
+ """
260
+
261
+
262
+ class LatencyConfiguration:
263
+ """L23 port latency configuration"""
264
+
265
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
266
+ self.offset = P_LATENCYOFFSET(conn, module_id, port_id)
267
+ """L23 port latency offset.
268
+
269
+ :type: P_LATENCYOFFSET
270
+ """
271
+
272
+ self.mode = P_LATENCYMODE(conn, module_id, port_id)
273
+ """L23 port latency measurement mode.
274
+
275
+ :type: P_LATENCYMODE
276
+ """
277
+
278
+
279
+ class Mix:
280
+ """L23 port IMIX configuration"""
281
+
282
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
283
+ self.weights = P_MIXWEIGHTS(conn, module_id, port_id)
284
+ """L23 port IMIX weights
285
+
286
+ :type: P_MIXWEIGHTS
287
+ """
288
+
289
+ self.lengths = tuple(
290
+ P_MIXLENGTH(conn, module_id, port_id, idx)
291
+ for idx in range(16)
292
+ ) # TODO: need to add manager for handle specific indices only
293
+ """L23 port IMIX lengths.
294
+
295
+ :type: P_MIXLENGTH
296
+ """
297
+
298
+
299
+ class Speed:
300
+ """L23 port speed configuration"""
301
+
302
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
303
+ self.current = P_SPEED(conn, module_id, port_id)
304
+ """L23 port current speed in units of Mbps.
305
+
306
+ :type: P_SPEED
307
+ """
308
+
309
+ self.reduction = P_SPEEDREDUCTION(conn, module_id, port_id)
310
+ """L23 port speed reduction in ppm.
311
+
312
+ :type: P_SPEEDREDUCTION
313
+ """
314
+
315
+
316
+ class Traffic:
317
+ """L23 port traffic generation"""
318
+
319
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
320
+ self.state = P_TRAFFIC(conn, module_id, port_id)
321
+ """L23 port traffic status and action.
322
+
323
+ :type: P_TRAFFIC
324
+ """
325
+
326
+ self.error = P_TRAFFICERR(conn, module_id, port_id)
327
+ """L23 port traffic error.
328
+
329
+ :type: P_TRAFFICERR
330
+ """
331
+
332
+
333
+ class BasePortL23(base_port.BasePort[ports_state.PortL23LocalState]):
334
+ """L23 port layout which is relevant to all L23 ports."""
335
+
336
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
337
+ super().__init__(conn, module_id, port_id)
338
+ self.capabilities = P_CAPABILITIES(conn, module_id, port_id)
339
+ """L23 port capabilities.
340
+
341
+ :type: P_CAPABILITIES
342
+ """
343
+
344
+ self.capabilities_ext = P_CAPABILITIES_EXT(conn, module_id, port_id)
345
+ """L23 port capabilities ext.
346
+
347
+ :type: P_CAPABILITIES_EXT
348
+ """
349
+
350
+ self.pause = P_PAUSE(conn, module_id, port_id)
351
+ """L23 port response to Ethernet PAUSE frames.
352
+
353
+ :type: P_PAUSE
354
+ """
355
+
356
+ self.loop_back = P_LOOPBACK(conn, module_id, port_id)
357
+ """L23 port loopback mode.
358
+
359
+ :type: P_LOOPBACK
360
+ """
361
+
362
+ self.errors_count = P_ERRORS(conn, module_id, port_id)
363
+ """L23 port errors.
364
+
365
+ :type: P_ERRORS
366
+ """
367
+
368
+ self.interframe_gap = P_INTERFRAMEGAP(conn, module_id, port_id)
369
+ """L23 port interframe gap.
370
+
371
+ :type: P_INTERFRAMEGAP
372
+ """
373
+
374
+ self.max_header_length = P_MAXHEADERLENGTH(conn, module_id, port_id)
375
+ """L23 port maximum header length.
376
+
377
+ :type: P_MAXHEADERLENGTH
378
+ """
379
+
380
+ self.tpld_mode = P_TPLDMODE(conn, module_id, port_id)
381
+ """L23 port test payload mode.
382
+
383
+ :type: P_TPLDMODE
384
+ """
385
+
386
+ self.pfc_enable = P_PFCENABLE(conn, module_id, port_id)
387
+ """L23 port Ethernet Priority Flow Control (PFC).
388
+
389
+ :type: P_PFCENABLE
390
+ """
391
+
392
+ self.random_seed = P_RANDOMSEED(conn, module_id, port_id)
393
+ """L23 port seed value.
394
+
395
+ :type: P_RANDOMSEED
396
+ """
397
+
398
+ self.payload_mode = P_PAYLOADMODE(conn, module_id, port_id)
399
+ """L23 port payload mode.
400
+
401
+ :type: P_PAYLOADMODE
402
+ """
403
+
404
+ self.autotrain = P_AUTOTRAIN(conn, module_id, port_id)
405
+ """L23 port interval between auto training packets.
406
+
407
+ :type: P_AUTOTRAIN
408
+ """
409
+
410
+ self.gap_monitor = P_GAPMONITOR(conn, module_id, port_id)
411
+ """L23 port gap monitor.
412
+
413
+ :type: P_GAPMONITOR
414
+ """
415
+
416
+ self.checksum = P_CHECKSUM(conn, module_id, port_id)
417
+ """L23 port extra payload integrity checksum.
418
+
419
+ :type: P_CHECKSUM
420
+ """
421
+
422
+ self.arp_rx_table = P_ARPRXTABLE(conn, module_id, port_id)
423
+ """L23 port ARP table.
424
+
425
+ :type: P_ARPRXTABLE
426
+ """
427
+
428
+ self.ndp_rx_table = P_NDPRXTABLE(conn, module_id, port_id)
429
+ """L23 port NDP table.
430
+
431
+ :type: P_NDPRXTABLE
432
+ """
433
+
434
+ self.capturer = PortCapture(conn, module_id, port_id)
435
+ """L23 port capturer configuration.
436
+
437
+ :type: PortCapture
438
+ """
439
+
440
+ self.speed = Speed(conn, module_id, port_id)
441
+ """L23 port speed configuration.
442
+
443
+ :type: Speed
444
+ """
445
+
446
+ self.traffic = Traffic(conn, module_id, port_id)
447
+ """L23 port traffic configuration.
448
+
449
+ :type: Traffic
450
+ """
451
+
452
+ self.mix = Mix(conn, module_id, port_id)
453
+ """L23 port IMIX configuration.
454
+
455
+ :type: Mix
456
+ """
457
+
458
+ self.latency_config = LatencyConfiguration(conn, module_id, port_id)
459
+ """L23 port latency configuration.
460
+
461
+ self.latency_config = LatencyConfiguration(conn, module_id, port_id)
462
+ :type:
463
+ """
464
+
465
+ self.rate = Rate(conn, module_id, port_id)
466
+ """L23 port rate.
467
+
468
+ :type: Rate
469
+ """
470
+
471
+ self.tx_config = TxConfiguration(conn, module_id, port_id)
472
+ """L23 port TX configuration.
473
+
474
+ :type: TxConfiguration
475
+ """
476
+
477
+ self.tx_single_pkt = TxSinglePacket(conn, module_id, port_id)
478
+ """L23 port single-packet TX configuration.
479
+
480
+ :type: TxSinglePacket
481
+ """
482
+
483
+ self.multicast = Multicast(conn, module_id, port_id)
484
+ """L23 port multicast configuration.
485
+
486
+ :type: Multicast
487
+ """
488
+
489
+ self.net_config = NetworkConfiguration(conn, module_id, port_id)
490
+ """L23 port network configuration.
491
+
492
+ :type: NetworkConfiguration
493
+ """
494
+
495
+ self.local_states = ports_state.PortL23LocalState()
496
+ """L23 port local states.
497
+
498
+ :type: PortL23LocalState
499
+ """
500
+
501
+ self.length_terms: LengthTermIndices = idx_mgr.IndexManager(
502
+ conn,
503
+ LengthTermIdx,
504
+ module_id,
505
+ port_id
506
+ )
507
+ """L23 port's length term index manager.
508
+
509
+ :type: LengthTermIndices
510
+ """
511
+
512
+ self.match_terms: MatchTermIndices = idx_mgr.IndexManager(
513
+ conn,
514
+ MatchTermIdx,
515
+ module_id,
516
+ port_id
517
+ )
518
+ """L23 port's match term index manager.
519
+
520
+ :type: MatchTermIndices
521
+ """
522
+
523
+ on_speed_change = functools.partialmethod(utils.on_event, P_SPEED)
524
+ """Register a callback to the event that the port's speed changes."""
525
+
526
+ on_traffic_change = functools.partialmethod(utils.on_event, P_TRAFFIC)
527
+ """Register a callback to the event that the port's traffic status changes."""