tdl-xoa-driver 1.0.0b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tdl_xoa_driver-1.0.0b1.dist-info/LICENSE +202 -0
- tdl_xoa_driver-1.0.0b1.dist-info/METADATA +177 -0
- tdl_xoa_driver-1.0.0b1.dist-info/RECORD +325 -0
- tdl_xoa_driver-1.0.0b1.dist-info/WHEEL +5 -0
- tdl_xoa_driver-1.0.0b1.dist-info/top_level.txt +1 -0
- xoa_driver/__init__.py +2 -0
- xoa_driver/enums.py +399 -0
- xoa_driver/exceptions.py +77 -0
- xoa_driver/functions/__init__.py +0 -0
- xoa_driver/functions/anlt.py +744 -0
- xoa_driver/functions/anlt_ll_debug.py +429 -0
- xoa_driver/functions/cli.py +581 -0
- xoa_driver/functions/exceptions.py +72 -0
- xoa_driver/functions/headers.py +608 -0
- xoa_driver/functions/mgmt.py +515 -0
- xoa_driver/functions/tools.py +256 -0
- xoa_driver/hlfuncs.py +18 -0
- xoa_driver/internals/__init__.py +0 -0
- xoa_driver/internals/commands/__init__.py +31 -0
- xoa_driver/internals/commands/c_commands.py +2041 -0
- xoa_driver/internals/commands/enums.py +3289 -0
- xoa_driver/internals/commands/m4_commands.py +700 -0
- xoa_driver/internals/commands/m4e_commands.py +107 -0
- xoa_driver/internals/commands/m_commands.py +1875 -0
- xoa_driver/internals/commands/p4_commands.py +2221 -0
- xoa_driver/internals/commands/p4e_commands.py +160 -0
- xoa_driver/internals/commands/p4g_commands.py +7253 -0
- xoa_driver/internals/commands/p_commands.py +6000 -0
- xoa_driver/internals/commands/pc_commands.py +335 -0
- xoa_driver/internals/commands/pd_commands.py +355 -0
- xoa_driver/internals/commands/pe_commands.py +1018 -0
- xoa_driver/internals/commands/pec_commands.py +265 -0
- xoa_driver/internals/commands/ped_commands.py +1034 -0
- xoa_driver/internals/commands/pef_commands.py +2216 -0
- xoa_driver/internals/commands/pf_commands.py +379 -0
- xoa_driver/internals/commands/pl1_commands.py +1588 -0
- xoa_driver/internals/commands/pl_commands.py +178 -0
- xoa_driver/internals/commands/pm_commands.py +256 -0
- xoa_driver/internals/commands/pp_commands.py +2341 -0
- xoa_driver/internals/commands/pr_commands.py +812 -0
- xoa_driver/internals/commands/ps_commands.py +2311 -0
- xoa_driver/internals/commands/pt_commands.py +370 -0
- xoa_driver/internals/commands/px_commands.py +303 -0
- xoa_driver/internals/commands/subtypes.py +86 -0
- xoa_driver/internals/core/__init__.py +0 -0
- xoa_driver/internals/core/builders.py +39 -0
- xoa_driver/internals/core/exceptions.py +69 -0
- xoa_driver/internals/core/funcs.py +81 -0
- xoa_driver/internals/core/funcs.pyi +1072 -0
- xoa_driver/internals/core/interfaces.py +47 -0
- xoa_driver/internals/core/token.py +44 -0
- xoa_driver/internals/core/transporter/__init__.py +0 -0
- xoa_driver/internals/core/transporter/_processor.py +83 -0
- xoa_driver/internals/core/transporter/_publisher.py +101 -0
- xoa_driver/internals/core/transporter/_request_id_counter.py +28 -0
- xoa_driver/internals/core/transporter/_stream.py +99 -0
- xoa_driver/internals/core/transporter/_typings.py +43 -0
- xoa_driver/internals/core/transporter/exceptions.py +44 -0
- xoa_driver/internals/core/transporter/handler.py +127 -0
- xoa_driver/internals/core/transporter/logger/__init__.py +10 -0
- xoa_driver/internals/core/transporter/logger/__logger.py +94 -0
- xoa_driver/internals/core/transporter/logger/__state_off.py +32 -0
- xoa_driver/internals/core/transporter/logger/__state_on_default.py +70 -0
- xoa_driver/internals/core/transporter/logger/__state_on_loguru.py +51 -0
- xoa_driver/internals/core/transporter/logger/__state_on_user.py +48 -0
- xoa_driver/internals/core/transporter/protocol/__init__.py +0 -0
- xoa_driver/internals/core/transporter/protocol/_constants.py +77 -0
- xoa_driver/internals/core/transporter/protocol/_utils.py +59 -0
- xoa_driver/internals/core/transporter/protocol/exceptions.py +271 -0
- xoa_driver/internals/core/transporter/protocol/payload/__init__.py +70 -0
- xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +283 -0
- xoa_driver/internals/core/transporter/protocol/payload/descriptor.py +119 -0
- xoa_driver/internals/core/transporter/protocol/payload/exceptions.py +20 -0
- xoa_driver/internals/core/transporter/protocol/payload/field.py +296 -0
- xoa_driver/internals/core/transporter/protocol/payload/types.py +173 -0
- xoa_driver/internals/core/transporter/protocol/payload/utils.py +53 -0
- xoa_driver/internals/core/transporter/protocol/struct_header.py +123 -0
- xoa_driver/internals/core/transporter/protocol/struct_request.py +65 -0
- xoa_driver/internals/core/transporter/protocol/struct_response.py +89 -0
- xoa_driver/internals/core/transporter/registry.py +43 -0
- xoa_driver/internals/exceptions/__init__.py +9 -0
- xoa_driver/internals/exceptions/modules.py +13 -0
- xoa_driver/internals/exceptions/testers.py +21 -0
- xoa_driver/internals/hli_v1/__init__.py +0 -0
- xoa_driver/internals/hli_v1/indices/__init__.py +0 -0
- xoa_driver/internals/hli_v1/indices/base_index.py +39 -0
- xoa_driver/internals/hli_v1/indices/connection_group/__init__.py +0 -0
- xoa_driver/internals/hli_v1/indices/connection_group/cg.py +186 -0
- xoa_driver/internals/hli_v1/indices/connection_group/histogram.py +78 -0
- xoa_driver/internals/hli_v1/indices/connection_group/l2.py +94 -0
- xoa_driver/internals/hli_v1/indices/connection_group/l3.py +130 -0
- xoa_driver/internals/hli_v1/indices/connection_group/raw.py +200 -0
- xoa_driver/internals/hli_v1/indices/connection_group/replay.py +109 -0
- xoa_driver/internals/hli_v1/indices/connection_group/tcp.py +314 -0
- xoa_driver/internals/hli_v1/indices/connection_group/tls.py +198 -0
- xoa_driver/internals/hli_v1/indices/connection_group/udp.py +133 -0
- xoa_driver/internals/hli_v1/indices/connection_group/user_state.py +28 -0
- xoa_driver/internals/hli_v1/indices/filter/__init__.py +0 -0
- xoa_driver/internals/hli_v1/indices/filter/base_filter.py +65 -0
- xoa_driver/internals/hli_v1/indices/filter/genuine_filter.py +20 -0
- xoa_driver/internals/hli_v1/indices/length_term.py +49 -0
- xoa_driver/internals/hli_v1/indices/macsecscs/__init__.py +0 -0
- xoa_driver/internals/hli_v1/indices/macsecscs/base_macsecsc.py +224 -0
- xoa_driver/internals/hli_v1/indices/macsecscs/genuine_macsecsc.py +72 -0
- xoa_driver/internals/hli_v1/indices/match_term.py +64 -0
- xoa_driver/internals/hli_v1/indices/port_dataset.py +72 -0
- xoa_driver/internals/hli_v1/indices/streams/__init__.py +0 -0
- xoa_driver/internals/hli_v1/indices/streams/base_stream.py +405 -0
- xoa_driver/internals/hli_v1/indices/streams/genuine_stream.py +64 -0
- xoa_driver/internals/hli_v1/modules/__init__.py +0 -0
- xoa_driver/internals/hli_v1/modules/__interfaces.py +21 -0
- xoa_driver/internals/hli_v1/modules/base_module.py +138 -0
- xoa_driver/internals/hli_v1/modules/module_chimera.py +366 -0
- xoa_driver/internals/hli_v1/modules/module_l23ve.py +73 -0
- xoa_driver/internals/hli_v1/modules/module_l47.py +397 -0
- xoa_driver/internals/hli_v1/modules/module_l47ve.py +9 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/__init__.py +0 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_combi.py +83 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_d.py +75 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_e.py +85 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_f.py +145 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_g.py +84 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_h.py +40 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_i.py +25 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_j.py +25 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_k.py +39 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_l.py +55 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_l1.py +800 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_m.py +25 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/family_n.py +40 -0
- xoa_driver/internals/hli_v1/modules/modules_l23/module_l23_base.py +383 -0
- xoa_driver/internals/hli_v1/ports/__init__.py +0 -0
- xoa_driver/internals/hli_v1/ports/base_port.py +125 -0
- xoa_driver/internals/hli_v1/ports/port_l23/__init__.py +0 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/__init__.py +0 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_capture.py +70 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23.py +527 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23_genuine.py +229 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_reception_statistics.py +231 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +117 -0
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transmission_statistics.py +131 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/__init__.py +0 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/_utils.py +15 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/general.py +396 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/shadow.py +104 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/filter_definition/working.py +36 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/pe_custom_distribution.py +125 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/pe_distribution.py +174 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/port_chimera.py +119 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/port_emulation.py +244 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/reception_statistics.py +24 -0
- xoa_driver/internals/hli_v1/ports/port_l23/chimera/transmission_statistics.py +24 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_combi.py +37 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_d.py +51 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_e.py +107 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_f.py +151 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +77 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_h.py +67 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_i.py +84 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_j.py +68 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_k.py +73 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_l.py +82 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_l1.py +166 -0
- xoa_driver/internals/hli_v1/ports/port_l23/family_m.py +29 -0
- xoa_driver/internals/hli_v1/ports/port_l23/fault_jkl.py +24 -0
- xoa_driver/internals/hli_v1/ports/port_l23/freya_l1.py +722 -0
- xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_ghijkl.py +369 -0
- xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_ijkl_chimera.py +60 -0
- xoa_driver/internals/hli_v1/ports/port_l23/pcs_pma_l.py +78 -0
- xoa_driver/internals/hli_v1/ports/port_l23/port_l23ve.py +101 -0
- xoa_driver/internals/hli_v1/ports/port_l47/__init__.py +0 -0
- xoa_driver/internals/hli_v1/ports/port_l47/counters.py +174 -0
- xoa_driver/internals/hli_v1/ports/port_l47/main.py +228 -0
- xoa_driver/internals/hli_v1/ports/port_l47/packet_engine.py +31 -0
- xoa_driver/internals/hli_v1/revisions.py +11 -0
- xoa_driver/internals/hli_v1/testers/__init__.py +0 -0
- xoa_driver/internals/hli_v1/testers/_base_tester.py +259 -0
- xoa_driver/internals/hli_v1/testers/genuine/__init__.py +0 -0
- xoa_driver/internals/hli_v1/testers/genuine/l_23/__init__.py +0 -0
- xoa_driver/internals/hli_v1/testers/genuine/l_23/health.py +16 -0
- xoa_driver/internals/hli_v1/testers/genuine/l_23/rest_api.py +38 -0
- xoa_driver/internals/hli_v1/testers/genuine/l_23/time_keeper.py +57 -0
- xoa_driver/internals/hli_v1/testers/genuine/l_23/upload_file.py +29 -0
- xoa_driver/internals/hli_v1/testers/genuine/management_interface.py +42 -0
- xoa_driver/internals/hli_v1/testers/l23_tester.py +196 -0
- xoa_driver/internals/hli_v1/testers/l23ve_tester.py +114 -0
- xoa_driver/internals/hli_v1/testers/l47_tester.py +106 -0
- xoa_driver/internals/hli_v1/testers/l47ve_tester.py +54 -0
- xoa_driver/internals/hli_v2/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/base_index.py +39 -0
- xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/connection_group/cg.py +115 -0
- xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +59 -0
- xoa_driver/internals/hli_v2/indices/connection_group/l2.py +71 -0
- xoa_driver/internals/hli_v2/indices/connection_group/l3.py +96 -0
- xoa_driver/internals/hli_v2/indices/connection_group/raw.py +148 -0
- xoa_driver/internals/hli_v2/indices/connection_group/replay.py +89 -0
- xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +261 -0
- xoa_driver/internals/hli_v2/indices/connection_group/tls.py +166 -0
- xoa_driver/internals/hli_v2/indices/connection_group/udp.py +112 -0
- xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +25 -0
- xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/filter/base_filter.py +50 -0
- xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +17 -0
- xoa_driver/internals/hli_v2/indices/length_term.py +44 -0
- xoa_driver/internals/hli_v2/indices/match_term.py +49 -0
- xoa_driver/internals/hli_v2/indices/port_dataset.py +53 -0
- xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/streams/base_stream.py +234 -0
- xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +32 -0
- xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
- xoa_driver/internals/hli_v2/modules/__interfaces.py +21 -0
- xoa_driver/internals/hli_v2/modules/base_module.py +125 -0
- xoa_driver/internals/hli_v2/modules/module_chimera.py +358 -0
- xoa_driver/internals/hli_v2/modules/module_l23ve.py +58 -0
- xoa_driver/internals/hli_v2/modules/module_l47.py +230 -0
- xoa_driver/internals/hli_v2/modules/module_l47ve.py +8 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +73 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +75 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +85 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +144 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +84 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +40 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +25 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +25 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +39 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +55 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +797 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +25 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +40 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +339 -0
- xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/base_port.py +105 -0
- xoa_driver/internals/hli_v2/ports/port_l23/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_capture.py +64 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +441 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +172 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +156 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +117 -0
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +59 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/_utils.py +15 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +340 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +99 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +36 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +116 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +102 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +113 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +420 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +22 -0
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +22 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +36 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +49 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +96 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +144 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_g.py +77 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +60 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +66 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +53 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +58 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +67 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +149 -0
- xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +28 -0
- xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +22 -0
- xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +342 -0
- xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +50 -0
- xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +65 -0
- xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +81 -0
- xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/port_l47/counters.py +146 -0
- xoa_driver/internals/hli_v2/ports/port_l47/main.py +137 -0
- xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +20 -0
- xoa_driver/internals/hli_v2/revisions.py +11 -0
- xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
- xoa_driver/internals/hli_v2/testers/_base_tester.py +207 -0
- xoa_driver/internals/hli_v2/testers/genuine/__init__.py +0 -0
- xoa_driver/internals/hli_v2/testers/genuine/l_23/__init__.py +0 -0
- xoa_driver/internals/hli_v2/testers/genuine/l_23/health.py +16 -0
- xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +34 -0
- xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +50 -0
- xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +26 -0
- xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +38 -0
- xoa_driver/internals/hli_v2/testers/l23_tester.py +159 -0
- xoa_driver/internals/hli_v2/testers/l23ve_tester.py +98 -0
- xoa_driver/internals/hli_v2/testers/l47_tester.py +95 -0
- xoa_driver/internals/hli_v2/testers/l47ve_tester.py +50 -0
- xoa_driver/internals/state_storage/__init__.py +0 -0
- xoa_driver/internals/state_storage/_speed_detector.py +121 -0
- xoa_driver/internals/state_storage/modules_state.py +128 -0
- xoa_driver/internals/state_storage/ports_state.py +154 -0
- xoa_driver/internals/state_storage/testers_state.py +104 -0
- xoa_driver/internals/utils/__init__.py +0 -0
- xoa_driver/internals/utils/attributes.py +33 -0
- xoa_driver/internals/utils/cap_id.py +63 -0
- xoa_driver/internals/utils/con_traffic_light.py +88 -0
- xoa_driver/internals/utils/indices/__init__.py +0 -0
- xoa_driver/internals/utils/indices/_interfaces.py +26 -0
- xoa_driver/internals/utils/indices/header_modifier_manager.py +56 -0
- xoa_driver/internals/utils/indices/index_manager.py +95 -0
- xoa_driver/internals/utils/indices/observer.py +17 -0
- xoa_driver/internals/utils/kind.py +19 -0
- xoa_driver/internals/utils/managers/__init__.py +0 -0
- xoa_driver/internals/utils/managers/abc.py +44 -0
- xoa_driver/internals/utils/managers/exceptions.py +22 -0
- xoa_driver/internals/utils/managers/modules_manager.py +118 -0
- xoa_driver/internals/utils/managers/ports_manager.py +116 -0
- xoa_driver/internals/utils/rev_tool.py +21 -0
- xoa_driver/internals/utils/session.py +117 -0
- xoa_driver/internals/warn.py +32 -0
- xoa_driver/lli.py +15 -0
- xoa_driver/misc.py +57 -0
- xoa_driver/modules.py +448 -0
- xoa_driver/ports.py +332 -0
- xoa_driver/testers.py +37 -0
- xoa_driver/utils.py +12 -0
- xoa_driver/v2/__init__.py +11 -0
- xoa_driver/v2/misc.py +77 -0
- xoa_driver/v2/modules.py +308 -0
- xoa_driver/v2/ports.py +232 -0
- xoa_driver/v2/testers.py +24 -0
|
@@ -0,0 +1,722 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
TYPE_CHECKING,
|
|
3
|
+
Tuple,
|
|
4
|
+
)
|
|
5
|
+
if TYPE_CHECKING:
|
|
6
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
7
|
+
from xoa_driver.internals.commands import (
|
|
8
|
+
PP_PRECODING,
|
|
9
|
+
PP_PRECODINGSTATUS,
|
|
10
|
+
PP_GRAYCODING,
|
|
11
|
+
PL1_AUTONEGINFO,
|
|
12
|
+
PL1_LINKTRAININFO,
|
|
13
|
+
PL1_LOG,
|
|
14
|
+
PL1_CFG_TMP,
|
|
15
|
+
PL1_LINKTRAIN_CMD,
|
|
16
|
+
PL1_CTRL,
|
|
17
|
+
PL1_GET_DATA,
|
|
18
|
+
PL1_PHYTXEQ_LEVEL,
|
|
19
|
+
PL1_PHYTXEQ_COEFF,
|
|
20
|
+
PL1_AUTONEG_STATUS,
|
|
21
|
+
PL1_AUTONEG_ABILITIES,
|
|
22
|
+
PL1_PCS_VARIANT,
|
|
23
|
+
PL1_AUTONEG_CONFIG,
|
|
24
|
+
PL1_ANLT,
|
|
25
|
+
PL1_PHYTXEQ,
|
|
26
|
+
PL1_LINKTRAIN_CONFIG,
|
|
27
|
+
PL1_LINKTRAIN_STATUS,
|
|
28
|
+
PP_PHYRXEQ_EXT,
|
|
29
|
+
PP_PHYRXEQSTATUS_EXT,
|
|
30
|
+
PL1_CWE_CYCLE,
|
|
31
|
+
PL1_CWE_ERR_SYM_INDICES,
|
|
32
|
+
PL1_CWE_BIT_ERR_MASK,
|
|
33
|
+
PL1_CWE_FEC_ENGINE,
|
|
34
|
+
PL1_CWE_FEC_STATS,
|
|
35
|
+
PL1_CWE_CONTROL,
|
|
36
|
+
PL1_CWE_FEC_STATS_CLEAR,
|
|
37
|
+
PL1_LT_PHYTXEQ_RANGE,
|
|
38
|
+
PL1_LT_PHYTXEQ_RANGE_COEFF,
|
|
39
|
+
PL1_PRESET_CONFIG,
|
|
40
|
+
PL1_PRESET_CONFIG_COEFF,
|
|
41
|
+
PL1_PRESET_CONFIG_LEVEL,
|
|
42
|
+
PL1_PRESET_RESET,
|
|
43
|
+
PP_PRBSTYPE,
|
|
44
|
+
)
|
|
45
|
+
from .pcs_pma_ghijkl import (
|
|
46
|
+
Prbs,
|
|
47
|
+
)
|
|
48
|
+
from xoa_driver import enums
|
|
49
|
+
|
|
50
|
+
class FreyaPMA:
|
|
51
|
+
"""Freya PMA"""
|
|
52
|
+
|
|
53
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
54
|
+
self.precoding = PP_PRECODING(conn, module_id, port_id, serdes_xindex)
|
|
55
|
+
"""GET/SET Pre-Coding Configurations. (only for Freya)
|
|
56
|
+
|
|
57
|
+
:type: PP_PRECODING
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
self.graycoding = PP_GRAYCODING(conn, module_id, port_id, serdes_xindex)
|
|
61
|
+
"""GET/SET Gray-Coding Configurations. (only for Freya)
|
|
62
|
+
|
|
63
|
+
:type: PP_GRAYCODING
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
class FreyaSIV:
|
|
67
|
+
"""Freya Signal Integrity View"""
|
|
68
|
+
|
|
69
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
70
|
+
self.control = PL1_CTRL(conn, module_id, port_id, serdes_xindex, enums.Layer1Control.SAMPLED_SIGNAL_INTEGRITY_SCAN)
|
|
71
|
+
"""Control SIV scan. (only for Freya)
|
|
72
|
+
|
|
73
|
+
:type: PL1_CTRL
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
self.data = PL1_GET_DATA(conn, module_id, port_id, serdes_xindex, enums.Layer1Control.SAMPLED_SIGNAL_INTEGRITY_SCAN)
|
|
77
|
+
"""Get SIV scan data. (only for Freya)
|
|
78
|
+
|
|
79
|
+
:type: PL1_GET_DATA
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
class FreyaTxTap:
|
|
83
|
+
"""Freya Tx Tap"""
|
|
84
|
+
|
|
85
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
86
|
+
self.native = PL1_PHYTXEQ(conn, module_id, port_id, serdes_xindex)
|
|
87
|
+
"""TX tap native value. (only for Freya)
|
|
88
|
+
|
|
89
|
+
:type: PL1_PHYTXEQ
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
self.level = PL1_PHYTXEQ_LEVEL(conn, module_id, port_id, serdes_xindex)
|
|
93
|
+
"""TX tap mV/dB value. (only for Freya)
|
|
94
|
+
|
|
95
|
+
:type: PL1_PHYTXEQ_LEVEL
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
self.ieee = PL1_PHYTXEQ_COEFF(conn, module_id, port_id, serdes_xindex)
|
|
99
|
+
"""TX tap IEEE coefficient value. (only for Freya)
|
|
100
|
+
|
|
101
|
+
:type: PL1_PHYTXEQ_COEFF
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
class FreyaRxTapConfig:
|
|
105
|
+
"""Freya Rx Tap Configuration"""
|
|
106
|
+
|
|
107
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
108
|
+
self.ctle_low = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_LOW)
|
|
109
|
+
"""RX tap CTLE LOW. (only for Freya)
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
self.ctle_high = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_HIGH)
|
|
113
|
+
"""RX tap CTLE HIGH. (only for Freya)
|
|
114
|
+
"""
|
|
115
|
+
|
|
116
|
+
self.agc = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.AGC)
|
|
117
|
+
"""RX tap Automatic Gain Control. (only for Freya)
|
|
118
|
+
"""
|
|
119
|
+
|
|
120
|
+
self.oc = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.OC)
|
|
121
|
+
"""RX tap Offset Cancellation. (only for Freya)
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
self.cdr = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CDR)
|
|
125
|
+
"""RX tap Clock and Data Recovery. (only for Freya)
|
|
126
|
+
"""
|
|
127
|
+
|
|
128
|
+
self.pre_ffe_1 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_1)
|
|
129
|
+
"""RX tap Pre Feed-Forward Equalizer #1. (only for Freya)
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
self.pre_ffe_2 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_2)
|
|
133
|
+
"""RX tap Pre Feed-Forward Equalizer #2. (only for Freya)
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
self.pre_ffe_3 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_3)
|
|
137
|
+
"""RX tap Pre Feed-Forward Equalizer #3. (only for Freya)
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
self.pre_ffe_4 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_4)
|
|
141
|
+
"""RX tap Pre Feed-Forward Equalizer #4. (only for Freya)
|
|
142
|
+
"""
|
|
143
|
+
|
|
144
|
+
self.pre_ffe_5 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_5)
|
|
145
|
+
"""RX tap Pre Feed-Forward Equalizer #5. (only for Freya)
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
self.pre_ffe_6 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_6)
|
|
149
|
+
"""RX tap Pre Feed-Forward Equalizer #6. (only for Freya)
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
self.pre_ffe_7 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_7)
|
|
153
|
+
"""RX tap Pre Feed-Forward Equalizer #7. (only for Freya)
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
self.pre_ffe_8 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_8)
|
|
157
|
+
"""RX tap Pre Feed-Forward Equalizer #8. (only for Freya)
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
self.dfe = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.DFE)
|
|
161
|
+
"""RX tap Decision Feedback Equalization. (only for Freya)
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
self.post_ffe_1 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_1)
|
|
165
|
+
"""RX tap Post Feed-Forward Equalizer #1. (only for Freya)
|
|
166
|
+
"""
|
|
167
|
+
|
|
168
|
+
self.post_ffe_2 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_2)
|
|
169
|
+
"""RX tap Post Feed-Forward Equalizer #2. (only for Freya)
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
self.post_ffe_3 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_3)
|
|
173
|
+
"""RX tap Post Feed-Forward Equalizer #3. (only for Freya)
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
self.post_ffe_4 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_4)
|
|
177
|
+
"""RX tap Post Feed-Forward Equalizer #4. (only for Freya)
|
|
178
|
+
"""
|
|
179
|
+
|
|
180
|
+
self.post_ffe_5 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_5)
|
|
181
|
+
"""RX tap Post Feed-Forward Equalizer #5. (only for Freya)
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
self.post_ffe_6 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_6)
|
|
185
|
+
"""RX tap Post Feed-Forward Equalizer #6. (only for Freya)
|
|
186
|
+
"""
|
|
187
|
+
|
|
188
|
+
self.post_ffe_7 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_7)
|
|
189
|
+
"""RX tap Post Feed-Forward Equalizer #7. (only for Freya)
|
|
190
|
+
"""
|
|
191
|
+
|
|
192
|
+
self.post_ffe_8 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_8)
|
|
193
|
+
"""RX tap Post Feed-Forward Equalizer #8. (only for Freya)
|
|
194
|
+
"""
|
|
195
|
+
|
|
196
|
+
self.post_ffe_9 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_9)
|
|
197
|
+
"""RX tap Post Feed-Forward Equalizer #9. (only for Freya)
|
|
198
|
+
"""
|
|
199
|
+
|
|
200
|
+
self.post_ffe_10 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_10)
|
|
201
|
+
"""RX tap Post Feed-Forward Equalizer #10. (only for Freya)
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
self.post_ffe_11 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_11)
|
|
205
|
+
"""RX tap Post Feed-Forward Equalizer #11. (only for Freya)
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
self.post_ffe_12 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_12)
|
|
209
|
+
"""RX tap Post Feed-Forward Equalizer #12. (only for Freya)
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
self.post_ffe_13 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
|
|
213
|
+
"""RX tap Post Feed-Forward Equalizer #13. (only for Freya)
|
|
214
|
+
"""
|
|
215
|
+
|
|
216
|
+
self.post_ffe_14 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_14)
|
|
217
|
+
"""RX tap Post Feed-Forward Equalizer #14. (only for Freya)
|
|
218
|
+
"""
|
|
219
|
+
|
|
220
|
+
self.post_ffe_15 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_15)
|
|
221
|
+
"""RX tap Post Feed-Forward Equalizer #15. (only for Freya)
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
self.post_ffe_16 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_16)
|
|
225
|
+
"""RX tap Post Feed-Forward Equalizer #16. (only for Freya)
|
|
226
|
+
"""
|
|
227
|
+
|
|
228
|
+
self.post_ffe_17 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_17)
|
|
229
|
+
"""RX tap Post Feed-Forward Equalizer #17. (only for Freya)
|
|
230
|
+
"""
|
|
231
|
+
|
|
232
|
+
self.post_ffe_18 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_18)
|
|
233
|
+
"""RX tap Post Feed-Forward Equalizer #18. (only for Freya)
|
|
234
|
+
"""
|
|
235
|
+
|
|
236
|
+
self.post_ffe_19 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_19)
|
|
237
|
+
"""RX tap Post Feed-Forward Equalizer #19. (only for Freya)
|
|
238
|
+
"""
|
|
239
|
+
|
|
240
|
+
self.post_ffe_20 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_20)
|
|
241
|
+
"""RX tap Post Feed-Forward Equalizer #20. (only for Freya)
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
self.post_ffe_21 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_21)
|
|
245
|
+
"""RX tap Post Feed-Forward Equalizer #21. (only for Freya)
|
|
246
|
+
"""
|
|
247
|
+
|
|
248
|
+
self.post_ffe_22 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_22)
|
|
249
|
+
"""RX tap Post Feed-Forward Equalizer #22. (only for Freya)
|
|
250
|
+
"""
|
|
251
|
+
|
|
252
|
+
self.post_ffe_23 = PP_PHYRXEQ_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
|
|
253
|
+
"""RX tap Post Feed-Forward Equalizer #23. (only for Freya)
|
|
254
|
+
"""
|
|
255
|
+
|
|
256
|
+
class FreyaRxTapStatus:
|
|
257
|
+
"""Freya Rx Tap Status"""
|
|
258
|
+
|
|
259
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
260
|
+
self.ctle_low = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_LOW)
|
|
261
|
+
"""RX tap CTLE LOW. (only for Freya)
|
|
262
|
+
"""
|
|
263
|
+
|
|
264
|
+
self.ctle_high = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CTLE_HIGH)
|
|
265
|
+
"""RX tap CTLE HIGH. (only for Freya)
|
|
266
|
+
"""
|
|
267
|
+
|
|
268
|
+
self.agc = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.AGC)
|
|
269
|
+
"""RX tap Automatic Gain Control. (only for Freya)
|
|
270
|
+
"""
|
|
271
|
+
|
|
272
|
+
self.oc = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.OC)
|
|
273
|
+
"""RX tap Offset Cancellation. (only for Freya)
|
|
274
|
+
"""
|
|
275
|
+
|
|
276
|
+
self.cdr = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.CDR)
|
|
277
|
+
"""RX tap Clock and Data Recovery. (only for Freya)
|
|
278
|
+
"""
|
|
279
|
+
|
|
280
|
+
self.pre_ffe_1 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_1)
|
|
281
|
+
"""RX tap Pre Feed-Forward Equalizer #1. (only for Freya)
|
|
282
|
+
"""
|
|
283
|
+
|
|
284
|
+
self.pre_ffe_2 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_2)
|
|
285
|
+
"""RX tap Pre Feed-Forward Equalizer #2. (only for Freya)
|
|
286
|
+
"""
|
|
287
|
+
|
|
288
|
+
self.pre_ffe_3 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_3)
|
|
289
|
+
"""RX tap Pre Feed-Forward Equalizer #3. (only for Freya)
|
|
290
|
+
"""
|
|
291
|
+
|
|
292
|
+
self.pre_ffe_4 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_4)
|
|
293
|
+
"""RX tap Pre Feed-Forward Equalizer #4. (only for Freya)
|
|
294
|
+
"""
|
|
295
|
+
|
|
296
|
+
self.pre_ffe_5 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_5)
|
|
297
|
+
"""RX tap Pre Feed-Forward Equalizer #5. (only for Freya)
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
self.pre_ffe_6 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_6)
|
|
301
|
+
"""RX tap Pre Feed-Forward Equalizer #6. (only for Freya)
|
|
302
|
+
"""
|
|
303
|
+
|
|
304
|
+
self.pre_ffe_7 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_7)
|
|
305
|
+
"""RX tap Pre Feed-Forward Equalizer #7. (only for Freya)
|
|
306
|
+
"""
|
|
307
|
+
|
|
308
|
+
self.pre_ffe_8 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.PRE_FFE_8)
|
|
309
|
+
"""RX tap Pre Feed-Forward Equalizer #8. (only for Freya)
|
|
310
|
+
"""
|
|
311
|
+
|
|
312
|
+
self.dfe = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.DFE)
|
|
313
|
+
"""RX tap Decision Feedback Equalization. (only for Freya)
|
|
314
|
+
"""
|
|
315
|
+
|
|
316
|
+
self.post_ffe_1 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_1)
|
|
317
|
+
"""RX tap Post Feed-Forward Equalizer #1. (only for Freya)
|
|
318
|
+
"""
|
|
319
|
+
|
|
320
|
+
self.post_ffe_2 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_2)
|
|
321
|
+
"""RX tap Post Feed-Forward Equalizer #2. (only for Freya)
|
|
322
|
+
"""
|
|
323
|
+
|
|
324
|
+
self.post_ffe_3 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_3)
|
|
325
|
+
"""RX tap Post Feed-Forward Equalizer #3. (only for Freya)
|
|
326
|
+
"""
|
|
327
|
+
|
|
328
|
+
self.post_ffe_4 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_4)
|
|
329
|
+
"""RX tap Post Feed-Forward Equalizer #4. (only for Freya)
|
|
330
|
+
"""
|
|
331
|
+
|
|
332
|
+
self.post_ffe_5 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_5)
|
|
333
|
+
"""RX tap Post Feed-Forward Equalizer #5. (only for Freya)
|
|
334
|
+
"""
|
|
335
|
+
|
|
336
|
+
self.post_ffe_6 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_6)
|
|
337
|
+
"""RX tap Post Feed-Forward Equalizer #6. (only for Freya)
|
|
338
|
+
"""
|
|
339
|
+
|
|
340
|
+
self.post_ffe_7 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_7)
|
|
341
|
+
"""RX tap Post Feed-Forward Equalizer #7. (only for Freya)
|
|
342
|
+
"""
|
|
343
|
+
|
|
344
|
+
self.post_ffe_8 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_8)
|
|
345
|
+
"""RX tap Post Feed-Forward Equalizer #8. (only for Freya)
|
|
346
|
+
"""
|
|
347
|
+
|
|
348
|
+
self.post_ffe_9 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_9)
|
|
349
|
+
"""RX tap Post Feed-Forward Equalizer #9. (only for Freya)
|
|
350
|
+
"""
|
|
351
|
+
|
|
352
|
+
self.post_ffe_10 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_10)
|
|
353
|
+
"""RX tap Post Feed-Forward Equalizer #10. (only for Freya)
|
|
354
|
+
"""
|
|
355
|
+
|
|
356
|
+
self.post_ffe_11 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_11)
|
|
357
|
+
"""RX tap Post Feed-Forward Equalizer #11. (only for Freya)
|
|
358
|
+
"""
|
|
359
|
+
|
|
360
|
+
self.post_ffe_12 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_12)
|
|
361
|
+
"""RX tap Post Feed-Forward Equalizer #12. (only for Freya)
|
|
362
|
+
"""
|
|
363
|
+
|
|
364
|
+
self.post_ffe_13 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
|
|
365
|
+
"""RX tap Post Feed-Forward Equalizer #13. (only for Freya)
|
|
366
|
+
"""
|
|
367
|
+
|
|
368
|
+
self.post_ffe_14 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_14)
|
|
369
|
+
"""RX tap Post Feed-Forward Equalizer #14. (only for Freya)
|
|
370
|
+
"""
|
|
371
|
+
|
|
372
|
+
self.post_ffe_15 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_15)
|
|
373
|
+
"""RX tap Post Feed-Forward Equalizer #15. (only for Freya)
|
|
374
|
+
"""
|
|
375
|
+
|
|
376
|
+
self.post_ffe_16 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_16)
|
|
377
|
+
"""RX tap Post Feed-Forward Equalizer #16. (only for Freya)
|
|
378
|
+
"""
|
|
379
|
+
|
|
380
|
+
self.post_ffe_17 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_17)
|
|
381
|
+
"""RX tap Post Feed-Forward Equalizer #17. (only for Freya)
|
|
382
|
+
"""
|
|
383
|
+
|
|
384
|
+
self.post_ffe_18 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_18)
|
|
385
|
+
"""RX tap Post Feed-Forward Equalizer #18. (only for Freya)
|
|
386
|
+
"""
|
|
387
|
+
|
|
388
|
+
self.post_ffe_19 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_19)
|
|
389
|
+
"""RX tap Post Feed-Forward Equalizer #19. (only for Freya)
|
|
390
|
+
"""
|
|
391
|
+
|
|
392
|
+
self.post_ffe_20 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_20)
|
|
393
|
+
"""RX tap Post Feed-Forward Equalizer #20. (only for Freya)
|
|
394
|
+
"""
|
|
395
|
+
|
|
396
|
+
self.post_ffe_21 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_21)
|
|
397
|
+
"""RX tap Post Feed-Forward Equalizer #21. (only for Freya)
|
|
398
|
+
"""
|
|
399
|
+
|
|
400
|
+
self.post_ffe_22 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_22)
|
|
401
|
+
"""RX tap Post Feed-Forward Equalizer #22. (only for Freya)
|
|
402
|
+
"""
|
|
403
|
+
|
|
404
|
+
self.post_ffe_23 = PP_PHYRXEQSTATUS_EXT(conn, module_id, port_id, serdes_xindex, enums.RxEqExtCap.POST_FFE_13)
|
|
405
|
+
"""RX tap Post Feed-Forward Equalizer #23. (only for Freya)
|
|
406
|
+
"""
|
|
407
|
+
|
|
408
|
+
class FreyaRxTap:
|
|
409
|
+
"""Freya Rx tap
|
|
410
|
+
"""
|
|
411
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
412
|
+
self.config = FreyaRxTapConfig(conn, module_id, port_id, serdes_xindex)
|
|
413
|
+
"""Freya Rx tap configuration
|
|
414
|
+
"""
|
|
415
|
+
self.status = FreyaRxTapStatus(conn, module_id, port_id, serdes_xindex)
|
|
416
|
+
"""Freya Rx tap status
|
|
417
|
+
"""
|
|
418
|
+
|
|
419
|
+
class FreyaMedium:
|
|
420
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
421
|
+
self.tx = FreyaTxTap(conn, module_id, port_id, serdes_xindex)
|
|
422
|
+
"""Freya Tx tap
|
|
423
|
+
"""
|
|
424
|
+
self.rx = FreyaRxTap(conn, module_id, port_id, serdes_xindex)
|
|
425
|
+
"""Freya Rx tap
|
|
426
|
+
"""
|
|
427
|
+
self.siv = FreyaSIV(conn, module_id, port_id, serdes_xindex)
|
|
428
|
+
"""Freya Signal Integrity
|
|
429
|
+
"""
|
|
430
|
+
|
|
431
|
+
class SerDesFreya:
|
|
432
|
+
"""L23 high-speed port SerDes configuration and status."""
|
|
433
|
+
|
|
434
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
435
|
+
|
|
436
|
+
self.prbs = Prbs(conn, module_id, port_id, serdes_xindex)
|
|
437
|
+
"""PRBS
|
|
438
|
+
:type: Prbs
|
|
439
|
+
"""
|
|
440
|
+
|
|
441
|
+
self.pma = FreyaPMA(conn, module_id, port_id, serdes_xindex)
|
|
442
|
+
"""Freya PMA
|
|
443
|
+
|
|
444
|
+
:type: FreyaPMA
|
|
445
|
+
"""
|
|
446
|
+
|
|
447
|
+
self.medium = FreyaMedium(conn, module_id, port_id, serdes_xindex)
|
|
448
|
+
"""Freya medium
|
|
449
|
+
|
|
450
|
+
:type: FreyaMedium
|
|
451
|
+
"""
|
|
452
|
+
|
|
453
|
+
self.lt = FreyaLinkTraining(conn, module_id, port_id, serdes_xindex)
|
|
454
|
+
"""Freya Link Training on serdes level
|
|
455
|
+
|
|
456
|
+
:type: FreyaLinkTraining
|
|
457
|
+
"""
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
class FreyaAutoNeg:
|
|
461
|
+
"""Freya Autoneg"""
|
|
462
|
+
|
|
463
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
464
|
+
self.info = PL1_AUTONEGINFO(conn, module_id, port_id, 0)
|
|
465
|
+
"""Autoneg info
|
|
466
|
+
|
|
467
|
+
:type: PL1_AUTONEGINFO
|
|
468
|
+
"""
|
|
469
|
+
|
|
470
|
+
self.status = PL1_AUTONEG_STATUS(conn, module_id, port_id)
|
|
471
|
+
"""Autoneg status
|
|
472
|
+
|
|
473
|
+
:type: PL1_AUTONEG_STATUS
|
|
474
|
+
"""
|
|
475
|
+
|
|
476
|
+
self.abilities = PL1_AUTONEG_ABILITIES(conn, module_id, port_id)
|
|
477
|
+
"""Autoneg abilities
|
|
478
|
+
|
|
479
|
+
:type: PL1_AUTONEG_ABILITIES
|
|
480
|
+
"""
|
|
481
|
+
|
|
482
|
+
self.config = PL1_AUTONEG_CONFIG(conn, module_id, port_id)
|
|
483
|
+
"""Autoneg configuration
|
|
484
|
+
|
|
485
|
+
:type: PL1_AUTONEG_CONFIG
|
|
486
|
+
"""
|
|
487
|
+
|
|
488
|
+
class FreyaLinkTraining:
|
|
489
|
+
"""Freya Link Training on serdes level"""
|
|
490
|
+
|
|
491
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
492
|
+
self.cmd = PL1_LINKTRAIN_CMD(conn, module_id, port_id, serdes_xindex)
|
|
493
|
+
"""Link training command.
|
|
494
|
+
|
|
495
|
+
:type: PP_LINKTRAIN
|
|
496
|
+
"""
|
|
497
|
+
|
|
498
|
+
self.info = PL1_LINKTRAININFO(conn, module_id, port_id, serdes_xindex, 0)
|
|
499
|
+
"""Link training info.
|
|
500
|
+
|
|
501
|
+
:type: PL1_LINKTRAININFO
|
|
502
|
+
"""
|
|
503
|
+
|
|
504
|
+
self.status = PL1_LINKTRAIN_STATUS(conn, module_id, port_id, serdes_xindex)
|
|
505
|
+
"""Link training status.
|
|
506
|
+
|
|
507
|
+
:type: PL1_LINKTRAIN_STATUS
|
|
508
|
+
"""
|
|
509
|
+
|
|
510
|
+
self.preset1 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET1)
|
|
511
|
+
"""Link training preset 1
|
|
512
|
+
|
|
513
|
+
:rtype: FreyaLinkTrainingPreset
|
|
514
|
+
"""
|
|
515
|
+
|
|
516
|
+
self.preset2 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET2)
|
|
517
|
+
"""Link training preset 2
|
|
518
|
+
|
|
519
|
+
:rtype: FreyaLinkTrainingPreset
|
|
520
|
+
"""
|
|
521
|
+
|
|
522
|
+
self.preset3 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET3)
|
|
523
|
+
"""Link training preset 3
|
|
524
|
+
|
|
525
|
+
:rtype: FreyaLinkTrainingPreset
|
|
526
|
+
"""
|
|
527
|
+
|
|
528
|
+
self.preset4 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET4)
|
|
529
|
+
"""Link training preset 4
|
|
530
|
+
|
|
531
|
+
:rtype: FreyaLinkTrainingPreset
|
|
532
|
+
"""
|
|
533
|
+
|
|
534
|
+
self.preset5 = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.PRESET5)
|
|
535
|
+
"""Link training preset 5
|
|
536
|
+
|
|
537
|
+
:rtype: FreyaLinkTrainingPreset
|
|
538
|
+
"""
|
|
539
|
+
|
|
540
|
+
self.preset_los = FreyaLinkTrainingPreset(conn, module_id, port_id, serdes_xindex, enums.FreyaPresetIndex.LOS)
|
|
541
|
+
"""Link training preset LOS
|
|
542
|
+
|
|
543
|
+
:rtype: FreyaLinkTrainingPreset
|
|
544
|
+
"""
|
|
545
|
+
|
|
546
|
+
self.range = FreyaLinkTrainingRange(conn, module_id, port_id, serdes_xindex)
|
|
547
|
+
"""Link training tap range
|
|
548
|
+
|
|
549
|
+
:rtype: FreyaLinkTrainingRange
|
|
550
|
+
"""
|
|
551
|
+
|
|
552
|
+
self.initial_modulation = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.LT_INITIAL_MODULATION)
|
|
553
|
+
"""Link training initial modulation
|
|
554
|
+
|
|
555
|
+
:rtype: PL1_CFG_TMP
|
|
556
|
+
"""
|
|
557
|
+
|
|
558
|
+
self.algorithm = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.LT_TRAINING_ALGORITHM)
|
|
559
|
+
"""Link training algorithm
|
|
560
|
+
|
|
561
|
+
:rtype: PL1_CFG_TMP
|
|
562
|
+
"""
|
|
563
|
+
|
|
564
|
+
self.strict_mode = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.ANLT_STRICT_MODE)
|
|
565
|
+
"""ANLT strict mode. In strict mode, errored framed will be ignored.
|
|
566
|
+
|
|
567
|
+
:rtype: PL1_CFG_TMP
|
|
568
|
+
"""
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
class FreyaANLT:
|
|
572
|
+
"""Freya port-level anlt. For per-serdes configuration and status, use serdes[x]
|
|
573
|
+
"""
|
|
574
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
575
|
+
self.an = FreyaAutoNeg(conn, module_id, port_id)
|
|
576
|
+
"""Autoneg config and status
|
|
577
|
+
"""
|
|
578
|
+
self.ctrl = PL1_ANLT(conn, module_id, port_id)
|
|
579
|
+
"""ANLT control
|
|
580
|
+
"""
|
|
581
|
+
self.lt_config = PL1_LINKTRAIN_CONFIG(conn, module_id, port_id)
|
|
582
|
+
"""Port-level Link Training config
|
|
583
|
+
"""
|
|
584
|
+
self.log = PL1_LOG(conn, module_id, port_id)
|
|
585
|
+
"""ANLT log
|
|
586
|
+
"""
|
|
587
|
+
self.autorestart = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.AUTO_LINK_RECOVERY)
|
|
588
|
+
"""ANLT Autorestart
|
|
589
|
+
"""
|
|
590
|
+
self.allow_an_loopback = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.AN_LOOPBACK)
|
|
591
|
+
"""ANLT Autorestart
|
|
592
|
+
"""
|
|
593
|
+
self.send_empty_np = PL1_CFG_TMP(conn, module_id, port_id, 0, enums.Layer1ConfigType.AN_EMPTY_NP)
|
|
594
|
+
"""If the port should send Next Pages if they are empty.
|
|
595
|
+
"""
|
|
596
|
+
|
|
597
|
+
class FreyaFecCodewordErrorInject:
|
|
598
|
+
"""Freya FEC Codeword Error Injection
|
|
599
|
+
"""
|
|
600
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
601
|
+
self.cycle = PL1_CWE_CYCLE(conn, module_id, port_id)
|
|
602
|
+
"""FEC codeword error injection cycle.
|
|
603
|
+
"""
|
|
604
|
+
self.err_symbols = PL1_CWE_ERR_SYM_INDICES(conn, module_id, port_id)
|
|
605
|
+
"""The positions of the errored symbols in errored codewords.
|
|
606
|
+
"""
|
|
607
|
+
self.bit_err_mask = PL1_CWE_BIT_ERR_MASK(conn, module_id, port_id)
|
|
608
|
+
"""The bit error mask for the errored symbols.
|
|
609
|
+
"""
|
|
610
|
+
self.engine = PL1_CWE_FEC_ENGINE(conn, module_id, port_id)
|
|
611
|
+
"""The FEC engines to use.
|
|
612
|
+
"""
|
|
613
|
+
self.statistics = PL1_CWE_FEC_STATS(conn, module_id, port_id)
|
|
614
|
+
"""FEC error injection statistics
|
|
615
|
+
"""
|
|
616
|
+
self.clear_stats = PL1_CWE_FEC_STATS_CLEAR(conn, module_id, port_id)
|
|
617
|
+
"""Clear FEC codeword injection stats
|
|
618
|
+
"""
|
|
619
|
+
self.control = PL1_CWE_CONTROL(conn, module_id, port_id)
|
|
620
|
+
"""Control the FEC codeword error injection
|
|
621
|
+
"""
|
|
622
|
+
|
|
623
|
+
class Layer1:
|
|
624
|
+
def __init__(self, conn: "itf.IConnection", port) -> None:
|
|
625
|
+
self.serdes: Tuple[SerDesFreya, ...] = tuple(
|
|
626
|
+
SerDesFreya(conn, *port.kind, serdes_xindex=idx)
|
|
627
|
+
for idx in range(port.info.capabilities.serdes_count)
|
|
628
|
+
)
|
|
629
|
+
self.anlt = FreyaANLT(conn, *port.kind)
|
|
630
|
+
"""Freya port-level anlt. For per-serdes configuration and status, use serdes[x]
|
|
631
|
+
"""
|
|
632
|
+
self.pcs_variant = PL1_PCS_VARIANT(conn, *port.kind)
|
|
633
|
+
"""PCS variant configuration
|
|
634
|
+
"""
|
|
635
|
+
self.fec_error_inject = FreyaFecCodewordErrorInject(conn, *port.kind)
|
|
636
|
+
"""FEC codeword error injection
|
|
637
|
+
"""
|
|
638
|
+
self.prbs_config = PP_PRBSTYPE(conn, *port.kind)
|
|
639
|
+
"""PRBS configuration, including PRBS polynomial, invert mode, and statistic collection mode (for RX).
|
|
640
|
+
"""
|
|
641
|
+
|
|
642
|
+
class FreyaLinkTrainingPreset:
|
|
643
|
+
"""Freya Link Training Preset"""
|
|
644
|
+
|
|
645
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int, preset_index: enums.FreyaPresetIndex) -> None:
|
|
646
|
+
|
|
647
|
+
self.native = PL1_PRESET_CONFIG(conn, module_id, port_id, serdes_xindex, preset_index)
|
|
648
|
+
"""Preset native values. (only for Freya)
|
|
649
|
+
|
|
650
|
+
:type: PL1_PRESET_CONFIG
|
|
651
|
+
"""
|
|
652
|
+
|
|
653
|
+
self.ieee = PL1_PRESET_CONFIG_COEFF(conn, module_id, port_id, serdes_xindex, preset_index)
|
|
654
|
+
"""Preset IEEE coefficient values. (only for Freya)
|
|
655
|
+
|
|
656
|
+
:type: PL1_PRESET_CONFIG_COEFF
|
|
657
|
+
"""
|
|
658
|
+
|
|
659
|
+
self.level = PL1_PRESET_CONFIG_LEVEL(conn, module_id, port_id, serdes_xindex, preset_index)
|
|
660
|
+
"""Preset mV/dB values. (only for Freya)
|
|
661
|
+
|
|
662
|
+
:type: PL1_PRESET_CONFIG_LEVEL
|
|
663
|
+
"""
|
|
664
|
+
|
|
665
|
+
self.reset = PL1_PRESET_RESET(conn, module_id, port_id, serdes_xindex, preset_index)
|
|
666
|
+
"""Reset preset to default. (only for Freya)
|
|
667
|
+
|
|
668
|
+
:type: PL1_PRESET_RESET
|
|
669
|
+
"""
|
|
670
|
+
|
|
671
|
+
class FreyaLinkTrainingRangeTap:
|
|
672
|
+
"""Freya Link Training Range Tap"""
|
|
673
|
+
|
|
674
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int, tap_index: enums.FreyaTapIndex) -> None:
|
|
675
|
+
|
|
676
|
+
self.native = PL1_LT_PHYTXEQ_RANGE(conn, module_id, port_id, serdes_xindex, tap_index)
|
|
677
|
+
"""Tap range native values. (only for Freya)
|
|
678
|
+
|
|
679
|
+
:type: PL1_LT_PHYTXEQ_RANGE
|
|
680
|
+
"""
|
|
681
|
+
|
|
682
|
+
self.ieee = PL1_LT_PHYTXEQ_RANGE_COEFF(conn, module_id, port_id, serdes_xindex, tap_index)
|
|
683
|
+
"""Tap range IEEE coefficient values. (only for Freya)
|
|
684
|
+
|
|
685
|
+
:type: PL1_LT_PHYTXEQ_RANGE_COEFF
|
|
686
|
+
"""
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
class FreyaLinkTrainingRange:
|
|
690
|
+
"""Freya Link Training Range"""
|
|
691
|
+
|
|
692
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
|
|
693
|
+
|
|
694
|
+
self.pre = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP0)
|
|
695
|
+
"""Pre tap range and response. (only for Freya)
|
|
696
|
+
|
|
697
|
+
:type: FreyaLinkTrainingRangeTap
|
|
698
|
+
"""
|
|
699
|
+
|
|
700
|
+
self.main = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP1)
|
|
701
|
+
"""Main tap range and response. (only for Freya)
|
|
702
|
+
|
|
703
|
+
:type: FreyaLinkTrainingRangeTap
|
|
704
|
+
"""
|
|
705
|
+
|
|
706
|
+
self.post = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP2)
|
|
707
|
+
"""Post tap range and response. (only for Freya)
|
|
708
|
+
|
|
709
|
+
:type: FreyaLinkTrainingRangeTap
|
|
710
|
+
"""
|
|
711
|
+
|
|
712
|
+
self.pre2 = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP3)
|
|
713
|
+
"""Pre2 tap range and response. (only for Freya)
|
|
714
|
+
|
|
715
|
+
:type: FreyaLinkTrainingRangeTap
|
|
716
|
+
"""
|
|
717
|
+
|
|
718
|
+
self.pre3 = FreyaLinkTrainingRangeTap(conn, module_id, port_id, serdes_xindex, enums.FreyaTapIndex.TAP4)
|
|
719
|
+
"""Pre3 tap range and response. (only for Freya)
|
|
720
|
+
|
|
721
|
+
:type: FreyaLinkTrainingRangeTap
|
|
722
|
+
"""
|