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,1018 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ import typing
4
+ import functools
5
+
6
+ from xoa_driver.internals.core.builders import (
7
+ build_get_request,
8
+ build_set_request
9
+ )
10
+ from xoa_driver.internals.core import interfaces
11
+ from xoa_driver.internals.core.token import Token
12
+ from xoa_driver.internals.core.transporter.registry import register_command
13
+ from xoa_driver.internals.core.transporter.protocol.payload import (
14
+ field,
15
+ RequestBodyStruct,
16
+ ResponseBodyStruct,
17
+ XmpByte,
18
+ XmpInt,
19
+ XmpLong,
20
+ XmpStr
21
+ )
22
+ from .enums import (
23
+ OnOff,
24
+ TPLDMode,
25
+ CorruptionType,
26
+ PolicerMode,
27
+ )
28
+
29
+
30
+ @register_command
31
+ @dataclass
32
+ class PE_FCSDROP:
33
+ """
34
+ The action on packets with FCS errors on a port.
35
+ """
36
+
37
+ code: typing.ClassVar[int] = 1601
38
+ pushed: typing.ClassVar[bool] = True
39
+
40
+ _connection: 'interfaces.IConnection'
41
+ _module: int
42
+ _port: int
43
+
44
+ class GetDataAttr(ResponseBodyStruct):
45
+ on_off: OnOff = field(XmpByte())
46
+ """coded byte, the action on packets with FCS errors on a port"""
47
+
48
+ class SetDataAttr(RequestBodyStruct):
49
+ on_off: OnOff = field(XmpByte())
50
+ """coded byte, the action on packets with FCS errors on a port"""
51
+
52
+ def get(self) -> Token[GetDataAttr]:
53
+ """Get the status of whether the action on packets with FCS errors on a port is enabled.
54
+
55
+ :return: whether the action on packets with FCS errors on a port is enabled
56
+ :rtype: PE_FCSDROP.GetDataAttr
57
+ """
58
+
59
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
60
+
61
+ def set(self, on_off: OnOff) -> Token[None]:
62
+ """Set the status of whether the action on packets with FCS errors on a port is enabled.
63
+
64
+ :param on_off: whether the action on packets with FCS errors on a port is enabled
65
+ :type on_off: OnOff
66
+ """
67
+
68
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, on_off=on_off))
69
+
70
+ set_off = functools.partialmethod(set, OnOff.OFF)
71
+ """Disable the action on packets with FCS errors on a port.
72
+ """
73
+
74
+ set_on = functools.partialmethod(set, OnOff.ON)
75
+ """Enable the action on packets with FCS errors on a port.
76
+ """
77
+
78
+
79
+ @register_command
80
+ @dataclass
81
+ class PE_TPLDMODE:
82
+ """
83
+ The action indicates the TPLD mode to be used per port.
84
+ """
85
+
86
+ code: typing.ClassVar[int] = 1602
87
+ pushed: typing.ClassVar[bool] = True
88
+
89
+ _connection: 'interfaces.IConnection'
90
+ _module: int
91
+ _port: int
92
+
93
+ class GetDataAttr(ResponseBodyStruct):
94
+ mode: TPLDMode = field(XmpByte())
95
+ """coded byte, indicating the TPLD mode."""
96
+
97
+ class SetDataAttr(RequestBodyStruct):
98
+ mode: TPLDMode = field(XmpByte())
99
+ """coded byte, indicating the TPLD mode."""
100
+
101
+ def get(self) -> Token[GetDataAttr]:
102
+ """Get the TPLD mode of the port.
103
+
104
+ :return: indicating the TPLD mode
105
+ :rtype: PE_TPLDMODE.GetDataAttr
106
+ """
107
+
108
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
109
+
110
+ def set(self, mode: TPLDMode) -> Token[None]:
111
+ """Set the TPLD mode of the port.
112
+
113
+ :param mode: indicating the TPLD mode
114
+ :type mode: TPLDMode
115
+ """
116
+
117
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, mode=mode))
118
+
119
+ set_normal = functools.partialmethod(set, TPLDMode.NORMAL)
120
+ """Set the TPLD mode to Normal.
121
+ """
122
+
123
+ set_micro = functools.partialmethod(set, TPLDMode.MICRO)
124
+ """Set the TPLD mode to Micro.
125
+ """
126
+
127
+
128
+ @register_command
129
+ @dataclass
130
+ class PE_COMMENT:
131
+ """
132
+ Flow description.
133
+ """
134
+
135
+ code: typing.ClassVar[int] = 1605
136
+ pushed: typing.ClassVar[bool] = True
137
+
138
+ _connection: 'interfaces.IConnection'
139
+ _module: int
140
+ _port: int
141
+ _flow_xindex: int
142
+
143
+ class GetDataAttr(ResponseBodyStruct):
144
+ comment: str = field(XmpStr())
145
+ """string, containing the description of the flow."""
146
+
147
+ class SetDataAttr(RequestBodyStruct):
148
+ comment: str = field(XmpStr())
149
+ """string, containing the description of the flow."""
150
+
151
+ def get(self) -> Token[GetDataAttr]:
152
+ """Get the flow description.
153
+
154
+ :return: the description of the flow
155
+ :rtype: PE_COMMENT.GetDataAttr
156
+ """
157
+
158
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
159
+
160
+ def set(self, comment: str) -> Token[None]:
161
+ """Set the flow description.
162
+
163
+ :param comment: the description of the flow
164
+ :type comment: str
165
+ """
166
+
167
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex], comment=comment))
168
+
169
+
170
+ @register_command
171
+ @dataclass
172
+ class PE_INDICES:
173
+ """
174
+ Get the flow indices. Currently the number of flows is 8.
175
+ """
176
+
177
+ code: typing.ClassVar[int] = 1608
178
+ pushed: typing.ClassVar[bool] = True
179
+
180
+ _connection: 'interfaces.IConnection'
181
+ _module: int
182
+ _port: int
183
+
184
+ class GetDataAttr(ResponseBodyStruct):
185
+ flow0_id: int = field(XmpInt())
186
+ """integer, id of flow 0."""
187
+ flow1_id: int = field(XmpInt())
188
+ """integer, id of flow 1."""
189
+ flow2_id: int = field(XmpInt())
190
+ """integer, id of flow 2."""
191
+ flow3_id: int = field(XmpInt())
192
+ """integer, id of flow 3."""
193
+ flow4_id: int = field(XmpInt())
194
+ """integer, id of flow 4."""
195
+ flow5_id: int = field(XmpInt())
196
+ """integer, id of flow 5."""
197
+ flow6_id: int = field(XmpInt())
198
+ """integer, id of flow 6."""
199
+ flow7_id: int = field(XmpInt())
200
+ """integer, id of flow 7."""
201
+
202
+ def get(self) -> Token[GetDataAttr]:
203
+ """Get the flow indices of a port. Currently the number of flows is fixed to 8.
204
+
205
+ :return: the flow indices of a port
206
+ :rtype: PE_INDICES.GetDataAttr
207
+ """
208
+
209
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
210
+
211
+
212
+ @register_command
213
+ @dataclass
214
+ class PE_LATENCYRANGE:
215
+ """
216
+ Retrieve minimum and maximum configurable latency per flow in nanoseconds.
217
+ """
218
+
219
+ code: typing.ClassVar[int] = 1646
220
+ pushed: typing.ClassVar[bool] = False
221
+
222
+ _connection: 'interfaces.IConnection'
223
+ _module: int
224
+ _port: int
225
+ _flow_xindex: int
226
+
227
+ class GetDataAttr(ResponseBodyStruct):
228
+ min: int = field(XmpLong())
229
+ """long integer, minimum configurable latency per flow in nanoseconds."""
230
+ max: int = field(XmpLong())
231
+ """long integer, maximum configurable latency per flow in nanoseconds."""
232
+
233
+ def get(self) -> Token[GetDataAttr]:
234
+ """Get the minimum and maximum configurable latency per flow in nanoseconds.
235
+
236
+ :return: minimum and maximum configurable latency per flow in nanoseconds.
237
+ :rtype: PE_LATENCYRANGE.GetDataAttr
238
+ """
239
+
240
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
241
+
242
+
243
+ @register_command
244
+ @dataclass
245
+ class PE_CORRUPT:
246
+ """
247
+ Configures impairment corruption type.
248
+
249
+ .. note::
250
+
251
+ IP / TCP / UDP corruption modes are not supported on default flow (0)
252
+
253
+ """
254
+
255
+ code: typing.ClassVar[int] = 1660
256
+ pushed: typing.ClassVar[bool] = True
257
+
258
+ _connection: 'interfaces.IConnection'
259
+ _module: int
260
+ _port: int
261
+ _flow_xindex: int
262
+
263
+ class GetDataAttr(ResponseBodyStruct):
264
+ corruption_type: CorruptionType = field(XmpByte())
265
+ """coded byte, specifying corruption type."""
266
+
267
+ class SetDataAttr(RequestBodyStruct):
268
+ corruption_type: CorruptionType = field(XmpByte())
269
+ """coded byte, specifying corruption type."""
270
+
271
+ def get(self) -> Token[GetDataAttr]:
272
+ """Get the impairment corruption type of a flow.
273
+
274
+ :return: the impairment corruption type of a flow.
275
+ :rtype: PE_CORRUPT.GetDataAttr
276
+ """
277
+
278
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
279
+
280
+ def set(self, corruption_type: CorruptionType) -> Token[None]:
281
+ """Set the impairment corruption type.
282
+
283
+ :param corruption_type: corruption type
284
+ :type corruption_type: CorruptionType
285
+ """
286
+
287
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex], corruption_type=corruption_type))
288
+
289
+ set_off = functools.partialmethod(set, CorruptionType.OFF)
290
+ """Set the corruption type to OFF.
291
+ """
292
+
293
+ set_eth = functools.partialmethod(set, CorruptionType.ETH)
294
+ """Set the corruption type to Ethernet.
295
+ """
296
+
297
+ set_ip = functools.partialmethod(set, CorruptionType.IP)
298
+ """Set the corruption type to IP.
299
+ """
300
+
301
+ set_udp = functools.partialmethod(set, CorruptionType.UDP)
302
+ """Set the corruption type to UDP.
303
+ """
304
+
305
+ set_tcp = functools.partialmethod(set, CorruptionType.TCP)
306
+ """Set the corruption type to TCP.
307
+ """
308
+
309
+ set_ber = functools.partialmethod(set, CorruptionType.BER)
310
+ """Set the corruption type to Bit Error Rate.
311
+ """
312
+
313
+
314
+ @register_command
315
+ @dataclass
316
+ class PE_MISORDER:
317
+ """
318
+ Configures the misordering depth in number of packets.
319
+
320
+ .. note::
321
+
322
+ probability * (depth + 1) should be less than 1,000,000. (see PED_FIXED)
323
+
324
+ """
325
+
326
+ code: typing.ClassVar[int] = 1661
327
+ pushed: typing.ClassVar[bool] = True
328
+
329
+ _connection: 'interfaces.IConnection'
330
+ _module: int
331
+ _port: int
332
+ _flow_xindex: int
333
+
334
+ class GetDataAttr(ResponseBodyStruct):
335
+ depth: int = field(XmpInt())
336
+ """integer, specifies the misordering depth (Range 1 - 32). Default value. probability * (depth + 1) should be less than 1,000,000. (see PED_FIXED)"""
337
+
338
+ class SetDataAttr(RequestBodyStruct):
339
+ depth: int = field(XmpInt())
340
+ """integer, specifies the misordering depth (Range 1 - 32). Default value. probability * (depth + 1) should be less than 1,000,000. (see PED_FIXED)"""
341
+
342
+ def get(self) -> Token[GetDataAttr]:
343
+ """Get the misordering depth in number of packets of a flow.
344
+
345
+ :return: the misordering depth (Range 1 - 32). Default value.
346
+ :rtype: PE_MISORDER.GetDataAttr
347
+ """
348
+
349
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
350
+
351
+ def set(self, depth: int) -> Token[None]:
352
+ """Set the misordering depth in number of packets of a flow. Note: probability [see
353
+ PED_FIXED] * (depth + 1) should be less than 1,000,000.
354
+
355
+ :param depth: the misordering depth (Range 1 - 32). Default value.
356
+ :type depth: int
357
+ """
358
+
359
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex], depth=depth))
360
+
361
+
362
+ @register_command
363
+ @dataclass
364
+ class PE_BANDPOLICER:
365
+ """
366
+ Configures the bandwidth policer.
367
+ """
368
+
369
+ code: typing.ClassVar[int] = 1662
370
+ pushed: typing.ClassVar[bool] = True
371
+
372
+ _connection: 'interfaces.IConnection'
373
+ _module: int
374
+ _port: int
375
+ _flow_xindex: int
376
+
377
+ class GetDataAttr(ResponseBodyStruct):
378
+ on_off: OnOff = field(XmpByte())
379
+ """coded byte, enables/disables policer. Note: PED_ENABLE is not supported for the policer."""
380
+ mode: PolicerMode = field(XmpByte())
381
+ """coded byte, sets policer mode."""
382
+ cir: int = field(XmpInt())
383
+ """integer, policer committed information rate in units of 100 kbps (range 0 to 1000000), default is 0."""
384
+ cbs: int = field(XmpInt())
385
+ """integer, policer committed burst burst in bytes (range 0 to 4194304), default is 0."""
386
+
387
+ class SetDataAttr(RequestBodyStruct):
388
+ on_off: OnOff = field(XmpByte())
389
+ """coded byte, enables/disables policer. Note: PED_ENABLE is not supported for the policer."""
390
+ mode: PolicerMode = field(XmpByte())
391
+ """coded byte, sets policer mode."""
392
+ cir: int = field(XmpInt())
393
+ """integer, policer committed information rate in units of 100 kbps (range 0 to 1000000), default is 0."""
394
+ cbs: int = field(XmpInt())
395
+ """integer, policer committed burst size in bytes (range 0 to 4194304), default is 0."""
396
+
397
+ def get(self) -> Token[GetDataAttr]:
398
+ """Get the bandwidth policer configuration.
399
+
400
+ :return: enabled/disabled, policer mode, committed information rate, and committed burst size.
401
+ :rtype: PE_BANDPOLICER.GetDataAttr
402
+ """
403
+
404
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
405
+
406
+ def set(self, on_off: OnOff, mode: PolicerMode, cir: int, cbs: int) -> Token[None]:
407
+ """Set the bandwidth policer configuration.
408
+
409
+ :param on_off: enables/disables policer. Note: PED_ENABLE is not supported for the policer.
410
+ :type on_off: OnOff
411
+ :param mode: policer mode
412
+ :type mode: PolicerMode
413
+ :param cir: policer committed information rate in units of 100 kbps (range 0 to 1000000), default is 0.
414
+ :type cir: int
415
+ :param cbs: policer committed burst burst in bytes (range 0 to 4194304), default is 0.
416
+ :type cbs: int
417
+ """
418
+
419
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex], on_off=on_off, mode=mode, cir=cir, cbs=cbs))
420
+
421
+
422
+ @register_command
423
+ @dataclass
424
+ class PE_BANDSHAPER:
425
+ """
426
+ Configures the bandwidth shaper. L1 (0) (Shaper performed at Layer 1 level. I.e. including
427
+ the preamble and min interpacket gap) L2 (1) (Shaper performed at Layer 2 level. I.e. excluding the preamble and min interpacket gap) Default value: L2 (0)
428
+ """
429
+
430
+ code: typing.ClassVar[int] = 1663
431
+ pushed: typing.ClassVar[bool] = True
432
+
433
+ _connection: 'interfaces.IConnection'
434
+ _module: int
435
+ _port: int
436
+ _flow_xindex: int
437
+
438
+ class GetDataAttr(ResponseBodyStruct):
439
+ on_off: OnOff = field(XmpByte())
440
+ """coded byte, enables/disables shaper."""
441
+ mode: PolicerMode = field(XmpByte())
442
+ """coded byte, sets shaper mode."""
443
+ cir: int = field(XmpInt())
444
+ """integer, shaper committed information rate in units of 100 kbps (range 0 to 1000000), default is 0."""
445
+ cbs: int = field(XmpInt())
446
+ """integer, shaper committed burst size in bytes (range 0 to 4194304), default is 0."""
447
+ buffer_size: int = field(XmpInt())
448
+ """integer, shaper buffer size in bytes (range 0 to 2097152), default is 0."""
449
+
450
+ class SetDataAttr(RequestBodyStruct):
451
+ on_off: OnOff = field(XmpByte())
452
+ """coded byte, enables/disables shaper."""
453
+ mode: PolicerMode = field(XmpByte())
454
+ """coded byte, sets shaper mode."""
455
+ cir: int = field(XmpInt())
456
+ """integer, shaper committed information rate in units of 100 kbps (range 0 to 1000000), default is 0."""
457
+ cbs: int = field(XmpInt())
458
+ """integer, shaper committed burst size in bytes (range 0 to 4194304), default is 0."""
459
+ buffer_size: int = field(XmpInt())
460
+ """integer, shaper buffer size in bytes (range 0 to 2097152), default is 0."""
461
+
462
+ def get(self) -> Token[GetDataAttr]:
463
+ """Get the bandwidth shaper configuration.
464
+
465
+ :return: the bandwidth shaper configuration, including on/off, mode, CIR, CBS, and shaper buffer size.
466
+ :rtype: PE_BANDSHAPER.GetDataAttr
467
+ """
468
+
469
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
470
+
471
+ def set(self, on_off: OnOff, mode: PolicerMode, cir: int, cbs: int, buffer_size: int) -> Token[None]:
472
+ """Set the bandwidth shaper configuration.
473
+
474
+ :param on_off: enables/disables shaper
475
+ :type on_off: OnOff
476
+ :param mode: shaper mode
477
+ :type mode: PolicerMode
478
+ :param cir: shaper committed information rate in units of 100 kbps (range 0 to 1000000), default is 0.
479
+ :type cir: int
480
+ :param cbs: shaper committed burst size in bytes (range 0 to 4194304), default is 0.
481
+ :type cbs: int
482
+ :param buffer_size: shaper buffer size in bytes (range 0 to 2097152), default is 0.
483
+ :type buffer_size: int
484
+ """
485
+
486
+ return Token(
487
+ self._connection,
488
+ build_set_request(
489
+ self,
490
+ module=self._module,
491
+ port=self._port,
492
+ indices=[self._flow_xindex],
493
+ on_off=on_off,
494
+ mode=mode,
495
+ cir=cir,
496
+ cbs=cbs,
497
+ buffer_size=buffer_size
498
+ )
499
+ )
500
+
501
+
502
+ @register_command
503
+ @dataclass
504
+ class PE_DROPTOTAL:
505
+ """
506
+ Obtains statistics concerning all the packets dropped between this receive port and its partner TX port.
507
+ """
508
+
509
+ code: typing.ClassVar[int] = 1750
510
+ pushed: typing.ClassVar[bool] = False
511
+
512
+ _connection: 'interfaces.IConnection'
513
+ _module: int
514
+ _port: int
515
+
516
+ class GetDataAttr(ResponseBodyStruct):
517
+ pkt_drop_count_total: int = field(XmpLong())
518
+ """long integer, total number of packets dropped in all flows."""
519
+ pkt_drop_count_programmed: int = field(XmpLong())
520
+ """long integer, total number of packets dropped as programmed in all flows."""
521
+ pkt_drop_count_bandwidth: int = field(XmpLong())
522
+ """long integer, total number of packets dropped due to bandwidth control in all flows."""
523
+ pkt_drop_count_other: int = field(XmpLong())
524
+ """long integer, total number of packets dropped for other reasons in all flows."""
525
+ pkt_drop_ratio_total: int = field(XmpLong())
526
+ """long integer, ratio of number of packets dropped in all flows, expressed in ppm."""
527
+ pkt_drop_ratio_programmed: int = field(XmpLong())
528
+ """long integer, ratio of number of packets dropped as programmed in all flows, expressed in ppm."""
529
+ pkt_drop_ratio_bandwidth: int = field(XmpLong())
530
+ """long integer, ratio of number of packets dropped due to bandwidth control in all flows, expressed in ppm."""
531
+ pkt_drop_ratio_other: int = field(XmpLong())
532
+ """long integer, ratio of number of packets dropped for other reasons in all flows, expressed in ppm."""
533
+
534
+ def get(self) -> Token[GetDataAttr]:
535
+ """Get statistics concerning all the packets dropped between this receive port and its partner TX port.
536
+
537
+ :return:
538
+ total number of packets dropped in all flows,
539
+ total number of packets dropped as programmed in all flows,
540
+ total number of packets dropped due to bandwidth control in all flows,
541
+ total number of packets dropped for other reasons in all flows,
542
+ ratio of number of packets dropped in all flows, expressed in ppm,
543
+ ratio of number of packets dropped as programmed in all flows, expressed in ppm,
544
+ ratio of number of packets dropped due to bandwidth control in all flows, expressed in ppm,
545
+ ratio of number of packets dropped for other reasons in all flows, expressed in ppm.
546
+ :rtype: PE_DROPTOTAL.GetDataAttr
547
+ """
548
+
549
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
550
+
551
+
552
+ @register_command
553
+ @dataclass
554
+ class PE_LATENCYTOTAL:
555
+ """
556
+ Obtains statistics concerning all the packets delayed this receive port and its partner TX port.
557
+ """
558
+
559
+ code: typing.ClassVar[int] = 1751
560
+ pushed: typing.ClassVar[bool] = False
561
+
562
+ _connection: 'interfaces.IConnection'
563
+ _module: int
564
+ _port: int
565
+
566
+ class GetDataAttr(ResponseBodyStruct):
567
+ pkt_count: int = field(XmpLong())
568
+ """long integer, number of packets delayed in all flows."""
569
+ ratio: int = field(XmpLong())
570
+ """long integer, ratio of number of packets delayed in all flows, expressed in ppm."""
571
+
572
+ def get(self) -> Token[GetDataAttr]:
573
+ """Get statistics concerning all the packets delayed this receive port and its
574
+ partner TX port.
575
+
576
+ :return: number of packets delayed in all flows, and ratio of number of packets delayed in all flows, expressed in ppm.
577
+ :rtype: PE_LATENCYTOTAL.GetDataAttr
578
+ """
579
+
580
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
581
+
582
+
583
+ @register_command
584
+ @dataclass
585
+ class PE_DUPTOTAL:
586
+ """
587
+ Obtains statistics concerning all the packets duplicated between this receive port and its partner TX port.
588
+ """
589
+
590
+ code: typing.ClassVar[int] = 1752
591
+ pushed: typing.ClassVar[bool] = False
592
+
593
+ _connection: 'interfaces.IConnection'
594
+ _module: int
595
+ _port: int
596
+
597
+ class GetDataAttr(ResponseBodyStruct):
598
+ pkt_count: int = field(XmpLong())
599
+ """long integer, number of packets duplicated in all flows."""
600
+ ratio: int = field(XmpLong())
601
+ """long integer, ratio of number of packets duplicated in all flows, expressed in ppm."""
602
+
603
+ def get(self) -> Token[GetDataAttr]:
604
+ """Get statistics concerning all the packets duplicated between this receive
605
+ port and its partner TX port.
606
+
607
+ :return: number of packets duplicated in all flows, ratio of number of packets duplicated in all flows, expressed in ppm.
608
+ :rtype: PE_DUPTOTAL.GetDataAttr
609
+ """
610
+
611
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
612
+
613
+
614
+ @register_command
615
+ @dataclass
616
+ class PE_MISTOTAL:
617
+ """
618
+ Obtains statistics concerning all the packets mis-ordered between this receive
619
+ port and its partner TX port.
620
+ """
621
+
622
+ code: typing.ClassVar[int] = 1753
623
+ pushed: typing.ClassVar[bool] = False
624
+
625
+ _connection: 'interfaces.IConnection'
626
+ _module: int
627
+ _port: int
628
+
629
+ class GetDataAttr(ResponseBodyStruct):
630
+ pkt_count: int = field(XmpLong())
631
+ """long integer, number of packets mis-ordered in all flows."""
632
+ ratio: int = field(XmpLong())
633
+ """long integer, number of packets mis-ordered in all flows, expressed in ppm."""
634
+
635
+ def get(self) -> Token[GetDataAttr]:
636
+ """Get statistics concerning all the packets mis-ordered between this receive port and its partner TX port.
637
+
638
+ :return: number of packets mis-ordered in all flows, number of packets mis-ordered in all flows, expressed in ppm.
639
+ :rtype: PE_MISTOTAL.GetDataAttr
640
+ """
641
+
642
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
643
+
644
+
645
+ @register_command
646
+ @dataclass
647
+ class PE_CORTOTAL:
648
+ """
649
+ Obtains statistics concerning all the packets corrupted on between this receive port and its partner TX port.
650
+ """
651
+
652
+ code: typing.ClassVar[int] = 1754
653
+ pushed: typing.ClassVar[bool] = False
654
+
655
+ _connection: 'interfaces.IConnection'
656
+ _module: int
657
+ _port: int
658
+
659
+ class GetDataAttr(ResponseBodyStruct):
660
+ total_corrupted_pkt_count: int = field(XmpLong())
661
+ """long integer, number of packets corrupted in all flows."""
662
+ fcs_corrupted_pkt_count: int = field(XmpLong())
663
+ """long integer, number of packets with Ethernet FCS corrupted in all flows."""
664
+ ip_corrupted_pkt_count: int = field(XmpLong())
665
+ """long integer, number of packets with IP header checksum corrupted in all flows."""
666
+ udp_corrupted_pkt_count: int = field(XmpLong())
667
+ """long integer, number of packets with UDP checksum corrupted in all flows."""
668
+ tcp_corrupted_pkt_count: int = field(XmpLong())
669
+ """long integer, number of packets with TCP checksum corrupted in all flows."""
670
+ total_corrupted_pkt_ratio: int = field(XmpLong())
671
+ """long integer, ratio of number of packets corrupted in all flows, expressed in ppm."""
672
+ fcs_corrupted_pkt_ratio: int = field(XmpLong())
673
+ """long integer, ratio of number of packets with Ethernet FCS corrupted in all flows, expressed in ppm."""
674
+ ip_corrupted_pkt_ratio: int = field(XmpLong())
675
+ """long integer, ratio of number of packets with IP Header checksum corrupted in all flows, expressed in ppm."""
676
+ udp_corrupted_pkt_ratio: int = field(XmpLong())
677
+ """long integer, ratio of number of packets with UDP checksum corrupted in all flows, expressed in ppm."""
678
+ tcp_corrupted_pkt_ratio: int = field(XmpLong())
679
+ """long integer, ratio of number of packets with TCP checksum corrupted in all flows, expressed in ppm."""
680
+
681
+ def get(self) -> Token[GetDataAttr]:
682
+ """Get statistics concerning all the packets corrupted on between this receive port and its partner TX port.
683
+
684
+ :return: number of packets corrupted in all flows;
685
+ number of packets with Ethernet FCS corrupted in all flows;
686
+ number of packets with IP header checksum corrupted in all flows;
687
+ number of packets with UDP checksum corrupted in all flows;
688
+ number of packets with TCP checksum corrupted in all flows;
689
+ ratio of number of packets corrupted in all flows, expressed in ppm;
690
+ ratio of number of packets with Ethernet FCS corrupted in all flows expressed in ppm;
691
+ ratio of number of packets with IP Header checksum corrupted in all flows, expressed in ppm;
692
+ ratio of number of packets with UDP checksum corrupted in all flows, expressed in ppm;
693
+ ratio of number of packets with TCP checksum corrupted in all flows, expressed in ppm
694
+ :rtype: PE_CORTOTAL.GetDataAttr
695
+ """
696
+
697
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
698
+
699
+
700
+ @register_command
701
+ @dataclass
702
+ class PE_JITTERTOTAL:
703
+ """
704
+ Obtains statistics concerning all the packets jittered between this receive port
705
+ and its partner TX port.
706
+ """
707
+
708
+ code: typing.ClassVar[int] = 1755
709
+ pushed: typing.ClassVar[bool] = False
710
+
711
+ _connection: 'interfaces.IConnection'
712
+ _module: int
713
+ _port: int
714
+
715
+ class GetDataAttr(ResponseBodyStruct):
716
+ pkt_count: int = field(XmpLong())
717
+ """long integer, number of packets jittered in all flows."""
718
+ ratio: int = field(XmpLong())
719
+ """long integer, ratio of number of packets jittered in all flows expressed in ppm."""
720
+
721
+ def get(self) -> Token[GetDataAttr]:
722
+ """Get statistics concerning all the packets jittered between this receive port
723
+ and its partner TX port.
724
+
725
+ :return: number of packets jittered in all flows, ratio of number of packets jittered in all flows expressed in ppm.
726
+ :rtype: PE_JITTERTOTAL.GetDataAttr
727
+ """
728
+
729
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
730
+
731
+
732
+ @register_command
733
+ @dataclass
734
+ class PE_CLEAR:
735
+ """
736
+ Clear all the impairment (duplicate, drop, mis-ordered, corrupted, latency and
737
+ jitter) statistics for a Chimera port and flows on the port. The byte and packet
738
+ counts will restart at zero.
739
+ """
740
+
741
+ code: typing.ClassVar[int] = 1756
742
+ pushed: typing.ClassVar[bool] = False
743
+
744
+ _connection: 'interfaces.IConnection'
745
+ _module: int
746
+ _port: int
747
+
748
+ class SetDataAttr(RequestBodyStruct):
749
+ pass
750
+
751
+ def set(self) -> Token[None]:
752
+ """Clear all the impairment (duplicate, drop, mis-ordered, corrupted, latency and
753
+ jitter) statistics for a Chimera port and flows on the port. The byte and packet
754
+ counts will restart at zero.
755
+ """
756
+
757
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port))
758
+
759
+
760
+ @register_command
761
+ @dataclass
762
+ class PE_FLOWDROPTOTAL:
763
+ """
764
+ Obtains statistics concerning all the packets dropped in a flow between this receive port and its partner TX port.
765
+ """
766
+
767
+ code: typing.ClassVar[int] = 1770
768
+ pushed: typing.ClassVar[bool] = False
769
+
770
+ _connection: 'interfaces.IConnection'
771
+ _module: int
772
+ _port: int
773
+ _flow_xindex: int
774
+
775
+ class GetDataAttr(ResponseBodyStruct):
776
+ pkt_drop_count_total: int = field(XmpLong())
777
+ """long integer, total number of packets dropped for the flow."""
778
+ pkt_drop_count_programmed: int = field(XmpLong())
779
+ """long integer, total number of packets dropped as programmed for the flow."""
780
+ pkt_drop_count_bandwidth: int = field(XmpLong())
781
+ """long integer, total number of packets dropped due to bandwidth control for the flow."""
782
+ pkt_drop_count_other: int = field(XmpLong())
783
+ """long integer, total number of packets dropped for other reasons for the flow."""
784
+ pkt_drop_ratio_total: int = field(XmpLong())
785
+ """long integer, ratio of number of packets dropped for the flow, expressed in ppm."""
786
+ pkt_drop_ratio_programmed: int = field(XmpLong())
787
+ """long integer, ratio of number of packets dropped as programmed for the flow, expressed in ppm."""
788
+ pkt_drop_ratio_bandwidth: int = field(XmpLong())
789
+ """long integer, ratio of number of packets dropped due to bandwidth control for the flow, expressed in ppm."""
790
+ pkt_drop_ratio_other: int = field(XmpLong())
791
+ """long integer, ratio of number of packets dropped for other reasons for the flow, expressed in ppm."""
792
+
793
+ def get(self) -> Token[GetDataAttr]:
794
+ """Get statistics concerning all the packets dropped in a flow between this receive port and its partner TX port.
795
+
796
+ :return:
797
+ total number of packets dropped for the flow,
798
+ total number of packets dropped as programmed for the flow,
799
+ total number of packets dropped due to bandwidth control for the flow,
800
+ total number of packets dropped for other reasons for the flow,
801
+ ratio of number of packets dropped for the flow, expressed in ppm,
802
+ ratio of number of packets dropped as programmed for the flow, expressed in ppm,
803
+ ratio of number of packets dropped due to bandwidth control for the flow, expressed in ppm,
804
+ ratio of number of packets dropped for other reasons for the flow, expressed in ppm.
805
+ :rtype: PE_FLOWDROPTOTAL.GetDataAttr
806
+ """
807
+
808
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
809
+
810
+
811
+ @register_command
812
+ @dataclass
813
+ class PE_FLOWLATENCYTOTAL:
814
+ """
815
+ Obtains statistics concerning all the packets delayed between this receive port and its partner TX port.
816
+ """
817
+
818
+ code: typing.ClassVar[int] = 1771
819
+ pushed: typing.ClassVar[bool] = False
820
+
821
+ _connection: 'interfaces.IConnection'
822
+ _module: int
823
+ _port: int
824
+ _flow_xindex: int
825
+
826
+ class GetDataAttr(ResponseBodyStruct):
827
+ pkt_count: int = field(XmpLong())
828
+ """long integer, number of packets delayed in the flow."""
829
+ ratio: int = field(XmpLong())
830
+ """long integer, ratio of number of packets delayed in the flow, expressed in ppm."""
831
+
832
+ def get(self) -> Token[GetDataAttr]:
833
+ """Get statistics concerning all the packets delayed between this receive port and its partner TX port.
834
+
835
+ :return: number of packets delayed in the flow, ratio of number of packets delayed in the flow, expressed in ppm.
836
+ :rtype: PE_FLOWLATENCYTOTAL.GetDataAttr
837
+ """
838
+
839
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
840
+
841
+
842
+ @register_command
843
+ @dataclass
844
+ class PE_FLOWDUPTOTAL:
845
+ """
846
+ Obtains statistics concerning all the packets duplicated in a flow between this receive port and its partner TX port.
847
+ """
848
+
849
+ code: typing.ClassVar[int] = 1772
850
+ pushed: typing.ClassVar[bool] = False
851
+
852
+ _connection: 'interfaces.IConnection'
853
+ _module: int
854
+ _port: int
855
+ _flow_xindex: int
856
+
857
+ class GetDataAttr(ResponseBodyStruct):
858
+ pkt_count: int = field(XmpLong())
859
+ """long integer, number of packets duplicated for the flow."""
860
+ ratio: int = field(XmpLong())
861
+ """long integer, ratio of number of packets duplicated for the flow - expressed in ppm."""
862
+
863
+ def get(self) -> Token[GetDataAttr]:
864
+ """Get statistics concerning all the packets duplicated in a flow between this receive port and its partner TX port.
865
+
866
+ :return: number of packets duplicated for the flow, ratio of number of packets duplicated for the flow - expressed in ppm.
867
+ :rtype: PE_FLOWDUPTOTAL.GetDataAttr
868
+ """
869
+
870
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
871
+
872
+
873
+ @register_command
874
+ @dataclass
875
+ class PE_FLOWMISTOTAL:
876
+ """
877
+ Obtains statistics concerning all the packets mis-ordered in a flow between this receive port and its partner TX port.
878
+ """
879
+
880
+ code: typing.ClassVar[int] = 1773
881
+ pushed: typing.ClassVar[bool] = False
882
+
883
+ _connection: 'interfaces.IConnection'
884
+ _module: int
885
+ _port: int
886
+ _flow_xindex: int
887
+
888
+ class GetDataAttr(ResponseBodyStruct):
889
+ pkt_count: int = field(XmpLong())
890
+ """long integer, number of packets mis-ordered for the flow."""
891
+ ratio: int = field(XmpLong())
892
+ """long integer, ratio of number of packets, expressed in ppm."""
893
+
894
+ def get(self) -> Token[GetDataAttr]:
895
+ """Get statistics concerning all the packets mis-ordered in a flow between this receive port and its partner TX port.
896
+
897
+ :return: number of packets mis-ordered for the flow, ratio of number of packets, expressed in ppm.
898
+ :rtype: PE_FLOWMISTOTAL.GetDataAttr
899
+ """
900
+
901
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
902
+
903
+
904
+ @register_command
905
+ @dataclass
906
+ class PE_FLOWCORTOTAL:
907
+ """
908
+ Obtains statistics concerning all the packets corrupted in a flow between this receive port and its partner TX port.
909
+ """
910
+
911
+ code: typing.ClassVar[int] = 1774
912
+ pushed: typing.ClassVar[bool] = False
913
+
914
+ _connection: 'interfaces.IConnection'
915
+ _module: int
916
+ _port: int
917
+ _flow_xindex: int
918
+
919
+ class GetDataAttr(ResponseBodyStruct):
920
+ total_corrupted_pkt_count: int = field(XmpLong())
921
+ """long integer, number of packets corrupted for the flow."""
922
+ fcs_corrupted_pkt_count: int = field(XmpLong())
923
+ """long integer, number of packets with Ethernet FCS corrupted for the flow."""
924
+ ip_corrupted_pkt_count: int = field(XmpLong())
925
+ """long integer, number of packets with IP header checksum corrupted for the flow."""
926
+ udp_corrupted_pkt_count: int = field(XmpLong())
927
+ """long integer, number of packets with UDP checksum corrupted for the flow."""
928
+ tcp_corrupted_pkt_count: int = field(XmpLong())
929
+ """long integer, number of packets with TCP checksum corrupted for the flow."""
930
+ total_corrupted_pkt_ratio: int = field(XmpLong())
931
+ """long integer, ratio of number of packets corrupted for the flow expressed in ppm."""
932
+ fcs_corrupted_pkt_ratio: int = field(XmpLong())
933
+ """long integer, ratio of number of packets with Ethernet FCS corrupted for the flow expressed in ppm."""
934
+ ip_corrupted_pkt_ratio: int = field(XmpLong())
935
+ """long integer, ratio of number of packets with IP Header checksum corrupted for the flow expressed in ppm."""
936
+ udp_corrupted_pkt_ratio: int = field(XmpLong())
937
+ """long integer, ratio of number of packets with UDP checksum corrupted for the flow expressed in ppm."""
938
+ tcp_corrupted_pkt_ratio: int = field(XmpLong())
939
+ """long integer, ratio of number of packets with TCP checksum corrupted for the flow expressed in ppm."""
940
+
941
+ def get(self) -> Token[GetDataAttr]:
942
+ """Get statistics concerning all the packets corrupted in a flow between this receive port and its partner TX port.
943
+
944
+ :return:
945
+ number of packets corrupted for the flow,
946
+ number of packets with Ethernet FCS corrupted for the flow,
947
+ number of packets with IP header checksum corrupted for the flow,
948
+ number of packets with UDP checksum corrupted for the flow,
949
+ number of packets with TCP checksum corrupted for the flow,
950
+ ratio of number of packets corrupted for the flow expressed in ppm,
951
+ ratio of number of packets with Ethernet FCS corrupted for the flow expressed in ppm,
952
+ ratio of number of packets with IP Header checksum corrupted for the flow expressed in ppm,
953
+ ratio of number of packets with UDP checksum corrupted for the flow expressed in ppm,
954
+ ratio of number of packets with TCP checksum corrupted for the flow expressed in ppm.
955
+ :rtype: PE_FLOWCORTOTAL.GetDataAttr
956
+ """
957
+
958
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
959
+
960
+
961
+ @register_command
962
+ @dataclass
963
+ class PE_FLOWJITTERTOTAL:
964
+ """
965
+ Obtains statistics concerning all the packets jittered in a flow between this receive port and its partner TX port.
966
+ """
967
+
968
+ code: typing.ClassVar[int] = 1775
969
+ pushed: typing.ClassVar[bool] = False
970
+
971
+ _connection: 'interfaces.IConnection'
972
+ _module: int
973
+ _port: int
974
+ _flow_xindex: int
975
+
976
+ class GetDataAttr(ResponseBodyStruct):
977
+ pkt_count: int = field(XmpLong())
978
+ """long integer, number of packets jittered in the flow."""
979
+ ratio: int = field(XmpLong())
980
+ """long integer, ratio of number of packets jittered in the flow, expressed in ppm."""
981
+
982
+ def get(self) -> Token[GetDataAttr]:
983
+ """Get statistics concerning all the packets jittered in a flow between this receive port and its partner TX port.
984
+
985
+ :return: number of packets jittered in the flow, ratio of number of packets jittered in the flow, expressed in ppm
986
+ :rtype: PE_FLOWJITTERTOTAL.GetDataAttr
987
+ """
988
+
989
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
990
+
991
+
992
+ @register_command
993
+ @dataclass
994
+ class PE_FLOWCLEAR:
995
+ """
996
+ Clear all the impairment (duplicate, drop, mis-ordered, corrupted, latency and
997
+ jitter) statistics on a particular flow on the port. The byte and packet counts
998
+ will restart at zero.
999
+ """
1000
+
1001
+ code: typing.ClassVar[int] = 1776
1002
+ pushed: typing.ClassVar[bool] = False
1003
+
1004
+ _connection: 'interfaces.IConnection'
1005
+ _module: int
1006
+ _port: int
1007
+ _flow_xindex: int
1008
+
1009
+ class SetDataAttr(RequestBodyStruct):
1010
+ pass
1011
+
1012
+ def set(self) -> Token[None]:
1013
+ """Clear all the impairment (duplicate, drop, mis-ordered, corrupted, latency and
1014
+ jitter) statistics on a particular flow on the port. The byte and packet counts
1015
+ will restart at zero.
1016
+ """
1017
+
1018
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))