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,3289 @@
1
+
2
+ from enum import IntEnum, IntFlag
3
+
4
+
5
+ # region L23 enums
6
+ class ReservedStatus(IntEnum):
7
+ """Test resource reservation status"""
8
+
9
+ RELEASED = 0
10
+ """Test resource is released."""
11
+ RESERVED_BY_YOU = 1
12
+ """Test resource is reserved by you."""
13
+ RESERVED_BY_OTHER = 2
14
+ """Test resource is reserved by another user."""
15
+
16
+
17
+ class ReservedAction(IntEnum):
18
+ """Reservation actions."""
19
+
20
+ RELEASE = 0
21
+ """Release the test resource."""
22
+ RESERVE = 1
23
+ """Reserve the test resource."""
24
+ RELINQUISH = 2
25
+ """Force release other's ownership of the test resource."""
26
+
27
+
28
+ class ChassisShutdownAction(IntEnum):
29
+ """Chassis shutdown actions."""
30
+
31
+ RESTART = 1
32
+ """Restart after shutdown."""
33
+ POWER_OFF = 2
34
+ """Keep power-off after shutdown."""
35
+
36
+
37
+ class OnOff(IntEnum):
38
+ """On or Off."""
39
+
40
+ OFF = 0
41
+ """Off"""
42
+ ON = 1
43
+ """On"""
44
+
45
+
46
+ class RESTControlAction(IntEnum):
47
+ """Controls of Valkyrie REST server."""
48
+
49
+ START = 0
50
+ """Start the REST server on the chassis."""
51
+ STOP = 1
52
+ """Stop the REST server on the chassis."""
53
+ RESTART = 2
54
+ """Restart the REST server on the chassis."""
55
+
56
+
57
+ class ServiceStatus(IntEnum):
58
+ """Service status."""
59
+
60
+ SERVICE_OFF = 0
61
+ """Service is off."""
62
+ SERVICE_ON = 1
63
+ """Service is on."""
64
+
65
+
66
+ class ChassisSessionType(IntEnum):
67
+ """The type of the session between the client and the chassis."""
68
+
69
+ MANAGER = 1
70
+ """Connection on port 22606 running binary command (used by ValkyrieManager & VulcanManager)."""
71
+ SCRIPT = 2
72
+ """Connection on port 22611, running CLI command."""
73
+
74
+
75
+ class TimingSource(IntEnum):
76
+ """Module's time sync mode."""
77
+
78
+ CHASSIS = 0
79
+ """Module syncs to chassis's clock."""
80
+ EXTERNAL = 1
81
+ """Module syncs to an external clock."""
82
+ MODULE = 2
83
+ """Module syncs to its own clock."""
84
+
85
+
86
+ class MediaCFPState(IntEnum):
87
+ """Modules' CFP state"""
88
+
89
+ NOT_CFP = 0
90
+ """This is not a CFP-based test module."""
91
+ NOT_PRESENT = 1
92
+ """No transceiver, the CFP cage is empty"""
93
+ NOT_FLEXIBLE = 2
94
+ """Transceiver present, supporting a fixed speed and port-count"""
95
+ FLEXIBLE = 3
96
+ """Transceiver present, supporting flexible speed and port-count"""
97
+
98
+
99
+ class MediaCFPType(IntEnum):
100
+ """Module's Media CFP Type. What kind of transceiver, may have multiple ports"""
101
+
102
+ CFP_UNKNOWN = 0
103
+ """CFP unknown"""
104
+ CFP_INVALID = 1
105
+ """CFP 100G not supported"""
106
+ CFP_1X40_SR4 = 2
107
+ """CFP 40G SR4 850 nm"""
108
+ CFP_2X40_SR4 = 3
109
+ """CFP 40G SR4 850 nm"""
110
+ CFP_1X40_LR4 = 4
111
+ """CFP 40G LR4 1310 nm"""
112
+ CFP_1X100_LR4 = 5
113
+ """CFP 100G LR4 1310 nm"""
114
+ CFP_1X100_SR10 = 6
115
+ """CFP 100G SR10 850 nm / CFP 40G SR4 850 nm"""
116
+ CFP_4X10_SFPP = 7
117
+ """"""
118
+ QSFP_EMPTY = 8
119
+ """QSFP empty"""
120
+ QSFP_UNKNOWN = 9
121
+ """QSFP unknown"""
122
+ QSFP_SR = 10
123
+ """QSFP SR 850 nm"""
124
+ QSFP_LR = 11
125
+ """QSFP LR 1550 nm"""
126
+ QSFP_ER = 12
127
+ """QSFP ER 1550 nm"""
128
+ CXP_UNKNOWN = 13
129
+ """CXP unknown SR10"""
130
+ CXP_SR10 = 14
131
+ """CXP 100G SR10 850 nm / CXP 40G SR4 850 nm"""
132
+ CXP_AOC = 15
133
+ """CXP 100G SR10 AOC / CXP 40G SR4 AOC"""
134
+ CFP4_UNKNOWN = 16
135
+ """CFP4 unknown"""
136
+ CFP4_1X100_LR4 = 17
137
+ """CFP4 100G LR4"""
138
+ CFP4_1X100_ER4 = 18
139
+ """CFP4 100G ER4"""
140
+ CFP4_1X100_SR4 = 19
141
+ """CFP4 100G SR4"""
142
+ QSFP28_CR4 = 20
143
+ """QSFP28 CR4"""
144
+ QSFP28_SR4 = 21
145
+ """QSFP28 SR4"""
146
+ QSFP28_LR4 = 22
147
+ """QSFP28 LR4"""
148
+ QSFP28_ER4 = 23
149
+ """QSFP28 ER4"""
150
+ QSFP28_AOC = 24
151
+ """QSFP28 AOC"""
152
+ QSFP28_ACC = 25
153
+ """QSFP28 ACC"""
154
+ QSFP28_UNKNOWN = 26
155
+ """QSFP28 unknown"""
156
+ QSFP28P_SR4 = 27
157
+ """QSFP+ SR4 850 nm"""
158
+ QSFP28P_LR4 = 28
159
+ """QSFP+ LR4 1310 nm"""
160
+ QSFP28P_ER4 = 29
161
+ """QSFP+ ER4 1500 nm"""
162
+ QSFP28P_CR4 = 30
163
+ """QSFP+ CR4 Copper"""
164
+ QSFP28P_ISM4 = 31
165
+ """QSFP+ iSM4 1310 nm"""
166
+ QSFP28P_UNKNOWN = 32
167
+ """QSFP+ unknown"""
168
+ TCVR_UNKNOWN = 33
169
+ """Transceiver unknown"""
170
+ QSFP28_CWDM4 = 34
171
+ """QSFP28 CWDM4"""
172
+ QSFP28_CWDM4_FEC = 35
173
+ """QSFP28 CWDM4 FEC"""
174
+ QSFP28_PSM4 = 36
175
+ """QSFP28 PSM4"""
176
+
177
+
178
+ class SMAInputFunction(IntEnum):
179
+ """SMA input function"""
180
+
181
+ NOT_USED = 0
182
+ """SMA input not used"""
183
+ TX2MHZ = 1
184
+ """TX Clock Ref. 2.048 MHz"""
185
+ TX10MHZ = 2
186
+ """TX Clock Ref. 10.0 MHz"""
187
+
188
+
189
+ class SMAOutputFunction(IntEnum):
190
+ """SMA output function"""
191
+
192
+ DISABLED = 0
193
+ """Disabled"""
194
+ PASSTHROUGH = 1
195
+ """Pass-through"""
196
+ P0SOF = 2
197
+ """Port 0 Start-of-Frame Pulse"""
198
+ P1SOF = 3
199
+ """Port 1 Start-of-Frame Pulse"""
200
+ REF2MHZ = 4
201
+ """TX Clock (nom. 2.048 MHz)"""
202
+ REF10MHZ = 5
203
+ """TX Clock (nom. 10.0 MHz)"""
204
+ REF125MHZ = 6
205
+ """TX Clock (nom. 125 MHz)"""
206
+ REF156MHZ = 7
207
+ """TX Clock (nom. 156.25 MHz)"""
208
+ P0RXCLK = 8
209
+ """Port 0 RX Clock (nom. 10.0 MHz)"""
210
+ P1RXCLK = 9
211
+ """Port 1 RX Clock (nom. 10.0 MHz)"""
212
+ P0RXCLK2MHZ = 10
213
+ """Port 0 RX Clock (nom. 2.048 MHz)"""
214
+ P1RXCLK2MHZ = 11
215
+ """Port 1 RX Clock (nom. 2.048 MHz)"""
216
+ TS_PPS = 12
217
+ """Timing Source (Pulse-Per-Second)"""
218
+
219
+
220
+ class SMAStatus(IntEnum):
221
+ """SMA status"""
222
+
223
+ OK = 0
224
+ """Status OK"""
225
+ NO_VALID_SIGNAL = 1
226
+ """No valid signal"""
227
+
228
+
229
+ class HasDemo(IntEnum):
230
+ """Demo or not"""
231
+
232
+ NON_DEMO = 0
233
+ """Not a demo unit"""
234
+ DEMO = 1
235
+ """Demo unit"""
236
+
237
+
238
+ class IsValid(IntEnum):
239
+ """Whether it is valid"""
240
+
241
+ INVALID = 0
242
+ """Invalid"""
243
+ VALID = 1
244
+ """Valid"""
245
+
246
+
247
+ class IsPermanent(IntEnum):
248
+ """Whether it is permanent"""
249
+
250
+ NON_PERMANENT = 0
251
+ """Not permanent"""
252
+ PERMANENT = 1
253
+ """Permanent"""
254
+
255
+
256
+ class YesNo(IntEnum):
257
+ NO = 0
258
+ """No"""
259
+ YES = 1
260
+ """Yes"""
261
+
262
+
263
+ class UpdateState(IntEnum):
264
+ """License update state"""
265
+
266
+ NONE = 0
267
+ """None"""
268
+ UPDATING = 1
269
+ """Updating"""
270
+ UPDATE_SUCCESS = 2
271
+ """Update successful"""
272
+ UPDATE_FAIL = 3
273
+ """Update failed"""
274
+
275
+
276
+ class IsOnline(IntEnum):
277
+ """Chassis online or not"""
278
+
279
+ OFFLINE = 0
280
+ """Chassis offline"""
281
+ ONLINE = 1
282
+ """Chassis online"""
283
+
284
+
285
+ class PortSpeedMode(IntEnum):
286
+ """Port speed mode"""
287
+
288
+ AUTO = 0
289
+ """Auto negotiate with peer"""
290
+ F10M = 1
291
+ """Forced to 10 Mbit/s"""
292
+ F100M = 2
293
+ """Forced to 100 Mbit/s"""
294
+ F1G = 3
295
+ """Forced to 1 Gbit/s"""
296
+ F10G = 4
297
+ """Forced to 10 Gbit/s"""
298
+ F40G = 5
299
+ """Forced to 40 Gbit/s"""
300
+ F100G = 6
301
+ """Forced to 100 Gbit/s"""
302
+ F10MHDX = 7
303
+ """Forced to 10 Mbit/s half-duplex"""
304
+ F100MHDX = 8
305
+ """Forced to 100 Mbit/s half-duplex"""
306
+ F10M100M = 9
307
+ """Auto negotiate to 10/100 Mbit/s"""
308
+ F100M1G = 10
309
+ """Auto negotiate to 100 Mbit/s or 1 Gbit/s"""
310
+ F100M1G10G = 11
311
+ """Auto negotiate to 100 Mbit/s or 1 Gbit/s or 10 Gbit/s"""
312
+ F2500M = 12
313
+ """Forced to 2500 Mbit/s"""
314
+ F5G = 13
315
+ """Forced to 5 Gbit/s"""
316
+ F100M1G2500M = 14
317
+ """Auto negotiate to 100 Mbit/s or 1 Gbit/s or 2500 Mbit/s"""
318
+ F25G = 15
319
+ """Forced to 25 Gbit/s"""
320
+ F50G = 16
321
+ """Forced to 50 Gbit/s"""
322
+ F200G = 17
323
+ """Forced to 200 Gbit/s"""
324
+ F400G = 18
325
+ """Forced to 400 Gbit/s"""
326
+ F800G = 19
327
+ """Forced to 800 Gbit/s"""
328
+ F1600G = 20
329
+ """Forced to 1600 Gbit/s"""
330
+ UNKNOWN = 255
331
+ """Speed mode unknown"""
332
+
333
+
334
+ class SyncStatus(IntEnum):
335
+ """Port sync status"""
336
+
337
+ NO_SYNC = 0
338
+ """Not sync"""
339
+ IN_SYNC = 1
340
+ """In sync with peer"""
341
+
342
+
343
+ class LoopbackMode(IntEnum):
344
+ """Port loopback mode"""
345
+
346
+ NONE = 0
347
+ """Off"""
348
+ L1RX2TX = 1
349
+ """L1 RX-to-TX"""
350
+ L2RX2TX = 2
351
+ """L2 RX-to-TX"""
352
+ L3RX2TX = 3
353
+ """L3 RX-to-TX"""
354
+ TXON2RX = 4
355
+ """TX(on)-to-RX"""
356
+ TXOFF2RX = 5
357
+ """TX(off)-to-RX"""
358
+ PORT2PORT = 6
359
+ """Port-to-Port"""
360
+
361
+
362
+ class TrafficOnOff(IntEnum):
363
+ """Traffic status"""
364
+
365
+ OFF = 0
366
+ """Traffic off"""
367
+ ON = 1
368
+ """Traffic on"""
369
+ PREPARING = 2
370
+ """Traffic preparing"""
371
+
372
+
373
+ class StartOrStop(IntEnum):
374
+ STOP = 0
375
+ """Stop the action"""
376
+ START = 1
377
+ """Start the action"""
378
+
379
+
380
+ class LatencyMode(IntEnum):
381
+ """Latency measurement mode"""
382
+
383
+ LAST2LAST = 0
384
+ """Last-to-Last"""
385
+ FIRST2LAST = 1
386
+ """First-to-Last"""
387
+ LAST2FIRST = 2
388
+ """Last-to-First"""
389
+ FIRST2FIRST = 3
390
+ """First-to-First"""
391
+
392
+
393
+ class SourceType(IntEnum):
394
+ TX_IFG = 0
395
+ """TX IFG"""
396
+ TX_LEN = 1
397
+ """TX Length"""
398
+ RX_IFG = 2
399
+ """RX IFG"""
400
+ RX_LEN = 3
401
+ """RX Length"""
402
+ RX_LATENCY = 4
403
+ """RX Latency"""
404
+ RX_JITTER = 5
405
+ """RX Jitter"""
406
+
407
+
408
+ class PacketDetailSelection(IntEnum):
409
+ ALL = 0
410
+ """All"""
411
+ TPLD = 1
412
+ """Based on Test Payload ID"""
413
+ FILTER = 2
414
+ """Based on filter"""
415
+
416
+
417
+ class OnOffWithSuppress(IntEnum):
418
+ """Stream status"""
419
+
420
+ OFF = 0
421
+ """Off"""
422
+ ON = 1
423
+ """On"""
424
+ SUPPRESS = 2
425
+ """Suppressed"""
426
+
427
+
428
+ class ProtocolOption(IntEnum):
429
+ """Protocol header options"""
430
+
431
+ ETHERNET = 1
432
+ """Ethernet II"""
433
+ VLAN = 2
434
+ """VLAN"""
435
+ ARP = 3
436
+ """Address Resolution Protocol"""
437
+ IP = 4
438
+ """IPv4"""
439
+ IPV6 = 5
440
+ """IPv6"""
441
+ UDP = 6
442
+ """User Datagram Protocol (w/o checksum)"""
443
+ TCP = 7
444
+ """Transmission Control Protocol (w/o checksum)"""
445
+ LLC = 8
446
+ """Logic Link Control"""
447
+ SNAP = 9
448
+ """Subnetwork Access Protocol"""
449
+ GTP = 10
450
+ """GPRS Tunnelling Protocol"""
451
+ ICMP = 11
452
+ """Internet Control Message Protocol"""
453
+ RTP = 12
454
+ """Real-time Transport Protocol"""
455
+ RTCP = 13
456
+ """RTP Control Protocol"""
457
+ STP = 14
458
+ """Spanning Tree Protocol"""
459
+ SCTP = 15
460
+ """Stream Control Transmission Protocol"""
461
+ MACCTRL = 16
462
+ """MAC Control"""
463
+ MPLS = 17
464
+ """Multiprotocol Label Switching"""
465
+ PBBTAG = 18
466
+ """Provider Backbone Bridge tag"""
467
+ FCOE = 19
468
+ """Fibre Channel over Ethernet"""
469
+ FC = 20
470
+ """Fibre Channel"""
471
+ FCOETAIL = 21
472
+ """Fibre Channel over Ethernet (tail)"""
473
+ IGMPV3L0 = 22
474
+ """IGMPv3 Membership Query L=0"""
475
+ IGMPV3L1 = 23
476
+ """IGMPv3 Membership Query L=1"""
477
+ UDPCHECK = 24
478
+ """User Datagram Protocol (w/ checksum)"""
479
+ IGMPV2 = 25
480
+ """Internet Group Management Protocol v2"""
481
+ MPLS_TP_OAM = 26
482
+ """MPLS-TP, OAM Header"""
483
+ GRE_NOCHECK = 27
484
+ """Generic Routing Encapsulation (w/o checksum)"""
485
+ GRE_CHECK = 28
486
+ """Generic Routing Encapsulation (w/ checksum)"""
487
+ TCPCHECK = 29
488
+ """Transmission Control Protocol (w/ checksum)"""
489
+ GTPV1L0 = 30
490
+ """GTPv1 (no options), GPRS Tunneling Protocol v1"""
491
+ GTPV1L1 = 31
492
+ """GTPv1 (w/ options), GPRS Tunneling Protocol v1"""
493
+ GTPV2L0 = 32
494
+ """GTPv2 (no options), GPRS Tunneling Protocol v2"""
495
+ GTPV2L1 = 33
496
+ """GTPv2 (w/ options), GPRS Tunneling Protocol v2"""
497
+ IGMPV1 = 34
498
+ """Internet Group Management Protocol v1"""
499
+ PWETHCTRL = 35
500
+ """PW Ethernet Control Word"""
501
+ VXLAN = 36
502
+ """Virtual eXtensible LAN"""
503
+ ETHERNET_8023 = 37
504
+ """Ethernet 802.3"""
505
+ NVGRE = 38
506
+ """Generic Routing Encapsulation (Network Virtualization)"""
507
+ DHCPV4 = 39
508
+ """Dynamic Host Configuration Protocol (IPv4)"""
509
+ GENEVE = 40
510
+ """Generic Network Virtualization Encapsulation"""
511
+ XENA_TPLD = 41
512
+ XENA_TPLD_PI = 42
513
+ XENA_MICROTPLD = 43
514
+ ETHERNET_FCS = 44
515
+ MACCTRLPFC = 45
516
+ """MAC Control for PFC"""
517
+ ECPRI = 46
518
+ """Enhanced Common Public Radio Interface"""
519
+ ROE = 47
520
+ """Radio over Ethernet"""
521
+ ETHERTYPE = 48
522
+ """EtherType"""
523
+
524
+ # Generate RAW form 1...64 bytes
525
+ # _ignore_ = "ProtocolOption i"
526
+ # ProtocolOption = vars()
527
+ # for i in range(1, 65):
528
+ # ProtocolOption["RAW_%d" % i] = 256 - i # type: ignore
529
+ RAW_1 = 255
530
+ RAW_2 = 254
531
+ RAW_3 = 253
532
+ RAW_4 = 252
533
+ RAW_5 = 251
534
+ RAW_6 = 250
535
+ RAW_7 = 249
536
+ RAW_8 = 248
537
+ RAW_9 = 247
538
+ RAW_10 = 246
539
+ RAW_11 = 245
540
+ RAW_12 = 244
541
+ RAW_13 = 243
542
+ RAW_14 = 242
543
+ RAW_15 = 241
544
+ RAW_16 = 240
545
+ RAW_17 = 239
546
+ RAW_18 = 238
547
+ RAW_19 = 237
548
+ RAW_20 = 236
549
+ RAW_21 = 235
550
+ RAW_22 = 234
551
+ RAW_23 = 233
552
+ RAW_24 = 232
553
+ RAW_25 = 231
554
+ RAW_26 = 230
555
+ RAW_27 = 229
556
+ RAW_28 = 228
557
+ RAW_29 = 227
558
+ RAW_30 = 226
559
+ RAW_31 = 225
560
+ RAW_32 = 224
561
+ RAW_33 = 223
562
+ RAW_34 = 222
563
+ RAW_35 = 221
564
+ RAW_36 = 220
565
+ RAW_37 = 219
566
+ RAW_38 = 218
567
+ RAW_39 = 217
568
+ RAW_40 = 216
569
+ RAW_41 = 215
570
+ RAW_42 = 214
571
+ RAW_43 = 213
572
+ RAW_44 = 212
573
+ RAW_45 = 211
574
+ RAW_46 = 210
575
+ RAW_47 = 209
576
+ RAW_48 = 208
577
+ RAW_49 = 207
578
+ RAW_50 = 206
579
+ RAW_51 = 205
580
+ RAW_52 = 204
581
+ RAW_53 = 203
582
+ RAW_54 = 202
583
+ RAW_55 = 201
584
+ RAW_56 = 200
585
+ RAW_57 = 199
586
+ RAW_58 = 198
587
+ RAW_59 = 197
588
+ RAW_60 = 196
589
+ RAW_61 = 195
590
+ RAW_62 = 194
591
+ RAW_63 = 193
592
+ RAW_64 = 192
593
+ RAW_65 = 191
594
+ RAW_66 = 190
595
+ RAW_67 = 189
596
+ RAW_68 = 188
597
+ RAW_69 = 187
598
+ RAW_70 = 186
599
+ RAW_71 = 185
600
+ RAW_72 = 184
601
+ RAW_73 = 183
602
+ RAW_74 = 182
603
+ RAW_75 = 181
604
+ RAW_76 = 180
605
+ RAW_77 = 179
606
+ RAW_78 = 178
607
+ RAW_79 = 177
608
+ RAW_80 = 176
609
+ RAW_81 = 175
610
+ RAW_82 = 174
611
+ RAW_83 = 173
612
+ RAW_84 = 172
613
+ RAW_85 = 171
614
+ RAW_86 = 170
615
+ RAW_87 = 169
616
+ RAW_88 = 168
617
+ RAW_89 = 167
618
+ RAW_90 = 166
619
+ RAW_91 = 165
620
+ RAW_92 = 164
621
+ RAW_93 = 163
622
+ RAW_94 = 162
623
+ RAW_95 = 161
624
+ RAW_96 = 160
625
+ RAW_97 = 159
626
+ RAW_98 = 158
627
+ RAW_99 = 157
628
+ RAW_100 = 156
629
+ RAW_101 = 155
630
+ RAW_102 = 154
631
+ RAW_103 = 153
632
+ RAW_104 = 152
633
+ RAW_105 = 151
634
+ RAW_106 = 150
635
+ RAW_107 = 149
636
+ RAW_108 = 148
637
+ RAW_109 = 147
638
+ RAW_110 = 146
639
+ RAW_111 = 145
640
+ RAW_112 = 144
641
+ RAW_113 = 143
642
+ RAW_114 = 142
643
+ RAW_115 = 141
644
+ RAW_116 = 140
645
+ RAW_117 = 139
646
+ RAW_118 = 138
647
+ RAW_119 = 137
648
+ RAW_120 = 136
649
+ RAW_121 = 135
650
+ RAW_122 = 134
651
+ RAW_123 = 133
652
+ RAW_124 = 132
653
+ RAW_125 = 131
654
+ RAW_126 = 130
655
+ RAW_127 = 129
656
+ RAW_128 = 128
657
+ RAW_129 = 127
658
+ RAW_130 = 126
659
+ RAW_131 = 125
660
+ RAW_132 = 124
661
+ RAW_133 = 123
662
+ RAW_134 = 122
663
+ RAW_135 = 121
664
+ RAW_136 = 120
665
+ RAW_137 = 119
666
+ RAW_138 = 118
667
+ RAW_139 = 117
668
+ RAW_140 = 116
669
+ RAW_141 = 115
670
+ RAW_142 = 114
671
+ RAW_143 = 113
672
+ RAW_144 = 112
673
+ RAW_145 = 111
674
+ RAW_146 = 110
675
+ RAW_147 = 109
676
+ RAW_148 = 108
677
+ RAW_149 = 107
678
+ RAW_150 = 106
679
+
680
+
681
+ class ModifierAction(IntEnum):
682
+ """Modifier action mode"""
683
+
684
+ INC = 0
685
+ """Incrementing"""
686
+ DEC = 1
687
+ """Decrementing"""
688
+ RANDOM = 2
689
+ """Random"""
690
+
691
+
692
+ class LengthType(IntEnum):
693
+ """Packet length type"""
694
+
695
+ FIXED = 0
696
+ """Fixed"""
697
+ INCREMENTING = 1
698
+ """Incrementing"""
699
+ BUTTERFLY = 2
700
+ """Butterfly"""
701
+ RANDOM = 3
702
+ """Random"""
703
+ MIX = 4
704
+ """Mix"""
705
+
706
+
707
+ class PayloadType(IntEnum):
708
+ """Packet payload type"""
709
+
710
+ PATTERN = 0
711
+ """Pattern"""
712
+
713
+ INC8 = INCREMENTING = 1
714
+ """
715
+ .. versionchanged:: 1.1
716
+
717
+ Incrementing with 0xFF (8-bit mode)
718
+
719
+ """
720
+
721
+ PRBS = 2
722
+ """PRBS"""
723
+
724
+ RANDOM = 3
725
+ """Random"""
726
+
727
+ DEC8 = DECREMENTING = 4
728
+ """
729
+ .. versionchanged:: 1.1
730
+
731
+ Decrementing with 0xFF (8-bit mode)
732
+ """
733
+
734
+ INC16 = 5
735
+ """
736
+ .. versionadded:: 1.1
737
+
738
+ Incrementing with 0xFFFF (16-bit mode)
739
+ """
740
+
741
+ DEC16 = 6
742
+ """
743
+ .. versionadded:: 1.1
744
+
745
+ Decrementing with 0xFFFF (16-bit mode)
746
+ """
747
+
748
+
749
+ class MDIXMode(IntEnum):
750
+ """MDIX mode"""
751
+
752
+ AUTO = 0
753
+ """Auto"""
754
+ MDI = 1
755
+ """MDI"""
756
+ MDIX = 2
757
+ """MDIX"""
758
+
759
+
760
+ class LengthCheckType(IntEnum):
761
+ AT_MOST = 0
762
+ """At Most"""
763
+ AT_LEAST = 1
764
+ """At Least"""
765
+
766
+
767
+ class StartTrigger(IntEnum):
768
+ """Capture start trigger"""
769
+
770
+ ON = 0
771
+ """From Traffic On"""
772
+ FCSERR = 1
773
+ """From FCS Error"""
774
+ FILTER = 2
775
+ """From Filter"""
776
+ PLDERR = 3
777
+ """From Payload Error"""
778
+
779
+
780
+ class StopTrigger(IntEnum):
781
+ """Capture stop trigger"""
782
+
783
+ FULL = 0
784
+ """Until Capture Buffer Full"""
785
+ FCSERR = 1
786
+ """Until Receiving FCS Error"""
787
+ FILTER = 2
788
+ """Until Filter Matched"""
789
+ PLDERR = 3
790
+ """Until Receiving Payload Error"""
791
+ USERSTOP = 4
792
+ """Until User Stops"""
793
+
794
+
795
+ class PacketType(IntEnum):
796
+ """Type of Packet to Keep in Capture Buffer"""
797
+
798
+ ALL = 0
799
+ """All Packets"""
800
+ FCSERR = 1
801
+ """With FCS Errors"""
802
+ NOTPLD = 2
803
+ """Without Test Payload"""
804
+ TPLD = 3
805
+ """With Test Payload"""
806
+ FILTER = 4
807
+ """Filtered Packets"""
808
+ PLDERR = 5
809
+ """With Payload Errors"""
810
+
811
+
812
+ class InjectErrorType(IntEnum):
813
+ """Lane Injection Error Type"""
814
+
815
+ HEADERERROR = 1
816
+ """Header Error"""
817
+ ALIGNERROR = 2
818
+ """Alignment Error"""
819
+ BIP8ERROR = 3
820
+ """BIP8 Error"""
821
+
822
+
823
+ class HeaderLockStatus(IntEnum):
824
+ """Physical Lane Header Lock Status"""
825
+
826
+ HEADEROFF = 0
827
+ """Header Lock Off"""
828
+ HEADERON = 1
829
+ """Header Lock On"""
830
+ HEADEROFFUNSTABLE = 2
831
+ """Header Lock Off and Unstable"""
832
+ HEADERONUNSTABLE = 3
833
+ """Header Lock On but Unstable"""
834
+
835
+
836
+ class AlignLockStatus(IntEnum):
837
+ """Physical Lane Alignment Lock Status"""
838
+
839
+ ALIGNOFF = 0
840
+ """Alignment Lock Off"""
841
+ ALIGNON = 1
842
+ """Alignment Lock On"""
843
+ ALIGNOFFUNSTABLE = 2
844
+ """Alignment Lock Off and Unstable"""
845
+ ALIGNONUNSTABLE = 3
846
+ """Alignment Lock On but Unstable"""
847
+
848
+
849
+ class PRBSLockStatus(IntEnum):
850
+ """Physical Lane PRBS Lock Status"""
851
+
852
+ PRBSOFF = 0
853
+ """PRBS Lock Off"""
854
+ PRBSON = 1
855
+ """PRBS Lock On"""
856
+ PRBSOFFUNSTABLE = 2
857
+ """PRBS Lock Off and Unstable"""
858
+ PRBSONUNSTABLE = 3
859
+ """PRBS Lock On but Unstable"""
860
+
861
+
862
+ class MulticastOperation(IntEnum):
863
+ """IGMPv2 Request Type"""
864
+
865
+ OFF = 0
866
+ """Off"""
867
+ ON = 1
868
+ """On"""
869
+ JOIN = 2
870
+ """Join"""
871
+ LEAVE = 3
872
+ """Leave"""
873
+
874
+
875
+ class MulticastExtOperation(IntEnum):
876
+ """IGMPv2/v3Request Type"""
877
+
878
+ OFF = 0
879
+ """Off"""
880
+ ON = 1
881
+ """On"""
882
+ JOIN = 2
883
+ """Join"""
884
+ LEAVE = 3
885
+ """Leave"""
886
+ INCLUDE = 4
887
+ """Include"""
888
+ EXCLUDE = 5
889
+ """EXclude"""
890
+ LEAVE_TO_ALL = 6
891
+ """Leave To All"""
892
+ GENERAL_QUERY = 7
893
+ """General Query"""
894
+ GROUP_QUERY = 8
895
+ """Group Query"""
896
+
897
+
898
+ class IGMPVersion(IntEnum):
899
+ """IGMP Version"""
900
+
901
+ IGMPV2 = 0
902
+ """IGMP Version 2"""
903
+ IGMPV3 = 1
904
+ """IGMP Version 3"""
905
+
906
+
907
+ class TXMode(IntEnum):
908
+ """Port TX Mode"""
909
+
910
+ NORMAL = 0
911
+ """Normal"""
912
+ STRICTUNIFORM = 1
913
+ """Strict Uniform"""
914
+ SEQUENTIAL = 2
915
+ """Sequential"""
916
+ BURST = 3
917
+ """Burst"""
918
+
919
+
920
+ class PayloadMode(IntEnum):
921
+ """Payload Mode"""
922
+
923
+ NORMAL = 0
924
+ """Normal"""
925
+ EXTPL = 1
926
+ """Extend Payload"""
927
+ CDF = 2
928
+ """Custom Data Field"""
929
+
930
+
931
+ class BRRMode(IntEnum):
932
+ """BRR Mode"""
933
+
934
+ SLAVE = 0
935
+ """Slave Mode"""
936
+ MASTER = 1
937
+ """Master Mode"""
938
+
939
+
940
+ class TXClockSource(IntEnum):
941
+ """TX Clock Source"""
942
+
943
+ MODULELOCALCLOCK = 0
944
+ """Module Local Clock"""
945
+ SMAINPUT = 1
946
+ """SMA Input"""
947
+ P0RXCLK = 2
948
+ """Port 0 RX Clock"""
949
+ P1RXCLK = 3
950
+ """Port 1 RX Clock"""
951
+ P2RXCLK = 4
952
+ """Port 2 RX Clock"""
953
+ P3RXCLK = 5
954
+ """Port 3 RX Clock"""
955
+ P4RXCLK = 6
956
+ """Port 4 RX Clock"""
957
+ P5RXCLK = 7
958
+ """Port 5 RX Clock"""
959
+ P6RXCLK = 8
960
+ """Port 6 RX Clock"""
961
+ P7RXCLK = 9
962
+ """Port 7 RX Clock"""
963
+
964
+
965
+ class TXClockStatus(IntEnum):
966
+ """TX Clock Status"""
967
+
968
+ OK = 0
969
+ """Clock OK"""
970
+ NOVALIDTXCLK = 1
971
+ """No Valid TX Clock"""
972
+
973
+
974
+ class LoopBandwidth(IntEnum):
975
+ """Loop Bandwidth"""
976
+
977
+ BW103HZ = 1
978
+ """Loop Bandwidth = 103 Hz"""
979
+ BW207HZ = 2
980
+ """Loop Bandwidth = 207 Hz"""
981
+ BW416HZ = 3
982
+ """Loop Bandwidth = 416 Hz"""
983
+ BW1683HZ = 4
984
+ """Loop Bandwidth = 1683 Hz"""
985
+ BW7019HZ = 5
986
+ """Loop Bandwidth = 7019 Hz"""
987
+
988
+
989
+ class MediaConfigurationType(IntEnum):
990
+ """Module Media Configuration Type"""
991
+
992
+ CFP4 = 0
993
+ """CFP4"""
994
+
995
+ QSFP28 = QSFP28_NRZ = 1
996
+ """QSFP28, 25G serdes"""
997
+
998
+ CXP = 2
999
+ """CXP"""
1000
+
1001
+ SFP28 = 3
1002
+ """SFP28, 25G serdes"""
1003
+
1004
+ QSFP56 = QSFP56_PAM4 = 4
1005
+ """QSFP56, 56G serdes"""
1006
+
1007
+ QSFPDD = QSFPDD_PAM4 = 5
1008
+ """QSFP-DD, 56G serdes"""
1009
+
1010
+ SFP56 = 6
1011
+ """SFP56"""
1012
+
1013
+ SFP_DD = SFPDD = 7
1014
+ """SFP-DD"""
1015
+
1016
+ SFP112 = 8
1017
+ """SFP112"""
1018
+
1019
+ QSFP_DD_NRZ = QSFPDD_NRZ = 9
1020
+ """QSFP-DD, 25G serdes"""
1021
+
1022
+ QSFP28_PAM4 = 10
1023
+ """QSFP28 4x26G KP -> 2x53G KP PAM4"""
1024
+
1025
+ CFP = 99
1026
+ """CFP"""
1027
+
1028
+ BASE_T1 = 100
1029
+ """BASE-T1"""
1030
+
1031
+ BASE_T1S = 101
1032
+ """BASE-T1S"""
1033
+
1034
+ QSFPDD800 = 110
1035
+ """QSFP-DD800, 112G serdes"""
1036
+
1037
+ QSFP112 = 111
1038
+ """QSFP112, 112G serdes"""
1039
+
1040
+ OSFP800 = 112
1041
+ """OSFP800, 112G serdes"""
1042
+
1043
+ QSFPDD800_ANLT = 113
1044
+ """QSFPDD800, 112G serdes, L1/ANLT"""
1045
+
1046
+ QSFP112_ANLT = 114
1047
+ """QSFP112, 112G serdes, L1/ANLT"""
1048
+
1049
+ OSFP800_ANLT = 115
1050
+ """OSFP800, 112G serdes, L1/ANLT"""
1051
+
1052
+ OSFP = 116
1053
+ """OSFP, 56G serdes"""
1054
+
1055
+ QSFPDD_ANLT = 117
1056
+ """QSFP-DD, 56G serdes, L1/ANLT"""
1057
+
1058
+ QSFP56_ANLT = 118
1059
+ """QSFP56, 56G serdes, L1/ANLT"""
1060
+
1061
+ OSFP_ANLT = 119
1062
+ """OSFP, 56G serdes, L1/ANLT"""
1063
+
1064
+ OSFP_NRZ = 120
1065
+ """OSFP, 56G serdes, NRZ"""
1066
+
1067
+ UNKNOWN = 255
1068
+
1069
+
1070
+ class TXHState(IntEnum):
1071
+ """Recent Change in EEE State on TX"""
1072
+
1073
+ TXH_NA = 0
1074
+ """Leaving or Going Into"""
1075
+ TXH_X = 1
1076
+ """No Activity"""
1077
+
1078
+
1079
+ class RXHState(IntEnum):
1080
+ """Recent Change in EEE State on RX"""
1081
+
1082
+ RXH_NA = 0
1083
+ """Leaving or Going Into"""
1084
+ RXH_X = 1
1085
+ """No Activity"""
1086
+
1087
+
1088
+ class TXCState(IntEnum):
1089
+ """TX EEE State"""
1090
+
1091
+ TXC_ACTIVE = 0
1092
+ """Active"""
1093
+ TXC_LPI = 1
1094
+ """Low Power"""
1095
+
1096
+
1097
+ class RXCState(IntEnum):
1098
+ """RX EEE State"""
1099
+
1100
+ RXC_ACTIVE = 0
1101
+ """Active"""
1102
+ RXC_LPI = 1
1103
+ """Low Power"""
1104
+
1105
+
1106
+ class LinkState(IntEnum):
1107
+ """Low Power Mode Link State"""
1108
+
1109
+ LINK_DOWN = 0
1110
+ """Link Down"""
1111
+ LINK_UP = 1
1112
+ """Link Up"""
1113
+
1114
+
1115
+ class FaultSignaling(IntEnum):
1116
+ """Fault Signaling Behavior"""
1117
+
1118
+ NORMAL = 0
1119
+ """Normal"""
1120
+ FORCE_LOCAL = 1
1121
+ """Forced to Local"""
1122
+ FORCE_REMOTE = 2
1123
+ """Forced to Remote"""
1124
+ DISABLED = 3
1125
+ """Disabled"""
1126
+
1127
+
1128
+ class LocalFaultStatus(IntEnum):
1129
+ """Local Fault Status"""
1130
+
1131
+ OK = 0
1132
+ """OK"""
1133
+ LOCAL_FAULT = 1
1134
+ """Local Fault"""
1135
+
1136
+
1137
+ class RemoteFaultStatus(IntEnum):
1138
+ """Remote Fault Status"""
1139
+
1140
+ OK = 0
1141
+ """OK"""
1142
+ REMOTE_FAULT = 1
1143
+ """Remote Fault"""
1144
+
1145
+
1146
+ class TPLDMode(IntEnum):
1147
+ """Test Payload Mode"""
1148
+
1149
+ NORMAL = 0
1150
+ """Normal"""
1151
+ MICRO = 1
1152
+ """Micro"""
1153
+
1154
+
1155
+ class SerdesStatus(IntEnum):
1156
+ """Serdes Status"""
1157
+
1158
+ STOPPED = 0
1159
+ """Stopped"""
1160
+ STARTED = 1
1161
+ """Started"""
1162
+ INITIALIZING = 2
1163
+ """Initializing"""
1164
+ PLOTTING = 3
1165
+ """Plotting"""
1166
+
1167
+
1168
+ class FECMode(IntEnum):
1169
+ """FEX Mode"""
1170
+
1171
+ OFF = 0
1172
+ """Off"""
1173
+ ON = 1
1174
+ """On"""
1175
+ RS_FEC = 2
1176
+ """RS FEC"""
1177
+ FC_FEC = 3
1178
+ """Firecode FEC"""
1179
+ RS_FEC_KR = 4
1180
+ """RS FEC KR"""
1181
+ RS_FEC_KP = 5
1182
+ """RS FEC KP"""
1183
+ RS_FEC_INT = 6
1184
+ """RS FEC Int"""
1185
+
1186
+
1187
+ class PRBSInsertedType(IntEnum):
1188
+ """PRBS Type"""
1189
+
1190
+ CAUI_VIRTUAL = 0
1191
+ """CAUI Virtual"""
1192
+ PHY_LINE = 1
1193
+ """PHY Line"""
1194
+ PHY_HOST = 2
1195
+ """PHY Host"""
1196
+ TCVR = 3
1197
+ """Transceiver"""
1198
+
1199
+
1200
+ class PRBSPolynomial(IntEnum):
1201
+ """PRBS Polynomial"""
1202
+
1203
+ PRBS7 = 0
1204
+ """PRBS-7"""
1205
+ PRBS9 = 1
1206
+ """PRBS-9"""
1207
+ PRBS11 = 2
1208
+ """PRBS-11"""
1209
+ PRBS15 = 3
1210
+ """PRBS-15"""
1211
+ PRBS23 = 4
1212
+ """PRBS-23"""
1213
+ PRBS31 = 5
1214
+ """PRBS-31"""
1215
+ PRBS58 = 6
1216
+ """PRBS-58"""
1217
+ PRBS49 = 7
1218
+ """PRBS-49"""
1219
+ PRBS10 = 8
1220
+ """PRBS-10"""
1221
+ PRBS20 = 9
1222
+ """PRBS-20"""
1223
+ PRBS13 = 10
1224
+ """PRBS-13"""
1225
+ SSPRQ = 24
1226
+ """SSPRQ"""
1227
+ SQUARE_WAVE = 25
1228
+ """Square Wave"""
1229
+
1230
+
1231
+ class PRBSInvertState(IntEnum):
1232
+ """PRBS Invert State"""
1233
+
1234
+ NON_INVERTED = 0
1235
+ """Non-inverted"""
1236
+ INVERTED = 1
1237
+ """Inverted"""
1238
+
1239
+
1240
+ class PRBSStatisticsMode(IntEnum):
1241
+ """PRBS Statistics Mode"""
1242
+
1243
+ ACCUMULATIVE = 0
1244
+ """Accumulative"""
1245
+ PERSECOND = 1
1246
+ """Per Second"""
1247
+
1248
+
1249
+ class PauseMode(IntEnum):
1250
+ """Pause Mode"""
1251
+
1252
+ NO_PAUSE = 0
1253
+ """No Pause"""
1254
+ SYM_PAUSE = 1
1255
+ """Symmetric Pause"""
1256
+ ASYM_PAUSE = 2
1257
+ """Asymmetric Pause"""
1258
+
1259
+
1260
+ class MulticastHeaderFormat(IntEnum):
1261
+ """Additional Header to IGMPv2/v3 Packets"""
1262
+
1263
+ NOHDR = 0
1264
+ """No Header"""
1265
+ VLAN = 1
1266
+ """VLAN"""
1267
+
1268
+
1269
+ class PFCMode(IntEnum):
1270
+ """The PFC CoS value of the stream"""
1271
+ ZERO = 0
1272
+ """the PFC CoS value = 0"""
1273
+ ONE = 1
1274
+ """the PFC CoS value = 1"""
1275
+ TWO = 2
1276
+ """the PFC CoS value = 2"""
1277
+ THREE = 3
1278
+ """the PFC CoS value = 3"""
1279
+ FOUR = 4
1280
+ """the PFC CoS value = 4"""
1281
+ FIVE = 5
1282
+ """the PFC CoS value = 5"""
1283
+ SIX = 6
1284
+ """the PFC CoS value = 6"""
1285
+ SEVEN = 7
1286
+ """the PFC CoS value = 7"""
1287
+ VLAN_PCP = 128
1288
+ """PFC CoS value is automatically using the outer VLAN PCP value of the stream. If the VLAN field is missing, the stream won't have a PFC CoS."""
1289
+ OFF = 129
1290
+ """Remove PFC CoS value of the stream."""
1291
+
1292
+
1293
+ class PRBSOnOff(IntEnum):
1294
+ """PRBS Status"""
1295
+
1296
+ PRBSOFF = 0
1297
+ """PRBS Off"""
1298
+ PRBSON = 1
1299
+ """PRBS On"""
1300
+
1301
+
1302
+ class ErrorOnOff(IntEnum):
1303
+ """PRBS Error Injection Status"""
1304
+
1305
+ ERRORSOFF = 0
1306
+ """PRBS Error Injection Off"""
1307
+ ERRORSON = 1
1308
+ """PRBS Error Injection On"""
1309
+
1310
+
1311
+ class PRBSPattern(IntEnum):
1312
+ """PRBS Pattern"""
1313
+
1314
+ PRBS7 = 0
1315
+ """PRBS-7"""
1316
+ PRBS9 = 1
1317
+ """PRBS-9"""
1318
+ PRBS11 = 2
1319
+ """PRBS-11"""
1320
+ PRBS15 = 3
1321
+ """PRBS-15"""
1322
+ PRBS23 = 4
1323
+ """PRBS-23"""
1324
+ PRBS31 = 5
1325
+ """PRBS-31"""
1326
+ PRBS58 = 6
1327
+ """PRBS-58"""
1328
+ PRBS49 = 7
1329
+ """PRBS-49"""
1330
+ PRBS10 = 8
1331
+ """PRBS-10"""
1332
+ PRBS20 = 9
1333
+ """PRBS-20"""
1334
+ PRBS13 = 10
1335
+ """PRBS-13"""
1336
+
1337
+
1338
+ class PHYSignalStatus(IntEnum):
1339
+ """PHY Signal Status"""
1340
+
1341
+ NO_SIGNAL = 0
1342
+ """No Signal"""
1343
+ NO_CDRLOCK = 2
1344
+ """No CDR Lock"""
1345
+ LOCKED = 3
1346
+ """Locked"""
1347
+
1348
+
1349
+ class OnOffDefault(IntEnum):
1350
+ """On Off Default Status"""
1351
+
1352
+ OFF = 0
1353
+ """Off"""
1354
+ ON = 1
1355
+ """On"""
1356
+ DEFAULT = 2
1357
+ """Default"""
1358
+
1359
+
1360
+ class TimeKeeperLicenseFileState(IntEnum):
1361
+ """TimeKeeper License File State"""
1362
+
1363
+ NA = 0
1364
+ """Not Available"""
1365
+ INV = 1
1366
+ """Invalid"""
1367
+ VALID = 2
1368
+ """Valid"""
1369
+
1370
+
1371
+ class TimeKeeperLicenseType(IntEnum):
1372
+ """TimeKeeper License Type"""
1373
+
1374
+ UNDEF = 0
1375
+ """Undefined"""
1376
+ CLIENT = 1
1377
+ """TimeKeeper Client"""
1378
+ SERVER = 2
1379
+ """TimeKeeper Server"""
1380
+
1381
+
1382
+ class TimeKeeperLicenseError(IntEnum):
1383
+ """TimeKeeper License Error"""
1384
+
1385
+ NO_LICENSE_ERROR = 0
1386
+ """No License Error"""
1387
+ INVALID_SERIALNO = 1
1388
+ """Invalid Serial Number"""
1389
+ INVALID_CHASSISTYPE = 2
1390
+ """Invalid Chassis Type"""
1391
+
1392
+
1393
+ class SystemUpdateStatus(IntEnum):
1394
+ """System Update Status"""
1395
+
1396
+ OK = 0
1397
+ """Update OK"""
1398
+ FAILED_SCRIPT = 1
1399
+ """Script Failed"""
1400
+ FAILED_PREP = 10
1401
+ """Preparation Failed"""
1402
+ FAILED_FILENAME = 11
1403
+ """Filename Failed"""
1404
+ FAILED_DECRYPT = 12
1405
+ """Decryption Failed"""
1406
+ FAILED_UNPACK = 13
1407
+ """Unpacking Failed"""
1408
+ FAILED_VERIFY = 14
1409
+ """Verification Failed"""
1410
+ FAILED_MOVE = 15
1411
+ """Moving Failed"""
1412
+
1413
+
1414
+ class TimeKeeperServiceStatus(IntEnum):
1415
+ """TimeKeeper Service Status"""
1416
+
1417
+ STOPPED = 0
1418
+ """Service Stopped"""
1419
+ STARTED = 1
1420
+ """Service Started"""
1421
+ NA = 2
1422
+ """Not Available"""
1423
+
1424
+
1425
+ class TimeKeeperServiceAction(IntEnum):
1426
+ """TimeKeeper Service Action"""
1427
+
1428
+ STOP = 0
1429
+ """Stop"""
1430
+ START = 1
1431
+ """Start"""
1432
+ RESTART = 2
1433
+ """Restart"""
1434
+
1435
+
1436
+ class CustomDefaultCommand(IntEnum):
1437
+ """Custom Default Command"""
1438
+
1439
+ SET = 0
1440
+ """Set Custom Default"""
1441
+ CLEAR = 1
1442
+ """Clear Custom Default"""
1443
+
1444
+
1445
+ class CustomDefaultScope(IntEnum):
1446
+ """Custom Default Scope"""
1447
+
1448
+ ALL = 0
1449
+ """All"""
1450
+ INSTANCE = 1
1451
+ """Instance"""
1452
+
1453
+
1454
+ class TrafficError(IntEnum):
1455
+ """Traffic Error"""
1456
+
1457
+ NOT_PREPARED = 0
1458
+ """Not Prepared"""
1459
+ RATE_LENGTH_ERROR = 1
1460
+ """Rate Length Error"""
1461
+ PREPARED_OK = 2
1462
+ """Prepared OK"""
1463
+
1464
+
1465
+ class TrafficEngine(IntEnum):
1466
+ """Traffic Engine"""
1467
+
1468
+ TGA = 1
1469
+ """Normal TGA"""
1470
+ MICRO_TGA = 2
1471
+ """Micro TGA"""
1472
+
1473
+
1474
+ class LinkTrainFrameLock(IntEnum):
1475
+ """L1 Link Training Frame Lock Status"""
1476
+
1477
+ LOST = 0
1478
+ """No Frame Lock detected"""
1479
+
1480
+ LOCKED = 1
1481
+ """Frame Lock detected"""
1482
+
1483
+
1484
+ class PPMSweepMode(IntEnum):
1485
+ """Module clock PPM Sweep Modes"""
1486
+
1487
+ NONE = 0
1488
+ """Off"""
1489
+ TRIANGLE = 1
1490
+ """Triangle sweeping"""
1491
+
1492
+
1493
+ class PPMSweepStatus(IntEnum):
1494
+ """Module clock PPM Sweep Status"""
1495
+
1496
+ OFF = 0
1497
+ """Off"""
1498
+ SWEEPING = 1
1499
+ """The module is sweeping"""
1500
+
1501
+
1502
+ class ReconciliationSublayerSupport(IntEnum):
1503
+ """Reconciliation Sublayer Support"""
1504
+
1505
+ NO_SUPPORT = 0
1506
+ """Not Supported"""
1507
+ FAULT_SIGNALING = 1
1508
+ """Supported, which means P_FAULTSTATUS and P_FAULTSIGNALLING are supported by the port."""
1509
+
1510
+ class StreamOption(IntEnum):
1511
+ """Stream Options"""
1512
+
1513
+ INCPLDFROM0 = 0
1514
+ """This flag affects the INC8/DEC8/INC16/DEC16 payload types (refer to the PS_PAYLOAD command): With the flag set, the first payload byte/word after the header will be 0 (INC8/INC16) or -1 (DEC8/DEC16). With the flag unset, the default is used: The first payload byte/word of the payload will be equal to <length of header> (INC8/INC16), or -<length of header> - 1 (DEC8/DEC16)."""
1515
+
1516
+ class ModifierEndianness(IntEnum):
1517
+ """Stream modifier endianness"""
1518
+
1519
+ BIG = 0
1520
+ """Modifier inc/dec starts from the LSB"""
1521
+
1522
+ LITTLE = 1
1523
+ """Modifier inc/dec starts from the MSB"""
1524
+
1525
+ # endregion
1526
+
1527
+ # region L47 enums
1528
+ class Role(IntEnum):
1529
+ """L47 port role"""
1530
+
1531
+ CLIENT = 0
1532
+ """Client"""
1533
+ SERVER = 1
1534
+ """Server"""
1535
+
1536
+
1537
+ class Timescale(IntEnum):
1538
+ """Time scale"""
1539
+
1540
+ MSECS = 0
1541
+ """Milliseconds"""
1542
+ SECONDS = 1
1543
+ """Seconds"""
1544
+ MINUTES = 2
1545
+ """Minutes"""
1546
+ HOURS = 3
1547
+ """Hours"""
1548
+
1549
+
1550
+ class MSSType(IntEnum):
1551
+ """TCP Maximum Segment Type"""
1552
+
1553
+ FIXED = 0
1554
+ """Fixed"""
1555
+ INCREMENT = 1
1556
+ """Incrementing"""
1557
+ RANDOM = 2
1558
+ """Pseudorandom"""
1559
+
1560
+
1561
+ class RTOType(IntEnum):
1562
+ """TCP RTO Type"""
1563
+
1564
+ STATIC = 0
1565
+ """Static RTO"""
1566
+ DYNAMIC = 1
1567
+ """Dynamic RTO"""
1568
+
1569
+
1570
+ class CongestionType(IntEnum):
1571
+ """TCP Congestion Control Algorithm"""
1572
+
1573
+ NONE = 0
1574
+ """No TCP Congestion Control"""
1575
+ RENO = 1
1576
+ """RENO"""
1577
+ NEW_RENO = 2
1578
+ """New RENO"""
1579
+
1580
+
1581
+ class IsEnabled(IntEnum):
1582
+ DISABLE = 0
1583
+ ENABLE = 1
1584
+
1585
+
1586
+ class AlgorithmMethod(IntEnum):
1587
+ """Algorithm to calculate the TCP initial congestion window (ICWND)"""
1588
+
1589
+ RFC5681 = 0
1590
+ """RFC 5681"""
1591
+ RFC2581 = 1
1592
+ """RFC 2581"""
1593
+ FIXED_FACTOR = 2
1594
+ """Fixed"""
1595
+
1596
+
1597
+ class AutoOrManual(IntEnum):
1598
+ AUTOMATIC = 0
1599
+ MANUAL = 1
1600
+
1601
+
1602
+ class EmbedIP(IntEnum):
1603
+ """Should Embed IP in MAC"""
1604
+
1605
+ DONT_EMBED_IP = 0
1606
+ """Do not embed"""
1607
+ EMBED_IP = 1
1608
+ """Embed IP in MAC"""
1609
+
1610
+
1611
+ class ApplicationLayerBehavior(IntEnum):
1612
+ """L47 Test Application Type"""
1613
+
1614
+ NONE = 0
1615
+ """TCP connections are created according to the client and server ranges, and ramped up/down as specified in the load profile. But no payload is transmitted."""
1616
+ RAW = 1
1617
+ """Differs from ``NONE`` in that it transmits payload when the TCP connection is established."""
1618
+ REPLAY = 2
1619
+ """PCAP replay."""
1620
+
1621
+
1622
+ class TrafficScenario(IntEnum):
1623
+ """Traffic direction scenario"""
1624
+
1625
+ DOWNLOAD = 0
1626
+ """Server transmits payload to client."""
1627
+ UPLOAD = 1
1628
+ """Client transmits payload to server."""
1629
+ BOTH = 2
1630
+ """Payload is transmitted in both directions."""
1631
+ ECHO = 3
1632
+ """Client transmits payload to server, server echoes the payload back"""
1633
+
1634
+
1635
+ class PayloadGenerationMethod(IntEnum):
1636
+ """Payload generation method."""
1637
+
1638
+ FIXED = 0
1639
+ """Payload has a fixed value."""
1640
+ INCREMENT = 1
1641
+ """Payload consist of incrementing bytes."""
1642
+ RANDOM = 2
1643
+ """Payload consists of pseudo random bytes with a repeat cycle of 1 MB."""
1644
+ LONGRANDOM = 3
1645
+ """Payload consists of pseudo random bytes with a repeat cycle of 4 GB."""
1646
+
1647
+
1648
+ class InfiniteOrFinite(IntEnum):
1649
+ INFINITE = 0
1650
+ FINITE = 1
1651
+
1652
+
1653
+ class WhoClose(IntEnum):
1654
+ """How to close TCP connection when all payload has been transmitted."""
1655
+
1656
+ NONE = 0
1657
+ """Keep the connection open after last byte is transmitted"""
1658
+ CLIENT = 1
1659
+ """Client closes the connection after last byte is receiver/transmitted"""
1660
+ SERVER = 2
1661
+ """Server closes the connection after last byte is transmitted"""
1662
+
1663
+
1664
+ class LifecycleMode(IntEnum):
1665
+ """Connection lifecycle mode"""
1666
+
1667
+ ONCE = 0
1668
+ """Connections are established during the ramp-up phase and not closed until the ramp-down phase of the load profile. That is, each configured connection only exists once."""
1669
+ IMMORTAL = 1
1670
+ """Connections are established during the ramp-up phase of the load profile, and are closed after the configured lifetime (configured by P4G_RAW_CONN_LIFETIME).
1671
+ As connections close, new connections are established, attempting to keep the concurrent number of established connections constant.
1672
+ A new connection will have the same IP address as the connection it replaces, but will have a new TCP port number.
1673
+ This will simulate that the user (defined by the client IP address) is living on, and creates new connections as old connections close.
1674
+ """
1675
+ REINCARNATE = 2
1676
+ """Connections are established during the ramp-up phase of the load profile, and are closed after the configured lifetime (configured by P4G_RAW_CONN_LIFETIME).
1677
+ As connections close, new connections are established, attempting to keep the concurrent number of established connections constant.
1678
+ A new connection will have the same TCP port number as the connection it replaces, but will have a new IP address.
1679
+ This will simulate that the user (defined by the client IP address) ceases to exist, and new users appear as old users die.
1680
+ """
1681
+
1682
+
1683
+ class L47IPVersion(IntEnum):
1684
+ """IP version of the Connection Group"""
1685
+
1686
+ IPV4 = 4
1687
+ """IPv4"""
1688
+ IPV6 = 6
1689
+ """IPv6"""
1690
+
1691
+
1692
+ class L47ProtocolType(IntEnum):
1693
+ """L4 protocol of the Connection Group"""
1694
+
1695
+ TCP = 0
1696
+ """TCP"""
1697
+ UDP = 1
1698
+ """UDP"""
1699
+
1700
+
1701
+ class L47TrafficState(IntEnum):
1702
+ """L47 traffic state"""
1703
+
1704
+ OFF = 0
1705
+ """Off"""
1706
+ ON = 1
1707
+ """On"""
1708
+ STOP = 2
1709
+ """Stop"""
1710
+ PREPARE = 3
1711
+ """Prepare"""
1712
+ PRERUN = 4
1713
+ """Prerun"""
1714
+
1715
+
1716
+ class L47PortState(IntEnum):
1717
+ """L47 port state"""
1718
+
1719
+ OFF = 0
1720
+ """Off"""
1721
+ PREPARE = 1
1722
+ """Prepare"""
1723
+ PREPARE_RDY = 2
1724
+ """Prepare Ready"""
1725
+ PREPARE_FAIL = 3
1726
+ """Prepare Failed"""
1727
+ PRERUN = 4
1728
+ """Prerun"""
1729
+ PRERUN_RDY = 5
1730
+ """Prepare Ready"""
1731
+ RUNNING = 6
1732
+ """Running"""
1733
+ STOPPING = 7
1734
+ """Stopping"""
1735
+ STOPPED = 8
1736
+ """Stopped"""
1737
+ DHCP = 9
1738
+ """DHCP Running"""
1739
+
1740
+
1741
+ class L47PortSpeed(IntEnum):
1742
+ """L47 port speed mode"""
1743
+
1744
+ AUTO = 0
1745
+ """Auto"""
1746
+ F100M = 1
1747
+ """100 Mbit/s"""
1748
+ F1G = 2
1749
+ """1 Gbit/s"""
1750
+ F2_5G = 3
1751
+ """2.5 Gbit/s"""
1752
+ F5G = 4
1753
+ """5 Gbit/s"""
1754
+ F10G = 5
1755
+ """10 Gbit/s"""
1756
+ F25G = 6
1757
+ """25 Gbit/s"""
1758
+ F40G = 7
1759
+ """40 Gbit/s"""
1760
+ F50G = 8
1761
+ """50 Gbit/s"""
1762
+ F100G = 9
1763
+ """100 Gbit/s"""
1764
+
1765
+
1766
+ class CaptureSize(IntEnum):
1767
+ """Capture size"""
1768
+
1769
+ FULL = 0
1770
+ """Capture whole packets"""
1771
+ SMALL = 1
1772
+ """Capture truncated packets"""
1773
+
1774
+
1775
+ class ReplayParserState(IntEnum):
1776
+ OFF = 0
1777
+ PARSING = 1
1778
+
1779
+
1780
+ class IsPresent(IntEnum):
1781
+ NOT_PRESENT = 0
1782
+ PRESENT = 1
1783
+
1784
+
1785
+ class LicenseSpeed(IntEnum):
1786
+ UNDEFINED = 0
1787
+ F100M = 1
1788
+ F1G = 2
1789
+ F2_5G = 3
1790
+ F5G = 4
1791
+ F10G = 5
1792
+ F25G = 6
1793
+ F40G = 7
1794
+ F50G = 8
1795
+ F100G = 9
1796
+
1797
+
1798
+ class TLSVersion(IntEnum):
1799
+ """TLS protocol version"""
1800
+
1801
+ SSLV3 = 0
1802
+ """SSL v3"""
1803
+ TLS10 = 1
1804
+ """TLS v1.0"""
1805
+ TLS11 = 2
1806
+ """TLS v1.1"""
1807
+ TLS12 = 3
1808
+ """TLS v1.2"""
1809
+
1810
+
1811
+ class ResourceAllocationMode(IntEnum):
1812
+ SIMPLE = 0
1813
+ ADVANCED = 1
1814
+
1815
+
1816
+ class ReplaySchedulingMode(IntEnum):
1817
+ BANDWIDTH = 0
1818
+ TIME = 1
1819
+
1820
+
1821
+ class ReplaySyncBasedOn(IntEnum):
1822
+ PER_CONN = 0
1823
+ PER_USER = 1
1824
+
1825
+
1826
+ # endregion
1827
+
1828
+ # region Impairment enums
1829
+ class CorruptionType(IntEnum):
1830
+ """Impairment corruption type"""
1831
+
1832
+ OFF = 0
1833
+ """Off"""
1834
+ ETH = 1
1835
+ """Ethernet"""
1836
+ IP = 2
1837
+ """IP"""
1838
+ UDP = 3
1839
+ """UDP"""
1840
+ TCP = 4
1841
+ """TCP"""
1842
+ BER = 5
1843
+ """Bit Error Rate"""
1844
+
1845
+
1846
+ class PolicerMode(IntEnum):
1847
+ """Policer mode"""
1848
+
1849
+ L1 = 0
1850
+ """Policer performed at Layer 1 level. I.e. including the preamble and min inter-packet gap."""
1851
+ L2 = 1
1852
+ """Policer performed at Layer 2 level. I.e. excluding the preamble and min inter-packet gap"""
1853
+
1854
+
1855
+ class FilterUse(IntEnum):
1856
+ """Use of filter."""
1857
+
1858
+ OFF = 0
1859
+ """No filtering will be done"""
1860
+ AND = 1
1861
+ """Filtering will be done"""
1862
+
1863
+
1864
+ class InfoAction(IntEnum):
1865
+ """Action of filter."""
1866
+
1867
+ EXCLUDE = 0
1868
+ """Matching packets are excluded from the flow"""
1869
+ INCLUDE = 1
1870
+ """Matching packets are included from the flow"""
1871
+
1872
+
1873
+ class L2PlusPresent(IntEnum):
1874
+ """Presence of Layer-2+ protocols"""
1875
+
1876
+ NA = 0
1877
+ """No Layer 2+ protocols"""
1878
+ VLAN1 = 1
1879
+ """One VLAN Tag is present"""
1880
+ VLAN2 = 2
1881
+ """Two VLAN Tags are present"""
1882
+ MPLS = 3
1883
+ """MPLS label is present"""
1884
+
1885
+
1886
+ class L3Present(IntEnum):
1887
+ """Presence of Layer-3 protocols"""
1888
+
1889
+ NA = 0
1890
+ """No Layer 3 protocols"""
1891
+ IP4 = 1
1892
+ """IPv4 is present"""
1893
+ IP6 = 2
1894
+ """IPv6 is present"""
1895
+
1896
+
1897
+ class FilterMode(IntEnum):
1898
+ """Impairment Filter Mode"""
1899
+
1900
+ BASIC = 0
1901
+ """Basic Mode"""
1902
+ EXTENDED = 1
1903
+ """Extended Mode"""
1904
+
1905
+
1906
+ class ImpairmentLatencyMode(IntEnum):
1907
+ """Impairment Latency Mode"""
1908
+
1909
+ NORMAL = 0
1910
+ """Normal"""
1911
+ EXTENDED = 1
1912
+ """Extended"""
1913
+
1914
+
1915
+ class ShadowWorkingSelection(IntEnum):
1916
+ """Shadow Working Selection"""
1917
+
1918
+ SHADOW = 0
1919
+ """Shadow"""
1920
+ WORKING = 1
1921
+ """Working"""
1922
+
1923
+
1924
+ class FilterType(IntEnum):
1925
+ """Filter Type for Impairment"""
1926
+
1927
+ SHADOW = 0
1928
+ """Shadow Copy"""
1929
+ WORKING = 1
1930
+ """Working Copy"""
1931
+
1932
+
1933
+ class FilterVlanType(IntEnum):
1934
+ """VLAN PCP Settings for VLAN Filter"""
1935
+
1936
+ INNER = 0
1937
+ """VLAN1 (0) (INNER VLAN Tag is specified for the filter – used also when only 1 VLAN), indicates single/inner VLAN-TPID=0x8100"""
1938
+ OUTER = 1
1939
+ """VLAN2 (1) (OUTER VLAN Tag is specified for the filter), indicates outer VLAN-TPID=0x88A8"""
1940
+
1941
+
1942
+ class LatencyTypeCustomDist(IntEnum):
1943
+ """Latency Type for Custom Distribution"""
1944
+
1945
+ INTERPACKET_DISTRIBUTION = 0
1946
+ """Interpacket Distribution"""
1947
+ LATENCY_DISTRIBUTION = 1
1948
+ """Latency Distribution"""
1949
+
1950
+
1951
+ class ImpairmentTypeIndex(IntEnum):
1952
+ """Impairment Type Index"""
1953
+
1954
+ DROP = 0
1955
+ """Drop"""
1956
+ MISORDER = 1
1957
+ """Misorder"""
1958
+ LATENCYJITTER = 2
1959
+ """Delay/Jitter"""
1960
+ DUPLICATION = 3
1961
+ """Duplication"""
1962
+ CORRUPTION = 4
1963
+ """Corruption"""
1964
+ POLICER = 5
1965
+ """Policer"""
1966
+ SHAPER = 6
1967
+ """Shaper"""
1968
+
1969
+
1970
+ # endregion
1971
+
1972
+ # region TSN enums
1973
+ class TSNConfigProfile(IntEnum):
1974
+ """TSN PTP Configuration profile"""
1975
+
1976
+ AUTOMOTIVE = 0
1977
+ """Defaults suitable for automotive testing"""
1978
+ IEEE1588V2 = 1
1979
+ """Defaults suitable for PTP testing"""
1980
+
1981
+
1982
+ class TSNPortRole(IntEnum):
1983
+ """TSN port role"""
1984
+
1985
+ GRANDMASTER = 0
1986
+ """Grandmaster role"""
1987
+ SLAVE = 1
1988
+ """Slave role"""
1989
+
1990
+
1991
+ class TSNDeviationMode(IntEnum):
1992
+ FIXED = 0
1993
+
1994
+
1995
+ class TSNTimeSource(IntEnum):
1996
+ """TSN time source"""
1997
+
1998
+ ATOMIC = 0x10
1999
+ """Atomic"""
2000
+ GPS = 0x20
2001
+ """GPS"""
2002
+ TERRESTRIAL = 0x30
2003
+ """Terrestrial"""
2004
+ PTP = 0x40
2005
+ """PTP"""
2006
+ NTP = 0x50
2007
+ """NTP"""
2008
+ HAND_SET = 0x60
2009
+ """Handset"""
2010
+ OTHER = 0x90
2011
+ """Other"""
2012
+ INTERNAL_OSC = 0xA0
2013
+ """Internal oscillator"""
2014
+
2015
+
2016
+ class TSNHistogramSource(IntEnum):
2017
+ """Data source for TSN histogram"""
2018
+
2019
+ DRIFT = 0
2020
+ """Post-servo offset to Grandmaster"""
2021
+ DRIFTPRE = 1
2022
+ """Pre-servo offset to Grandmaster"""
2023
+ PDELAY = 2
2024
+ """PDelay data."""
2025
+ NRR = 3
2026
+ """Neighbor Rate Ratio data."""
2027
+
2028
+
2029
+ class TSNStatisticsTypes(IntEnum):
2030
+ """TSN Statistics Types"""
2031
+
2032
+ ALL = 0
2033
+ """All."""
2034
+ PACKETCOUNT = 1
2035
+ """Packet count."""
2036
+ OFFSET = 2
2037
+ """Offset."""
2038
+ PDELAY = 3
2039
+ """PDelay."""
2040
+ SYNCRATE = 4
2041
+ """Sync rate."""
2042
+
2043
+
2044
+ # endregion
2045
+
2046
+ # region ANLT enums
2047
+
2048
+
2049
+ class AutoNegMode(IntEnum):
2050
+ """Auto Neg Mode"""
2051
+
2052
+ ANEG_OFF = 0
2053
+ """Auto Neg Off"""
2054
+ ANEG_ON = 1
2055
+ """Auto Neg On"""
2056
+
2057
+
2058
+ class AutoNegTecAbility(IntEnum):
2059
+ """Auto Neg Technical Abilities"""
2060
+
2061
+ DEFAULT_TECH_MODE = 0
2062
+ """Default Tech Mode"""
2063
+ IEEE_10G_KR = 4
2064
+ """IEEE 10G KR"""
2065
+ IEEE_40G_CR4 = 16
2066
+ """IEEE 40G CR4"""
2067
+ IEEE_100G_KR4 = 128
2068
+ """IEEE 100G KR4"""
2069
+ IEEE_100G_CR4 = 256
2070
+ """IEEE 100G CR4"""
2071
+ IEEE_25GBASE_CRS_KRS = 512
2072
+ """IEEE 25GBASE CRS KRS"""
2073
+ IEEE_25GBASE_CR_KR = 1024
2074
+ """IEEE 25GBASE CR KR"""
2075
+ IEEE_50GBASE_CR_KR = 8192
2076
+ """IEEE 50GBASE CR KR"""
2077
+ IEEE_100GBASE_CR2_KR2 = 16384
2078
+ """IEEE 100GBASE CR2 KR2"""
2079
+ IEEE_200GBASE_CR4_KR4 = 32768
2080
+ """IEEE 200GBASE CR4 KR4"""
2081
+ IEEE_100GBASE_KR1 = 65536
2082
+ """IEEE 100GBASE KR1"""
2083
+ IEEE_200GBASE_KR2 = 131072
2084
+ """IEEE 200GBASE KR2"""
2085
+ IEEE_400GBASE_KR4 = 262144
2086
+ """IEEE 400GBASE KR4"""
2087
+ EC_25GBASE_KR1 = 16777216
2088
+ """EC 25GBASE KR1"""
2089
+ EC_25GBASE_CR1 = 33554432
2090
+ """EC 25GBASE CR1"""
2091
+ EC_50GBASE_KR2 = 67108864
2092
+ """EC 50GBASE KR2"""
2093
+ EC_50GBASE_CR2 = 134217728
2094
+ """EC 50GBASE CR2"""
2095
+ EC_400GBASE_KR8 = 268435456
2096
+ """EC 400GBASE KR8"""
2097
+ EC_800GBASE_KR8 = 536870912
2098
+ """EC 800GBASE KR8"""
2099
+ EC_50G_CR1_KR1 = 503
2100
+ """EC 50G CR1 KR1"""
2101
+ BAM_50G_CR1_KR1 = 504
2102
+ """BAM 50G CR1 KR1"""
2103
+ BAM_50G_CR2_KR2 = 505
2104
+ """BAM 50G CR2 KR2"""
2105
+ BAM_100G_CR2_KR2 = 1002
2106
+ """BAM 100G CR2 KR2"""
2107
+ BAM_100G_CR4_KR4 = 1003
2108
+ """BAM 100G CR4 KR4"""
2109
+ BAM_200G_CR2_KR2 = 2002
2110
+ """BAM 200G CR2 KR2"""
2111
+ BAM_400G_CR8_KR8 = 4001
2112
+ """BAM 400G CR8 KR8"""
2113
+
2114
+
2115
+ class AutoNegFECOption(IntFlag):
2116
+ """Auto Neg FEC Options"""
2117
+
2118
+ DEFAULT_FEC = 0
2119
+ """Default FEC"""
2120
+ NO_FEC = 1
2121
+ """No FEC"""
2122
+ FCFEC = 2
2123
+ """Firecode FEC"""
2124
+ RSFEC_CL91 = 4
2125
+ """RS FEC Cl91"""
2126
+ RS528 = 256
2127
+ """RS 528"""
2128
+ RS544 = 512
2129
+ """RS 544"""
2130
+ RS272 = 1024
2131
+ """RS 272"""
2132
+ RSFEC_CL161 = 8
2133
+ """RS CL 161"""
2134
+
2135
+
2136
+ class AutoNegFECType(IntEnum):
2137
+ """Auto Neg FEC Type"""
2138
+
2139
+ PENDING = 0
2140
+ """Pending"""
2141
+ NO_FEC = 1
2142
+ """No FEC"""
2143
+ RS_FEC = 513
2144
+ """RS FEC"""
2145
+ FC_FEC = 257
2146
+ """Firecode FEC"""
2147
+
2148
+
2149
+ class AutoNegStatus(IntEnum):
2150
+ """Auto Neg Status"""
2151
+
2152
+ UNKNOWN = 0
2153
+ """Unknown"""
2154
+ ENABLE = 1
2155
+ """Enabled"""
2156
+ TRANSMIT_DISABLE = 2
2157
+ """Transmit Disabled"""
2158
+ ABILITY_DETECT = 3
2159
+ """Ability Detected"""
2160
+ ACKNOWLEDGE_DETECT = 4
2161
+ """Acknowledge Detected"""
2162
+ COMPLETE_ACKNOWLEDGE = 5
2163
+ """Complete Acknowledge"""
2164
+ NEXT_PAGE_WAIT = 6
2165
+ """Next Page Wait"""
2166
+ AN_GOOD_CHECK = 7
2167
+ """AN Good Check"""
2168
+ AN_GOOD = 8
2169
+ """AN Good"""
2170
+
2171
+
2172
+ class AutoNegFECStatus(IntFlag):
2173
+ """Auto Neg FEC Status"""
2174
+
2175
+ DEFAULT_FEC = 0
2176
+ """Default FEC"""
2177
+ NO_FEC = 1
2178
+ """No FEC"""
2179
+ FC_FEC = 2
2180
+ """Firecode FEC"""
2181
+ RSFEC_CL91 = 4
2182
+ """RS FEC Cl91"""
2183
+ RS528 = 256
2184
+ """RS 528"""
2185
+ RS544 = 512
2186
+ """RS 544"""
2187
+ RS272 = 1024
2188
+ """RS 272"""
2189
+ RSFEC_CL161 = 8
2190
+ """RS CL 161"""
2191
+
2192
+
2193
+ class LinkTrainingMode(IntEnum):
2194
+ """Link Training Mode"""
2195
+
2196
+ START_AFTER_AUTONEG = 0
2197
+ """Link training starts automatically after autoneg is completed"""
2198
+
2199
+ STANDALONE = 1
2200
+ """Link training procedure is done automatically by the port"""
2201
+
2202
+ DISABLED = 2
2203
+ """Link training is disabled"""
2204
+
2205
+ INTERACTIVE = 3
2206
+ """Link training in interactive mode, requiring manual operation."""
2207
+
2208
+ UNKNOWN = 255
2209
+ """Unknown link training mode"""
2210
+
2211
+
2212
+ class PAM4FrameSize(IntEnum):
2213
+ """PAM4 Frame Size"""
2214
+
2215
+ P16K_FRAME = 0
2216
+ """16K Frame Size"""
2217
+ P4K_FRAME = 1
2218
+ """4K Frame Size"""
2219
+
2220
+
2221
+ class LinkTrainingInitCondition(IntEnum):
2222
+ """Link Training Initialization Condition"""
2223
+
2224
+ NO_INIT = 0
2225
+ """No Initialization"""
2226
+ INIT_ENABLED = 1
2227
+ """Initialization Enabled"""
2228
+
2229
+
2230
+ class NRZPreset(IntEnum):
2231
+ """Link Training NRZ Preset"""
2232
+
2233
+ NRZ_NO_PRESET = 0
2234
+ """NRZ without Preset"""
2235
+ NRZ_WITH_PRESET = 1
2236
+ """NRZ with Preset"""
2237
+
2238
+
2239
+ class TimeoutMode(IntEnum):
2240
+ """Link Training Timeout Mode"""
2241
+
2242
+ DEFAULT = 0
2243
+ """Default Timeout"""
2244
+ DISABLED = 255
2245
+ """Timeout Disabled"""
2246
+
2247
+
2248
+ class LinkTrainingStatusMode(IntEnum):
2249
+ """Link Training Status Mode"""
2250
+
2251
+ DISABLED = 0
2252
+ """Disabled"""
2253
+ ENABLED = 1
2254
+ """Enabled"""
2255
+
2256
+
2257
+ class LinkTrainingStatus(IntEnum):
2258
+ """Link Training Status"""
2259
+
2260
+ NOT_TRAINED = 0
2261
+ """Not Trained"""
2262
+ TRAINED = 1
2263
+ """Trained"""
2264
+
2265
+
2266
+ class LinkTrainingFailureType(IntEnum):
2267
+ """Link Training Failure Type"""
2268
+
2269
+ NO_FAILURE = 0
2270
+ """No Failure"""
2271
+ FRAME_LOCK_ERROR = 1
2272
+ """Frame Lock Error"""
2273
+ SNR_BELOW_THRESHOLD = 2
2274
+ """SNR Below Threshold"""
2275
+ TIME_OUT_FAILURE = 3
2276
+ """Timeout Failure"""
2277
+
2278
+
2279
+ class Layer1ConfigType(IntEnum):
2280
+ """
2281
+ .. versionadded:: 1.1
2282
+
2283
+ Enums for PL1_CFG_TMP's type.
2284
+ """
2285
+
2286
+ AUTO_LINK_RECOVERY = 0
2287
+ """ANLT Auto Link Recovery"""
2288
+
2289
+ AN_LOOPBACK = 1
2290
+ """Auto-negotiation loopback config"""
2291
+
2292
+ LT_INITIAL_MODULATION = 2
2293
+ """The initial modulation (0=NRZ, 1=PAM4, 2=PAM4_WITH_PRECODING) """
2294
+
2295
+ LL_DEBUG_INFO = 3
2296
+ """Return the an/lt module base and RX and TX (serdes index, base address)"""
2297
+
2298
+ LT_TRAINING_ALGORITHM = 4
2299
+ """The link training algorithm to use"""
2300
+
2301
+ ANLT_LOG_CONTROL = 5
2302
+ """Control what should be logged by anlt"""
2303
+
2304
+ ANLT_STRICT_MODE = 6
2305
+ """Set AN/LT strict mode. In strict mode errored framed will be ignored"""
2306
+
2307
+ AN_LT_XLA_MODE = 7
2308
+ """Set XLA mode. If enabled XLA dumps will, if triggered, be logged automatically"""
2309
+
2310
+ AN_EMPTY_NP = 8
2311
+ """Empty Next Pages mode. If enabled, the port forcibly sends empty NP pages. If disabled, the port does not send empty NP pages."""
2312
+
2313
+
2314
+ class Layer1LogType(IntEnum):
2315
+ """
2316
+
2317
+ .. versionadded:: 1.1
2318
+
2319
+ .. warning::
2320
+
2321
+ Still in beta mode. Subjected to changes
2322
+
2323
+ Enums for PL1_LOG's type.
2324
+ """
2325
+
2326
+ AN = 0
2327
+ """Log for auto-neg"""
2328
+
2329
+ LT = 1
2330
+ """Log for link training"""
2331
+
2332
+
2333
+ class LinkTrainAlgorithm(IntEnum):
2334
+ """
2335
+ .. versionadded:: 1.2
2336
+
2337
+ Link Training Algorithm
2338
+
2339
+ """
2340
+
2341
+ INTERACTIVE = 0
2342
+ """INTERACTIVE"""
2343
+
2344
+ ALG0 = 1
2345
+ """ALGORITHM 0"""
2346
+
2347
+ ALGN1 = 2
2348
+ """ALGORITHM -1"""
2349
+
2350
+
2351
+ class LinkTrainCmd(IntEnum):
2352
+ """
2353
+ .. versionadded:: 1.1
2354
+
2355
+ Link Training commands
2356
+
2357
+ """
2358
+
2359
+ CMD_NOP = 0
2360
+ """No operation. Used for 'ping' testing"""
2361
+
2362
+ CMD_INC = 1
2363
+ """Increment the coeff provided in ARG"""
2364
+
2365
+ CMD_DEC = 2
2366
+ """Decrement the coeff provided in ARG"""
2367
+
2368
+ CMD_PRESET = 3
2369
+ """Set the preset provided in ARG"""
2370
+
2371
+ CMD_ENCODING = 4
2372
+ """Set encoding provided in ARG"""
2373
+
2374
+ CMD_NO_EQ = 5
2375
+ """Set the coeff to NO_EQ"""
2376
+
2377
+ CMD_LOCAL_TRAINED = 255
2378
+ """Signal training completed"""
2379
+
2380
+
2381
+ class LinkTrainPresets(IntEnum):
2382
+ """
2383
+ .. versionadded:: 1.1
2384
+
2385
+ Link Training presets
2386
+
2387
+ """
2388
+
2389
+ PRESET_1 = 0
2390
+ """Preset 1"""
2391
+
2392
+ PRESET_2 = 1
2393
+ """Preset 2"""
2394
+
2395
+ PRESET_3 = 2
2396
+ """Preset 3"""
2397
+
2398
+ PRESET_4 = 3
2399
+ """Preset 4"""
2400
+
2401
+ PRESET_5 = 4
2402
+ """Preset 5"""
2403
+
2404
+ UNKNOWN = 255
2405
+ """Unknown coeff"""
2406
+
2407
+
2408
+ class LinkTrainCoeffs(IntEnum):
2409
+ """
2410
+ .. versionadded:: 1.1
2411
+
2412
+
2413
+ Link Training coefficients
2414
+
2415
+ """
2416
+
2417
+ PRE = 0
2418
+ """Pre coeff c(-1)"""
2419
+
2420
+ MAIN = 1
2421
+ """Main coeff c(0)"""
2422
+
2423
+ POST = 2
2424
+ """Post coeff c(1)"""
2425
+
2426
+ PRE2 = 3
2427
+ """Pre2 coeff c(-2)"""
2428
+
2429
+ PRE3 = 4
2430
+ """Pre3 coeff c(-3)"""
2431
+
2432
+ UNKNOWN = 255
2433
+ """Unknown coeff"""
2434
+
2435
+
2436
+ class LinkTrainEncoding(IntEnum):
2437
+ """
2438
+ .. versionadded:: 1.1
2439
+
2440
+ Link Training Encoding
2441
+
2442
+ """
2443
+
2444
+ NRZ = 0
2445
+ """NRZ (PAM2)"""
2446
+
2447
+ PAM4 = 1
2448
+ """PAM4"""
2449
+
2450
+ PAM4_WITH_PRECODING = 2
2451
+ """PAM4 with precoding"""
2452
+
2453
+ UNKNOWN = 255
2454
+ """PAM4 with precoding"""
2455
+
2456
+
2457
+ class LinkTrainCmdResults(IntEnum):
2458
+ """
2459
+ .. versionadded:: 1.1
2460
+
2461
+ Link Training Command Results
2462
+
2463
+ """
2464
+
2465
+ UNKNOWN = 0x00 | 0
2466
+ """Unknown result"""
2467
+
2468
+ SUCCESS = 0x00 | 1
2469
+ """Command successfully completed"""
2470
+
2471
+ TIMEOUT = 0x00 | 2
2472
+ """Command timeout"""
2473
+
2474
+ FAILED = 0x00 | 3
2475
+ """Command failed"""
2476
+
2477
+ COEFF_STS_NOT_UPDATED = 0x80 | 0
2478
+ """Coeff did not update"""
2479
+
2480
+ COEFF_STS_UPDATED = 0x80 | 1
2481
+ """Coeff updated"""
2482
+
2483
+ COEFF_STS_AT_LIMIT = 0x80 | 2
2484
+ """Coeff at limit"""
2485
+
2486
+ COEFF_STS_NOT_SUPPORTED = 0x80 | 3
2487
+ """Coeff not supported"""
2488
+
2489
+ COEFF_STS_EQ_LIMIT = 0x80 | 4
2490
+ """EQ limit reached"""
2491
+
2492
+ COEFF_STS_C_AND_EQ_LIMIT = 0x80 | 6
2493
+ """Coeff and EQ limit reached"""
2494
+
2495
+
2496
+ class LinkTrainCmdFlags(IntEnum):
2497
+ """
2498
+ .. versionadded:: 1.1
2499
+
2500
+ Link Training Command Flags
2501
+
2502
+ """
2503
+
2504
+ NEW = 1
2505
+ """New command"""
2506
+
2507
+ IN_PROGRESS = 2
2508
+ """Command in progress"""
2509
+
2510
+ DONE = 4
2511
+ """Command done"""
2512
+
2513
+ LOCK = 8
2514
+ """Link locked"""
2515
+
2516
+ LOCK_LOST = 16
2517
+ """Link lock lost"""
2518
+
2519
+ OVERRUN = 32
2520
+ """Overrun detected"""
2521
+
2522
+
2523
+ class LinkTrainAnnounce(IntEnum):
2524
+ """
2525
+ .. versionadded:: 1.1
2526
+
2527
+ Link Training Announce
2528
+
2529
+ """
2530
+
2531
+ TRAINED = 0
2532
+ """The lane is trained"""
2533
+
2534
+
2535
+ class AnLtLogControl(IntEnum):
2536
+ """
2537
+ .. versionadded:: 1.3
2538
+
2539
+ ANLT log control bits
2540
+
2541
+ """
2542
+
2543
+ # 1st nibble
2544
+ LOG_TYPE_DEBUG = 0x2
2545
+ """debug log output"""
2546
+
2547
+ LOG_TYPE_AN_TRACE = 0x4
2548
+ """autonegotiation trace output"""
2549
+
2550
+ LOG_TYPE_LT_TRACE = 0x8
2551
+ """link training trace output"""
2552
+
2553
+ # 2nd nibble
2554
+ LOG_TYPE_ALG_TRACE = 0x10
2555
+ """link training algorithm trace"""
2556
+
2557
+ # 5th nibble
2558
+ LOG_TYPE_FSM_PORT = 0x10000
2559
+ """port state machine transitions"""
2560
+
2561
+ LOG_TYPE_FSM_ANEG = 0x20000
2562
+ """autonegotiation state machine transitions. What we act on"""
2563
+
2564
+ LOG_TYPE_FSM_ANEG_STIMULI = 0x40000
2565
+ """autonegotiation stimuli state machine transitions. What we ask"""
2566
+
2567
+ LOG_TYPE_FSM_LT = 0x80000
2568
+ """link training state machine transitions"""
2569
+
2570
+ # 6th nibble
2571
+ LOG_TYPE_FSM_LT_COEFF = 0x100000
2572
+ """link training coefficient state machine transitions. What we act on"""
2573
+
2574
+ LOG_TYPE_FSM_LT_STIMULI = 0x200000
2575
+ """link training stimuli state machine transitions. What we ask"""
2576
+
2577
+ LOG_TYPE_FSM_LT_ALG0 = 0x400000
2578
+ """link training algorithm 0 state machine transitions"""
2579
+
2580
+ LOG_TYPE_FSM_LT_ALG1 = 0x800000
2581
+ """link training algorithm -1 state machine transitions"""
2582
+
2583
+
2584
+ class RxEqExtCap(IntEnum):
2585
+ """Rx Equalizer Advanced Capability type."""
2586
+
2587
+ CTLE_LOW = 0
2588
+ """CTLE low frequency."""
2589
+
2590
+ CTLE_HIGH = 1
2591
+ """CTLE high frequency."""
2592
+
2593
+ AGC = 2
2594
+ """Automatic Gain Control"""
2595
+
2596
+ OC = 3
2597
+ """Offset Cancellation"""
2598
+
2599
+ CDR = 4
2600
+ """Clock and Data Recovery"""
2601
+
2602
+ PRE_FFE_1 = 5
2603
+ """Pre Feed-Forward Equalizer #1"""
2604
+
2605
+ PRE_FFE_2 = 6
2606
+ """Pre Feed-Forward Equalizer #2"""
2607
+
2608
+ PRE_FFE_3 = 7
2609
+ """Pre Feed-Forward Equalizer #3"""
2610
+
2611
+ PRE_FFE_4 = 8
2612
+ """Pre Feed-Forward Equalizer #4"""
2613
+
2614
+ PRE_FFE_5 = 9
2615
+ """Pre Feed-Forward Equalizer #5"""
2616
+
2617
+ PRE_FFE_6 = 10
2618
+ """Pre Feed-Forward Equalizer #6"""
2619
+
2620
+ PRE_FFE_7 = 11
2621
+ """Pre Feed-Forward Equalizer #7"""
2622
+
2623
+ PRE_FFE_8 = 12
2624
+ """Pre Feed-Forward Equalizer #8"""
2625
+
2626
+ DFE = 13
2627
+ """Decision Feedback Equalization"""
2628
+
2629
+ POST_FFE_1 = 14
2630
+ """Post Feed-Forward Equalizer #1"""
2631
+
2632
+ POST_FFE_2 = 15
2633
+ """Post Feed-Forward Equalizer #2"""
2634
+
2635
+ POST_FFE_3 = 16
2636
+ """Post Feed-Forward Equalizer #3"""
2637
+
2638
+ POST_FFE_4 = 17
2639
+ """Post Feed-Forward Equalizer #4"""
2640
+
2641
+ POST_FFE_5 = 18
2642
+ """Post Feed-Forward Equalizer #5"""
2643
+
2644
+ POST_FFE_6 = 19
2645
+ """Post Feed-Forward Equalizer #6"""
2646
+
2647
+ POST_FFE_7 = 20
2648
+ """Post Feed-Forward Equalizer #7"""
2649
+
2650
+ POST_FFE_8 = 21
2651
+ """Post Feed-Forward Equalizer #8"""
2652
+
2653
+ POST_FFE_9 = 22
2654
+ """Post Feed-Forward Equalizer #9"""
2655
+
2656
+ POST_FFE_10 = 23
2657
+ """Post Feed-Forward Equalizer #10"""
2658
+
2659
+ POST_FFE_11 = 24
2660
+ """Post Feed-Forward Equalizer #11"""
2661
+
2662
+ POST_FFE_12 = 25
2663
+ """Post Feed-Forward Equalizer #12"""
2664
+
2665
+ POST_FFE_13 = 26
2666
+ """Post Feed-Forward Equalizer #13"""
2667
+
2668
+ POST_FFE_14 = 27
2669
+ """Post Feed-Forward Equalizer #14"""
2670
+
2671
+ POST_FFE_15 = 28
2672
+ """Post Feed-Forward Equalizer #15"""
2673
+
2674
+ POST_FFE_16 = 29
2675
+ """Post Feed-Forward Equalizer #16"""
2676
+
2677
+ POST_FFE_17 = 30
2678
+ """Post Feed-Forward Equalizer #17"""
2679
+
2680
+ POST_FFE_18 = 31
2681
+ """Post Feed-Forward Equalizer #18"""
2682
+
2683
+ POST_FFE_19 = 32
2684
+ """Post Feed-Forward Equalizer #19"""
2685
+
2686
+ POST_FFE_20 = 33
2687
+ """Post Feed-Forward Equalizer #20"""
2688
+
2689
+ POST_FFE_21 = 34
2690
+ """Post Feed-Forward Equalizer #21"""
2691
+
2692
+ POST_FFE_22 = 35
2693
+ """Post Feed-Forward Equalizer #22"""
2694
+
2695
+ POST_FFE_23 = 36
2696
+ """Post Feed-Forward Equalizer #23"""
2697
+
2698
+
2699
+ class RxEqExtCapMode(IntEnum):
2700
+ """Status for Rx Equalizer Advanced Capability."""
2701
+
2702
+ AUTO = 0
2703
+ """Auto."""
2704
+
2705
+ MANUAL = 1
2706
+ """Manual."""
2707
+
2708
+ FREEZE = 2
2709
+ """Freeze."""
2710
+
2711
+ class PreCodingMode(IntEnum):
2712
+ """Rx/Tx Pre-Coding Mode."""
2713
+
2714
+ OFF = 0
2715
+ """Off"""
2716
+
2717
+ ON = 1
2718
+ """On"""
2719
+
2720
+
2721
+ class GrayCodingMode(IntEnum):
2722
+ """Rx/Tx Gray-Coding Mode."""
2723
+
2724
+ OFF = 0
2725
+ """Off"""
2726
+
2727
+ ON = 1
2728
+ """On"""
2729
+
2730
+
2731
+ class Endianness(IntEnum):
2732
+ """Endianness (Big/Little Endian)."""
2733
+
2734
+ NORMAL = 0
2735
+ """Big Endian"""
2736
+
2737
+ REVERTED = 1
2738
+ """Little Endian"""
2739
+
2740
+ class FreyaAutonegMode(IntEnum):
2741
+ """Auto Neg Mode"""
2742
+
2743
+ DISABLED = 0
2744
+ """Auto Neg Off"""
2745
+ ENABLED = 1
2746
+ """Auto Neg On"""
2747
+
2748
+ class FreyaLinkTrainingMode(IntEnum):
2749
+ """Link Training Mode"""
2750
+
2751
+ DISABLED = 0
2752
+ """Link training disabled"""
2753
+
2754
+ ENABLED_AUTO = 1
2755
+ """Link training in auto mode"""
2756
+
2757
+ ENABLED_INTERACTIVE = 2
2758
+ """Link training in interactive mode, requiring manual operation."""
2759
+
2760
+ class FreyaTecAbility(IntFlag):
2761
+ """Auto Neg Technical Abilities"""
2762
+
2763
+ ETC_800G_CR8_KR8 = 1<<29
2764
+ """ETC_800G_CR8_KR8"""
2765
+
2766
+ ETC_400G_CR8_KR8 = 1<<28
2767
+ """ETC_400G_CR8_KR8"""
2768
+
2769
+ ETC_50G_CR2 = 1<<27
2770
+ """ETC_50G_CR2"""
2771
+
2772
+ ETC_50G_KR2 = 1<<26
2773
+ """ETC_50G_KR2"""
2774
+
2775
+ ETC_25G_CR = 1<<25
2776
+ """ETC_25G_CR"""
2777
+
2778
+ ETC_25G_KR = 1<<24
2779
+ """ETC_25G_KR"""
2780
+
2781
+ IEEE_1_6TBASE_CR8_KR8 = 1<<23
2782
+ """IEEE_1_6TBASE_CR8_KR8"""
2783
+
2784
+ IEEE_800GBASE_CR4_KR4 = 1<<22
2785
+ """IEEE_800GBASE_CR4_KR4"""
2786
+
2787
+ IEEE_400GBASE_CR2_KR2 = 1<<21
2788
+ """IEEE_400GBASE_CR2_KR2"""
2789
+
2790
+ IEEE_200GBASE_CR1_KR1 = 1<<20
2791
+ """IEEE_200GBASE_CR1_KR1"""
2792
+
2793
+ IEEE_800GBASE_CR8_KR8 = 1<<19
2794
+ """IEEE_800GBASE_CR8_KR8"""
2795
+
2796
+ IEEE_400GBASE_CR4_KR4 = 1<<18
2797
+ """IEEE_400GBASE_CR4_KR4"""
2798
+
2799
+ IEEE_200GBASE_CR2_KR2 = 1<<17
2800
+ """IEEE_200GBASE_CR2_KR2"""
2801
+
2802
+ IEEE_100GBASE_CR1_KR1 = 1<<16
2803
+ """IEEE_100GBASE_CR1_KR1"""
2804
+
2805
+ IEEE_200GBASE_CR4_KR4 = 1<<15
2806
+ """IEEE_200GBASE_CR4_KR4"""
2807
+
2808
+ IEEE_100GBASE_CR2_KR2 = 1<<14
2809
+ """IEEE_100GBASE_CR2_KR2"""
2810
+
2811
+ IEEE_50GBASE_CR_KR = 1<<13
2812
+ """IEEE_50GBASE_CR_KR"""
2813
+
2814
+ IEEE_5GBASE_KR = 1<<12
2815
+ """IEEE_5GBASE_KR"""
2816
+
2817
+ IEEE_2_5GBASE_KX = 1<<11
2818
+ """IEEE_2_5GBASE_KX"""
2819
+
2820
+ IEEE_25GBASE_CR_KR = 1<<10
2821
+ """IEEE_25GBASE_CR_KR"""
2822
+
2823
+ IEEE_25GBASE_CR_S_KR_S = 1<<9
2824
+ """IEEE_25GBASE_CR_S_KR_S"""
2825
+
2826
+ IEEE_100GBASE_CR4 = 1<<8
2827
+ """IEEE_100GBASE_CR4"""
2828
+
2829
+ IEEE_100GBASE_KR4 = 1<<7
2830
+ """IEEE_100GBASE_KR4"""
2831
+
2832
+ IEEE_100GBASE_KP4 = 1<<6
2833
+ """IEEE_100GBASE_KP4"""
2834
+
2835
+ IEEE_100GBASE_CR10 = 1<<5
2836
+ """IEEE_100GBASE_CR10"""
2837
+
2838
+ IEEE_40GBASE_CR4 = 1<<4
2839
+ """IEEE_40GBASE_CR4"""
2840
+
2841
+ IEEE_40GBASE_KR4 = 1<<3
2842
+ """IEEE_40GBASE_KR4"""
2843
+
2844
+ IEEE_10GBASE_KR = 1<<2
2845
+ """IEEE_10GBASE_KR"""
2846
+
2847
+ IEEE_10GBASE_KX4 = 1<<1
2848
+ """IEEE_10GBASE_KX4"""
2849
+
2850
+ IEEE_1000BASE_KX = 1<<0
2851
+ """IEEE_1000BASE_KX"""
2852
+
2853
+ class FreyaFECAbility(IntFlag):
2854
+ """Auto Neg FEC ability"""
2855
+
2856
+ RS_FEC_Int = 1<<4
2857
+ """RS_FEC_Int"""
2858
+
2859
+ FC_FEC_25G_REQUEST = 1<<3
2860
+ """FC_FEC_25G_REQUEST"""
2861
+
2862
+ RS_FEC_25G_REQUEST = 1<<2
2863
+ """RS_FEC_25G_REQUEST"""
2864
+
2865
+ FC_FEC_10G_REQUEST = 1<<1
2866
+ """FC_FEC_10G_REQUEST"""
2867
+
2868
+ FC_FEC_10G_ABILITY = 1<<0
2869
+ """FC_FEC_10G_ABILITY"""
2870
+
2871
+ class FreyaPauseAbility(IntFlag):
2872
+ """Auto Neg Pause ability"""
2873
+
2874
+ ASYM_PAUSE = 1<<1
2875
+ """ASYM_PAUSE"""
2876
+
2877
+ SYM_PAUSE = 1<<0
2878
+ """SYM_PAUSE"""
2879
+
2880
+ class FreyaTechAbilityHCDStatus(IntEnum):
2881
+ """Auto Neg Pause ability"""
2882
+
2883
+ SUCCESS = 1
2884
+ """SUCCESS"""
2885
+
2886
+ FAILED = 2
2887
+ """FAILED"""
2888
+
2889
+ class FreyaOutOfSyncPreset(IntEnum):
2890
+ """Link Training out-of-sync preset"""
2891
+
2892
+ IEEE = 0
2893
+ """IEEE"""
2894
+
2895
+ CURRENT = 1
2896
+ """CURRENT"""
2897
+
2898
+ class Layer1Control(IntEnum):
2899
+ """Layer 1 control"""
2900
+
2901
+ SAMPLED_SIGNAL_INTEGRITY_SCAN = 0
2902
+ """SAMPLED_SIGNAL_INTEGRITY_SCAN"""
2903
+
2904
+
2905
+ class Layer1Opcode(IntEnum):
2906
+ """Layer 1 operation code"""
2907
+
2908
+ START_SCAN = 0
2909
+ """ for sampled eye scan"""
2910
+
2911
+ class FreyaPCSVariant(IntEnum):
2912
+ """PCS variant"""
2913
+
2914
+ IEEE = 1
2915
+ """IEEE"""
2916
+
2917
+ ETC = 2
2918
+ """ETC"""
2919
+
2920
+ class FreyaTecAbilityHCD(IntEnum):
2921
+ """Auto Neg Technical Abilities"""
2922
+
2923
+ ETC_800G_CR8_KR8 = 29
2924
+ """ETC_800G_CR8_KR8"""
2925
+
2926
+ ETC_400G_CR8_KR8 = 28
2927
+ """ETC_400G_CR8_KR8"""
2928
+
2929
+ ETC_50G_CR2 = 27
2930
+ """ETC_50G_CR2"""
2931
+
2932
+ ETC_50G_KR2 = 26
2933
+ """ETC_50G_KR2"""
2934
+
2935
+ ETC_25G_CR = 25
2936
+ """ETC_25G_CR"""
2937
+
2938
+ ETC_25G_KR = 24
2939
+ """ETC_25G_KR"""
2940
+
2941
+ IEEE_1_6TBASE_CR8_KR8 = 23
2942
+ """IEEE_1_6TBASE_CR8_KR8"""
2943
+
2944
+ IEEE_800GBASE_CR4_KR4 = 22
2945
+ """IEEE_800GBASE_CR4_KR4"""
2946
+
2947
+ IEEE_400GBASE_CR2_KR2 = 21
2948
+ """IEEE_400GBASE_CR2_KR2"""
2949
+
2950
+ IEEE_200GBASE_CR1_KR1 = 20
2951
+ """IEEE_200GBASE_CR1_KR1"""
2952
+
2953
+ IEEE_800GBASE_CR8_KR8 = 19
2954
+ """IEEE_800GBASE_CR8_KR8"""
2955
+
2956
+ IEEE_400GBASE_CR4_KR4 = 18
2957
+ """IEEE_400GBASE_CR4_KR4"""
2958
+
2959
+ IEEE_200GBASE_CR2_KR2 = 17
2960
+ """IEEE_200GBASE_CR2_KR2"""
2961
+
2962
+ IEEE_100GBASE_CR1_KR1 = 16
2963
+ """IEEE_100GBASE_CR1_KR1"""
2964
+
2965
+ IEEE_200GBASE_CR4_KR4 = 15
2966
+ """IEEE_200GBASE_CR4_KR4"""
2967
+
2968
+ IEEE_100GBASE_CR2_KR2 = 14
2969
+ """IEEE_100GBASE_CR2_KR2"""
2970
+
2971
+ IEEE_50GBASE_CR_KR = 13
2972
+ """IEEE_50GBASE_CR_KR"""
2973
+
2974
+ IEEE_5GBASE_KR = 12
2975
+ """IEEE_5GBASE_KR"""
2976
+
2977
+ IEEE_2_5GBASE_KX = 11
2978
+ """IEEE_2_5GBASE_KX"""
2979
+
2980
+ IEEE_25GBASE_CR_KR = 10
2981
+ """IEEE_25GBASE_CR_KR"""
2982
+
2983
+ IEEE_25GBASE_CR_S_KR_S = 9
2984
+ """IEEE_25GBASE_CR_S_KR_S"""
2985
+
2986
+ IEEE_100GBASE_CR4 = 8
2987
+ """IEEE_100GBASE_CR4"""
2988
+
2989
+ IEEE_100GBASE_KR4 = 7
2990
+ """IEEE_100GBASE_KR4"""
2991
+
2992
+ IEEE_100GBASE_KP4 = 6
2993
+ """IEEE_100GBASE_KP4"""
2994
+
2995
+ IEEE_100GBASE_CR10 = 5
2996
+ """IEEE_100GBASE_CR10"""
2997
+
2998
+ IEEE_40GBASE_CR4 = 4
2999
+ """IEEE_40GBASE_CR4"""
3000
+
3001
+ IEEE_40GBASE_KR4 = 3
3002
+ """IEEE_40GBASE_KR4"""
3003
+
3004
+ IEEE_10GBASE_KR = 2
3005
+ """IEEE_10GBASE_KR"""
3006
+
3007
+ IEEE_10GBASE_KX4 = 1
3008
+ """IEEE_10GBASE_KX4"""
3009
+
3010
+ IEEE_1000BASE_KX = 0
3011
+ """IEEE_1000BASE_KX"""
3012
+
3013
+ class FreyaPresetResponse(IntEnum):
3014
+ """Response to the received IC request"""
3015
+
3016
+ IGNORE = 0
3017
+ """Acknowledge the IC request without acting upon it (acknowledge but no changes)."""
3018
+
3019
+ ACCEPT = 1
3020
+ """Acknowledge the IC request and apply the corresponding preset value."""
3021
+
3022
+ class FreyaPresetIndex(IntEnum):
3023
+ """Preset index for FreyaPresetResponse"""
3024
+
3025
+ PRESET1 = 0
3026
+ """Preset 1"""
3027
+
3028
+ PRESET2 = 1
3029
+ """Preset 2"""
3030
+
3031
+ PRESET3 = 2
3032
+ """Preset 3"""
3033
+
3034
+ PRESET4 = 3
3035
+ """Preset 4"""
3036
+
3037
+ PRESET5 = 4
3038
+ """Preset 5"""
3039
+
3040
+ LOS = 255
3041
+ """Preset when out of sync"""
3042
+
3043
+ class FreyaTapIndex(IntEnum):
3044
+ """Preset index for FreyaPresetResponse"""
3045
+
3046
+ TAP0 = 0
3047
+ """pre (For Freya 112G and 56G serdes)"""
3048
+
3049
+ TAP1 = 1
3050
+ """main (For Freya 112G and 56G serdes)"""
3051
+
3052
+ TAP2 = 2
3053
+ """post (For Freya 112G and 56G serdes)"""
3054
+
3055
+ TAP3 = 3
3056
+ """pre2 (For Freya 112G and 56G serdes)"""
3057
+
3058
+ TAP4 = 4
3059
+ """pre3 (For Freya 112G and 56G serdes)"""
3060
+
3061
+
3062
+ class FreyaLinkTrainingRangeResponse(IntEnum):
3063
+ """Response when LT range is reached"""
3064
+
3065
+ AUTO = 0
3066
+ """The response is automatically determined by the serdes."""
3067
+
3068
+ IGNORE = 1
3069
+ """The increment/decrement request will be “acknowledged” without acting upon it."""
3070
+
3071
+ COEFF_AT_LIMIT = 2
3072
+ """Respond Coefficient At Limit (coefficient status = 010) to the increment/decrement request."""
3073
+
3074
+ EQ_AT_LIMIT = 3
3075
+ """Respond Equalization Limit (coefficient status = 100) to the increment/decrement request."""
3076
+
3077
+ COEFF_EQ_AT_LIMIT = 4
3078
+ """Respond Coefficient At Limit and Equalization Limit (coefficient status = 110) to the increment/decrement request."""
3079
+
3080
+ COEFF_NOT_SUPPORTED = 5
3081
+ """Respond Coefficient Not Supported (coefficient status = 011) to the increment/decrement request."""
3082
+
3083
+
3084
+ class FreyaAutorestartMode(IntEnum):
3085
+ """Response when LT range is reached"""
3086
+
3087
+ OFF = 0
3088
+
3089
+ WHEN_LINK_DOWN = 1
3090
+
3091
+ WHEN_LT_FAILED = 2
3092
+
3093
+ WHEN_LINK_DOWN_LT_FAILED = 3
3094
+
3095
+ # endregion
3096
+
3097
+ # region misc enums
3098
+ class DhcpState(IntEnum):
3099
+ DHCP_STATE_UNKNOWN = 0
3100
+ DHCP_STATE_RUNNING = 1
3101
+ DHCP_STATE_COMPLETED = 2
3102
+ DHCP_STATE_FAILED = 3
3103
+
3104
+ class DhcpVlanState(IntEnum):
3105
+ DHCP_VLAN_OFF = 0
3106
+ DHCP_VLAN_ON = 1
3107
+
3108
+ class VlanType(IntEnum):
3109
+ TYPE_C = 0
3110
+ TYPE_S = 1
3111
+
3112
+ class ChassisModelNumber(IntEnum):
3113
+ NA = 0
3114
+ XB1 = 1
3115
+ XB2 = 2
3116
+ XB3 = 3
3117
+ XB4 = 4
3118
+ XB5 = 5
3119
+ XB6 = 6
3120
+ XB7 = 7
3121
+ XB8 = 8
3122
+ XB9 = 9
3123
+ XB10 = 10
3124
+ XB10_5 = 11
3125
+ XB11 = 12
3126
+ XB12 = 13
3127
+ XB13 = 14
3128
+ XB14 = 15
3129
+ XB15 = 16
3130
+ XB16 = 17
3131
+ XB17 = 18
3132
+ XB18 = 19
3133
+ XB19 = 20
3134
+ XB20 = 21
3135
+ XB21 = 22
3136
+ XB22 = 23
3137
+ XB23 = 24
3138
+ XB33 = 25
3139
+ XC1 = 26
3140
+ XC2 = 27
3141
+ XC3 = 28
3142
+ XC4 = 29
3143
+ XC5 = 30
3144
+ XC6 = 31
3145
+ XC7 = 32
3146
+ XC8 = 33
3147
+ XC9 = 34
3148
+ XC10 = 35
3149
+ XC11 = 36
3150
+ XC12 = 37
3151
+ XC13 = 38
3152
+ XC14 = 39
3153
+ XC15 = 40
3154
+ XC16 = 41
3155
+ XC17 = 42
3156
+ XC18 = 43
3157
+ XC19 = 44
3158
+ XC20 = 45
3159
+ XC21 = 46
3160
+ XC22 = 47
3161
+ XC23 = 48
3162
+ XC24 = 49
3163
+ XC25 = 50
3164
+ XC26 = 51
3165
+
3166
+ class ChassisModelName(IntEnum):
3167
+ NA = 0
3168
+ B720 = 1
3169
+ B720D = 2
3170
+ B2400 = 3
3171
+ Z_01_T_C_ODIN = 4
3172
+ Z_100_Q_C_LOKI = 5
3173
+ Z_10_S_C_ODIN = 6
3174
+ Z_10_C_C_ODIN = 7
3175
+ Z_10_R_C_ODIN = 8
3176
+ Z_10_S_X_C_ODIN = 9
3177
+ Z_01_S_C_ODIN = 10
3178
+ Z_01_S_X_C_ODIN = 11
3179
+ Z_400_Q_C_THOR = 12
3180
+ Z_400_Q_LE_C_THOR = 13
3181
+ Z_800_Q_C_FREYA = 14
3182
+ Z_800_O_C_FREYA = 15
3183
+ Z_800_Q_A_C_FREYA = 16
3184
+ Z_800_O_A_C_FREYA = 17
3185
+ E_100_Q_C_CHIMERA = 18
3186
+
3187
+ class ModuleModelName(IntEnum):
3188
+ NA = 0
3189
+ Z_01_T_ODIN = 1
3190
+ Z_100_Q_LOKI = 2
3191
+ Z_10_S_ODIN = 3
3192
+ Z_10_R_ODIN = 4
3193
+ Z_10_S_X_ODIN = 5
3194
+ Z_01_S_ODIN = 6
3195
+ Z_01_S_X_ODIN = 7
3196
+ Z_400_Q_THOR = 8
3197
+ Z_400_Q_LE_THOR = 9
3198
+ Z_800_Q_FREYA = 10
3199
+ Z_800_O_FREYA = 11
3200
+ E_100_Q_CHIMERA = 12
3201
+
3202
+ # endregion
3203
+
3204
+ # region FEC CW enums
3205
+
3206
+ class FecCodewordBitErrorMaskMode(IntEnum):
3207
+ """FEC Codeword Bit Error Mask Mode"""
3208
+
3209
+ UNKNOWN = 0
3210
+ """Unknown"""
3211
+ STATIC = 1
3212
+ """The bit error pattern stay the same for all errored symbols."""
3213
+ ROTATE_HIGH = 2
3214
+ """The bit error pattern shifts one bit to the most significant bit per errored symbol."""
3215
+ INC = 3
3216
+ """When mode is set to INC, bitmask will be ignored. Instead, the bit error pattern initiates from 000000001, 000000010, 000000011, continuing up to 111111111, and repeating the sequence as 000000001..."""
3217
+
3218
+ # endregion
3219
+
3220
+ # region MACSec enums
3221
+
3222
+ class MACSecSCIMode(IntEnum):
3223
+ """MACSec SCI Mode"""
3224
+
3225
+ WITH_SCI = 0
3226
+ """With SCI: ES bit is cleared"""
3227
+
3228
+ END_STATION = 1
3229
+ """End Station, ES bit is set."""
3230
+
3231
+ # NO_SCI = 2
3232
+ # """No SCI"""
3233
+
3234
+
3235
+ class MACSecCipherSuite(IntEnum):
3236
+ """MACSec SCI Mode"""
3237
+
3238
+ GCM_AES_128 = 0
3239
+ """GCM-AES-128 (IEEE 802.1AE-2018 Clause 14.5) (default)"""
3240
+
3241
+ GCM_AES_256 = 1
3242
+ """GCM-AES-256 (IEEE 802.1AE-2018 Clause 14.6)"""
3243
+
3244
+ GCM_AES_XPN_128 = 2
3245
+ """GCM-AES-XPN-128 (IEEE 802.1AE-2018 Clause 14.7)"""
3246
+
3247
+ GCM_AES_XPN_256 = 3
3248
+ """GCM-AES-XPN-256 (IEEE 802.1AE-2018 Clause 14.8)"""
3249
+
3250
+
3251
+ # class MACSecVLANMode(IntEnum):
3252
+ # """MACSec SCI Mode"""
3253
+
3254
+ # ENCRYPTED = 0
3255
+ # """MACsec encryption starts after the MAC address fields."""
3256
+
3257
+ # CLEAR_TEXT = 1
3258
+ # """Clear-text VLAN (802.1Q). MACsec encryption will leave the first VLAN field out of the MACsec protocol data unit."""
3259
+
3260
+
3261
+ class MACSecRekeyMode(IntEnum):
3262
+ """MACSec Rekey Mode"""
3263
+
3264
+ PN_EXHAUSTION = 0
3265
+ """Switch to the next SAK when PN is exhausted."""
3266
+
3267
+ PACKET_CNT = 1
3268
+ """Switch to the next SAK when the given number of packets are transmitted."""
3269
+
3270
+
3271
+ class MACSecEncryptionMode(IntEnum):
3272
+ """The encryption mode"""
3273
+
3274
+ ENCRYPT_INTEGRITY = 0
3275
+ """MACsec provides both encryption and integrity."""
3276
+
3277
+ INTEGRITY_ONLY = 1
3278
+ """MACsec only provides integrity."""
3279
+
3280
+ class MACSecPNMode(IntEnum):
3281
+ """Modes for TX PN after the start-traffic"""
3282
+
3283
+ CONTINUE = 0
3284
+ """Continue from the last PN value"""
3285
+
3286
+ RESET = 1
3287
+ """Reset the PN value"""
3288
+
3289
+ # endregion