tdl-xoa-driver 1.3.0__py3-none-any.whl → 1.5.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 (268) hide show
  1. tdl_xoa_driver-1.5.0.dist-info/METADATA +56 -0
  2. tdl_xoa_driver-1.5.0.dist-info/RECORD +231 -0
  3. xoa_driver/__init__.py +2 -2
  4. xoa_driver/enums.py +2 -0
  5. xoa_driver/exceptions.py +2 -0
  6. xoa_driver/functions/anlt.py +4 -2
  7. xoa_driver/functions/anlt_ll_debug.py +2 -0
  8. xoa_driver/functions/cli/__init__.py +21 -0
  9. xoa_driver/functions/cli/_cli_manager.py +541 -0
  10. xoa_driver/functions/cli/_config_block.py +334 -0
  11. xoa_driver/functions/cli/_socket_driver.py +111 -0
  12. xoa_driver/functions/cli/port_config.py +116 -0
  13. xoa_driver/functions/cli/testbed_config.py +179 -0
  14. xoa_driver/functions/cmis/__init__.py +8 -0
  15. xoa_driver/functions/cmis/_constants.py +25 -0
  16. xoa_driver/functions/cmis/_replies.py +600 -0
  17. xoa_driver/functions/cmis/_utils.py +49 -0
  18. xoa_driver/functions/cmis/cdb.py +1266 -0
  19. xoa_driver/functions/exceptions.py +2 -0
  20. xoa_driver/functions/headers.py +2 -0
  21. xoa_driver/functions/mgmt.py +48 -34
  22. xoa_driver/functions/tools.py +9 -3
  23. xoa_driver/hlfuncs.py +7 -3
  24. xoa_driver/internals/commands/c_commands.py +6 -10
  25. xoa_driver/internals/commands/enums.py +25 -1
  26. xoa_driver/internals/commands/p_commands.py +50 -12
  27. xoa_driver/internals/commands/pl1_commands.py +130 -73
  28. xoa_driver/internals/commands/pp_commands.py +44 -55
  29. xoa_driver/internals/commands/pr_commands.py +17 -16
  30. xoa_driver/internals/commands/pt_commands.py +21 -1
  31. xoa_driver/internals/commands/px_commands.py +1686 -6
  32. xoa_driver/internals/core/transporter/_request_id_counter.py +1 -1
  33. xoa_driver/internals/core/transporter/logger/__state_on_user.py +1 -1
  34. xoa_driver/internals/core/transporter/protocol/payload/__init__.py +3 -1
  35. xoa_driver/internals/core/transporter/protocol/payload/field.py +41 -0
  36. xoa_driver/internals/core/transporter/protocol/payload/types.py +19 -0
  37. xoa_driver/internals/exceptions/modules.py +4 -3
  38. xoa_driver/internals/{hli_v1 → hli}/indices/filter/base_filter.py +1 -1
  39. xoa_driver/internals/{hli_v1 → hli}/indices/length_term.py +1 -1
  40. xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/base_macsecsc.py +2 -2
  41. xoa_driver/internals/{hli_v1 → hli}/indices/match_term.py +1 -1
  42. xoa_driver/internals/{hli_v1 → hli}/indices/port_dataset.py +1 -1
  43. xoa_driver/internals/{hli_v1 → hli}/indices/streams/base_stream.py +1 -1
  44. xoa_driver/internals/{hli_v1 → hli}/modules/module_chimera.py +3 -3
  45. xoa_driver/internals/{hli_v1 → hli}/modules/module_l47.py +1 -1
  46. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_combi.py +1 -1
  47. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_d.py +1 -1
  48. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_e.py +1 -1
  49. xoa_driver/internals/hli/modules/modules_l23/family_edun.py +82 -0
  50. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_f.py +1 -1
  51. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_g.py +17 -2
  52. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_h.py +1 -1
  53. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_i.py +1 -1
  54. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_j.py +1 -1
  55. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_k.py +1 -1
  56. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l.py +1 -1
  57. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l1.py +20 -1
  58. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_m.py +1 -1
  59. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_n.py +1 -1
  60. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/module_l23_base.py +1 -1
  61. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23.py +3 -3
  62. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23_genuine.py +4 -4
  63. xoa_driver/internals/hli/ports/port_l23/bases/port_transceiver.py +247 -0
  64. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_transmission_statistics.py +1 -1
  65. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_chimera.py +1 -1
  66. xoa_driver/internals/hli/ports/port_l23/edun_l1.py +181 -0
  67. xoa_driver/internals/hli/ports/port_l23/family_edun.py +82 -0
  68. xoa_driver/internals/{hli_v2 → hli}/ports/port_l23/family_g.py +5 -0
  69. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l1.py +14 -8
  70. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/port_l23ve.py +2 -2
  71. xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/main.py +2 -2
  72. xoa_driver/internals/{hli_v1 → hli}/testers/l23_tester.py +1 -1
  73. xoa_driver/internals/{hli_v1 → hli}/testers/l47_tester.py +2 -2
  74. xoa_driver/internals/state_storage/modules_state.py +20 -0
  75. xoa_driver/internals/state_storage/testers_state.py +10 -0
  76. xoa_driver/lli.py +1 -0
  77. xoa_driver/misc.py +13 -17
  78. xoa_driver/modules.py +40 -22
  79. xoa_driver/ports.py +42 -20
  80. xoa_driver/testers.py +5 -7
  81. xoa_driver/utils.py +2 -0
  82. tdl_xoa_driver-1.3.0.dist-info/METADATA +0 -56
  83. tdl_xoa_driver-1.3.0.dist-info/RECORD +0 -325
  84. xoa_driver/functions/cli.py +0 -581
  85. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +0 -117
  86. xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +0 -77
  87. xoa_driver/internals/hli_v2/__init__.py +0 -0
  88. xoa_driver/internals/hli_v2/indices/__init__.py +0 -0
  89. xoa_driver/internals/hli_v2/indices/base_index.py +0 -39
  90. xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
  91. xoa_driver/internals/hli_v2/indices/connection_group/cg.py +0 -115
  92. xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +0 -59
  93. xoa_driver/internals/hli_v2/indices/connection_group/l2.py +0 -71
  94. xoa_driver/internals/hli_v2/indices/connection_group/l3.py +0 -96
  95. xoa_driver/internals/hli_v2/indices/connection_group/raw.py +0 -148
  96. xoa_driver/internals/hli_v2/indices/connection_group/replay.py +0 -89
  97. xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +0 -261
  98. xoa_driver/internals/hli_v2/indices/connection_group/tls.py +0 -166
  99. xoa_driver/internals/hli_v2/indices/connection_group/udp.py +0 -112
  100. xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +0 -25
  101. xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
  102. xoa_driver/internals/hli_v2/indices/filter/base_filter.py +0 -50
  103. xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +0 -17
  104. xoa_driver/internals/hli_v2/indices/length_term.py +0 -44
  105. xoa_driver/internals/hli_v2/indices/match_term.py +0 -49
  106. xoa_driver/internals/hli_v2/indices/port_dataset.py +0 -53
  107. xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
  108. xoa_driver/internals/hli_v2/indices/streams/base_stream.py +0 -234
  109. xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +0 -32
  110. xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
  111. xoa_driver/internals/hli_v2/modules/__interfaces.py +0 -21
  112. xoa_driver/internals/hli_v2/modules/base_module.py +0 -125
  113. xoa_driver/internals/hli_v2/modules/module_chimera.py +0 -358
  114. xoa_driver/internals/hli_v2/modules/module_l23ve.py +0 -58
  115. xoa_driver/internals/hli_v2/modules/module_l47.py +0 -230
  116. xoa_driver/internals/hli_v2/modules/module_l47ve.py +0 -8
  117. xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
  118. xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +0 -73
  119. xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +0 -75
  120. xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +0 -85
  121. xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +0 -144
  122. xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +0 -84
  123. xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +0 -40
  124. xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +0 -25
  125. xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +0 -25
  126. xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +0 -39
  127. xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +0 -55
  128. xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +0 -797
  129. xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +0 -25
  130. xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +0 -40
  131. xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +0 -339
  132. xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
  133. xoa_driver/internals/hli_v2/ports/base_port.py +0 -105
  134. xoa_driver/internals/hli_v2/ports/port_l23/__init__.py +0 -0
  135. xoa_driver/internals/hli_v2/ports/port_l23/bases/__init__.py +0 -0
  136. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_capture.py +0 -64
  137. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +0 -441
  138. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +0 -172
  139. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +0 -156
  140. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +0 -117
  141. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +0 -59
  142. xoa_driver/internals/hli_v2/ports/port_l23/chimera/__init__.py +0 -0
  143. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  144. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/_utils.py +0 -15
  145. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +0 -340
  146. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +0 -99
  147. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +0 -36
  148. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +0 -116
  149. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +0 -102
  150. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +0 -113
  151. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +0 -420
  152. xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +0 -22
  153. xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +0 -22
  154. xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +0 -36
  155. xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +0 -49
  156. xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +0 -96
  157. xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +0 -144
  158. xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +0 -60
  159. xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +0 -66
  160. xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +0 -53
  161. xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +0 -58
  162. xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +0 -67
  163. xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +0 -149
  164. xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +0 -28
  165. xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +0 -22
  166. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +0 -342
  167. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -50
  168. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +0 -65
  169. xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +0 -81
  170. xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
  171. xoa_driver/internals/hli_v2/ports/port_l47/counters.py +0 -146
  172. xoa_driver/internals/hli_v2/ports/port_l47/main.py +0 -137
  173. xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +0 -20
  174. xoa_driver/internals/hli_v2/revisions.py +0 -11
  175. xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
  176. xoa_driver/internals/hli_v2/testers/_base_tester.py +0 -207
  177. xoa_driver/internals/hli_v2/testers/genuine/__init__.py +0 -0
  178. xoa_driver/internals/hli_v2/testers/genuine/l_23/__init__.py +0 -0
  179. xoa_driver/internals/hli_v2/testers/genuine/l_23/health.py +0 -16
  180. xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +0 -34
  181. xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +0 -50
  182. xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +0 -26
  183. xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +0 -38
  184. xoa_driver/internals/hli_v2/testers/l23_tester.py +0 -159
  185. xoa_driver/internals/hli_v2/testers/l23ve_tester.py +0 -98
  186. xoa_driver/internals/hli_v2/testers/l47_tester.py +0 -95
  187. xoa_driver/internals/hli_v2/testers/l47ve_tester.py +0 -50
  188. xoa_driver/v2/__init__.py +0 -11
  189. xoa_driver/v2/misc.py +0 -77
  190. xoa_driver/v2/modules.py +0 -308
  191. xoa_driver/v2/ports.py +0 -232
  192. xoa_driver/v2/testers.py +0 -24
  193. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.5.0.dist-info}/WHEEL +0 -0
  194. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.5.0.dist-info}/licenses/LICENSE +0 -0
  195. {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.5.0.dist-info}/top_level.txt +0 -0
  196. /xoa_driver/internals/{hli_v1 → hli}/__init__.py +0 -0
  197. /xoa_driver/internals/{hli_v1 → hli}/indices/__init__.py +0 -0
  198. /xoa_driver/internals/{hli_v1 → hli}/indices/base_index.py +0 -0
  199. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/__init__.py +0 -0
  200. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/cg.py +0 -0
  201. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/histogram.py +0 -0
  202. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l2.py +0 -0
  203. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l3.py +0 -0
  204. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/raw.py +0 -0
  205. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/replay.py +0 -0
  206. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tcp.py +0 -0
  207. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tls.py +0 -0
  208. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/udp.py +0 -0
  209. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/user_state.py +0 -0
  210. /xoa_driver/internals/{hli_v1 → hli}/indices/filter/__init__.py +0 -0
  211. /xoa_driver/internals/{hli_v1 → hli}/indices/filter/genuine_filter.py +0 -0
  212. /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/__init__.py +0 -0
  213. /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/genuine_macsecsc.py +0 -0
  214. /xoa_driver/internals/{hli_v1 → hli}/indices/streams/__init__.py +0 -0
  215. /xoa_driver/internals/{hli_v1 → hli}/indices/streams/genuine_stream.py +0 -0
  216. /xoa_driver/internals/{hli_v1 → hli}/modules/__init__.py +0 -0
  217. /xoa_driver/internals/{hli_v1 → hli}/modules/__interfaces.py +0 -0
  218. /xoa_driver/internals/{hli_v1 → hli}/modules/base_module.py +0 -0
  219. /xoa_driver/internals/{hli_v1 → hli}/modules/module_l23ve.py +0 -0
  220. /xoa_driver/internals/{hli_v1 → hli}/modules/module_l47ve.py +0 -0
  221. /xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/__init__.py +0 -0
  222. /xoa_driver/internals/{hli_v1 → hli}/ports/__init__.py +0 -0
  223. /xoa_driver/internals/{hli_v1 → hli}/ports/base_port.py +0 -0
  224. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/__init__.py +0 -0
  225. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/__init__.py +0 -0
  226. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_capture.py +0 -0
  227. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_reception_statistics.py +0 -0
  228. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/__init__.py +0 -0
  229. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  230. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/_utils.py +0 -0
  231. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/general.py +0 -0
  232. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/shadow.py +0 -0
  233. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/working.py +0 -0
  234. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_custom_distribution.py +0 -0
  235. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_distribution.py +0 -0
  236. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_emulation.py +0 -0
  237. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/reception_statistics.py +0 -0
  238. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/transmission_statistics.py +0 -0
  239. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_combi.py +0 -0
  240. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_d.py +0 -0
  241. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_e.py +0 -0
  242. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_f.py +0 -0
  243. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_h.py +0 -0
  244. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_i.py +0 -0
  245. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_j.py +0 -0
  246. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_k.py +0 -0
  247. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l.py +0 -0
  248. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_m.py +0 -0
  249. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/fault_jkl.py +0 -0
  250. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/freya_l1.py +0 -0
  251. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ghijkl.py +0 -0
  252. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -0
  253. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_l.py +0 -0
  254. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/__init__.py +0 -0
  255. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/counters.py +0 -0
  256. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/packet_engine.py +0 -0
  257. /xoa_driver/internals/{hli_v1 → hli}/revisions.py +0 -0
  258. /xoa_driver/internals/{hli_v1 → hli}/testers/__init__.py +0 -0
  259. /xoa_driver/internals/{hli_v1 → hli}/testers/_base_tester.py +0 -0
  260. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/__init__.py +0 -0
  261. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/__init__.py +0 -0
  262. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/health.py +0 -0
  263. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/rest_api.py +0 -0
  264. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/time_keeper.py +0 -0
  265. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/upload_file.py +0 -0
  266. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/management_interface.py +0 -0
  267. /xoa_driver/internals/{hli_v1 → hli}/testers/l23ve_tester.py +0 -0
  268. /xoa_driver/internals/{hli_v1 → hli}/testers/l47ve_tester.py +0 -0
@@ -1,3 +1,5 @@
1
+ """The exception high-level function module."""
2
+
1
3
  from __future__ import annotations
2
4
 
3
5
  from xoa_driver.ports import GenericAnyPort
@@ -1,3 +1,5 @@
1
+ """The packet headers high-level function module."""
2
+
1
3
  from ipaddress import IPv4Address, IPv6Address
2
4
  from binascii import hexlify
3
5
  from xoa_driver.misc import Hex
@@ -1,13 +1,23 @@
1
+ """
2
+ The resource management high-level function module,
3
+ including testers, modules, ports, and streams.
4
+ """
5
+
1
6
  from __future__ import annotations
2
7
  import asyncio
3
- import typing as t
8
+ from typing import (
9
+ TYPE_CHECKING,
10
+ Any,
11
+ Union,
12
+ )
4
13
  from xoa_driver import enums, testers
5
14
  from xoa_driver.utils import apply
6
- from xoa_driver.internals.hli_v2.ports.port_l23.family_l import FamilyL
7
- from xoa_driver.internals.hli_v2.ports.port_l23.family_l1 import FamilyL1
8
- from xoa_driver.ports import GenericAnyPort
9
- from xoa_driver.modules import GenericAnyModule, GenericL23Module, ModuleChimera, Z800FreyaModule
10
- from xoa_driver.testers import GenericAnyTester, L23Tester
15
+ if TYPE_CHECKING:
16
+ from xoa_driver.internals.hli.ports.port_l23.family_l import FamilyL
17
+ from xoa_driver.internals.hli.ports.port_l23.family_l1 import FamilyFreya
18
+ from xoa_driver.ports import GenericAnyPort, GenericL23Port
19
+ from xoa_driver.modules import GenericAnyModule, GenericL23Module, ModuleChimera, Z800FreyaModule, Z1600EdunModule
20
+ from xoa_driver.testers import GenericAnyTester, L23Tester
11
21
  from .exceptions import (
12
22
  NotSupportMedia,
13
23
  NotSupportPortSpeed,
@@ -18,10 +28,6 @@ from itertools import chain # type: ignore[Pylance false warning]
18
28
  from datetime import datetime
19
29
  import json
20
30
 
21
- PcsPmaSupported = (FamilyL, FamilyL1)
22
- AutoNegSupported = (FamilyL, FamilyL1)
23
- LinkTrainingSupported = FamilyL
24
-
25
31
 
26
32
  # region Testers
27
33
  async def reserve_tester(tester: GenericAnyTester, force: bool = True) -> None:
@@ -35,13 +41,8 @@ async def reserve_tester(tester: GenericAnyTester, force: bool = True) -> None:
35
41
  :return:
36
42
  :rtype: None
37
43
  """
38
- r = await tester.reservation.get()
39
- if force and r.operation == enums.ReservedStatus.RESERVED_BY_OTHER:
40
- await tester.reservation.set_relinquish()
41
- await asyncio.gather(*(release_module(m, True) for m in tester.modules))
42
- await tester.reservation.set_reserve()
43
- elif r.operation == enums.ReservedStatus.RELEASED:
44
- await tester.reservation.set_reserve()
44
+ await release_tester(tester, force)
45
+ await tester.reservation.set_reserve()
45
46
 
46
47
 
47
48
  async def release_tester(
@@ -127,12 +128,8 @@ async def reserve_module(module: GenericAnyModule, force: bool = True) -> None:
127
128
  :return:
128
129
  :rtype: None
129
130
  """
130
- r = await module.reservation.get()
131
- if force and r.operation == enums.ReservedStatus.RESERVED_BY_OTHER:
132
- await release_module(module, True)
133
- await module.reservation.set_reserve()
134
- elif r.operation == enums.ReservedStatus.RELEASED:
135
- await module.reservation.set_reserve()
131
+ await release_module(module, force)
132
+ await module.reservation.set_reserve()
136
133
 
137
134
 
138
135
  async def release_module(
@@ -159,14 +156,14 @@ async def release_module(
159
156
 
160
157
  def get_module_supported_media(
161
158
  module: GenericL23Module | ModuleChimera,
162
- ) -> list[dict[str, t.Any]]:
159
+ ) -> list[dict[str, Any]]:
163
160
  """
164
161
  Get a list of supported media, port speed and count of the module.
165
162
 
166
163
  :param module: The module object
167
164
  :type module: GenericAnyModule
168
165
  :return: List of supported media, port speed and count
169
- :rtype: list[dict[str, t.Any]]
166
+ :rtype: list[dict[str, Any]]
170
167
  """
171
168
  supported_media_list = []
172
169
  item = {}
@@ -183,7 +180,7 @@ def get_module_supported_media(
183
180
 
184
181
 
185
182
  async def set_module_media_config(
186
- module: t.Union[GenericL23Module, ModuleChimera],
183
+ module: Union[GenericL23Module, ModuleChimera],
187
184
  media: enums.MediaConfigurationType,
188
185
  force: bool = True,
189
186
  ) -> None:
@@ -219,7 +216,7 @@ async def set_module_media_config(
219
216
 
220
217
 
221
218
  async def set_module_port_config(
222
- module: t.Union[GenericL23Module, ModuleChimera],
219
+ module: Union[GenericL23Module, ModuleChimera],
223
220
  port_count: int,
224
221
  port_speed: int,
225
222
  force: bool = True,
@@ -228,7 +225,7 @@ async def set_module_port_config(
228
225
  Set module's port-speed configuration
229
226
 
230
227
  :param module: The module object
231
- :type module: t.Union[GenericL23Module, ModuleChimera]
228
+ :type module: Union[GenericL23Module, ModuleChimera]
232
229
  :param port_count: The port count
233
230
  :type port_count: int
234
231
  :param port_speed: The port speed in Mbps, e.g. 40000 for 40G
@@ -267,7 +264,7 @@ async def set_module_port_config(
267
264
 
268
265
 
269
266
  async def set_module_config(
270
- module: t.Union[GenericL23Module, ModuleChimera],
267
+ module: Union[GenericL23Module, ModuleChimera],
271
268
  media: enums.MediaConfigurationType,
272
269
  port_count: int,
273
270
  port_speed: int,
@@ -276,7 +273,7 @@ async def set_module_config(
276
273
  """Change the module configuration to the target media, port count and port speed.
277
274
 
278
275
  :param module: the module object
279
- :type module: t.Union[GenericL23Module, ModuleChimera]
276
+ :type module: Union[GenericL23Module, ModuleChimera]
280
277
  :param media: the target media for the module
281
278
  :type media: enums.MediaConfigurationType
282
279
  :param port_count: the target port count
@@ -341,12 +338,13 @@ async def get_module_eol_days(module: GenericAnyModule) -> int:
341
338
  return timedelta.days
342
339
 
343
340
 
344
- async def get_module_cage_insertion_count(module: Z800FreyaModule, cage_index: int) -> int:
341
+ from xoa_driver.modules import GenericAnyModule, GenericL23Module, ModuleChimera, Z800FreyaModule, Z1600EdunModule
342
+ async def get_module_cage_insertion_count(module: Union[Z800FreyaModule, Z1600EdunModule], cage_index: int) -> int:
345
343
  """
346
344
  Get module cage insertion count
347
345
 
348
346
  :param module: The Z800 Freya module object
349
- :type module: Z800FreyaModule
347
+ :type module: Union[Z800FreyaModule, Z1600EdunModule]
350
348
  :param cage_index: The cage index
351
349
  :type module: int
352
350
  :return: Insertion count of the cage
@@ -364,6 +362,22 @@ async def get_module_cage_insertion_count(module: Z800FreyaModule, cage_index: i
364
362
  return result
365
363
 
366
364
 
365
+ async def get_module_cage_count(module: Union[Z800FreyaModule, Z1600EdunModule]) -> int:
366
+ """
367
+ Get module cage count
368
+
369
+ :param module: The Z800 Freya module object
370
+ :type module: Union[Z800FreyaModule, Z1600EdunModule]
371
+ :return: The number of cages in the module
372
+ :rtype: int
373
+ """
374
+ resp = await module.health.cage_insertion.get()
375
+ info_js = resp.info
376
+ info_dict = json.loads(info_js)
377
+ result = len(info_dict['1']['data'])
378
+ return result
379
+
380
+
367
381
  # endregion
368
382
 
369
383
 
@@ -470,12 +484,12 @@ async def release_ports(*ports: GenericAnyPort) -> None:
470
484
 
471
485
 
472
486
  # region Streams
473
- async def remove_streams(port: GenericAnyPort) -> None:
487
+ async def remove_streams(port: GenericL23Port) -> None:
474
488
  """
475
489
  Remove all streams on a port witout resetting the port.
476
490
 
477
491
  :param port: The port object
478
- :type port: GenericAnyPort
492
+ :type port: GenericL23Port
479
493
  """
480
494
  await port.streams.server_sync()
481
495
  await asyncio.gather(*(s.delete() for s in port.streams))
@@ -1,14 +1,20 @@
1
1
  from __future__ import annotations
2
- from typing import Any
2
+ from typing import (
3
+ TYPE_CHECKING,
4
+ Any,
5
+ )
6
+
7
+ if TYPE_CHECKING:
8
+ from xoa_driver.ports import GenericAnyPort
3
9
 
4
- from xoa_driver.ports import GenericAnyPort
5
10
  from xoa_driver.internals.core import interfaces as itf
6
11
  from xoa_driver.lli import commands
7
12
  from xoa_driver import enums
8
13
 
9
14
 
10
15
  def get_ctx(port: GenericAnyPort) -> tuple["itf.IConnection", int, int]:
11
- return (port._conn, *port.kind)
16
+ module_id, port_id = port.kind # Explicitly unpack to two ints
17
+ return (port._conn, module_id, port_id)
12
18
 
13
19
 
14
20
  def dictionize_autoneg_status(
xoa_driver/hlfuncs.py CHANGED
@@ -1,11 +1,14 @@
1
1
  #: High-level functions
2
+ """High-level functions."""
3
+
2
4
  from xoa_driver.functions import (
3
5
  anlt,
4
- cli,
6
+ cli as config_io,
5
7
  mgmt,
6
8
  anlt_ll_debug,
7
9
  exceptions,
8
10
  headers,
11
+ cmis,
9
12
  )
10
13
 
11
14
  __all__ = (
@@ -13,6 +16,7 @@ __all__ = (
13
16
  "mgmt",
14
17
  "anlt_ll_debug",
15
18
  "exceptions",
16
- "cli",
17
- "headers"
19
+ "config_io",
20
+ "headers",
21
+ "cmis",
18
22
  )
@@ -23,7 +23,8 @@ from xoa_driver.internals.core.transporter.protocol.payload import (
23
23
  XmpMacAddress,
24
24
  XmpSequence,
25
25
  XmpStr,
26
- Hex
26
+ Hex,
27
+ XmpJson,
27
28
  )
28
29
  from .enums import (
29
30
  ReservedStatus,
@@ -1239,7 +1240,7 @@ class C_WATCHDOG:
1239
1240
  @dataclass
1240
1241
  class C_DEBUGCMD:
1241
1242
  """
1242
- Chassis debug command
1243
+ Chassis debug command for internal use only.
1243
1244
  """
1244
1245
 
1245
1246
  code: typing.ClassVar[int] = 37
@@ -1249,16 +1250,11 @@ class C_DEBUGCMD:
1249
1250
  _cmd_xindex: int
1250
1251
 
1251
1252
  class GetDataAttr(ResponseBodyStruct):
1252
- data: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()]))
1253
-
1254
- class SetDataAttr(RequestBodyStruct):
1255
- data: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()]))
1253
+ data: dict = field(XmpJson(min_len=2))
1256
1254
 
1257
1255
  def get(self) -> Token[GetDataAttr]:
1258
1256
  return Token(self._connection, build_get_request(self, indices=[self._cmd_xindex]))
1259
1257
 
1260
- def set(self, data: typing.List[int]) -> Token[None]:
1261
- return Token(self._connection, build_set_request(self, indices=[self._cmd_xindex], data=data))
1262
1258
 
1263
1259
 
1264
1260
  @register_command
@@ -2028,8 +2024,8 @@ class C_MODEL_NUMBER:
2028
2024
  _connection: 'interfaces.IConnection'
2029
2025
 
2030
2026
  class GetDataAttr(ResponseBodyStruct):
2031
- number: ChassisModelNumber = field(XmpInt())
2032
- """ChassisModelNumber, the model of the Xena tester"""
2027
+ number: str = field(XmpStr())
2028
+ """str, the model of the Xena tester"""
2033
2029
 
2034
2030
  def get(self) -> Token[GetDataAttr]:
2035
2031
  """Get the Xena chassis model number.
@@ -1069,6 +1069,18 @@ class MediaConfigurationType(IntEnum):
1069
1069
  QSFP28_NRZ_ANLT = 123
1070
1070
  """QSFP28, 25G serdes, L1/ANLT"""
1071
1071
 
1072
+ SMPX_112 = 124
1073
+ """SMPX 112Gbps serdes"""
1074
+
1075
+ SMPX_224 = 125
1076
+ """SMPX 224Gbps serdes"""
1077
+
1078
+ OSFP_1600 = 126
1079
+ """OSFP 1.6T"""
1080
+
1081
+ OSFP_1600_ANLT = 127
1082
+ """OSFP 1.6T, L1/ANLT"""
1083
+
1072
1084
  UNKNOWN = 255
1073
1085
 
1074
1086
 
@@ -3165,7 +3177,13 @@ class ChassisModelName(IntEnum):
3165
3177
  Z_800_Q_A_C_FREYA = 16
3166
3178
  Z_800_O_A_C_FREYA = 17
3167
3179
  E_100_Q_C_CHIMERA = 18
3168
-
3180
+ Z_100_Q_X_C_LOKI = 19
3181
+ Z_400_Q_X_C_THOR = 20
3182
+ Z_800_Q_X_C_FREYA = 21
3183
+ Z_1604_S_C_EDUN = 22
3184
+ Z_1608_O_C_EDUN = 23
3185
+ B_6400 = 24
3186
+
3169
3187
  class ModuleModelName(IntEnum):
3170
3188
  NA = 0
3171
3189
  Z_01_T_ODIN = 1
@@ -3180,6 +3198,12 @@ class ModuleModelName(IntEnum):
3180
3198
  Z_800_Q_FREYA = 10
3181
3199
  Z_800_O_FREYA = 11
3182
3200
  E_100_Q_CHIMERA = 12
3201
+ Z_100_Q_X_LOKI = 13
3202
+ Z_400_Q_X_THOR = 14
3203
+ Z_800_Q_X_FREYA = 15
3204
+ Z_1604_S_EDUN = 16
3205
+ Z_1608_O_EDUN = 17
3206
+ Z_1616_O_EDUN = 18
3183
3207
 
3184
3208
  class ModuleConfigStatus(IntEnum):
3185
3209
  UNKNOWN = 0
@@ -570,6 +570,8 @@ class P_CAPABILITIES:
570
570
  * Bit 4: Can monitor PCS RX Lane Skew
571
571
  * Bit 5: Can control PCS TX Lane Skew
572
572
  * Bit 6: Can FEC error injection
573
+ * Bit 8: Can Pre-coding
574
+ * Bit 9: Can Gray-coding
573
575
  """
574
576
  # fec_engines: int = field(XmpInt(), min_version=465)
575
577
  # """The number of FEC engines available"""
@@ -599,7 +601,44 @@ class P_CAPABILITIES:
599
601
  * Bit 0: Normal modifier (16/24-bit) supports little-endian
600
602
  * Bit 1: Extended modifier (32-bit) supports little-endian
601
603
  """
602
-
604
+ capture_bitmask: int = field(XmpInt(), min_version=470)
605
+ """integer, bitmask indicating capture capabilities.
606
+
607
+ If all bits are 0: CAPTURE_NOT_SUPPORTED
608
+
609
+ Bits [0:11] are for Start triggers:
610
+
611
+ * Bit 0: CAPTURE_START_ON
612
+ * Bit 1: CAPTURE_START_FCSERROR
613
+ * Bit 2: CAPTURE_START_FILTER
614
+ * Bit 3: CAPTURE_START_PLDERROR
615
+ * Bit 4-11: Reserved
616
+
617
+ Bits [12:23] are for Stop triggers:
618
+
619
+ * Bit 12: CAPTURE_STOP_FULL
620
+ * Bit 13: CAPTURE_STOP_FCSERROR
621
+ * Bit 14: CAPTURE_STOP_FILTER
622
+ * Bit 15: CAPTURE_STOP_PLDERROR
623
+ * Bit 16: CAPTURE_STOP_USERSTOP
624
+ * Bit 17-23: Reserved
625
+
626
+ Bits [24:31] are for Keep modes:
627
+
628
+ * Bit 24: CAPTURE_KEEP_ALL
629
+ * Bit 25: CAPTURE_KEEP_FCSERR
630
+ * Bit 26: CAPTURE_KEEP_NOTPLD
631
+ * Bit 27: CAPTURE_KEEP_TPLD
632
+ * Bit 28: CAPTURE_KEEP_FILTER
633
+ * Bit 29: CAPTURE_KEEP_PLDERR
634
+ * Bit 30-31: Reserved
635
+ """
636
+ num_txeq_pre: int = field(XmpInt(), min_version=470)
637
+ """The number of postcursors = num_txeq - num_txeq_pre - 1."""
638
+ txeq_max_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
639
+ """max value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
640
+ txeq_min_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
641
+ """min-value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
603
642
 
604
643
 
605
644
  def get(self) -> Token[GetDataAttr]:
@@ -1510,7 +1549,6 @@ class P_XMITONE:
1510
1549
  A valid Frame Check Sum is written into the final four bytes.
1511
1550
 
1512
1551
  :param hex_data: raw bytes of the packet in hex to transmit
1513
- :rtype: typing.List[str]
1514
1552
  """
1515
1553
 
1516
1554
  return Token(self._connection, build_set_request(self, module=self._module, port=self._port, hex_data=hex_data))
@@ -3636,17 +3674,17 @@ class P_LPPARTNERAUTONEG:
3636
3674
  _port: int
3637
3675
 
3638
3676
  class GetDataAttr(ResponseBodyStruct):
3639
- cap_100base_tx: YesNo = field(XmpByte())
3677
+ can_100base_tx: YesNo = field(XmpByte())
3640
3678
  """coded byte, specifying whether the link partner is capable of 100BASE-TX."""
3641
- cap_1000base_t: YesNo = field(XmpByte())
3679
+ can_1000base_t: YesNo = field(XmpByte())
3642
3680
  """coded byte. specifying whether the link partner is capable of 1000BASE-T."""
3643
- cap_10gbase_t: YesNo = field(XmpByte())
3681
+ can_10gbase_t: YesNo = field(XmpByte())
3644
3682
  """coded byte. specifying whether the link partner is capable of 10GBASE-T."""
3645
- cap_100base_kx: YesNo = field(XmpByte())
3646
- """coded byte. specifying whether the link partner is capable of 100BASE-KX."""
3647
- cap_10gbase_kx4: YesNo = field(XmpByte())
3648
- """coded byte. specifying whether the link partner is capable of 10GBASE-KX4."""
3649
- cap_10gbase_kr: YesNo = field(XmpByte())
3683
+ can_2p5gbase_t: YesNo = field(XmpByte())
3684
+ """coded byte. specifying whether the link partner is capable of 2.5GBASE-T."""
3685
+ can_5gbase_t: YesNo = field(XmpByte())
3686
+ """coded byte. specifying whether the link partner is capable of 5GBASE-T."""
3687
+ can_10gbase_kr: YesNo = field(XmpByte())
3650
3688
  """coded byte. specifying whether the link partner is capable of 10GBASE-KR."""
3651
3689
 
3652
3690
  def get(self) -> Token[GetDataAttr]:
@@ -3654,8 +3692,8 @@ class P_LPPARTNERAUTONEG:
3654
3692
  * whether the link partner is capable of 100BASE-TX
3655
3693
  * whether the link partner is capable of 1000BASE-T
3656
3694
  * whether the link partner is capable of 10GBASE-T
3657
- * whether the link partner is capable of 100BASE-KX
3658
- * whether the link partner is capable of 10GBASE-KX4
3695
+ * whether the link partner is capable of 2.5GBASE-T
3696
+ * whether the link partner is capable of 5GBASE-T
3659
3697
  * whether the link partner is capable of 10GBASE-KR
3660
3698
 
3661
3699
  :return: the the Energy Efficient Ethernet (EEE) capabilities advertised during auto-negotiation by the far side (link partner)