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,28 @@
1
+ from typing import TYPE_CHECKING
2
+
3
+ from xoa_driver.internals.commands import P_BRRMODE, P_BRRSTATUS
4
+
5
+ from .bases.port_l23_genuine import BasePortL23Genuine
6
+
7
+ if TYPE_CHECKING:
8
+ from xoa_driver.internals.core import interfaces as itf
9
+
10
+
11
+ class FamilyM(BasePortL23Genuine):
12
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
13
+ super().__init__(conn, module_id, port_id)
14
+ self.brr_mode = P_BRRMODE(conn, module_id, port_id)
15
+ """BRR mode.
16
+ Representation of P_BRRMODE
17
+ """
18
+ self.brr_status = P_BRRSTATUS(conn, module_id, port_id)
19
+ """Actual BRR status.
20
+
21
+ :type: P_BRRSTATUS
22
+ """
23
+
24
+
25
+ class POdin1G3S6PT1RJ45(FamilyM):
26
+ """L23 port on Odin-1G-3S-6P-T1-RJ45 module.
27
+ """
28
+ ...
@@ -0,0 +1,22 @@
1
+ from typing import TYPE_CHECKING
2
+ from xoa_driver.internals.commands import (
3
+ P_FAULTSIGNALING,
4
+ P_FAULTSTATUS,
5
+ )
6
+ if TYPE_CHECKING:
7
+ from xoa_driver.internals.core import interfaces as itf
8
+
9
+
10
+ class Fault:
11
+ """L23 port fault settings."""
12
+
13
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
14
+ self.signaling = P_FAULTSIGNALING(conn, module_id, port_id)
15
+ """L23 port fault signaling.
16
+ Representation ofP_FAULTSIGNALING
17
+ """
18
+
19
+ self.status = P_FAULTSTATUS(conn, module_id, port_id)
20
+ """L23 port fault status.
21
+ Representation of P_FAULTSTATUS
22
+ """
@@ -0,0 +1,342 @@
1
+ from typing import (
2
+ TYPE_CHECKING,
3
+ Tuple,
4
+ )
5
+ from typing_extensions import Self
6
+ if TYPE_CHECKING:
7
+ from xoa_driver.internals.core import interfaces as itf
8
+ from xoa_driver.internals.commands import (
9
+ PP_ALARMS_ERRORS,
10
+ PP_TXLANECONFIG,
11
+ PP_TXLANEINJECT,
12
+ PP_TXPRBSCONFIG,
13
+ PP_TXERRORRATE,
14
+ PP_TXINJECTONE,
15
+ PP_RXTOTALSTATS,
16
+ PP_RXFECSTATS,
17
+ PP_RXLANELOCK,
18
+ PP_RXLANESTATUS,
19
+ PP_RXLANEERRORS,
20
+ PP_RXPRBSSTATUS,
21
+ PP_RXCLEAR,
22
+ PP_RXLASERPOWER,
23
+ PP_TXLASERPOWER,
24
+ PP_EYEMEASURE,
25
+ PP_EYERESOLUTION,
26
+ PP_EYEREAD,
27
+ PP_EYEINFO,
28
+ PP_PHYTXEQ,
29
+ PP_PHYRETUNE,
30
+ PP_PHYAUTOTUNE,
31
+ PP_EYEBER,
32
+ PP_PHYAUTONEG,
33
+ PP_TXPRBSTYPE,
34
+ PP_RXPRBSTYPE,
35
+ # PP_FECMODE, # moved to all genuine ports
36
+ PP_EYEDWELLBITS,
37
+ PP_PHYSIGNALSTATUS,
38
+ PP_PRBSTYPE,
39
+ PP_PHYSETTINGS,
40
+ PP_PHYRXEQ,
41
+ PP_PRECODING,
42
+ PP_GRAYCODING,
43
+ PP_PRECODINGSTATUS,
44
+ )
45
+
46
+
47
+ class PcsPmaAlarms:
48
+ """L23 high-speed port PCS/PMA alarms"""
49
+
50
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
51
+ self.errors = PP_ALARMS_ERRORS(conn, module_id, port_id)
52
+ """Error count of each alarm on a L23 high-speed port.
53
+ Representation of PP_ALARMS_ERRORS
54
+ """
55
+
56
+
57
+ class PcsPmaTransceiver:
58
+ """L23 high-speed port PCS/PMA transceivers"""
59
+
60
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
61
+ self.tx_laser_power = PP_TXLASERPOWER(conn, module_id, port_id)
62
+ """Power of TX laser.
63
+ Representation of PP_TXLASERPOWER
64
+ """
65
+
66
+ self.rx_laser_power = PP_RXLASERPOWER(conn, module_id, port_id)
67
+ """Power of RX laser.
68
+ Representation of PP_RXLASERPOWER
69
+ """
70
+
71
+
72
+ class PcsPmaRxLaneStatus:
73
+ """L23 high-speed port PCS/PMA lane status"""
74
+
75
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, lane_idx: int) -> None:
76
+ self.errors = PP_RXLANEERRORS(conn, module_id, port_id, lane_idx)
77
+ """RX lane error statistics.
78
+ Representation of PP_RXLANEERRORS
79
+ """
80
+
81
+ self.lock = PP_RXLANELOCK(conn, module_id, port_id, lane_idx)
82
+ """RX lane lock.
83
+ Representation of PP_RXLANELOCK
84
+ """
85
+
86
+ self.status = PP_RXLANESTATUS(conn, module_id, port_id, lane_idx)
87
+ """RX lane status
88
+ Representation of PP_RXLANESTATUS
89
+ """
90
+
91
+
92
+ class PcsPmaTxErrorGeneration:
93
+ """L23 high-speed port PCS/PMA TX error generation."""
94
+
95
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
96
+ self.error_rate = PP_TXERRORRATE(conn, module_id, port_id)
97
+ """The rate of continuous bit-level error injection.
98
+ Representation of PP_TXERRORRATE
99
+ """
100
+
101
+ self.inject_one = PP_TXINJECTONE(conn, module_id, port_id)
102
+ """Inject a single bit-level error.
103
+ Representation of PP_TXINJECTONE
104
+ """
105
+
106
+
107
+ class PcsPmaRx:
108
+ """L23 high-speed port PCS/PMA RX"""
109
+
110
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
111
+ self.total_status = PP_RXTOTALSTATS(conn, module_id, port_id)
112
+ """RX FEC total counters.
113
+ Representation of PP_RXTOTALSTATS
114
+ """
115
+
116
+ self.fec_status = PP_RXFECSTATS(conn, module_id, port_id)
117
+ """RX FEC statistics.
118
+ Representation of PP_RXFECSTATS
119
+ """
120
+
121
+ self.clear = PP_RXCLEAR(conn, module_id, port_id)
122
+ """Clear all the PCS/PMA receiver statistics.
123
+ Representation of PP_RXCLEAR
124
+ """
125
+
126
+
127
+ class PcsPmaPhy:
128
+ """L23 high-speed port PCS/PMA PHY settings."""
129
+
130
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
131
+ self.auto_neg = PP_PHYAUTONEG(conn, module_id, port_id)
132
+ """ Auto-negotiation settings of the PHY.
133
+ Representation of PP_PHYAUTONEG
134
+ """
135
+
136
+ self.signal_status = PP_PHYSIGNALSTATUS(conn, module_id, port_id)
137
+ """The PHY signal status.
138
+ Representation of PP_PHYSIGNALSTATUS
139
+ """
140
+
141
+ self.settings = PP_PHYSETTINGS(conn, module_id, port_id)
142
+ """Low-level PHY settings
143
+ Representation of PP_PHYSETTINGS
144
+ """
145
+
146
+
147
+ class Lane:
148
+ """L23 high-speed port lane configuration and status."""
149
+
150
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, lane_idx: int) -> None:
151
+ self.rx_status = PcsPmaRxLaneStatus(conn, module_id, port_id, lane_idx)
152
+ """PCS/PMA RX lane status.
153
+ """
154
+
155
+ self.tx_error_inject = PP_TXLANEINJECT(conn, module_id, port_id, lane_idx)
156
+ """Inject CAUI error into a TX lane.
157
+ Representation of PP_TXLANEINJECT
158
+ """
159
+
160
+ self.tx_config = PP_TXLANECONFIG(conn, module_id, port_id, lane_idx)
161
+ """TX lane configuration.
162
+ Representation of PP_TXLANECONFIG
163
+ """
164
+
165
+
166
+ class PcsPma:
167
+ """L23 high-speed port PCS/PMA"""
168
+
169
+ def __init__(self, conn: "itf.IConnection", port) -> None:
170
+ self._conn = conn
171
+ self.__port = port
172
+
173
+ self.alarms = PcsPmaAlarms(conn, *port.kind)
174
+ """PCS/PMA alarms"""
175
+
176
+ self.transceiver = PcsPmaTransceiver(conn, *port.kind)
177
+ """PCS/PMA transceiver"""
178
+
179
+ self.error_gen = PcsPmaTxErrorGeneration(conn, *port.kind)
180
+ """PCS/PMA error generation"""
181
+
182
+ self.rx = PcsPmaRx(conn, *port.kind)
183
+ """PCS/PMA RX"""
184
+
185
+ self.phy = PcsPmaPhy(conn, *port.kind)
186
+ """PCS/PMA PHY"""
187
+
188
+ self.prbs_config = PRBSConfig(conn, *port.kind)
189
+ """PCS/PMA PRBS configuration"""
190
+
191
+ self.lanes: Tuple["Lane", ...] = tuple(
192
+ Lane(self._conn, *self.__port.kind, lane_idx=idx)
193
+ for idx in range(self.__port.info.capabilities.lane_count)
194
+ ) # TODO: need to fix, currently port.info.capabilities must be none because lanes are created before awaiting the port
195
+
196
+
197
+ class PRBSConfig:
198
+ """L23 high-speed port PRBS configuration."""
199
+
200
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
201
+ self.type = PP_PRBSTYPE(conn, module_id, port_id)
202
+ """PRBS type used when in PRBS mode.
203
+ Representation of PP_PRBSTYPE
204
+ """
205
+
206
+
207
+ class SDEyeDiagram:
208
+ """L23 high-speed port SerDes eye diagram."""
209
+
210
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
211
+ self.__conn = conn
212
+ self.__module_id = module_id
213
+ self.__port_id = port_id
214
+ self.__serdes_index = serdes_xindex
215
+ self.measure = PP_EYEMEASURE(conn, module_id, port_id, serdes_xindex)
216
+ """BER eye measurement.
217
+ Representation of PP_EYEMEASURE
218
+ """
219
+
220
+ self.resolution = PP_EYERESOLUTION(conn, module_id, port_id, serdes_xindex)
221
+ """Resolution for BER eye measurement.
222
+ Representation of PP_EYERESOLUTION
223
+ """
224
+
225
+ self.info = PP_EYEINFO(conn, module_id, port_id, serdes_xindex)
226
+ """Information of BER eye measurement.
227
+ Representation of PP_EYEINFO
228
+ """
229
+
230
+ self.ber = PP_EYEBER(conn, module_id, port_id, serdes_xindex)
231
+ """BER estimation of an eye diagram.
232
+ Representation of PP_EYEBER
233
+ """
234
+
235
+ self.dwell_bits = PP_EYEDWELLBITS(conn, module_id, port_id, serdes_xindex)
236
+ """Dwell bits for an eye capture.
237
+ Representation of PP_EYEDWELLBITS
238
+ """
239
+
240
+ def __await__(self):
241
+ return self._setup().__await__()
242
+
243
+ async def _setup(self) -> Self:
244
+ resolution = await self.resolution.get()
245
+ self.read_column = tuple(
246
+ PP_EYEREAD(
247
+ self.__conn,
248
+ self.__module_id,
249
+ self.__port_id,
250
+ self.__serdes_index,
251
+ _colum_xindex=x
252
+ )
253
+ for x in range(resolution.x_resolution)
254
+ )
255
+ return self
256
+
257
+
258
+ class SDPhy:
259
+ """L23 high-speed port SerDes PHY configuration and status."""
260
+
261
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
262
+ self.tx_equalizer = PP_PHYTXEQ(conn, module_id, port_id, serdes_xindex)
263
+ """Equalizer settings of the on-board PHY in the TX direction.
264
+ Representation of PP_PHYTXEQ
265
+ """
266
+
267
+ self.rx_equalizer = PP_PHYRXEQ(conn, module_id, port_id, serdes_xindex)
268
+ """Equalizer settings of the on-board PHY in the RX direction.
269
+ Representation of PP_PHYRXEQ
270
+ """
271
+
272
+ self.retune = PP_PHYRETUNE(conn, module_id, port_id, serdes_xindex)
273
+ """Retuning of the PHY.
274
+ Representation of PP_PHYRETUNE
275
+ """
276
+
277
+ self.autotune = PP_PHYAUTOTUNE(conn, module_id, port_id, serdes_xindex)
278
+ """Autotune of the PHY.
279
+ Representation of PP_PHYAUTOTUNE
280
+ """
281
+
282
+
283
+ class SDPma:
284
+ """L23 high-speed port PMA"""
285
+
286
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
287
+ self.precoding_config = PP_PRECODING(conn, module_id, port_id, serdes_xindex)
288
+ """GET/SET Pre-Coding Configurations. (only for Freya)
289
+
290
+ :type: PP_PRECODING
291
+ """
292
+
293
+ self.precoding_status = PP_PRECODINGSTATUS(conn, module_id, port_id, serdes_xindex)
294
+ """GET/SET Pre-Coding Configurations. (only for Freya)
295
+
296
+ :type: PP_PRECODING
297
+ """
298
+
299
+ self.graycoding = PP_GRAYCODING(conn, module_id, port_id, serdes_xindex)
300
+ """GET/SET Gray-Coding Configurations. (only for Freya)
301
+
302
+ :type: PP_GRAYCODING
303
+ """
304
+
305
+
306
+ class Prbs:
307
+ """L23 high-speed port SerDes PRBS configuration and status."""
308
+
309
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
310
+ self.tx_config = PP_TXPRBSCONFIG(conn, module_id, port_id, serdes_xindex)
311
+ """TX PRBS configuration of a SerDes.
312
+ Representation of PP_TXPRBSCONFIG
313
+ """
314
+
315
+ self.status = PP_RXPRBSSTATUS(conn, module_id, port_id, serdes_xindex)
316
+ """RX PRBS status on a SerDes
317
+ Representation of PP_RXPRBSSTATUS
318
+ """
319
+
320
+
321
+ class SerDes:
322
+ """L23 high-speed port SerDes configuration and status."""
323
+
324
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
325
+ self.prbs = Prbs(conn, module_id, port_id, serdes_xindex)
326
+ """PRBS configuration"""
327
+
328
+ self.phy = SDPhy(conn, module_id, port_id, serdes_xindex)
329
+ """PHY configuration"""
330
+
331
+ self.eye_diagram = SDEyeDiagram(conn, module_id, port_id, serdes_xindex)
332
+ """Eye diagram"""
333
+
334
+ self.pma = SDPma(conn, module_id, port_id, serdes_xindex)
335
+ """PMA layer"""
336
+
337
+ def __await__(self):
338
+ return self._setup().__await__()
339
+
340
+ async def _setup(self) -> Self:
341
+ await self.eye_diagram
342
+ return self
@@ -0,0 +1,50 @@
1
+ from typing import TYPE_CHECKING
2
+ if TYPE_CHECKING:
3
+ from xoa_driver.internals.core import interfaces as itf
4
+ from xoa_driver.internals.commands import (
5
+ PP_LINKFLAP_PARAMS,
6
+ PP_LINKFLAP_ENABLE,
7
+ PP_PMAERRPUL_PARAMS,
8
+ PP_PMAERRPUL_ENABLE,
9
+ )
10
+
11
+
12
+ class LinkFlap:
13
+ """L23 high-speed port link flap."""
14
+
15
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
16
+ self.params = PP_LINKFLAP_PARAMS(conn, module_id, port_id)
17
+ """Link flap parameters.
18
+ Representation of PP_LINKFLAP_PARAMS
19
+ """
20
+
21
+ self.enable = PP_LINKFLAP_ENABLE(conn, module_id, port_id)
22
+ """Link flap control.
23
+ Representation of PP_LINKFLAP_ENABLE
24
+ """
25
+
26
+
27
+ class PmaPulseErrInj:
28
+ """L23 high-speed port PMA pulse error injection."""
29
+
30
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
31
+ self.params = PP_PMAERRPUL_PARAMS(conn, module_id, port_id)
32
+ """PMA pulse error injection parameters.
33
+ Representation of PP_PMAERRPUL_PARAMS
34
+ """
35
+
36
+ self.enable = PP_PMAERRPUL_ENABLE(conn, module_id, port_id)
37
+ """PMA pulse error injection control.
38
+ Representation of PP_PMAERRPUL_ENABLE
39
+ """
40
+
41
+
42
+ class PcsPma:
43
+ """PCS/PMA settings"""
44
+
45
+ def __init__(self, conn: "itf.IConnection", port) -> None:
46
+ self.link_flap = LinkFlap(conn, *port.kind)
47
+ """Link flap settings."""
48
+
49
+ self.pma_pulse_err_inj = PmaPulseErrInj(conn, *port.kind)
50
+ """PMA pulse error injection settings."""
@@ -0,0 +1,65 @@
1
+ from typing import (
2
+ TYPE_CHECKING,
3
+ Tuple,
4
+ )
5
+ if TYPE_CHECKING:
6
+ from xoa_driver.internals.core import interfaces as itf
7
+ from xoa_driver.internals.commands import (
8
+ PP_AUTONEG,
9
+ PP_AUTONEGSTATUS,
10
+ PP_LINKTRAIN,
11
+ PP_LINKTRAINSTATUS,
12
+ )
13
+
14
+
15
+ class AutoNeg:
16
+ """L23 high-speed port PCS/PMA auto-negotiation"""
17
+
18
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
19
+ self.settings = PP_AUTONEG(conn, module_id, port_id)
20
+ """Auto-negotiation settings of the PHY.
21
+ Representation of PP_AUTONEG
22
+ """
23
+
24
+ self.status = PP_AUTONEGSTATUS(conn, module_id, port_id)
25
+ """Status of auto-negotiation settings of the PHY.
26
+ Representation of PP_AUTONEGSTATUS
27
+ """
28
+
29
+
30
+ class LinkTrain:
31
+ """L23 high-speed port PCS/PMA link training"""
32
+
33
+ def __init__(self, conn: "itf.IConnection", port) -> None:
34
+ self.settings = PP_LINKTRAIN(conn, *port.kind)
35
+ """Link training settings.
36
+ Representation of PP_LINKTRAIN
37
+ """
38
+
39
+ self.per_lane_status: Tuple[PP_LINKTRAINSTATUS, ...] = tuple(
40
+ PP_LINKTRAINSTATUS(conn, *port.kind, _serdes_xindex=idx)
41
+ for idx in range(port.info.capabilities.lane_count)
42
+ ) # TODO: need to fix, currently port.info.capabilities must be none because virtual_lanes are created before awaiting the port
43
+ """Link training status.
44
+ Representation of PP_LINKTRAINSTATUS
45
+ """
46
+
47
+
48
+ class PcsPma:
49
+ """L23 high-speed port PCS/PMA settings"""
50
+
51
+ def __init__(self, conn: "itf.IConnection", port) -> None:
52
+ self.auto_neg = AutoNeg(conn, *port.kind)
53
+ """PCS/PMA auto-negotiation settings"""
54
+
55
+ self.link_training = LinkTrain(conn, port)
56
+ """PCS/PMA link training settings"""
57
+
58
+
59
+ # Temporary ports are not supporting LinkTrain, in future release of xenaserver it will be the same as regular PcsPma
60
+ class PcsPmaL1:
61
+ """L23 high-speed port PCS/PMA settings"""
62
+
63
+ def __init__(self, conn: "itf.IConnection", port) -> None:
64
+ self.auto_neg = AutoNeg(conn, *port.kind)
65
+ """PCS/PMA auto-negotiation settings"""
@@ -0,0 +1,81 @@
1
+ from typing import TYPE_CHECKING
2
+ from .bases.port_l23 import BasePortL23
3
+ from .bases.port_reception_statistics import PortReceptionStatistics
4
+ from .bases.port_transmission_statistics import PortTransmissionStatistics
5
+
6
+ from xoa_driver.internals.commands import (
7
+ P_MDIXMODE,
8
+ # P_ENGINENAMES, # TODO: need to implement
9
+ # P_ENGINELOAD, # TODO: need to implement
10
+ )
11
+ if TYPE_CHECKING:
12
+ from xoa_driver.internals.core import interfaces as itf
13
+ from xoa_driver.internals.utils.indices import index_manager as idx_mgr
14
+ from xoa_driver.internals.hli_v2.indices.streams.base_stream import BaseStreamIdx
15
+ from xoa_driver.internals.hli_v2.indices.filter.base_filter import BaseFilterIdx
16
+ from xoa_driver.internals.state_storage import ports_state
17
+
18
+ VEStreamIndices = idx_mgr.IndexManager[BaseStreamIdx]
19
+ VEFilterIndices = idx_mgr.IndexManager[BaseFilterIdx]
20
+
21
+
22
+ class Engine:
23
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
24
+ # self.names = P_ENGINENAMES(conn, module_id, port_id)
25
+ # self.load = P_ENGINELOAD(conn, module_id, port_id)
26
+ ...
27
+
28
+
29
+ class L23VEPortStatistics:
30
+ """L23 VE port statistics"""
31
+
32
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
33
+ self.rx = PortReceptionStatistics(conn, module_id, port_id)
34
+ """L23 VE port's RX statistics."""
35
+
36
+ self.tx = PortTransmissionStatistics(conn, module_id, port_id)
37
+ """L23 VE port's TX statistics."""
38
+
39
+
40
+ class PortL23VE(BasePortL23):
41
+ """L23 VE port"""
42
+
43
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
44
+ super().__init__(conn, module_id, port_id)
45
+
46
+ self._local_states = ports_state.PortL23LocalState()
47
+
48
+ self.mdix_mode = P_MDIXMODE(conn, module_id, port_id)
49
+ """MDI/MDIX mode.
50
+ Representation of P_MDIXMODE
51
+ """
52
+
53
+ self.engine = Engine(conn, module_id, port_id)
54
+ """Engine is not supported yet."""
55
+
56
+ self.statistics = L23VEPortStatistics(conn, module_id, port_id)
57
+
58
+ self.streams: VEStreamIndices = idx_mgr.IndexManager(
59
+ conn,
60
+ BaseStreamIdx,
61
+ module_id,
62
+ port_id
63
+ )
64
+ """L23 VE port's stream index manager."""
65
+
66
+ self.filters: VEFilterIndices = idx_mgr.IndexManager(
67
+ conn,
68
+ BaseFilterIdx,
69
+ module_id,
70
+ port_id
71
+ )
72
+ """L23 VE port's filter index manager."""
73
+
74
+ @property
75
+ def info(self) -> ports_state.PortL23LocalState:
76
+ return self._local_states
77
+
78
+ async def _setup(self):
79
+ await self._local_states.initiate(self)
80
+ self._local_states.register_subscriptions(self)
81
+ return self
File without changes