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,107 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
from xoa_driver.internals.commands import (
|
|
3
|
+
P_AUTONEGSELECTION, # questionable which ports are electrical
|
|
4
|
+
P_LPENABLE,
|
|
5
|
+
P_LPTXMODE,
|
|
6
|
+
P_LPSTATUS,
|
|
7
|
+
P_LPPARTNERAUTONEG,
|
|
8
|
+
P_LPSNRMARGIN,
|
|
9
|
+
P_LPRXPOWER,
|
|
10
|
+
P_LPSUPPORT,
|
|
11
|
+
)
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
14
|
+
|
|
15
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class LowPowerMode:
|
|
19
|
+
"""L23 port low power mode."""
|
|
20
|
+
|
|
21
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
22
|
+
self.enable = P_LPENABLE(conn, module_id, port_id)
|
|
23
|
+
"""Energy Efficiency Ethernet.
|
|
24
|
+
|
|
25
|
+
:type: P_LPENABLE
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
self.mode = P_LPTXMODE(conn, module_id, port_id)
|
|
29
|
+
"""Low power TX mode.
|
|
30
|
+
|
|
31
|
+
:type: P_LPTXMODE
|
|
32
|
+
"""
|
|
33
|
+
self.status = P_LPSTATUS(conn, module_id, port_id)
|
|
34
|
+
"""Low power status.
|
|
35
|
+
|
|
36
|
+
:type: P_LPSTATUS
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
self.partner_capabilities = P_LPPARTNERAUTONEG(conn, module_id, port_id)
|
|
40
|
+
"""EEE capabilities advertised during auto-negotiation by the far side.
|
|
41
|
+
|
|
42
|
+
:type: P_LPPARTNERAUTONEG
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
self.snr_margin = P_LPSNRMARGIN(conn, module_id, port_id)
|
|
46
|
+
"""SNR margin on the four link channels by the PHY.
|
|
47
|
+
|
|
48
|
+
:type: P_LPSNRMARGIN
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
self.rx_power = P_LPRXPOWER(conn, module_id, port_id)
|
|
52
|
+
"""RX power recorded during training for the four channels.
|
|
53
|
+
|
|
54
|
+
:type: P_LPRXPOWER
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
self.capabilities = P_LPSUPPORT(conn, module_id, port_id)
|
|
58
|
+
"""EEE capabilities of the port.
|
|
59
|
+
|
|
60
|
+
:type: P_LPSUPPORT
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class FamilyE(BasePortL23Genuine):
|
|
65
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
66
|
+
super().__init__(conn, module_id, port_id)
|
|
67
|
+
self.autoneg_selection = P_AUTONEGSELECTION(conn, module_id, port_id)
|
|
68
|
+
"""L23 port's auto-negotiation selection.
|
|
69
|
+
|
|
70
|
+
:type: P_AUTONEGSELECTION
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
self.eee = LowPowerMode(conn, module_id, port_id)
|
|
74
|
+
"""L23 port Low Power mode settings.
|
|
75
|
+
|
|
76
|
+
:type: LowPowerMode
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class POdin5G4S6PCU(FamilyE):
|
|
81
|
+
"""L23 port on Odin-5G-4S-6P-CU module.
|
|
82
|
+
"""
|
|
83
|
+
...
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class POdin10G5S6PCU(FamilyE):
|
|
87
|
+
"""L23 port on Odin-10G-5S-6P-CU module.
|
|
88
|
+
"""
|
|
89
|
+
...
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class POdin10G5S6PCU_b(FamilyE):
|
|
93
|
+
"""L23 port on Odin-10G-5S-6P-CU[b] module.
|
|
94
|
+
"""
|
|
95
|
+
...
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class POdin10G3S6PCU(FamilyE):
|
|
99
|
+
"""L23 port on Odin-10G-3S-6P-CU module.
|
|
100
|
+
"""
|
|
101
|
+
...
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class POdin10G3S2PCU(FamilyE):
|
|
105
|
+
"""L23 port on Odin-10G-3S-2P-CU module.
|
|
106
|
+
"""
|
|
107
|
+
...
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
from typing import TYPE_CHECKING
|
|
3
|
+
from xoa_driver.internals.commands import (
|
|
4
|
+
P_DYNAMIC,
|
|
5
|
+
P_TXRUNTLENGTH,
|
|
6
|
+
P_RXRUNTLENGTH,
|
|
7
|
+
P_RXRUNTLEN_ERRS,
|
|
8
|
+
P_TXPREAMBLE_REMOVE,
|
|
9
|
+
P_RXPREAMBLE_INSERT,
|
|
10
|
+
|
|
11
|
+
)
|
|
12
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
15
|
+
|
|
16
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class FamilyF(BasePortL23Genuine):
|
|
20
|
+
...
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class POdin10G1S2P(FamilyF):
|
|
24
|
+
"""L23 port on Odin-10G-1S-2P module.
|
|
25
|
+
"""
|
|
26
|
+
...
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class POdin10G1S2P_b(FamilyF):
|
|
30
|
+
"""L23 port on Odin-10G-1S-2P[b] module.
|
|
31
|
+
"""
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class POdin10G1S2P_c(FamilyF):
|
|
36
|
+
"""L23 port on Odin-10G-1S-2P[c] module.
|
|
37
|
+
"""
|
|
38
|
+
...
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class POdin10G1S6P(FamilyF):
|
|
42
|
+
"""L23 port on Odin-10G-1S-6P module.
|
|
43
|
+
"""
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class Runt:
|
|
48
|
+
"""Runt settings."""
|
|
49
|
+
|
|
50
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
51
|
+
self.tx_length = P_TXRUNTLENGTH(conn, module_id, port_id)
|
|
52
|
+
"""L23 port's TX runt length.
|
|
53
|
+
|
|
54
|
+
:type: P_TXRUNTLENGTH
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
self.rx_length = P_RXRUNTLENGTH(conn, module_id, port_id)
|
|
58
|
+
"""L23 port's RX runt length.
|
|
59
|
+
|
|
60
|
+
:type: P_RXRUNTLENGTH
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
self.has_length_errors = P_RXRUNTLEN_ERRS(conn, module_id, port_id)
|
|
64
|
+
"""L23 port's RX runt length errors..
|
|
65
|
+
|
|
66
|
+
:type: P_RXRUNTLEN_ERRS
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class Preamble:
|
|
71
|
+
"""Preamble settings."""
|
|
72
|
+
|
|
73
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
74
|
+
self.tx_remove = P_TXPREAMBLE_REMOVE(conn, module_id, port_id)
|
|
75
|
+
"""L23 port's removal of preamble from outgoing packets.
|
|
76
|
+
|
|
77
|
+
:type: P_TXPREAMBLE_REMOVE
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
self.rx_insert = P_RXPREAMBLE_INSERT(conn, module_id, port_id)
|
|
81
|
+
"""L23 port's insertion of preamble into incoming packets.
|
|
82
|
+
|
|
83
|
+
:type: P_RXPREAMBLE_INSERT
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class POdin10G1S6P_b(FamilyF):
|
|
88
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
89
|
+
super().__init__(conn, module_id, port_id)
|
|
90
|
+
self.runt = Runt(conn, module_id, port_id)
|
|
91
|
+
"""Runt settings."""
|
|
92
|
+
|
|
93
|
+
self.preamble = Preamble(conn, module_id, port_id)
|
|
94
|
+
"""Preamble settiNgs."""
|
|
95
|
+
|
|
96
|
+
class POdin10G6S6P_a(FamilyF):
|
|
97
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
98
|
+
super().__init__(conn, module_id, port_id)
|
|
99
|
+
self.runt = Runt(conn, module_id, port_id)
|
|
100
|
+
"""Runt settings."""
|
|
101
|
+
|
|
102
|
+
self.preamble = Preamble(conn, module_id, port_id)
|
|
103
|
+
"""Preamble settiNgs."""
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class POdin10G1S2PT(FamilyF):
|
|
107
|
+
"""L23 port on Odin-10G-1S-2P-T module.
|
|
108
|
+
"""
|
|
109
|
+
...
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class POdin10G1S2P_d(FamilyF):
|
|
113
|
+
"""L23 port on Odin-10G-1S-2P[d] module.
|
|
114
|
+
"""
|
|
115
|
+
...
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class POdin10G1S12P(FamilyF):
|
|
119
|
+
"""L23 port on Odin-10G-1S-12P module.
|
|
120
|
+
"""
|
|
121
|
+
...
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class POdin40G2S2P(FamilyF):
|
|
125
|
+
"""L23 port on Odin-40G-2S-2P module.
|
|
126
|
+
"""
|
|
127
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
128
|
+
super().__init__(conn, module_id, port_id)
|
|
129
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
130
|
+
"""L23 port's dynamic traffic change.
|
|
131
|
+
|
|
132
|
+
:type: P_DYNAMIC
|
|
133
|
+
"""
|
|
134
|
+
|
|
135
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
136
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class POdin40G2S2PB(FamilyF):
|
|
140
|
+
"""L23 port on Odin-40G-2S-2P-B module.
|
|
141
|
+
"""
|
|
142
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
143
|
+
super().__init__(conn, module_id, port_id)
|
|
144
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
145
|
+
"""L23 port's dynamic traffic change.
|
|
146
|
+
|
|
147
|
+
:type: P_DYNAMIC
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
151
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
from typing import TYPE_CHECKING, Tuple
|
|
3
|
+
from typing_extensions import Self
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
P_DYNAMIC,
|
|
6
|
+
)
|
|
7
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
10
|
+
|
|
11
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
12
|
+
from .pcs_pma_ghijkl import (
|
|
13
|
+
PcsPma,
|
|
14
|
+
SerDes,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class FamilyG(BasePortL23Genuine):
|
|
19
|
+
pcs_pma: PcsPma
|
|
20
|
+
"""PCS/PMA settings.
|
|
21
|
+
|
|
22
|
+
:type: ~xoa_driver.internals.hli_v1.ports.port_l23.pcs_pma_ghijkl.PcsPma
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
serdes: Tuple[SerDes, ...]
|
|
26
|
+
"""SerDes index
|
|
27
|
+
|
|
28
|
+
:type: Tuple[SerDes, ...]
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
32
|
+
super().__init__(conn, module_id, port_id)
|
|
33
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
34
|
+
"""L23 port's dynamic traffic change.
|
|
35
|
+
|
|
36
|
+
:type: P_DYNAMIC
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
async def _setup(self) -> Self:
|
|
40
|
+
await super()._setup()
|
|
41
|
+
self.serdes = tuple(
|
|
42
|
+
SerDes(self._conn, *self.kind, serdes_xindex=serdes_xindex)
|
|
43
|
+
for serdes_xindex in range(self.info.capabilities.serdes_count)
|
|
44
|
+
)
|
|
45
|
+
self.pcs_pma = PcsPma(self._conn, self)
|
|
46
|
+
return self
|
|
47
|
+
|
|
48
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
49
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class PLoki100G3S1P(FamilyG):
|
|
53
|
+
"""L23 port on Loki-100G-3S-1P module.
|
|
54
|
+
"""
|
|
55
|
+
...
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class PLoki100G3S1P_b(FamilyG):
|
|
59
|
+
"""L23 port on Loki-100G-3S-1P[b] module.
|
|
60
|
+
"""
|
|
61
|
+
...
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class PLoki100G3S1PSE(FamilyG):
|
|
65
|
+
"""L23 port on Loki-100G-3S-1P-SE module.
|
|
66
|
+
"""
|
|
67
|
+
...
|
|
68
|
+
|
|
69
|
+
class PLoki100G3S1PB(FamilyG):
|
|
70
|
+
"""L23 port on Loki-100G-3S-1P-B module.
|
|
71
|
+
"""
|
|
72
|
+
...
|
|
73
|
+
|
|
74
|
+
class PLoki100G3S1PB_b(FamilyG):
|
|
75
|
+
"""L23 port on Loki-100G-3S-1P-B[b] module.
|
|
76
|
+
"""
|
|
77
|
+
...
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
from typing import TYPE_CHECKING, Tuple
|
|
3
|
+
from typing_extensions import Self
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
P_DYNAMIC,
|
|
6
|
+
)
|
|
7
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
10
|
+
|
|
11
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
12
|
+
from .pcs_pma_ghijkl import (
|
|
13
|
+
PcsPma,
|
|
14
|
+
SerDes,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class FamilyH(BasePortL23Genuine):
|
|
19
|
+
serdes: Tuple[SerDes, ...]
|
|
20
|
+
"""SerDes index
|
|
21
|
+
|
|
22
|
+
:type: Tuple[SerDes, ...]
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
26
|
+
super().__init__(conn, module_id, port_id)
|
|
27
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
28
|
+
"""L23 port's dynamic traffic change.
|
|
29
|
+
|
|
30
|
+
:type: P_DYNAMIC
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
async def _setup(self) -> Self:
|
|
34
|
+
await super()._setup()
|
|
35
|
+
self.serdes = tuple(
|
|
36
|
+
SerDes(self._conn, *self.kind, serdes_xindex=serdes_xindex)
|
|
37
|
+
for serdes_xindex in range(self.info.capabilities.serdes_count)
|
|
38
|
+
)
|
|
39
|
+
return self
|
|
40
|
+
|
|
41
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
42
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class PLoki100G5S1P(FamilyH):
|
|
46
|
+
"""L23 port on Loki-100G-5S-1P module.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
pcs_pma: PcsPma
|
|
50
|
+
"""PCS/PMA settings.
|
|
51
|
+
|
|
52
|
+
:type: ~xoa_driver.internals.hli_v1.ports.port_l23.pcs_pma_ghijkl.PcsPma
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
56
|
+
super().__init__(conn, module_id, port_id)
|
|
57
|
+
|
|
58
|
+
async def _setup(self) -> Self:
|
|
59
|
+
await super()._setup()
|
|
60
|
+
self.pcs_pma = PcsPma(self._conn, self)
|
|
61
|
+
return self
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class POdin100G3S1P(FamilyH):
|
|
65
|
+
"""L23 port on Odin-100G-3S-1P module.
|
|
66
|
+
"""
|
|
67
|
+
...
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
from typing import TYPE_CHECKING, Tuple
|
|
3
|
+
from typing_extensions import Self
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
P_FAULTSIGNALING,
|
|
6
|
+
P_FAULTSTATUS,
|
|
7
|
+
P_DYNAMIC,
|
|
8
|
+
)
|
|
9
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
12
|
+
|
|
13
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
14
|
+
from .pcs_pma_ijkl_chimera import PcsPma as PcsPma1
|
|
15
|
+
from .pcs_pma_ghijkl import (
|
|
16
|
+
PcsPma as PcsPma2,
|
|
17
|
+
SerDes,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class PcsPma(PcsPma1, PcsPma2):
|
|
22
|
+
"""PCS/PMA layer for Family I
|
|
23
|
+
"""
|
|
24
|
+
def __init__(self, conn: "itf.IConnection", port) -> None:
|
|
25
|
+
PcsPma1.__init__(self, conn, port)
|
|
26
|
+
PcsPma2.__init__(self, conn, port)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class Fault:
|
|
30
|
+
"""L23 port fault settings."""
|
|
31
|
+
|
|
32
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
33
|
+
self.signaling = P_FAULTSIGNALING(conn, module_id, port_id)
|
|
34
|
+
"""L23 port fault signaling.
|
|
35
|
+
|
|
36
|
+
:type: P_FAULTSIGNALING
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
self.status = P_FAULTSTATUS(conn, module_id, port_id)
|
|
40
|
+
"""L23 port fault status.
|
|
41
|
+
|
|
42
|
+
:type: P_FAULTSTATUS
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class FamilyI(BasePortL23Genuine):
|
|
47
|
+
pcs_pma: PcsPma
|
|
48
|
+
"""PCS/PMA layer
|
|
49
|
+
|
|
50
|
+
:type: PcsPma
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
serdes: Tuple[SerDes, ...]
|
|
54
|
+
"""SerDes index
|
|
55
|
+
|
|
56
|
+
:type: Tuple[SerDes, ...]
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
60
|
+
super().__init__(conn, module_id, port_id)
|
|
61
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
62
|
+
"""L23 port's dynamic traffic change.
|
|
63
|
+
|
|
64
|
+
:type: P_DYNAMIC
|
|
65
|
+
"""
|
|
66
|
+
self.fault = Fault(conn, module_id, port_id)
|
|
67
|
+
|
|
68
|
+
async def _setup(self) -> Self:
|
|
69
|
+
await super()._setup()
|
|
70
|
+
self.pcs_pma = PcsPma(self._conn, self)
|
|
71
|
+
self.serdes = tuple(
|
|
72
|
+
SerDes(self._conn, *self.kind, serdes_xindex=serdes_xindex)
|
|
73
|
+
for serdes_xindex in range(self.info.capabilities.serdes_count)
|
|
74
|
+
)
|
|
75
|
+
return self
|
|
76
|
+
|
|
77
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
78
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class PLoki100G5S2P(FamilyI):
|
|
82
|
+
"""L23 port on Loki-100G-5S-2P module.
|
|
83
|
+
"""
|
|
84
|
+
...
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
from typing import TYPE_CHECKING, Tuple
|
|
3
|
+
from typing_extensions import Self
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
# P_FAULTSIGNALING,
|
|
6
|
+
P_DYNAMIC,
|
|
7
|
+
)
|
|
8
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
11
|
+
|
|
12
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
13
|
+
from .fault_jkl import Fault
|
|
14
|
+
from .pcs_pma_ijkl_chimera import PcsPma as PcsPma1
|
|
15
|
+
from .pcs_pma_ghijkl import (
|
|
16
|
+
PcsPma as PcsPma2,
|
|
17
|
+
SerDes,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class PcsPma(PcsPma1, PcsPma2):
|
|
22
|
+
"""PCS/PMA layer for Family J
|
|
23
|
+
"""
|
|
24
|
+
def __init__(self, conn: "itf.IConnection", port) -> None:
|
|
25
|
+
PcsPma1.__init__(self, conn, port)
|
|
26
|
+
PcsPma2.__init__(self, conn, port)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class FamilyJ(BasePortL23Genuine):
|
|
30
|
+
pcs_pma: PcsPma
|
|
31
|
+
"""PCS/PMA layer
|
|
32
|
+
|
|
33
|
+
:type: PcsPma
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
serdes: Tuple[SerDes, ...]
|
|
37
|
+
"""SerDes index
|
|
38
|
+
|
|
39
|
+
:type: Tuple[SerDes, ...]
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
43
|
+
super().__init__(conn, module_id, port_id)
|
|
44
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
45
|
+
"""L23 port's dynamic traffic change.
|
|
46
|
+
|
|
47
|
+
:type: P_DYNAMIC
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
self.fault = Fault(conn, module_id, port_id)
|
|
51
|
+
|
|
52
|
+
async def _setup(self) -> Self:
|
|
53
|
+
await super()._setup()
|
|
54
|
+
self.pcs_pma = PcsPma(self._conn, self)
|
|
55
|
+
self.serdes = tuple(
|
|
56
|
+
SerDes(self._conn, *self.kind, serdes_xindex=serdes_xindex)
|
|
57
|
+
for serdes_xindex in range(self.info.capabilities.serdes_count)
|
|
58
|
+
)
|
|
59
|
+
return self
|
|
60
|
+
|
|
61
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
62
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class PThor100G5S4P(FamilyJ):
|
|
66
|
+
"""L23 port on Thor-100G-5S-4P module.
|
|
67
|
+
"""
|
|
68
|
+
...
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
from typing import TYPE_CHECKING, Tuple
|
|
3
|
+
from typing_extensions import Self
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
# P_FAULTSIGNALING,
|
|
6
|
+
P_DYNAMIC,
|
|
7
|
+
)
|
|
8
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
11
|
+
|
|
12
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
13
|
+
from .fault_jkl import Fault
|
|
14
|
+
from .pcs_pma_ijkl_chimera import PcsPma as PcsPma1
|
|
15
|
+
from .pcs_pma_ghijkl import (
|
|
16
|
+
PcsPma as PcsPma2,
|
|
17
|
+
SerDes,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class PcsPma(PcsPma1, PcsPma2):
|
|
22
|
+
"""PCS/PMA layer for Family K
|
|
23
|
+
"""
|
|
24
|
+
def __init__(self, conn: "itf.IConnection", port) -> None:
|
|
25
|
+
PcsPma1.__init__(self, conn, port)
|
|
26
|
+
PcsPma2.__init__(self, conn, port)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class FamilyK(BasePortL23Genuine):
|
|
30
|
+
pcs_pma: PcsPma
|
|
31
|
+
"""PCS/PMA layer
|
|
32
|
+
|
|
33
|
+
:type: PcsPma
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
serdes: Tuple[SerDes, ...]
|
|
37
|
+
"""SerDes index
|
|
38
|
+
|
|
39
|
+
:type: Tuple[SerDes, ...]
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
43
|
+
super().__init__(conn, module_id, port_id)
|
|
44
|
+
self.dynamic = P_DYNAMIC(conn, module_id, port_id)
|
|
45
|
+
"""L23 port's dynamic traffic change.
|
|
46
|
+
|
|
47
|
+
:type: P_DYNAMIC
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
self.fault = Fault(conn, module_id, port_id)
|
|
51
|
+
|
|
52
|
+
async def _setup(self) -> Self:
|
|
53
|
+
await super()._setup()
|
|
54
|
+
self.pcs_pma = PcsPma(self._conn, self)
|
|
55
|
+
self.serdes = tuple(
|
|
56
|
+
SerDes(self._conn, *self.kind, serdes_xindex=serdes_xindex)
|
|
57
|
+
for serdes_xindex in range(self.info.capabilities.serdes_count)
|
|
58
|
+
)
|
|
59
|
+
return self
|
|
60
|
+
|
|
61
|
+
on_dynamic_change = functools.partialmethod(utils.on_event, P_DYNAMIC)
|
|
62
|
+
"""Register a callback to the event that the port's dynamic traffic setting changes."""
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class PThor400G7S1P(FamilyK):
|
|
66
|
+
"""L23 port on Thor-400G-7S-1P module.
|
|
67
|
+
"""
|
|
68
|
+
...
|
|
69
|
+
|
|
70
|
+
class PThor400G7S1PLE(FamilyK):
|
|
71
|
+
"""L23 port on Thor-400G-7S-1P LE module.
|
|
72
|
+
"""
|
|
73
|
+
...
|