tdl-xoa-driver 1.0.0b1__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.0b1.dist-info/LICENSE +202 -0
  2. tdl_xoa_driver-1.0.0b1.dist-info/METADATA +177 -0
  3. tdl_xoa_driver-1.0.0b1.dist-info/RECORD +325 -0
  4. tdl_xoa_driver-1.0.0b1.dist-info/WHEEL +5 -0
  5. tdl_xoa_driver-1.0.0b1.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,812 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ import typing
4
+
5
+ from xoa_driver.internals.core.builders import (
6
+ build_get_request,
7
+ build_set_request
8
+ )
9
+ from xoa_driver.internals.core import interfaces
10
+ from xoa_driver.internals.core.token import Token
11
+ from xoa_driver.internals.core.transporter.registry import register_command
12
+ from xoa_driver.internals.core.transporter.protocol.payload import (
13
+ field,
14
+ RequestBodyStruct,
15
+ ResponseBodyStruct,
16
+ XmpByte,
17
+ XmpInt,
18
+ XmpLong,
19
+ XmpSequence,
20
+ )
21
+ from .enums import OnOff
22
+
23
+
24
+ @register_command
25
+ @dataclass
26
+ class PR_TPLDJITTER:
27
+ """
28
+ Obtains statistics concerning the jitter experienced by the packets with a
29
+ particular test payload id received on a port. The values are the difference in
30
+ packet-to-packet latency, and the minimum will usually be zero.A special value
31
+ of -1 is returned if jitter numbers are not applicable. They are only available
32
+ for TID values 0..31.
33
+ """
34
+
35
+ code: typing.ClassVar[int] = 239
36
+ pushed: typing.ClassVar[bool] = False
37
+
38
+ _connection: 'interfaces.IConnection'
39
+ _module: int
40
+ _port: int
41
+ _test_payload_xindex: int
42
+
43
+ class GetDataAttr(ResponseBodyStruct):
44
+ min_val: int = field(XmpLong())
45
+ """long integer, nanoseconds, minimum jitter for test payload stream"""
46
+ avg_val: int = field(XmpLong())
47
+ """long integer, nanoseconds, average jitter for test payload stream"""
48
+ max_val: int = field(XmpLong())
49
+ """long integer, nanoseconds, maximum jitter for test payload stream"""
50
+ avg_last_sec: int = field(XmpLong())
51
+ """long integer, nanoseconds, average jitter over last 1-second period"""
52
+ min_last_sec: int = field(XmpLong())
53
+ """long integer, nanoseconds, minimum jitter during last 1-second period"""
54
+ max_last_sec: int = field(XmpLong())
55
+ """long integer, nanoseconds, maximum jitter during last 1-second period"""
56
+
57
+ def get(self) -> Token[GetDataAttr]:
58
+ """Get statistics concerning the jitter experienced by the packets with a particular test payload id received on a port.
59
+
60
+ :return: minimum|average|maximum jitter (nanoseconds), average|average|maximum jitter over last 1-second period (nanoseconds)
61
+ :rtype: PR_TPLDJITTER.GetDataAttr
62
+ """
63
+
64
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._test_payload_xindex]))
65
+
66
+
67
+ @register_command
68
+ @dataclass
69
+ class PR_TOTAL:
70
+ """
71
+ Obtains statistics concerning all the packets received on a port.
72
+ """
73
+
74
+ code: typing.ClassVar[int] = 240
75
+ pushed: typing.ClassVar[bool] = False
76
+
77
+ _connection: 'interfaces.IConnection'
78
+ _module: int
79
+ _port: int
80
+
81
+ class GetDataAttr(ResponseBodyStruct):
82
+ bit_count_last_sec: int = field(XmpLong())
83
+ """long integer, number of bits received in the last second."""
84
+ packet_count_last_sec: int = field(XmpLong())
85
+ """long integer, number of packets received in the last second."""
86
+ byte_count_since_cleared: int = field(XmpLong())
87
+ """long integer, number of bytes received since statistics were cleared."""
88
+ packet_count_since_cleared: int = field(XmpLong())
89
+ """long integer, number of packets received since statistics were cleared."""
90
+
91
+ def get(self) -> Token[GetDataAttr]:
92
+ """Get statistics concerning all the packets received on a port.
93
+
94
+ :return:
95
+ number of bits received in the last second,
96
+ number of packets received in the last second,
97
+ number of bytes received since statistics were cleared,
98
+ and number of packets received since statistics were cleared.
99
+
100
+ :rtype: PR_TOTAL.GetDataAttr
101
+ """
102
+
103
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
104
+
105
+
106
+ @register_command
107
+ @dataclass
108
+ class PR_NOTPLD:
109
+ """
110
+ Obtains statistics concerning the packets without a test payload received on a
111
+ port.
112
+ """
113
+
114
+ code: typing.ClassVar[int] = 241
115
+ pushed: typing.ClassVar[bool] = False
116
+
117
+ _connection: 'interfaces.IConnection'
118
+ _module: int
119
+ _port: int
120
+
121
+ class GetDataAttr(ResponseBodyStruct):
122
+ bit_count_last_sec: int = field(XmpLong())
123
+ """long integer, number of bits received in the last second."""
124
+ packet_count_last_sec: int = field(XmpLong())
125
+ """long integer, number of packets received in the last second."""
126
+ byte_count_since_cleared: int = field(XmpLong())
127
+ """long integer, number of bytes received since statistics were cleared."""
128
+ packet_count_since_cleared: int = field(XmpLong())
129
+ """long integer, number of packets received since statistics were cleared."""
130
+
131
+ def get(self) -> Token[GetDataAttr]:
132
+ """Get statistics concerning the packets without a test payload received on a port.
133
+
134
+ :return:
135
+ number of bits received in the last second,
136
+ number of packets received in the last second,
137
+ number of bytes received since statistics were cleared,
138
+ and number of packets received since statistics were cleared.
139
+
140
+ :rtype: PR_NOTPLD.GetDataAttr
141
+ """
142
+
143
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
144
+
145
+
146
+ @register_command
147
+ @dataclass
148
+ class PR_EXTRA:
149
+ """
150
+ Obtains statistics concerning special errors received on a port since received statistics were cleared.
151
+ """
152
+
153
+ code: typing.ClassVar[int] = 242
154
+ pushed: typing.ClassVar[bool] = False
155
+
156
+ _connection: 'interfaces.IConnection'
157
+ _module: int
158
+ _port: int
159
+
160
+ class GetDataAttr(ResponseBodyStruct):
161
+ fcs_error_count: int = field(XmpLong())
162
+ """long integer, number of packets with frame checksum errors."""
163
+ pause_frame_count: int = field(XmpLong())
164
+ """long integer, number of Ethernet pause frames."""
165
+ rx_arp_request_count: int = field(XmpLong())
166
+ """long integer, number of ARP request packets received."""
167
+ rx_arp_reply_count: int = field(XmpLong())
168
+ """long integer, number of ARP reply packets received."""
169
+ rx_ping_request_count: int = field(XmpLong())
170
+ """long integer, number of PING request packets received."""
171
+ rx_ping_reply_count: int = field(XmpLong())
172
+ """long integer, number of PING reply packets received."""
173
+ gap_count: int = field(XmpLong())
174
+ """long integer, number of gap-monitored gaps encountered."""
175
+ gap_duration: int = field(XmpLong())
176
+ """long integer, combined duration of gap-monitored gaps encountered, microseconds."""
177
+
178
+ def get(self) -> Token[GetDataAttr]:
179
+ """Get statistics concerning special packets received on a port since statistics were cleared.
180
+
181
+ :return: number of packets with fcs error frames, pause frames, arp rxreq, arp rxrsp, ping rxreq, ping rxrsp, gap events, and gap microseconds.
182
+ :rtype: PR_EXTRA.GetDataAttr
183
+ """
184
+
185
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
186
+
187
+
188
+ @register_command
189
+ @dataclass
190
+ class PR_TPLDS:
191
+ """
192
+ Obtain the set of test payload IDs observed among the received packets since
193
+ receive statistics were cleared. Traffic statistics for these test payload
194
+ streams will have non-zero byte and packet count.
195
+ """
196
+
197
+ code: typing.ClassVar[int] = 243
198
+ pushed: typing.ClassVar[bool] = False
199
+
200
+ _connection: 'interfaces.IConnection'
201
+ _module: int
202
+ _port: int
203
+
204
+ class GetDataAttr(ResponseBodyStruct):
205
+ test_payload_identifiers: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()]))
206
+ """list of integers, the identifiers of the test payload."""
207
+
208
+ def get(self) -> Token[GetDataAttr]:
209
+ """Get the set of test payload IDs observed among the received packets since
210
+ receive statistics were cleared. Traffic statistics for these test payload
211
+ streams will have non-zero byte and packet count.
212
+
213
+ :return: the identifiers of the test payload
214
+ :rtype: PR_TPLDS.GetDataAttr
215
+ """
216
+
217
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
218
+
219
+
220
+ @register_command
221
+ @dataclass
222
+ class PR_TPLDTRAFFIC:
223
+ """
224
+ Obtains traffic statistics concerning the packets with a particular test payload
225
+ identifier received on a port.
226
+ """
227
+
228
+ code: typing.ClassVar[int] = 244
229
+ pushed: typing.ClassVar[bool] = False
230
+
231
+ _connection: 'interfaces.IConnection'
232
+ _module: int
233
+ _port: int
234
+ _test_payload_xindex: int
235
+
236
+ class GetDataAttr(ResponseBodyStruct):
237
+ bit_count_last_sec: int = field(XmpLong())
238
+ """long integer, number of bits received in the last second."""
239
+ packet_count_last_sec: int = field(XmpLong())
240
+ """long integer, number of packets received in the last second."""
241
+ byte_count_since_cleared: int = field(XmpLong())
242
+ """long integer, number of bytes received since statistics were cleared."""
243
+ packet_count_since_cleared: int = field(XmpLong())
244
+ """long integer, number of packets received since statistics were cleared."""
245
+
246
+ def get(self) -> Token[GetDataAttr]:
247
+ """Get traffic statistics concerning the packets with a particular test payload
248
+ identifier received on a port.
249
+
250
+ :return:
251
+ number of bits received in the last second,
252
+ number of packets received in the last second,
253
+ number of bytes received since statistics were cleared,
254
+ number of packets received since statistics were cleared
255
+
256
+ :rtype: PR_TPLDTRAFFIC.GetDataAttr
257
+ """
258
+
259
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._test_payload_xindex]))
260
+
261
+
262
+ @register_command
263
+ @dataclass
264
+ class PR_TPLDERRORS:
265
+ """
266
+ Obtains statistics concerning errors in the packets with a particular test
267
+ payload id received on a port. The error information is derived from analyzing
268
+ the various fields contained in the embedded test payloads of the received
269
+ packets, independent of which chassis and port may have originated the packets.
270
+ Note that packet-lost statistics involve both a transmitting port and a
271
+ receiving port, and in particular knowing which port originated the packets with
272
+ a particular test payload identifier. This information requires knowledge of the
273
+ global test environment, and is not supported at the port-level.
274
+ """
275
+
276
+ code: typing.ClassVar[int] = 245
277
+ pushed: typing.ClassVar[bool] = False
278
+
279
+ _connection: 'interfaces.IConnection'
280
+ _module: int
281
+ _port: int
282
+ _test_payload_xindex: int
283
+
284
+ class GetDataAttr(ResponseBodyStruct):
285
+ dummy: int = field(XmpLong())
286
+ """long integer, not in use."""
287
+ non_incre_seq_event_count: int = field(XmpLong())
288
+ """long integer, number of non-incrementing-sequence-number events."""
289
+ swapped_seq_misorder_event_count: int = field(XmpLong())
290
+ """long integer, number of swapped-sequence-number misorder events."""
291
+ non_incre_payload_packet_count: int = field(XmpLong())
292
+ """long integer, number of packets with non-incrementing payload content."""
293
+
294
+ def get(self) -> Token[GetDataAttr]:
295
+ """Get statistics concerning errors in the packets with a particular test payload id received on a port.
296
+
297
+ :return:
298
+ dummy value not in use,
299
+ number of non-incrementing-sequence-number events,
300
+ number of swapped-sequence-number misorder events,
301
+ number of packets with non-incrementing payload content
302
+
303
+ :rtype: PR_TPLDERRORS.GetDataAttr
304
+ """
305
+
306
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._test_payload_xindex]))
307
+
308
+
309
+ @register_command
310
+ @dataclass
311
+ class PR_TPLDLATENCY:
312
+ """
313
+ Obtains statistics concerning the latency experienced by the packets with a
314
+ particular test payload id received on a port. The values are adjusted by the
315
+ port-level P_LATENCYOFFSET value. A special value of -1 is returned if latency
316
+ numbers are not applicable. Latency is only meaningful when the clocks of the
317
+ transmitter and receiver are synchronized. This requires the two ports to be on
318
+ the same test module, and it requires knowledge of the global test environment
319
+ to ensure that packets are in fact routed between these ports.
320
+ """
321
+
322
+ code: typing.ClassVar[int] = 246
323
+ pushed: typing.ClassVar[bool] = False
324
+
325
+ _connection: 'interfaces.IConnection'
326
+ _module: int
327
+ _port: int
328
+ _test_payload_xindex: int
329
+
330
+ class GetDataAttr(ResponseBodyStruct):
331
+ min_val: int = field(XmpLong())
332
+ """long integer, nanoseconds, minimum latency for test payload stream"""
333
+ avg_val: int = field(XmpLong())
334
+ """long integer, nanoseconds, average latency for test payload stream"""
335
+ max_val: int = field(XmpLong())
336
+ """long integer, nanoseconds, maximum latency for test payload stream"""
337
+ avg_last_sec: int = field(XmpLong())
338
+ """long integer, nanoseconds, average latency over last 1-second period"""
339
+ min_last_sec: int = field(XmpLong())
340
+ """long integer, nanoseconds, minimum latency during last 1-second period"""
341
+ max_last_sec: int = field(XmpLong())
342
+ """long integer, nanoseconds, maximum latency during last 1-second period"""
343
+
344
+ def get(self) -> Token[GetDataAttr]:
345
+ """Get statistics concerning the latency experienced by the packets with a particular test payload id received on a port.
346
+
347
+ :return: minimum|average|maximum latency (nanoseconds), average|average|maximum latency over last 1-second period (nanoseconds)
348
+ :rtype: PR_TPLDLATENCY.GetDataAttr
349
+ """
350
+
351
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._test_payload_xindex]))
352
+
353
+
354
+ @register_command
355
+ @dataclass
356
+ class PR_FILTER:
357
+ """
358
+ Obtains statistics concerning the packets satisfying the condition of a
359
+ particular filter for a port.
360
+ """
361
+
362
+ code: typing.ClassVar[int] = 247
363
+ pushed: typing.ClassVar[bool] = False
364
+
365
+ _connection: 'interfaces.IConnection'
366
+ _module: int
367
+ _port: int
368
+ _filter_xindex: int
369
+
370
+ class GetDataAttr(ResponseBodyStruct):
371
+ bit_count_last_sec: int = field(XmpLong())
372
+ """long integer, number of bits received in the last second."""
373
+ packet_count_last_sec: int = field(XmpLong())
374
+ """long integer, number of packets received in the last second."""
375
+ byte_count_since_cleared: int = field(XmpLong())
376
+ """long integer, number of bytes received since statistics were cleared."""
377
+ packet_count_since_cleared: int = field(XmpLong())
378
+ """long integer, number of packets received since statistics were cleared."""
379
+
380
+ def get(self) -> Token[GetDataAttr]:
381
+ """Get statistics concerning the packets satisfying the condition of a particular filter for a port
382
+
383
+ :return:
384
+ number of bits received in the last second,
385
+ number of packets received in the last second,
386
+ number of bytes received since statistics were cleared,
387
+ number of packets received since statistics were cleared
388
+
389
+ :rtype: PR_FILTER.GetDataAttr
390
+ """
391
+
392
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
393
+
394
+
395
+ @register_command
396
+ @dataclass
397
+ class PR_CLEAR:
398
+ """
399
+ Clear all the receive statistics for a port. The byte and packet counts will
400
+ restart at zero.
401
+ """
402
+
403
+ code: typing.ClassVar[int] = 248
404
+ pushed: typing.ClassVar[bool] = False
405
+
406
+ _connection: 'interfaces.IConnection'
407
+ _module: int
408
+ _port: int
409
+
410
+ class SetDataAttr(RequestBodyStruct):
411
+ pass
412
+
413
+ def set(self) -> Token[None]:
414
+ """Clear all the receive statistics for a port. The byte and packet counts will
415
+ restart at zero.
416
+ """
417
+
418
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port))
419
+
420
+
421
+ @register_command
422
+ @dataclass
423
+ class PR_CALIBRATE:
424
+ """
425
+ Calibrate the latency calculation for packets received on a port. The lowest
426
+ detected latency value (across all Test Payload IDs) will be set as the new
427
+ base.
428
+ """
429
+
430
+ code: typing.ClassVar[int] = 249
431
+ pushed: typing.ClassVar[bool] = False
432
+
433
+ _connection: 'interfaces.IConnection'
434
+ _module: int
435
+ _port: int
436
+
437
+ class SetDataAttr(RequestBodyStruct):
438
+ pass
439
+
440
+ def set(self) -> Token[None]:
441
+ """Calibrate the latency calculation for packets received on a port. The lowest
442
+ detected latency value (across all Test Payload IDs) will be set as the new
443
+ base.
444
+ """
445
+
446
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port))
447
+
448
+
449
+ @register_command
450
+ @dataclass
451
+ class PR_UAT_STATUS:
452
+ """
453
+ This command will show the current UAT (UnAvailable Time) state, which is used
454
+ in Valkyrie1564
455
+ """
456
+
457
+ code: typing.ClassVar[int] = 252
458
+ pushed: typing.ClassVar[bool] = False
459
+
460
+ _connection: 'interfaces.IConnection'
461
+ _module: int
462
+ _port: int
463
+
464
+ class GetDataAttr(ResponseBodyStruct):
465
+ status: OnOff = field(XmpByte())
466
+ """coded byte, specifies the state of the affected stream counter."""
467
+
468
+ def get(self) -> Token[GetDataAttr]:
469
+ """Get the current UAT (UnAvailable Time) state, which is used
470
+ in Valkyrie1564.
471
+
472
+ :return: the state of the affected stream counter
473
+ :rtype: PR_UAT_STATUS.GetDataAttr
474
+ """
475
+
476
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
477
+
478
+
479
+ @register_command
480
+ @dataclass
481
+ class PR_UAT_TIME:
482
+ """
483
+ This command will show the current number of unavailable seconds, which is used in Valkyrie1564.
484
+ """
485
+
486
+ code: typing.ClassVar[int] = 256
487
+ pushed: typing.ClassVar[bool] = False
488
+
489
+ _connection: 'interfaces.IConnection'
490
+ _module: int
491
+ _port: int
492
+
493
+ class GetDataAttr(ResponseBodyStruct):
494
+ time: int = field(XmpInt())
495
+ """integer, number of unavailable seconds."""
496
+
497
+ def get(self) -> Token[GetDataAttr]:
498
+ """Get the current UAT (UnAvailable Time) state, which is used
499
+ in Valkyrie1564.
500
+
501
+ :return: number of unavailable seconds
502
+ :rtype: PR_UAT_TIME.GetDataAttr
503
+ """
504
+
505
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
506
+
507
+
508
+ @register_command
509
+ @dataclass
510
+ class PR_TOTALEXT:
511
+ """
512
+ .. versionadded: v1.1
513
+
514
+ An extension of :class:`PR_TOTAL` that also includes a calculation of bytes received in the last second, as well as a number of port error counters.
515
+ PR_TOTALEXT returns list of long integers. This list may be expanded in future software releases.
516
+ """
517
+
518
+ code: typing.ClassVar[int] = 257
519
+ pushed: typing.ClassVar[bool] = False
520
+
521
+ _connection: 'interfaces.IConnection'
522
+ _module: int
523
+ _port: int
524
+
525
+ class GetDataAttr(ResponseBodyStruct):
526
+ bit_count_last_sec: int = field(XmpLong())
527
+ """long integer, number of bits received in the last second."""
528
+ byte_count_last_sec: int = field(XmpLong())
529
+ """long integer, number of bytes received in the last second."""
530
+ packet_count_last_sec: int = field(XmpLong())
531
+ """long integer, number of packets received in the last second."""
532
+ byte_count_since_cleared: int = field(XmpLong())
533
+ """long integer, number of bytes received since statistics were cleared."""
534
+ packet_count_since_cleared: int = field(XmpLong())
535
+ """long integer, number of packets received since statistics were cleared."""
536
+ fcs_error_count: int = field(XmpLong())
537
+
538
+ oversize_count: int = field(XmpLong())
539
+
540
+ undersize_count: int = field(XmpLong())
541
+
542
+ jabber_count: int = field(XmpLong())
543
+
544
+ def get(self) -> Token[GetDataAttr]:
545
+ """Get statistics concerning all the packets received on a port.
546
+
547
+ :return:
548
+ number of bits received in the last second,
549
+ number of bytes received in the last second,
550
+ number of packets received in the last second,
551
+ number of bytes received since statistics were cleared,
552
+ number of packets received since statistics were cleared,
553
+ number of packets received with fcs error frames,
554
+ number of oversize packets received since last clear (-1 if this counter is not supported by the tester),
555
+ number of undersize packets received since last clear (-1 if this counter is not supported by the tester),
556
+ number of jabber packets received since last clear (-1 if this counter is not supported by the tester).
557
+
558
+ :rtype: PR_TOTALEXT.GetDataAttr
559
+ """
560
+
561
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
562
+
563
+
564
+ @register_command
565
+ @dataclass
566
+ class PR_NOTPLDEXT:
567
+ """
568
+ .. versionadded: v1.1
569
+
570
+ An extension of :class:`PR_NOTPLD` that also includes a calculation of bytes received in the last second.
571
+ PR_NOTPLDEXT returns list of long integers. This list may be expanded in future software releases.
572
+ """
573
+
574
+ code: typing.ClassVar[int] = 258
575
+ pushed: typing.ClassVar[bool] = False
576
+
577
+ _connection: 'interfaces.IConnection'
578
+ _module: int
579
+ _port: int
580
+
581
+ class GetDataAttr(ResponseBodyStruct):
582
+ bit_count_last_sec: int = field(XmpLong())
583
+ """long integer, number of bits received in the last second."""
584
+ byte_count_last_sec: int = field(XmpLong())
585
+ """long integer, number of bytes received in the last second."""
586
+ packet_count_last_sec: int = field(XmpLong())
587
+ """long integer, number of packets received in the last second."""
588
+ byte_count_since_cleared: int = field(XmpLong())
589
+ """long integer, number of bytes received since statistics were cleared."""
590
+ packet_count_since_cleared: int = field(XmpLong())
591
+ """long integer, number of packets received since statistics were cleared."""
592
+
593
+ def get(self) -> Token[GetDataAttr]:
594
+ """Get statistics concerning the packets without a test payload received on a port.
595
+
596
+ :return:
597
+ number of bits received in the last second,
598
+ number of bytes received in the last second,
599
+ number of packets received in the last second,
600
+ number of bytes received since statistics were cleared,
601
+ and number of packets received since statistics were cleared.
602
+
603
+ :rtype: PR_NOTPLDEXT.GetDataAttr
604
+ """
605
+
606
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
607
+
608
+
609
+ @register_command
610
+ @dataclass
611
+ class PR_TPLDTRAFFICEXT:
612
+ """
613
+ .. versionadded: v1.1
614
+
615
+ An extension of :class:`PR_TPLDTRAFFIC` that also includes a calculation of bytes received in the last second.
616
+ PR_TPLDTRAFFICEXT returns list of long integers. This list may be expanded in future software releases.
617
+ """
618
+
619
+ code: typing.ClassVar[int] = 259
620
+ pushed: typing.ClassVar[bool] = False
621
+
622
+ _connection: 'interfaces.IConnection'
623
+ _module: int
624
+ _port: int
625
+ _test_payload_xindex: int
626
+
627
+ class GetDataAttr(ResponseBodyStruct):
628
+ bit_count_last_sec: int = field(XmpLong())
629
+ """long integer, number of bits received in the last second."""
630
+ byte_count_last_sec: int = field(XmpLong())
631
+ """long integer, number of bytes received in the last second."""
632
+ packet_count_last_sec: int = field(XmpLong())
633
+ """long integer, number of packets received in the last second."""
634
+ byte_count_since_cleared: int = field(XmpLong())
635
+ """long integer, number of bytes received since statistics were cleared."""
636
+ packet_count_since_cleared: int = field(XmpLong())
637
+ """long integer, number of packets received since statistics were cleared."""
638
+
639
+ def get(self) -> Token[GetDataAttr]:
640
+ """Get traffic statistics concerning the packets with a particular test payload
641
+ identifier received on a port.
642
+
643
+ :return:
644
+ number of bits received in the last second,
645
+ number of bytes received in the last second,
646
+ number of packets received in the last second,
647
+ number of bytes received since statistics were cleared,
648
+ number of packets received since statistics were cleared
649
+
650
+ :rtype: PR_TPLDTRAFFICEXT.GetDataAttr
651
+ """
652
+
653
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._test_payload_xindex]))
654
+
655
+
656
+ @register_command
657
+ @dataclass
658
+ class PR_FILTEREXT:
659
+ """
660
+ .. versionadded: v1.1
661
+
662
+ An extension of :class:`PR_FILTER` that also includes a calculation of bytes received in the last second.
663
+ PR_FILTEREXT returns list of long integers. This list may be expanded in future software releases.
664
+ """
665
+
666
+ code: typing.ClassVar[int] = 260
667
+ pushed: typing.ClassVar[bool] = False
668
+
669
+ _connection: 'interfaces.IConnection'
670
+ _module: int
671
+ _port: int
672
+ _filter_xindex: int
673
+
674
+ class GetDataAttr(ResponseBodyStruct):
675
+ bit_count_last_sec: int = field(XmpLong())
676
+ """long integer, number of bits received in the last second."""
677
+ byte_count_last_sec: int = field(XmpLong())
678
+ """long integer, number of bytes received in the last second."""
679
+ packet_count_last_sec: int = field(XmpLong())
680
+ """long integer, number of packets received in the last second."""
681
+ byte_count_since_cleared: int = field(XmpLong())
682
+ """long integer, number of bytes received since statistics were cleared."""
683
+ packet_count_since_cleared: int = field(XmpLong())
684
+ """long integer, number of packets received since statistics were cleared."""
685
+
686
+ def get(self) -> Token[GetDataAttr]:
687
+ """Get statistics concerning the packets satisfying the condition of a particular filter for a port
688
+
689
+ :return:
690
+ number of bits received in the last second,
691
+ number of bytes received in the last second,
692
+ number of packets received in the last second,
693
+ number of bytes received since statistics were cleared,
694
+ number of packets received since statistics were cleared
695
+
696
+ :rtype: PR_FILTEREXT.GetDataAttr
697
+ """
698
+
699
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._filter_xindex]))
700
+
701
+
702
+ @register_command
703
+ @dataclass
704
+ class PR_PFCSTATS:
705
+ """
706
+ Obtains statistics of received Priority Flow Control (PFC) packets on a port.
707
+
708
+ .. versionchanged:: 1.1
709
+ """
710
+
711
+ code: typing.ClassVar[int] = 374
712
+ pushed: typing.ClassVar[bool] = False
713
+
714
+ _connection: 'interfaces.IConnection'
715
+ _module: int
716
+ _port: int
717
+
718
+ class GetDataAttr(ResponseBodyStruct):
719
+ packet_count: int = field(XmpLong())
720
+ """long integer, the total number of Priority Flow Control (PFC) packets received since statistics were cleared."""
721
+ quanta_pri_0: int = field(XmpLong())
722
+ """the total number of valid PFC quanta received on the port for priority level 0 since statistics were cleared"""
723
+ quanta_pri_1: int = field(XmpLong())
724
+ """the total number of valid PFC quanta received on the port for priority level 1 since statistics were cleared"""
725
+ quanta_pri_2: int = field(XmpLong())
726
+ """the total number of valid PFC quanta received on the port for priority level 2 since statistics were cleared"""
727
+ quanta_pri_3: int = field(XmpLong())
728
+ """the total number of valid PFC quanta received on the port for priority level 3 since statistics were cleared"""
729
+ quanta_pri_4: int = field(XmpLong())
730
+ """the total number of valid PFC quanta received on the port for priority level 4 since statistics were cleared"""
731
+ quanta_pri_5: int = field(XmpLong())
732
+ """the total number of valid PFC quanta received on the port for priority level 5 since statistics were cleared"""
733
+ quanta_pri_6: int = field(XmpLong())
734
+ """the total number of valid PFC quanta received on the port for priority level 6 since statistics were cleared"""
735
+ quanta_pri_7: int = field(XmpLong())
736
+ """the total number of valid PFC quanta received on the port for priority level 7 since statistics were cleared"""
737
+
738
+ def get(self) -> Token[GetDataAttr]:
739
+ """Get the statistics of received Priority Flow Control (PFC) packets on a port.
740
+
741
+ :return: the total number of Priority Flow Control (PFC) packets received since statistics were cleared
742
+ :rtype: PR_PFCSTATS.GetDataAttr
743
+ """
744
+
745
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
746
+
747
+
748
+ @register_command
749
+ @dataclass
750
+ class PR_FLOWTOTAL:
751
+ """
752
+ Obtains statistics concerning all the packets received from a flow between this
753
+ receive port and its partner TX port.
754
+ """
755
+
756
+ code: typing.ClassVar[int] = 1741
757
+ pushed: typing.ClassVar[bool] = False
758
+
759
+ _connection: 'interfaces.IConnection'
760
+ _module: int
761
+ _port: int
762
+ _flow_xindex: int
763
+
764
+ class GetDataAttr(ResponseBodyStruct):
765
+ l2_bps: int = field(XmpLong())
766
+ """long integer, number of bits received at layer 2 in the last second for the flow."""
767
+ pps: int = field(XmpLong())
768
+ """long integer, number of packets received in the last second for the flow."""
769
+ byte_count: int = field(XmpLong())
770
+ """long integer, number of bytes received since statistics were cleared for the flow."""
771
+ packet_count: int = field(XmpLong())
772
+ """long integer, number of packets received since statistics were cleared for the flow."""
773
+
774
+ def get(self) -> Token[GetDataAttr]:
775
+ """(Chimera only) Get statistics concerning all the packets received from a flow between this receive port and its partner TX port.
776
+
777
+ :return:
778
+ number of bits received at layer 2 in the last second for the flow,
779
+ number of packets received in the last second for the flow,
780
+ number of bytes received since statistics were cleared for the flow,
781
+ number of packets received since statistics were cleared for the flow
782
+
783
+ :rtype: PR_FLOWTOTAL.GetDataAttr
784
+ """
785
+
786
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
787
+
788
+
789
+ @register_command
790
+ @dataclass
791
+ class PR_FLOWCLEAR:
792
+ """
793
+ Clear all the receive statistics on a particular flow for a Chimera port. The
794
+ byte and packet counts will restart at zero.
795
+ """
796
+
797
+ code: typing.ClassVar[int] = 1743
798
+ pushed: typing.ClassVar[bool] = False
799
+
800
+ _connection: 'interfaces.IConnection'
801
+ _module: int
802
+ _port: int
803
+ _flow_xindex: int
804
+
805
+ class SetDataAttr(RequestBodyStruct):
806
+ pass
807
+
808
+ def set(self) -> Token[None]:
809
+ """(Chimera only) Clear all the receive statistics on a particular flow for a Chimera port. The byte and packet counts will restart at zero.
810
+ """
811
+
812
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))