tdl-xoa-driver 1.2.0__py3-none-any.whl → 1.4.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 (240) hide show
  1. {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/METADATA +5 -5
  2. tdl_xoa_driver-1.4.0.dist-info/RECORD +218 -0
  3. {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/WHEEL +1 -1
  4. xoa_driver/__init__.py +2 -2
  5. xoa_driver/enums.py +2 -0
  6. xoa_driver/functions/anlt.py +2 -2
  7. xoa_driver/functions/exceptions.py +7 -0
  8. xoa_driver/functions/mgmt.py +62 -25
  9. xoa_driver/hlfuncs.py +1 -1
  10. xoa_driver/internals/commands/enums.py +10 -1
  11. xoa_driver/internals/commands/m_commands.py +35 -3
  12. xoa_driver/internals/commands/p_commands.py +12 -10
  13. xoa_driver/internals/commands/pt_commands.py +21 -1
  14. xoa_driver/internals/commands/px_commands.py +1686 -6
  15. xoa_driver/internals/core/transporter/_request_id_counter.py +1 -1
  16. xoa_driver/internals/core/transporter/protocol/payload/__init__.py +3 -1
  17. xoa_driver/internals/core/transporter/protocol/payload/field.py +41 -0
  18. xoa_driver/internals/core/transporter/protocol/payload/types.py +19 -0
  19. xoa_driver/internals/{hli_v1 → hli}/indices/filter/base_filter.py +1 -1
  20. xoa_driver/internals/{hli_v1 → hli}/indices/length_term.py +1 -1
  21. xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/base_macsecsc.py +2 -2
  22. xoa_driver/internals/{hli_v1 → hli}/indices/match_term.py +1 -1
  23. xoa_driver/internals/{hli_v1 → hli}/indices/port_dataset.py +1 -1
  24. xoa_driver/internals/{hli_v1 → hli}/indices/streams/base_stream.py +1 -1
  25. xoa_driver/internals/{hli_v1 → hli}/modules/module_chimera.py +20 -15
  26. xoa_driver/internals/{hli_v1 → hli}/modules/module_l47.py +1 -1
  27. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_combi.py +1 -1
  28. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_d.py +1 -1
  29. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_e.py +1 -1
  30. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_f.py +1 -1
  31. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_g.py +17 -2
  32. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_h.py +1 -1
  33. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_i.py +1 -1
  34. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_j.py +1 -1
  35. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_k.py +1 -1
  36. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l.py +1 -1
  37. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l1.py +1 -1
  38. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_m.py +1 -1
  39. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_n.py +1 -1
  40. xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/module_l23_base.py +18 -12
  41. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23.py +3 -3
  42. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23_genuine.py +4 -4
  43. xoa_driver/internals/hli/ports/port_l23/bases/port_transceiver.py +247 -0
  44. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_transmission_statistics.py +1 -1
  45. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_chimera.py +1 -1
  46. xoa_driver/internals/{hli_v2 → hli}/ports/port_l23/family_g.py +5 -0
  47. xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/port_l23ve.py +2 -2
  48. xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/main.py +2 -2
  49. xoa_driver/internals/{hli_v1 → hli}/testers/l23_tester.py +1 -1
  50. xoa_driver/internals/{hli_v1 → hli}/testers/l47_tester.py +2 -2
  51. xoa_driver/internals/state_storage/modules_state.py +1 -1
  52. xoa_driver/misc.py +12 -17
  53. xoa_driver/modules.py +18 -22
  54. xoa_driver/ports.py +20 -20
  55. xoa_driver/testers.py +4 -8
  56. tdl_xoa_driver-1.2.0.dist-info/RECORD +0 -325
  57. xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +0 -117
  58. xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +0 -77
  59. xoa_driver/internals/hli_v2/__init__.py +0 -0
  60. xoa_driver/internals/hli_v2/indices/__init__.py +0 -0
  61. xoa_driver/internals/hli_v2/indices/base_index.py +0 -39
  62. xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
  63. xoa_driver/internals/hli_v2/indices/connection_group/cg.py +0 -115
  64. xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +0 -59
  65. xoa_driver/internals/hli_v2/indices/connection_group/l2.py +0 -71
  66. xoa_driver/internals/hli_v2/indices/connection_group/l3.py +0 -96
  67. xoa_driver/internals/hli_v2/indices/connection_group/raw.py +0 -148
  68. xoa_driver/internals/hli_v2/indices/connection_group/replay.py +0 -89
  69. xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +0 -261
  70. xoa_driver/internals/hli_v2/indices/connection_group/tls.py +0 -166
  71. xoa_driver/internals/hli_v2/indices/connection_group/udp.py +0 -112
  72. xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +0 -25
  73. xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
  74. xoa_driver/internals/hli_v2/indices/filter/base_filter.py +0 -50
  75. xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +0 -17
  76. xoa_driver/internals/hli_v2/indices/length_term.py +0 -44
  77. xoa_driver/internals/hli_v2/indices/match_term.py +0 -49
  78. xoa_driver/internals/hli_v2/indices/port_dataset.py +0 -53
  79. xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
  80. xoa_driver/internals/hli_v2/indices/streams/base_stream.py +0 -234
  81. xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +0 -32
  82. xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
  83. xoa_driver/internals/hli_v2/modules/__interfaces.py +0 -21
  84. xoa_driver/internals/hli_v2/modules/base_module.py +0 -125
  85. xoa_driver/internals/hli_v2/modules/module_chimera.py +0 -358
  86. xoa_driver/internals/hli_v2/modules/module_l23ve.py +0 -58
  87. xoa_driver/internals/hli_v2/modules/module_l47.py +0 -230
  88. xoa_driver/internals/hli_v2/modules/module_l47ve.py +0 -8
  89. xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
  90. xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +0 -73
  91. xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +0 -75
  92. xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +0 -85
  93. xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +0 -144
  94. xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +0 -84
  95. xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +0 -40
  96. xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +0 -25
  97. xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +0 -25
  98. xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +0 -39
  99. xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +0 -55
  100. xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +0 -797
  101. xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +0 -25
  102. xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +0 -40
  103. xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +0 -339
  104. xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
  105. xoa_driver/internals/hli_v2/ports/base_port.py +0 -105
  106. xoa_driver/internals/hli_v2/ports/port_l23/__init__.py +0 -0
  107. xoa_driver/internals/hli_v2/ports/port_l23/bases/__init__.py +0 -0
  108. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_capture.py +0 -64
  109. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +0 -441
  110. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +0 -172
  111. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +0 -156
  112. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +0 -117
  113. xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +0 -59
  114. xoa_driver/internals/hli_v2/ports/port_l23/chimera/__init__.py +0 -0
  115. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  116. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/_utils.py +0 -15
  117. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +0 -340
  118. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +0 -99
  119. xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +0 -36
  120. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +0 -116
  121. xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +0 -102
  122. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +0 -113
  123. xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +0 -420
  124. xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +0 -22
  125. xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +0 -22
  126. xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +0 -36
  127. xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +0 -49
  128. xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +0 -96
  129. xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +0 -144
  130. xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +0 -60
  131. xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +0 -66
  132. xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +0 -53
  133. xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +0 -58
  134. xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +0 -67
  135. xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +0 -149
  136. xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +0 -28
  137. xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +0 -22
  138. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +0 -342
  139. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -50
  140. xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +0 -65
  141. xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +0 -81
  142. xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
  143. xoa_driver/internals/hli_v2/ports/port_l47/counters.py +0 -146
  144. xoa_driver/internals/hli_v2/ports/port_l47/main.py +0 -137
  145. xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +0 -20
  146. xoa_driver/internals/hli_v2/revisions.py +0 -11
  147. xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
  148. xoa_driver/internals/hli_v2/testers/_base_tester.py +0 -207
  149. xoa_driver/internals/hli_v2/testers/genuine/__init__.py +0 -0
  150. xoa_driver/internals/hli_v2/testers/genuine/l_23/__init__.py +0 -0
  151. xoa_driver/internals/hli_v2/testers/genuine/l_23/health.py +0 -16
  152. xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +0 -34
  153. xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +0 -50
  154. xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +0 -26
  155. xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +0 -38
  156. xoa_driver/internals/hli_v2/testers/l23_tester.py +0 -159
  157. xoa_driver/internals/hli_v2/testers/l23ve_tester.py +0 -98
  158. xoa_driver/internals/hli_v2/testers/l47_tester.py +0 -95
  159. xoa_driver/internals/hli_v2/testers/l47ve_tester.py +0 -50
  160. xoa_driver/v2/__init__.py +0 -11
  161. xoa_driver/v2/misc.py +0 -77
  162. xoa_driver/v2/modules.py +0 -308
  163. xoa_driver/v2/ports.py +0 -232
  164. xoa_driver/v2/testers.py +0 -24
  165. {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/licenses/LICENSE +0 -0
  166. {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/top_level.txt +0 -0
  167. /xoa_driver/internals/{hli_v1 → hli}/__init__.py +0 -0
  168. /xoa_driver/internals/{hli_v1 → hli}/indices/__init__.py +0 -0
  169. /xoa_driver/internals/{hli_v1 → hli}/indices/base_index.py +0 -0
  170. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/__init__.py +0 -0
  171. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/cg.py +0 -0
  172. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/histogram.py +0 -0
  173. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l2.py +0 -0
  174. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l3.py +0 -0
  175. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/raw.py +0 -0
  176. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/replay.py +0 -0
  177. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tcp.py +0 -0
  178. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tls.py +0 -0
  179. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/udp.py +0 -0
  180. /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/user_state.py +0 -0
  181. /xoa_driver/internals/{hli_v1 → hli}/indices/filter/__init__.py +0 -0
  182. /xoa_driver/internals/{hli_v1 → hli}/indices/filter/genuine_filter.py +0 -0
  183. /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/__init__.py +0 -0
  184. /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/genuine_macsecsc.py +0 -0
  185. /xoa_driver/internals/{hli_v1 → hli}/indices/streams/__init__.py +0 -0
  186. /xoa_driver/internals/{hli_v1 → hli}/indices/streams/genuine_stream.py +0 -0
  187. /xoa_driver/internals/{hli_v1 → hli}/modules/__init__.py +0 -0
  188. /xoa_driver/internals/{hli_v1 → hli}/modules/__interfaces.py +0 -0
  189. /xoa_driver/internals/{hli_v1 → hli}/modules/base_module.py +0 -0
  190. /xoa_driver/internals/{hli_v1 → hli}/modules/module_l23ve.py +0 -0
  191. /xoa_driver/internals/{hli_v1 → hli}/modules/module_l47ve.py +0 -0
  192. /xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/__init__.py +0 -0
  193. /xoa_driver/internals/{hli_v1 → hli}/ports/__init__.py +0 -0
  194. /xoa_driver/internals/{hli_v1 → hli}/ports/base_port.py +0 -0
  195. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/__init__.py +0 -0
  196. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/__init__.py +0 -0
  197. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_capture.py +0 -0
  198. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_reception_statistics.py +0 -0
  199. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/__init__.py +0 -0
  200. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
  201. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/_utils.py +0 -0
  202. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/general.py +0 -0
  203. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/shadow.py +0 -0
  204. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/working.py +0 -0
  205. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_custom_distribution.py +0 -0
  206. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_distribution.py +0 -0
  207. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_emulation.py +0 -0
  208. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/reception_statistics.py +0 -0
  209. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/transmission_statistics.py +0 -0
  210. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_combi.py +0 -0
  211. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_d.py +0 -0
  212. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_e.py +0 -0
  213. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_f.py +0 -0
  214. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_h.py +0 -0
  215. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_i.py +0 -0
  216. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_j.py +0 -0
  217. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_k.py +0 -0
  218. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l.py +0 -0
  219. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l1.py +0 -0
  220. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_m.py +0 -0
  221. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/fault_jkl.py +0 -0
  222. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/freya_l1.py +0 -0
  223. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ghijkl.py +0 -0
  224. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -0
  225. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_l.py +0 -0
  226. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/__init__.py +0 -0
  227. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/counters.py +0 -0
  228. /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/packet_engine.py +0 -0
  229. /xoa_driver/internals/{hli_v1 → hli}/revisions.py +0 -0
  230. /xoa_driver/internals/{hli_v1 → hli}/testers/__init__.py +0 -0
  231. /xoa_driver/internals/{hli_v1 → hli}/testers/_base_tester.py +0 -0
  232. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/__init__.py +0 -0
  233. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/__init__.py +0 -0
  234. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/health.py +0 -0
  235. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/rest_api.py +0 -0
  236. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/time_keeper.py +0 -0
  237. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/upload_file.py +0 -0
  238. /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/management_interface.py +0 -0
  239. /xoa_driver/internals/{hli_v1 → hli}/testers/l23ve_tester.py +0 -0
  240. /xoa_driver/internals/{hli_v1 → hli}/testers/l47ve_tester.py +0 -0
@@ -12,7 +12,7 @@ class ReservedRequestID(IntEnum):
12
12
 
13
13
 
14
14
  class RequestIdCounter:
15
- """Aggrigator of request ID."""
15
+ """Aggregator of request ID."""
16
16
  __slots__ = ("__req_id", "__lock",)
17
17
 
18
18
  def __init__(self) -> None:
@@ -14,7 +14,8 @@ from .types import (
14
14
  XmpSequence,
15
15
  XmpShort,
16
16
  XmpStr,
17
- Hex
17
+ Hex,
18
+ XmpJson,
18
19
  )
19
20
 
20
21
  __all__ = (
@@ -32,6 +33,7 @@ __all__ = (
32
33
  "XmpShort",
33
34
  "XmpStr",
34
35
  "Hex",
36
+ "XmpJson"
35
37
  )
36
38
 
37
39
 
@@ -38,6 +38,7 @@ from .types import (
38
38
  # Preconverted Dynamic
39
39
  XmpStr,
40
40
  XmpSequence,
41
+ XmpJson,
41
42
  )
42
43
 
43
44
 
@@ -53,6 +54,7 @@ TYPES_FIXED = (
53
54
  TYPES_COMBI = (XmpHex,)
54
55
  TYPES_DYNAMIC = (XmpStr,)
55
56
  TYPES_COMPOSED = (XmpSequence,)
57
+ TYPES_JSON = (XmpJson,)
56
58
 
57
59
  # Important: The instances of the FieldSpecs will live as a class variables
58
60
  # which mean wea are not able to update its attributes during runtime.
@@ -194,6 +196,43 @@ class HexSpec(FieldSpecs):
194
196
  return next(iter(struct.unpack_from(format, buffer, offset)), b"")
195
197
 
196
198
 
199
+ class JsonSpec(FieldSpecs):
200
+ xmp_type: XmpJson
201
+
202
+ def __init__(
203
+ self,
204
+ xmp_type: XmpJson,
205
+ min_version: int | None = None,
206
+ max_version: int | None = None,
207
+ deprecated: bool = False,
208
+ deprecation_reason: str | None = None,
209
+ ) -> None:
210
+ super().__init__(xmp_type, min_version, max_version, deprecated, deprecation_reason)
211
+
212
+ @property
213
+ def is_dynamic(self) -> bool:
214
+ return True
215
+
216
+ def format(self, bsize: int | None = None) -> str:
217
+ return _build_format(self.xmp_type.data_format, bsize)
218
+
219
+ def calc_bsize(self, buff: memoryview | None = None, left_offset: int = 0) -> int | None:
220
+ if buff is None:
221
+ return None
222
+ return len(buff[left_offset:])
223
+
224
+ def get_context_formatter(self, client_type: Type[Any], is_response: bool) -> Callable[[Any], Any]:
225
+ if is_response:
226
+ return self.xmp_type.client_format
227
+ return self.xmp_type.server_format
228
+
229
+ def pack(self, format: str, val: bytes) -> bytes:
230
+ return val
231
+
232
+ def unpack(self, format: str, buffer: memoryview, offset: int) -> Any:
233
+ return next(iter(struct.unpack_from(format, buffer, offset)), b"")
234
+
235
+
197
236
  def _prepare_client_chunks(client_type: Type[Any], xmp_types_chunks: tuple) -> Callable[[Any], List[Tuple[Any, ...]]]:
198
237
  """Selecting the function for parsing data chunks from XMP types to Python types"""
199
238
  def converted_dcls(val_):
@@ -284,6 +323,8 @@ def field(
284
323
  specs_type = FieldSpecs
285
324
  elif isinstance(xmp_type, TYPES_COMBI):
286
325
  specs_type = HexSpec
326
+ elif isinstance(xmp_type, TYPES_JSON):
327
+ specs_type = JsonSpec
287
328
  else:
288
329
  return None
289
330
 
@@ -10,6 +10,7 @@ from typing import (
10
10
  TypeVar,
11
11
  cast,
12
12
  )
13
+ import json
13
14
 
14
15
  FMT_ORDER_NETWORK = '!'
15
16
  FMT_BYTES_STRING = 's'
@@ -21,6 +22,7 @@ FMT_INT = 'i'
21
22
  FMT_U_INT = 'I'
22
23
  FMT_SHORT = 'h'
23
24
  FMT_U_SHORT = 'H'
25
+ FMT_BYTES_JSON = 's'
24
26
 
25
27
  # region Base Type
26
28
 
@@ -170,4 +172,21 @@ class XmpSequence(XmpType[tuple]):
170
172
  self.repetitions = None
171
173
  self.data_format = "".join(f"{t.repetitions or ''}{t.data_format}" for t in self.types_chunk)
172
174
 
175
+
176
+ class XmpJson(XmpType[bytes]):
177
+ """Description class of XMP JSON type representation"""
178
+
179
+ __slots__ = ("min_len",)
180
+
181
+ def __init__(self, min_len: int | None = None) -> None:
182
+ self.data_format = FMT_BYTES_JSON
183
+ self.repetitions = None
184
+ self.min_len = min_len
185
+
186
+ def client_format(self, val: bytes) -> dict[str, Any]:
187
+ return json.loads(val.decode())
188
+
189
+ def server_format(self, val: dict) -> bytes:
190
+ return json.dumps(val).encode()
191
+
173
192
  # endregion
@@ -62,4 +62,4 @@ class BaseFilterIdx(BaseIndex):
62
62
  @classmethod
63
63
  async def _new(cls: Type[FT], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> FT:
64
64
  await PF_CREATE(conn, *kind).set()
65
- return cls(conn, kind, observer)
65
+ return cls(conn, kind, observer) # type: ignore
@@ -46,4 +46,4 @@ class LengthTermIdx(BaseIndex):
46
46
  @classmethod
47
47
  async def _new(cls: Type[LT], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> LT:
48
48
  await PL_CREATE(conn, *kind).set()
49
- return cls(conn, kind, observer)
49
+ return cls(conn, kind, observer) # type: ignore
@@ -190,7 +190,7 @@ class BaseMacSecTxScIdx(BaseIndex):
190
190
  @classmethod
191
191
  async def _new(cls: Type[BS], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> BS:
192
192
  await P_MACSEC_TXSC_CREATE(conn, *kind).set()
193
- return cls(conn, kind, observer)
193
+ return cls(conn, kind, observer) # type: ignore
194
194
 
195
195
 
196
196
  class BaseMacSecRxScIdx(BaseIndex):
@@ -221,4 +221,4 @@ class BaseMacSecRxScIdx(BaseIndex):
221
221
  @classmethod
222
222
  async def _new(cls: Type[BS], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> BS:
223
223
  await P_MACSEC_RXSC_CREATE(conn, *kind).set()
224
- return cls(conn, kind, observer)
224
+ return cls(conn, kind, observer) # type: ignore
@@ -61,4 +61,4 @@ class MatchTermIdx(BaseIndex):
61
61
  @classmethod
62
62
  async def _new(cls: Type[MT], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> MT:
63
63
  await PM_CREATE(conn, *kind).set()
64
- return cls(conn, kind, observer)
64
+ return cls(conn, kind, observer) # type: ignore
@@ -69,4 +69,4 @@ class PortDatasetIdx(BaseIndex):
69
69
  @classmethod
70
70
  async def _new(cls: Type[PD], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> PD:
71
71
  await PD_CREATE(conn, *kind).set()
72
- return cls(conn, kind, observer)
72
+ return cls(conn, kind, observer) # type: ignore
@@ -401,5 +401,5 @@ class BaseStreamIdx(BaseIndex):
401
401
  @classmethod
402
402
  async def _new(cls: Type[BS], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> BS:
403
403
  await PS_CREATE(conn, *kind).set()
404
- return cls(conn, kind, observer)
404
+ return cls(conn, kind, observer) # type: ignore
405
405
 
@@ -23,19 +23,20 @@ from xoa_driver.internals.commands import (
23
23
  M_CFPCONFIGEXT,
24
24
  M_UPGRADEPAR,
25
25
  M_VERSIONSTR,
26
+ M_RECONFIG_STATUS,
26
27
  )
27
28
 
28
- from xoa_driver.internals.hli_v1 import revisions
29
+ from xoa_driver.internals.hli import revisions
29
30
  from xoa_driver.internals.utils.managers import ports_manager as pm
30
31
  from xoa_driver.internals.utils import attributes as utils
31
32
  from xoa_driver.internals.state_storage import modules_state
32
33
  from xoa_driver import ports
33
- from xoa_driver.internals.hli_v1.modules.modules_l23.module_l23_base import MediaModule, CfpModule
34
+ from xoa_driver.internals.hli.modules.modules_l23.module_l23_base import MediaModule, CfpModule
34
35
  from . import base_module as bm
35
36
 
36
37
  if typing.TYPE_CHECKING:
37
38
  from xoa_driver.internals.core import interfaces as itf
38
- from xoa_driver.internals.hli_v1.modules.modules_l23.module_l23_base import ModuleL23
39
+ from xoa_driver.internals.hli.modules.modules_l23.module_l23_base import ModuleL23
39
40
  from . import __interfaces as m_itf
40
41
 
41
42
 
@@ -71,13 +72,20 @@ class ChCFP:
71
72
 
72
73
  :type: M_CFPTYPE
73
74
  """
74
- self.config = CfpModule(conn, module)
75
- """
76
- The CFP configuration of the test module.
77
75
 
78
- :type: CfpModule
79
- """
80
76
 
77
+ class ChConfig:
78
+ """Configuration test module (Chimera)."""
79
+
80
+ def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
81
+ self.media = MediaModule(conn, module)
82
+ """Test module's media type configuration."""
83
+
84
+ self.port_speed = CfpModule(conn, module)
85
+ """Test module's port speed configuration."""
86
+
87
+ self.status = M_RECONFIG_STATUS(conn, module.module_id)
88
+ """Test module's configuration status."""
81
89
 
82
90
  class ChUpgrade:
83
91
  """
@@ -220,13 +228,7 @@ class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
220
228
  :type: M_VERSIONSTR
221
229
  """
222
230
 
223
- self.media = MediaModule(conn, self)
224
- """Test module's media type.
225
-
226
- :type: MediaModule
227
- """
228
-
229
- self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
231
+ self.supported_configs = M_MEDIASUPPORT(conn, self.module_id)
230
232
  """Test module's available speeds.
231
233
 
232
234
  :type: M_MEDIASUPPORT
@@ -238,6 +240,9 @@ class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
238
240
  :type: M_NAME
239
241
  """
240
242
 
243
+ self.config = ChConfig(conn, self)
244
+ """Test module's configuration."""
245
+
241
246
  self.ports: pm.PortsManager["ports.PortChimera"] = pm.PortsManager(
242
247
  conn=conn,
243
248
  ports_type=ports.PortChimera,
@@ -37,7 +37,7 @@ from xoa_driver.internals.commands import (
37
37
  M4E_RESERVE,
38
38
  M4_TLS_CIPHER_SUITES,
39
39
  )
40
- from xoa_driver.internals.hli_v1 import revisions
40
+ from xoa_driver.internals.hli import revisions
41
41
  from xoa_driver.internals.utils import attributes as utils
42
42
  from xoa_driver.internals.utils.managers import ports_manager as pm
43
43
  from xoa_driver.internals.state_storage import modules_state
@@ -1,7 +1,7 @@
1
1
  import typing
2
2
  import functools
3
3
  from xoa_driver import ports
4
- from xoa_driver.internals.hli_v1 import revisions
4
+ from xoa_driver.internals.hli import revisions
5
5
  from xoa_driver.internals.commands import P_CAPABILITIES
6
6
  from xoa_driver.internals.utils.managers import ports_manager as pm
7
7
  from xoa_driver.internals.utils.cap_id import CapID
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
 
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -81,4 +81,19 @@ class MLoki100G3S1PB_b(ModuleL23):
81
81
  module_id=self.module_id,
82
82
  ports_count=self.ports_count
83
83
  )
84
- """Port index manager of Loki-100G-3S-1P-B[b]"""
84
+ """Port index manager of Loki-100G-3S-1P-B[b]"""
85
+
86
+
87
+ @typing.final
88
+ @revisions.register_valkyrie_module(rev="Loki-100G-5S-4P[a]")
89
+ class MLoki100G35S4P_a(ModuleL23):
90
+ """Test module Loki-100G-5S-4P[a]"""
91
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
92
+ super().__init__(conn, init_data)
93
+ self.ports: pm.PortsManager[ports.PLoki100G5S4P_a] = pm.PortsManager(
94
+ conn=conn,
95
+ ports_type=ports.PLoki100G5S4P_a,
96
+ module_id=self.module_id,
97
+ ports_count=self.ports_count
98
+ )
99
+ """Port index manager of Loki-100G-5S-4P[a]"""
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -1,6 +1,6 @@
1
1
  import typing
2
2
  from xoa_driver import ports
3
- from xoa_driver.internals.hli_v1 import revisions
3
+ from xoa_driver.internals.hli import revisions
4
4
  from xoa_driver.internals.utils.managers import ports_manager as pm
5
5
 
6
6
  if typing.TYPE_CHECKING:
@@ -29,6 +29,7 @@ from xoa_driver.internals.commands import (
29
29
  M_TXCLOCKFILTER_NEW,
30
30
  M_UPGRADEPAR,
31
31
  M_VERSIONSTR,
32
+ M_RECONFIG_STATUS,
32
33
  )
33
34
 
34
35
  from xoa_driver.internals.utils import attributes as utils
@@ -41,7 +42,7 @@ from .. import __interfaces as m_itf
41
42
 
42
43
  if typing.TYPE_CHECKING:
43
44
  from xoa_driver.internals.core import interfaces as itf
44
- from xoa_driver.internals.hli_v1.modules.module_chimera import ModuleChimera
45
+ from xoa_driver.internals.hli.modules.module_chimera import ModuleChimera
45
46
 
46
47
 
47
48
  class TXClock:
@@ -161,12 +162,20 @@ class CFP:
161
162
  :type: M_CFPTYPE
162
163
  """
163
164
 
164
- self.config = CfpModule(conn, module)
165
- """The CFP configuration of the test module.
166
165
 
167
- :type: CfpModule
168
- """
169
166
 
167
+ class ModuleConfig:
168
+ """Test module CFP"""
169
+
170
+ def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
171
+ self.media = MediaModule(conn, module)
172
+ """Test module's media type configuration."""
173
+
174
+ self.port_speed = CfpModule(conn, module)
175
+ """Test module's port speed configuration."""
176
+
177
+ self.status = M_RECONFIG_STATUS(conn, module.module_id)
178
+ """Test module's configuration status."""
170
179
 
171
180
  class MTiming:
172
181
  """Test module timing and clock configuration"""
@@ -249,13 +258,7 @@ class ModuleL23(bm.BaseModule["modules_state.ModuleL23LocalState"]):
249
258
  :type: M_STATUS
250
259
  """
251
260
 
252
- self.media = MediaModule(conn, self)
253
- """Test module's media type.
254
-
255
- :type: ModuleMedia
256
- """
257
-
258
- self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
261
+ self.supported_configs = M_MEDIASUPPORT(conn, self.module_id)
259
262
  """Test module's available speeds.
260
263
 
261
264
  :type: M_MEDIASUPPORT
@@ -303,6 +306,9 @@ class ModuleL23(bm.BaseModule["modules_state.ModuleL23LocalState"]):
303
306
  :type: CFP
304
307
  """
305
308
 
309
+ self.config = ModuleConfig(conn, self)
310
+ """Test module's configuration."""
311
+
306
312
  self.upgrade = MUpgrade(conn, self.module_id)
307
313
  """Test module's upgrade settings.
308
314
 
@@ -55,12 +55,12 @@ from xoa_driver.internals.commands import (
55
55
  )
56
56
  if typing.TYPE_CHECKING:
57
57
  from xoa_driver.internals.core import interfaces as itf
58
- from xoa_driver.internals.hli_v1.ports import base_port
58
+ from xoa_driver.internals.hli.ports import base_port
59
59
  from xoa_driver.internals.utils import attributes as utils
60
60
  from xoa_driver.internals.utils.indices import index_manager as idx_mgr
61
61
  from xoa_driver.internals.state_storage import ports_state
62
- from xoa_driver.internals.hli_v1.indices.length_term import LengthTermIdx
63
- from xoa_driver.internals.hli_v1.indices.match_term import MatchTermIdx
62
+ from xoa_driver.internals.hli.indices.length_term import LengthTermIdx
63
+ from xoa_driver.internals.hli.indices.match_term import MatchTermIdx
64
64
 
65
65
  from .port_capture import PortCapture
66
66
 
@@ -16,11 +16,11 @@ from xoa_driver.internals.commands import (
16
16
  )
17
17
  from xoa_driver.internals.utils import attributes as utils
18
18
  from xoa_driver.internals.utils.indices import index_manager as idx_mgr
19
- from xoa_driver.internals.hli_v1.indices.streams.genuine_stream import GenuineStreamIdx
20
- from xoa_driver.internals.hli_v1.indices.filter.genuine_filter import GenuineFilterIdx
21
- from xoa_driver.internals.hli_v1.indices.port_dataset import PortDatasetIdx
19
+ from xoa_driver.internals.hli.indices.streams.genuine_stream import GenuineStreamIdx
20
+ from xoa_driver.internals.hli.indices.filter.genuine_filter import GenuineFilterIdx
21
+ from xoa_driver.internals.hli.indices.port_dataset import PortDatasetIdx
22
22
  from xoa_driver.internals.state_storage import ports_state
23
- from xoa_driver.internals.hli_v1.indices.macsecscs.genuine_macsecsc import GenuineMacSecTxScIdx, GenuineMacSecRxScIdx
23
+ from xoa_driver.internals.hli.indices.macsecscs.genuine_macsecsc import GenuineMacSecTxScIdx, GenuineMacSecRxScIdx
24
24
 
25
25
  from .port_l23 import (
26
26
  BasePortL23,