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