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,722 @@
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_PRECODING,
9
+ PP_PRECODINGSTATUS,
10
+ PP_GRAYCODING,
11
+ PL1_AUTONEGINFO,
12
+ PL1_LINKTRAININFO,
13
+ PL1_LOG,
14
+ PL1_CFG_TMP,
15
+ PL1_LINKTRAIN_CMD,
16
+ PL1_CTRL,
17
+ PL1_GET_DATA,
18
+ PL1_PHYTXEQ_LEVEL,
19
+ PL1_PHYTXEQ_COEFF,
20
+ PL1_AUTONEG_STATUS,
21
+ PL1_AUTONEG_ABILITIES,
22
+ PL1_PCS_VARIANT,
23
+ PL1_AUTONEG_CONFIG,
24
+ PL1_ANLT,
25
+ PL1_PHYTXEQ,
26
+ PL1_LINKTRAIN_CONFIG,
27
+ PL1_LINKTRAIN_STATUS,
28
+ PP_PHYRXEQ_EXT,
29
+ PP_PHYRXEQSTATUS_EXT,
30
+ PL1_CWE_CYCLE,
31
+ PL1_CWE_ERR_SYM_INDICES,
32
+ PL1_CWE_BIT_ERR_MASK,
33
+ PL1_CWE_FEC_ENGINE,
34
+ PL1_CWE_FEC_STATS,
35
+ PL1_CWE_CONTROL,
36
+ PL1_CWE_FEC_STATS_CLEAR,
37
+ PL1_LT_PHYTXEQ_RANGE,
38
+ PL1_LT_PHYTXEQ_RANGE_COEFF,
39
+ PL1_PRESET_CONFIG,
40
+ PL1_PRESET_CONFIG_COEFF,
41
+ PL1_PRESET_CONFIG_LEVEL,
42
+ PL1_PRESET_RESET,
43
+ PP_PRBSTYPE,
44
+ )
45
+ from .pcs_pma_ghijkl import (
46
+ Prbs,
47
+ )
48
+ from xoa_driver import enums
49
+
50
+ class FreyaPMA:
51
+ """Freya PMA"""
52
+
53
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
54
+ self.precoding = PP_PRECODING(conn, module_id, port_id, serdes_xindex)
55
+ """GET/SET Pre-Coding Configurations. (only for Freya)
56
+
57
+ :type: PP_PRECODING
58
+ """
59
+
60
+ self.graycoding = PP_GRAYCODING(conn, module_id, port_id, serdes_xindex)
61
+ """GET/SET Gray-Coding Configurations. (only for Freya)
62
+
63
+ :type: PP_GRAYCODING
64
+ """
65
+
66
+ class FreyaSIV:
67
+ """Freya Signal Integrity View"""
68
+
69
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
70
+ self.control = PL1_CTRL(conn, module_id, port_id, serdes_xindex, enums.Layer1Control.SAMPLED_SIGNAL_INTEGRITY_SCAN)
71
+ """Control SIV scan. (only for Freya)
72
+
73
+ :type: PL1_CTRL
74
+ """
75
+
76
+ self.data = PL1_GET_DATA(conn, module_id, port_id, serdes_xindex, enums.Layer1Control.SAMPLED_SIGNAL_INTEGRITY_SCAN)
77
+ """Get SIV scan data. (only for Freya)
78
+
79
+ :type: PL1_GET_DATA
80
+ """
81
+
82
+ class FreyaTxTap:
83
+ """Freya Tx Tap"""
84
+
85
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
86
+ self.native = PL1_PHYTXEQ(conn, module_id, port_id, serdes_xindex)
87
+ """TX tap native value. (only for Freya)
88
+
89
+ :type: PL1_PHYTXEQ
90
+ """
91
+
92
+ self.level = PL1_PHYTXEQ_LEVEL(conn, module_id, port_id, serdes_xindex)
93
+ """TX tap mV/dB value. (only for Freya)
94
+
95
+ :type: PL1_PHYTXEQ_LEVEL
96
+ """
97
+
98
+ self.ieee = PL1_PHYTXEQ_COEFF(conn, module_id, port_id, serdes_xindex)
99
+ """TX tap IEEE coefficient value. (only for Freya)
100
+
101
+ :type: PL1_PHYTXEQ_COEFF
102
+ """
103
+
104
+ class FreyaRxTapConfig:
105
+ """Freya Rx Tap Configuration"""
106
+
107
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
108
+ self.ctle_low = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_LOW)
109
+ """RX tap CTLE LOW. (only for Freya)
110
+ """
111
+
112
+ self.ctle_high = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_HIGH)
113
+ """RX tap CTLE HIGH. (only for Freya)
114
+ """
115
+
116
+ self.agc = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.AGC)
117
+ """RX tap Automatic Gain Control. (only for Freya)
118
+ """
119
+
120
+ self.oc = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.OC)
121
+ """RX tap Offset Cancellation. (only for Freya)
122
+ """
123
+
124
+ self.cdr = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CDR)
125
+ """RX tap Clock and Data Recovery. (only for Freya)
126
+ """
127
+
128
+ self.pre_ffe_1 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_1)
129
+ """RX tap Pre Feed-Forward Equalizer #1. (only for Freya)
130
+ """
131
+
132
+ self.pre_ffe_2 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_2)
133
+ """RX tap Pre Feed-Forward Equalizer #2. (only for Freya)
134
+ """
135
+
136
+ self.pre_ffe_3 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_3)
137
+ """RX tap Pre Feed-Forward Equalizer #3. (only for Freya)
138
+ """
139
+
140
+ self.pre_ffe_4 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_4)
141
+ """RX tap Pre Feed-Forward Equalizer #4. (only for Freya)
142
+ """
143
+
144
+ self.pre_ffe_5 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_5)
145
+ """RX tap Pre Feed-Forward Equalizer #5. (only for Freya)
146
+ """
147
+
148
+ self.pre_ffe_6 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_6)
149
+ """RX tap Pre Feed-Forward Equalizer #6. (only for Freya)
150
+ """
151
+
152
+ self.pre_ffe_7 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_7)
153
+ """RX tap Pre Feed-Forward Equalizer #7. (only for Freya)
154
+ """
155
+
156
+ self.pre_ffe_8 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_8)
157
+ """RX tap Pre Feed-Forward Equalizer #8. (only for Freya)
158
+ """
159
+
160
+ self.dfe = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.DFE)
161
+ """RX tap Decision Feedback Equalization. (only for Freya)
162
+ """
163
+
164
+ self.post_ffe_1 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_1)
165
+ """RX tap Post Feed-Forward Equalizer #1. (only for Freya)
166
+ """
167
+
168
+ self.post_ffe_2 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_2)
169
+ """RX tap Post Feed-Forward Equalizer #2. (only for Freya)
170
+ """
171
+
172
+ self.post_ffe_3 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_3)
173
+ """RX tap Post Feed-Forward Equalizer #3. (only for Freya)
174
+ """
175
+
176
+ self.post_ffe_4 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_4)
177
+ """RX tap Post Feed-Forward Equalizer #4. (only for Freya)
178
+ """
179
+
180
+ self.post_ffe_5 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_5)
181
+ """RX tap Post Feed-Forward Equalizer #5. (only for Freya)
182
+ """
183
+
184
+ self.post_ffe_6 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_6)
185
+ """RX tap Post Feed-Forward Equalizer #6. (only for Freya)
186
+ """
187
+
188
+ self.post_ffe_7 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_7)
189
+ """RX tap Post Feed-Forward Equalizer #7. (only for Freya)
190
+ """
191
+
192
+ self.post_ffe_8 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_8)
193
+ """RX tap Post Feed-Forward Equalizer #8. (only for Freya)
194
+ """
195
+
196
+ self.post_ffe_9 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_9)
197
+ """RX tap Post Feed-Forward Equalizer #9. (only for Freya)
198
+ """
199
+
200
+ self.post_ffe_10 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_10)
201
+ """RX tap Post Feed-Forward Equalizer #10. (only for Freya)
202
+ """
203
+
204
+ self.post_ffe_11 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_11)
205
+ """RX tap Post Feed-Forward Equalizer #11. (only for Freya)
206
+ """
207
+
208
+ self.post_ffe_12 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_12)
209
+ """RX tap Post Feed-Forward Equalizer #12. (only for Freya)
210
+ """
211
+
212
+ self.post_ffe_13 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
213
+ """RX tap Post Feed-Forward Equalizer #13. (only for Freya)
214
+ """
215
+
216
+ self.post_ffe_14 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_14)
217
+ """RX tap Post Feed-Forward Equalizer #14. (only for Freya)
218
+ """
219
+
220
+ self.post_ffe_15 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_15)
221
+ """RX tap Post Feed-Forward Equalizer #15. (only for Freya)
222
+ """
223
+
224
+ self.post_ffe_16 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_16)
225
+ """RX tap Post Feed-Forward Equalizer #16. (only for Freya)
226
+ """
227
+
228
+ self.post_ffe_17 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_17)
229
+ """RX tap Post Feed-Forward Equalizer #17. (only for Freya)
230
+ """
231
+
232
+ self.post_ffe_18 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_18)
233
+ """RX tap Post Feed-Forward Equalizer #18. (only for Freya)
234
+ """
235
+
236
+ self.post_ffe_19 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_19)
237
+ """RX tap Post Feed-Forward Equalizer #19. (only for Freya)
238
+ """
239
+
240
+ self.post_ffe_20 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_20)
241
+ """RX tap Post Feed-Forward Equalizer #20. (only for Freya)
242
+ """
243
+
244
+ self.post_ffe_21 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_21)
245
+ """RX tap Post Feed-Forward Equalizer #21. (only for Freya)
246
+ """
247
+
248
+ self.post_ffe_22 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_22)
249
+ """RX tap Post Feed-Forward Equalizer #22. (only for Freya)
250
+ """
251
+
252
+ self.post_ffe_23 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
253
+ """RX tap Post Feed-Forward Equalizer #23. (only for Freya)
254
+ """
255
+
256
+ class FreyaRxTapStatus:
257
+ """Freya Rx Tap Status"""
258
+
259
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
260
+ self.ctle_low = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_LOW)
261
+ """RX tap CTLE LOW. (only for Freya)
262
+ """
263
+
264
+ self.ctle_high = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_HIGH)
265
+ """RX tap CTLE HIGH. (only for Freya)
266
+ """
267
+
268
+ self.agc = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.AGC)
269
+ """RX tap Automatic Gain Control. (only for Freya)
270
+ """
271
+
272
+ self.oc = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.OC)
273
+ """RX tap Offset Cancellation. (only for Freya)
274
+ """
275
+
276
+ self.cdr = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CDR)
277
+ """RX tap Clock and Data Recovery. (only for Freya)
278
+ """
279
+
280
+ self.pre_ffe_1 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_1)
281
+ """RX tap Pre Feed-Forward Equalizer #1. (only for Freya)
282
+ """
283
+
284
+ self.pre_ffe_2 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_2)
285
+ """RX tap Pre Feed-Forward Equalizer #2. (only for Freya)
286
+ """
287
+
288
+ self.pre_ffe_3 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_3)
289
+ """RX tap Pre Feed-Forward Equalizer #3. (only for Freya)
290
+ """
291
+
292
+ self.pre_ffe_4 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_4)
293
+ """RX tap Pre Feed-Forward Equalizer #4. (only for Freya)
294
+ """
295
+
296
+ self.pre_ffe_5 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_5)
297
+ """RX tap Pre Feed-Forward Equalizer #5. (only for Freya)
298
+ """
299
+
300
+ self.pre_ffe_6 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_6)
301
+ """RX tap Pre Feed-Forward Equalizer #6. (only for Freya)
302
+ """
303
+
304
+ self.pre_ffe_7 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_7)
305
+ """RX tap Pre Feed-Forward Equalizer #7. (only for Freya)
306
+ """
307
+
308
+ self.pre_ffe_8 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_8)
309
+ """RX tap Pre Feed-Forward Equalizer #8. (only for Freya)
310
+ """
311
+
312
+ self.dfe = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.DFE)
313
+ """RX tap Decision Feedback Equalization. (only for Freya)
314
+ """
315
+
316
+ self.post_ffe_1 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_1)
317
+ """RX tap Post Feed-Forward Equalizer #1. (only for Freya)
318
+ """
319
+
320
+ self.post_ffe_2 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_2)
321
+ """RX tap Post Feed-Forward Equalizer #2. (only for Freya)
322
+ """
323
+
324
+ self.post_ffe_3 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_3)
325
+ """RX tap Post Feed-Forward Equalizer #3. (only for Freya)
326
+ """
327
+
328
+ self.post_ffe_4 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_4)
329
+ """RX tap Post Feed-Forward Equalizer #4. (only for Freya)
330
+ """
331
+
332
+ self.post_ffe_5 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_5)
333
+ """RX tap Post Feed-Forward Equalizer #5. (only for Freya)
334
+ """
335
+
336
+ self.post_ffe_6 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_6)
337
+ """RX tap Post Feed-Forward Equalizer #6. (only for Freya)
338
+ """
339
+
340
+ self.post_ffe_7 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_7)
341
+ """RX tap Post Feed-Forward Equalizer #7. (only for Freya)
342
+ """
343
+
344
+ self.post_ffe_8 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_8)
345
+ """RX tap Post Feed-Forward Equalizer #8. (only for Freya)
346
+ """
347
+
348
+ self.post_ffe_9 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_9)
349
+ """RX tap Post Feed-Forward Equalizer #9. (only for Freya)
350
+ """
351
+
352
+ self.post_ffe_10 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_10)
353
+ """RX tap Post Feed-Forward Equalizer #10. (only for Freya)
354
+ """
355
+
356
+ self.post_ffe_11 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_11)
357
+ """RX tap Post Feed-Forward Equalizer #11. (only for Freya)
358
+ """
359
+
360
+ self.post_ffe_12 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_12)
361
+ """RX tap Post Feed-Forward Equalizer #12. (only for Freya)
362
+ """
363
+
364
+ self.post_ffe_13 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
365
+ """RX tap Post Feed-Forward Equalizer #13. (only for Freya)
366
+ """
367
+
368
+ self.post_ffe_14 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_14)
369
+ """RX tap Post Feed-Forward Equalizer #14. (only for Freya)
370
+ """
371
+
372
+ self.post_ffe_15 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_15)
373
+ """RX tap Post Feed-Forward Equalizer #15. (only for Freya)
374
+ """
375
+
376
+ self.post_ffe_16 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_16)
377
+ """RX tap Post Feed-Forward Equalizer #16. (only for Freya)
378
+ """
379
+
380
+ self.post_ffe_17 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_17)
381
+ """RX tap Post Feed-Forward Equalizer #17. (only for Freya)
382
+ """
383
+
384
+ self.post_ffe_18 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_18)
385
+ """RX tap Post Feed-Forward Equalizer #18. (only for Freya)
386
+ """
387
+
388
+ self.post_ffe_19 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_19)
389
+ """RX tap Post Feed-Forward Equalizer #19. (only for Freya)
390
+ """
391
+
392
+ self.post_ffe_20 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_20)
393
+ """RX tap Post Feed-Forward Equalizer #20. (only for Freya)
394
+ """
395
+
396
+ self.post_ffe_21 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_21)
397
+ """RX tap Post Feed-Forward Equalizer #21. (only for Freya)
398
+ """
399
+
400
+ self.post_ffe_22 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_22)
401
+ """RX tap Post Feed-Forward Equalizer #22. (only for Freya)
402
+ """
403
+
404
+ self.post_ffe_23 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
405
+ """RX tap Post Feed-Forward Equalizer #23. (only for Freya)
406
+ """
407
+
408
+ class FreyaRxTap:
409
+ """Freya Rx tap
410
+ """
411
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
412
+ self.config = FreyaRxTapConfig(conn, module_id, port_id, serdes_xindex)
413
+ """Freya Rx tap configuration
414
+ """
415
+ self.status = FreyaRxTapStatus(conn, module_id, port_id, serdes_xindex)
416
+ """Freya Rx tap status
417
+ """
418
+
419
+ class FreyaMedium:
420
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
421
+ self.tx = FreyaTxTap(conn, module_id, port_id, serdes_xindex)
422
+ """Freya Tx tap
423
+ """
424
+ self.rx = FreyaRxTap(conn, module_id, port_id, serdes_xindex)
425
+ """Freya Rx tap
426
+ """
427
+ self.siv = FreyaSIV(conn, module_id, port_id, serdes_xindex)
428
+ """Freya Signal Integrity
429
+ """
430
+
431
+ class SerDesFreya:
432
+ """L23 high-speed port SerDes configuration and status."""
433
+
434
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
435
+
436
+ self.prbs = Prbs(conn, module_id, port_id, serdes_xindex)
437
+ """PRBS
438
+ :type: Prbs
439
+ """
440
+
441
+ self.pma = FreyaPMA(conn, module_id, port_id, serdes_xindex)
442
+ """Freya PMA
443
+
444
+ :type: FreyaPMA
445
+ """
446
+
447
+ self.medium = FreyaMedium(conn, module_id, port_id, serdes_xindex)
448
+ """Freya medium
449
+
450
+ :type: FreyaMedium
451
+ """
452
+
453
+ self.lt = FreyaLinkTraining(conn, module_id, port_id, serdes_xindex)
454
+ """Freya Link Training on serdes level
455
+
456
+ :type: FreyaLinkTraining
457
+ """
458
+
459
+
460
+ class FreyaAutoNeg:
461
+ """Freya Autoneg"""
462
+
463
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
464
+ self.info = PL1_AUTONEGINFO(conn, module_id, port_id, 0)
465
+ """Autoneg info
466
+
467
+ :type: PL1_AUTONEGINFO
468
+ """
469
+
470
+ self.status = PL1_AUTONEG_STATUS(conn, module_id, port_id)
471
+ """Autoneg status
472
+
473
+ :type: PL1_AUTONEG_STATUS
474
+ """
475
+
476
+ self.abilities = PL1_AUTONEG_ABILITIES(conn, module_id, port_id)
477
+ """Autoneg abilities
478
+
479
+ :type: PL1_AUTONEG_ABILITIES
480
+ """
481
+
482
+ self.config = PL1_AUTONEG_CONFIG(conn, module_id, port_id)
483
+ """Autoneg configuration
484
+
485
+ :type: PL1_AUTONEG_CONFIG
486
+ """
487
+
488
+ class FreyaLinkTraining:
489
+ """Freya Link Training on serdes level"""
490
+
491
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
492
+ self.cmd = PL1_LINKTRAIN_CMD(conn, module_id, port_id, serdes_xindex)
493
+ """Link training command.
494
+
495
+ :type: PP_LINKTRAIN
496
+ """
497
+
498
+ self.info = PL1_LINKTRAININFO(conn, module_id, port_id, serdes_xindex, 0)
499
+ """Link training info.
500
+
501
+ :type: PL1_LINKTRAININFO
502
+ """
503
+
504
+ self.status = PL1_LINKTRAIN_STATUS(conn, module_id, port_id, serdes_xindex)
505
+ """Link training status.
506
+
507
+ :type: PL1_LINKTRAIN_STATUS
508
+ """
509
+
510
+ self.preset1 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET1)
511
+ """Link training preset 1
512
+
513
+ :rtype: FreyaLinkTrainingPreset
514
+ """
515
+
516
+ self.preset2 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET2)
517
+ """Link training preset 2
518
+
519
+ :rtype: FreyaLinkTrainingPreset
520
+ """
521
+
522
+ self.preset3 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET3)
523
+ """Link training preset 3
524
+
525
+ :rtype: FreyaLinkTrainingPreset
526
+ """
527
+
528
+ self.preset4 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET4)
529
+ """Link training preset 4
530
+
531
+ :rtype: FreyaLinkTrainingPreset
532
+ """
533
+
534
+ self.preset5 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET5)
535
+ """Link training preset 5
536
+
537
+ :rtype: FreyaLinkTrainingPreset
538
+ """
539
+
540
+ self.preset_los = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.LOS)
541
+ """Link training preset LOS
542
+
543
+ :rtype: FreyaLinkTrainingPreset
544
+ """
545
+
546
+ self.range = FreyaLinkTrainingRange(conn, module_id, port_id, serdes_xindex)
547
+ """Link training tap range
548
+
549
+ :rtype: FreyaLinkTrainingRange
550
+ """
551
+
552
+ self.initial_modulation = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.LT_INITIAL_MODULATION)
553
+ """Link training initial modulation
554
+
555
+ :rtype: PL1_CFG_TMP
556
+ """
557
+
558
+ self.algorithm = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.LT_TRAINING_ALGORITHM)
559
+ """Link training algorithm
560
+
561
+ :rtype: PL1_CFG_TMP
562
+ """
563
+
564
+ self.strict_mode = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.ANLT_STRICT_MODE)
565
+ """ANLT strict mode. In strict mode, errored framed will be ignored.
566
+
567
+ :rtype: PL1_CFG_TMP
568
+ """
569
+
570
+
571
+ class FreyaANLT:
572
+ """Freya port-level anlt. For per-serdes configuration and status, use serdes[x]
573
+ """
574
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
575
+ self.an = FreyaAutoNeg(conn, module_id, port_id)
576
+ """Autoneg config and status
577
+ """
578
+ self.ctrl = PL1_ANLT(conn, module_id, port_id)
579
+ """ANLT control
580
+ """
581
+ self.lt_config = PL1_LINKTRAIN_CONFIG(conn, module_id, port_id)
582
+ """Port-level Link Training config
583
+ """
584
+ self.log = PL1_LOG(conn, module_id, port_id)
585
+ """ANLT log
586
+ """
587
+ self.autorestart = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.AUTO_LINK_RECOVERY)
588
+ """ANLT Autorestart
589
+ """
590
+ self.allow_an_loopback = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.AN_LOOPBACK)
591
+ """ANLT Autorestart
592
+ """
593
+ self.send_empty_np = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.AN_EMPTY_NP)
594
+ """If the port should send Next Pages if they are empty.
595
+ """
596
+
597
+ class FreyaFecCodewordErrorInject:
598
+ """Freya FEC Codeword Error Injection
599
+ """
600
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
601
+ self.cycle = PL1_CWE_CYCLE(conn, module_id, port_id)
602
+ """FEC codeword error injection cycle.
603
+ """
604
+ self.err_symbols = PL1_CWE_ERR_SYM_INDICES(conn, module_id, port_id)
605
+ """The positions of the errored symbols in errored codewords.
606
+ """
607
+ self.bit_err_mask = PL1_CWE_BIT_ERR_MASK(conn, module_id, port_id)
608
+ """The bit error mask for the errored symbols.
609
+ """
610
+ self.engine = PL1_CWE_FEC_ENGINE(conn, module_id, port_id)
611
+ """The FEC engines to use.
612
+ """
613
+ self.statistics = PL1_CWE_FEC_STATS(conn, module_id, port_id)
614
+ """FEC error injection statistics
615
+ """
616
+ self.clear_stats = PL1_CWE_FEC_STATS_CLEAR(conn, module_id, port_id)
617
+ """Clear FEC codeword injection stats
618
+ """
619
+ self.control = PL1_CWE_CONTROL(conn, module_id, port_id)
620
+ """Control the FEC codeword error injection
621
+ """
622
+
623
+ class Layer1:
624
+ def __init__(self, conn: "itf.IConnection", port) -> None:
625
+ self.serdes: Tuple[SerDesFreya, ...] = tuple(
626
+ SerDesFreya(conn, *port.kind, serdes_xindex=idx)
627
+ for idx in range(port.info.capabilities.serdes_count)
628
+ )
629
+ self.anlt = FreyaANLT(conn, *port.kind)
630
+ """Freya port-level anlt. For per-serdes configuration and status, use serdes[x]
631
+ """
632
+ self.pcs_variant = PL1_PCS_VARIANT(conn, *port.kind)
633
+ """PCS variant configuration
634
+ """
635
+ self.fec_error_inject = FreyaFecCodewordErrorInject(conn, *port.kind)
636
+ """FEC codeword error injection
637
+ """
638
+ self.prbs_config = PP_PRBSTYPE(conn, *port.kind)
639
+ """PRBS configuration, including PRBS polynomial, invert mode, and statistic collection mode (for RX).
640
+ """
641
+
642
+ class FreyaLinkTrainingPreset:
643
+ """Freya Link Training Preset"""
644
+
645
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int, preset_index: enums.FreyaPresetIndex) -> None:
646
+
647
+ self.native = PL1_PRESET_CONFIG(conn, module_id, port_id, serdes_xindex, preset_index)
648
+ """Preset native values. (only for Freya)
649
+
650
+ :type: PL1_PRESET_CONFIG
651
+ """
652
+
653
+ self.ieee = PL1_PRESET_CONFIG_COEFF(conn, module_id, port_id, serdes_xindex, preset_index)
654
+ """Preset IEEE coefficient values. (only for Freya)
655
+
656
+ :type: PL1_PRESET_CONFIG_COEFF
657
+ """
658
+
659
+ self.level = PL1_PRESET_CONFIG_LEVEL(conn, module_id, port_id, serdes_xindex, preset_index)
660
+ """Preset mV/dB values. (only for Freya)
661
+
662
+ :type: PL1_PRESET_CONFIG_LEVEL
663
+ """
664
+
665
+ self.reset = PL1_PRESET_RESET(conn, module_id, port_id, serdes_xindex, preset_index)
666
+ """Reset preset to default. (only for Freya)
667
+
668
+ :type: PL1_PRESET_RESET
669
+ """
670
+
671
+ class FreyaLinkTrainingRangeTap:
672
+ """Freya Link Training Range Tap"""
673
+
674
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int, tap_index: enums.FreyaTapIndex) -> None:
675
+
676
+ self.native = PL1_LT_PHYTXEQ_RANGE(conn, module_id, port_id, serdes_xindex, tap_index)
677
+ """Tap range native values. (only for Freya)
678
+
679
+ :type: PL1_LT_PHYTXEQ_RANGE
680
+ """
681
+
682
+ self.ieee = PL1_LT_PHYTXEQ_RANGE_COEFF(conn, module_id, port_id, serdes_xindex, tap_index)
683
+ """Tap range IEEE coefficient values. (only for Freya)
684
+
685
+ :type: PL1_LT_PHYTXEQ_RANGE_COEFF
686
+ """
687
+
688
+
689
+ class FreyaLinkTrainingRange:
690
+ """Freya Link Training Range"""
691
+
692
+ def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
693
+
694
+ self.pre = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP0)
695
+ """Pre tap range and response. (only for Freya)
696
+
697
+ :type: FreyaLinkTrainingRangeTap
698
+ """
699
+
700
+ self.main = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP1)
701
+ """Main tap range and response. (only for Freya)
702
+
703
+ :type: FreyaLinkTrainingRangeTap
704
+ """
705
+
706
+ self.post = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP2)
707
+ """Post tap range and response. (only for Freya)
708
+
709
+ :type: FreyaLinkTrainingRangeTap
710
+ """
711
+
712
+ self.pre2 = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP3)
713
+ """Pre2 tap range and response. (only for Freya)
714
+
715
+ :type: FreyaLinkTrainingRangeTap
716
+ """
717
+
718
+ self.pre3 = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP4)
719
+ """Pre3 tap range and response. (only for Freya)
720
+
721
+ :type: FreyaLinkTrainingRangeTap
722
+ """