tdl-xoa-driver 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- tdl_xoa_driver-1.0.0.dist-info/LICENSE +202 -0
- tdl_xoa_driver-1.0.0.dist-info/METADATA +177 -0
- tdl_xoa_driver-1.0.0.dist-info/RECORD +325 -0
- tdl_xoa_driver-1.0.0.dist-info/WHEEL +5 -0
- tdl_xoa_driver-1.0.0.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,366 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
import asyncio
|
|
3
|
+
import functools
|
|
4
|
+
from typing_extensions import Self
|
|
5
|
+
from xoa_driver.internals.commands import (
|
|
6
|
+
M_STATUS,
|
|
7
|
+
M_UPGRADE,
|
|
8
|
+
M_UPGRADEPROGRESS,
|
|
9
|
+
M_CFPTYPE,
|
|
10
|
+
M_COMMENT,
|
|
11
|
+
M_CAPABILITIES,
|
|
12
|
+
M_CLOCKPPB,
|
|
13
|
+
M_TXCLOCKSOURCE_NEW,
|
|
14
|
+
M_TXCLOCKSTATUS_NEW,
|
|
15
|
+
M_EMULBYPASS,
|
|
16
|
+
M_LATENCYMODE,
|
|
17
|
+
M_REVISION,
|
|
18
|
+
M_MEDIA,
|
|
19
|
+
M_MEDIASUPPORT,
|
|
20
|
+
M_TIMESYNC,
|
|
21
|
+
M_CLOCKSYNCSTATUS,
|
|
22
|
+
M_NAME,
|
|
23
|
+
M_CFPCONFIGEXT,
|
|
24
|
+
M_UPGRADEPAR,
|
|
25
|
+
M_VERSIONSTR,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
from xoa_driver.internals.hli_v1 import revisions
|
|
29
|
+
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
30
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
31
|
+
from xoa_driver.internals.state_storage import modules_state
|
|
32
|
+
from xoa_driver import ports
|
|
33
|
+
from xoa_driver.internals.hli_v1.modules.modules_l23.module_l23_base import MediaModule, CfpModule
|
|
34
|
+
from . import base_module as bm
|
|
35
|
+
|
|
36
|
+
if typing.TYPE_CHECKING:
|
|
37
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
38
|
+
from xoa_driver.internals.hli_v1.modules.modules_l23.module_l23_base import ModuleL23
|
|
39
|
+
from . import __interfaces as m_itf
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class ChTXClock:
|
|
43
|
+
"""
|
|
44
|
+
Advanced timing feature (Chimera).
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
def __init__(self, conn: "itf.IConnection", module_id: int) -> None:
|
|
48
|
+
self.source = M_TXCLOCKSOURCE_NEW(conn, module_id)
|
|
49
|
+
"""
|
|
50
|
+
The source that drives the TX clock rate of the ports on the test module.
|
|
51
|
+
|
|
52
|
+
:type: M_TXCLOCKSOURCE_NEW
|
|
53
|
+
"""
|
|
54
|
+
self.status = M_TXCLOCKSTATUS_NEW(conn, module_id)
|
|
55
|
+
"""
|
|
56
|
+
TX clock status of the test module.
|
|
57
|
+
|
|
58
|
+
:type: M_TXCLOCKSTATUS_NEW
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class ChCFP:
|
|
63
|
+
"""
|
|
64
|
+
CFP test module (Chimera).
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
|
|
68
|
+
self.type = M_CFPTYPE(conn, module.module_id)
|
|
69
|
+
"""
|
|
70
|
+
The transceiver's CFP type currently inserted.
|
|
71
|
+
|
|
72
|
+
:type: M_CFPTYPE
|
|
73
|
+
"""
|
|
74
|
+
self.config = CfpModule(conn, module)
|
|
75
|
+
"""
|
|
76
|
+
The CFP configuration of the test module.
|
|
77
|
+
|
|
78
|
+
:type: CfpModule
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class ChUpgrade:
|
|
83
|
+
"""
|
|
84
|
+
Upgrade test module (Chimera).
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
def __init__(self, conn: "itf.IConnection", module_id: int) -> None:
|
|
88
|
+
self.start = M_UPGRADE(conn, module_id)
|
|
89
|
+
"""
|
|
90
|
+
Start the upgrade progress of the test module.
|
|
91
|
+
|
|
92
|
+
:type: M_UPGRADE
|
|
93
|
+
"""
|
|
94
|
+
self.progress = M_UPGRADEPROGRESS(conn, module_id)
|
|
95
|
+
"""
|
|
96
|
+
Upgrade progress status of the test module.
|
|
97
|
+
|
|
98
|
+
:type: M_UPGRADEPROGRESS
|
|
99
|
+
"""
|
|
100
|
+
self.start_parallel = M_UPGRADEPAR(conn, module_id)
|
|
101
|
+
"""
|
|
102
|
+
Start the parallel upgrade progress of the test module.
|
|
103
|
+
|
|
104
|
+
:type: M_UPGRADEPAR
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class ChTiming:
|
|
109
|
+
"""Test module timing and clock configuration"""
|
|
110
|
+
|
|
111
|
+
def __init__(self, conn: "itf.IConnection", module_id: int) -> None:
|
|
112
|
+
self.source = M_TIMESYNC(conn, module_id)
|
|
113
|
+
"""Timing source of the test module.
|
|
114
|
+
|
|
115
|
+
:type: M_TIMESYNC
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
self.clock_local_adjust = M_CLOCKPPB(conn, module_id)
|
|
119
|
+
"""Time adjustment controlling of the local clock of the test module, which drives the TX rate of the test ports.
|
|
120
|
+
|
|
121
|
+
:type: M_CLOCKPPB
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
self.clock_sync_status = M_CLOCKSYNCSTATUS(conn, module_id)
|
|
125
|
+
"""Test module's clock sync status.
|
|
126
|
+
|
|
127
|
+
:type: M_CLOCKSYNCSTATUS
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
|
|
132
|
+
"""
|
|
133
|
+
This is a conceptual class of Chimera module.
|
|
134
|
+
"""
|
|
135
|
+
|
|
136
|
+
def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
|
|
137
|
+
super().__init__(conn, init_data)
|
|
138
|
+
|
|
139
|
+
self._local_states = modules_state.ModuleLocalState()
|
|
140
|
+
|
|
141
|
+
self.tx_clock = ChTXClock(conn, self.module_id)
|
|
142
|
+
"""
|
|
143
|
+
TX clock config (Chimera).
|
|
144
|
+
|
|
145
|
+
:type: ChTXClock
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
self.timing = ChTiming(conn, self.module_id)
|
|
149
|
+
"""
|
|
150
|
+
Timing config (Chimera).
|
|
151
|
+
|
|
152
|
+
:type: ChTiming
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
self.cfp = ChCFP(conn, self)
|
|
156
|
+
"""
|
|
157
|
+
CFP test module (Chimera).
|
|
158
|
+
|
|
159
|
+
:type: ChCFP
|
|
160
|
+
"""
|
|
161
|
+
|
|
162
|
+
self.upgrade = ChUpgrade(conn, self.module_id)
|
|
163
|
+
"""
|
|
164
|
+
Upgrade test module (Chimera).
|
|
165
|
+
|
|
166
|
+
:type: ChUpgrade
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
self.capabilities = M_CAPABILITIES(conn, self.module_id)
|
|
170
|
+
"""
|
|
171
|
+
Test module's capabilities.
|
|
172
|
+
|
|
173
|
+
:type: M_CAPABILITIES
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
self.comment = M_COMMENT(conn, self.module_id)
|
|
177
|
+
"""
|
|
178
|
+
Test module's description.
|
|
179
|
+
|
|
180
|
+
:type: M_COMMENT
|
|
181
|
+
"""
|
|
182
|
+
|
|
183
|
+
self.status = M_STATUS(conn, self.module_id)
|
|
184
|
+
"""
|
|
185
|
+
Test module's status.
|
|
186
|
+
|
|
187
|
+
:type: M_STATUS
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
self.clock_ppb = M_CLOCKPPB(conn, self.module_id)
|
|
191
|
+
"""
|
|
192
|
+
Test module's local clock adjustment.
|
|
193
|
+
|
|
194
|
+
:type: M_CLOCKPPB
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
self.emulator_bypass_mode = M_EMULBYPASS(conn, self.module_id)
|
|
198
|
+
"""
|
|
199
|
+
Bypass mode of the Chimera module.
|
|
200
|
+
|
|
201
|
+
:type: M_EMULBYPASS
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
self.latency_mode = M_LATENCYMODE(conn, self.module_id)
|
|
205
|
+
"""
|
|
206
|
+
Latency mode of the Chimera module.
|
|
207
|
+
|
|
208
|
+
:type: M_LATENCYMODE
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
self.revision = M_REVISION(conn, self.module_id)
|
|
212
|
+
"""Test module's model P/N name.
|
|
213
|
+
|
|
214
|
+
:type: M_REVISION
|
|
215
|
+
"""
|
|
216
|
+
|
|
217
|
+
self.version_str = M_VERSIONSTR(conn, self.module_id)
|
|
218
|
+
"""Module version number in the new format
|
|
219
|
+
|
|
220
|
+
:type: M_VERSIONSTR
|
|
221
|
+
"""
|
|
222
|
+
|
|
223
|
+
self.media = MediaModule(conn, self)
|
|
224
|
+
"""Test module's media type.
|
|
225
|
+
|
|
226
|
+
:type: MediaModule
|
|
227
|
+
"""
|
|
228
|
+
|
|
229
|
+
self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
|
|
230
|
+
"""Test module's available speeds.
|
|
231
|
+
|
|
232
|
+
:type: M_MEDIASUPPORT
|
|
233
|
+
"""
|
|
234
|
+
|
|
235
|
+
self.name = M_NAME(conn, self.module_id)
|
|
236
|
+
"""Test module's name.
|
|
237
|
+
|
|
238
|
+
:type: M_NAME
|
|
239
|
+
"""
|
|
240
|
+
|
|
241
|
+
self.ports: pm.PortsManager["ports.PortChimera"] = pm.PortsManager(
|
|
242
|
+
conn=conn,
|
|
243
|
+
ports_type=ports.PortChimera,
|
|
244
|
+
module_id=self.module_id,
|
|
245
|
+
ports_count=self.ports_count
|
|
246
|
+
)
|
|
247
|
+
"""
|
|
248
|
+
Port index manager of the Chimera module.
|
|
249
|
+
|
|
250
|
+
:type: PortsManager
|
|
251
|
+
"""
|
|
252
|
+
|
|
253
|
+
@property
|
|
254
|
+
def info(self) -> modules_state.ModuleLocalState:
|
|
255
|
+
return self._local_states
|
|
256
|
+
|
|
257
|
+
async def _setup(self) -> Self:
|
|
258
|
+
await asyncio.gather(
|
|
259
|
+
self._local_states.initiate(self),
|
|
260
|
+
self.ports.fill()
|
|
261
|
+
)
|
|
262
|
+
self._local_states.register_subscriptions(self)
|
|
263
|
+
return self
|
|
264
|
+
|
|
265
|
+
on_cfp_type_change = functools.partialmethod(utils.on_event, M_CFPTYPE)
|
|
266
|
+
"""
|
|
267
|
+
Register a callback function to the event that the module's CFP type changes.
|
|
268
|
+
"""
|
|
269
|
+
|
|
270
|
+
on_cfp_config_change = functools.partialmethod(utils.on_event, M_CFPCONFIGEXT)
|
|
271
|
+
"""
|
|
272
|
+
Register a callback function to the event that the module's CFP configuration changes.
|
|
273
|
+
"""
|
|
274
|
+
|
|
275
|
+
on_status_change = functools.partialmethod(utils.on_event, M_STATUS)
|
|
276
|
+
"""
|
|
277
|
+
Register a callback function to the event that the module's model changes.
|
|
278
|
+
"""
|
|
279
|
+
|
|
280
|
+
on_latency_mode_change = functools.partialmethod(utils.on_event, M_LATENCYMODE)
|
|
281
|
+
"""
|
|
282
|
+
Register a callback function to the event that the module's latency mode changes.
|
|
283
|
+
"""
|
|
284
|
+
|
|
285
|
+
on_media_change = functools.partialmethod(utils.on_event, M_MEDIA)
|
|
286
|
+
"""
|
|
287
|
+
Register a callback to the event that the module's media and available speeds change.
|
|
288
|
+
"""
|
|
289
|
+
|
|
290
|
+
on_media_support_change = functools.partialmethod(utils.on_event, M_MEDIASUPPORT)
|
|
291
|
+
"""
|
|
292
|
+
Register a callback to the event that the module's supported media changes.
|
|
293
|
+
"""
|
|
294
|
+
|
|
295
|
+
on_timing_source_change = functools.partialmethod(utils.on_event, M_TIMESYNC)
|
|
296
|
+
"""
|
|
297
|
+
Register a callback to the event that the module's timesync mode changes.
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
on_timing_clock_local_adjust_change = functools.partialmethod(utils.on_event, M_CLOCKPPB)
|
|
301
|
+
"""
|
|
302
|
+
Register a callback to the event that the module's clock adjustment ppb changes.
|
|
303
|
+
"""
|
|
304
|
+
|
|
305
|
+
on_adv_timing_clock_tx_status_change = functools.partialmethod(utils.on_event, M_TXCLOCKSTATUS_NEW)
|
|
306
|
+
"""Register a callback to the event that the module's TX clock status changes."""
|
|
307
|
+
|
|
308
|
+
on_adv_timing_clock_tx_source_change = functools.partialmethod(utils.on_event, M_TXCLOCKSOURCE_NEW)
|
|
309
|
+
"""Register a callback to the event that the module's clock that drives the port TX rates changes."""
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
@typing.final
|
|
313
|
+
@revisions.register_chimera_module(rev="Chimera-100G-5S-2P")
|
|
314
|
+
class MChi100G5S2P(ModuleChimera):
|
|
315
|
+
"""Chimera module Chi-100G-5S-2P"""
|
|
316
|
+
|
|
317
|
+
def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
|
|
318
|
+
super().__init__(conn, init_data)
|
|
319
|
+
self.ports: pm.PortsManager[ports.PChi100G5S2P] = pm.PortsManager(
|
|
320
|
+
conn=conn,
|
|
321
|
+
ports_type=ports.PChi100G5S2P,
|
|
322
|
+
module_id=self.module_id,
|
|
323
|
+
ports_count=self.ports_count
|
|
324
|
+
)
|
|
325
|
+
"""Port index manager of Chi-100G-5S-2P
|
|
326
|
+
|
|
327
|
+
:type: PortsManager
|
|
328
|
+
"""
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
@typing.final
|
|
332
|
+
@revisions.register_chimera_module(rev="Chimera-100G-5S-2P[b]")
|
|
333
|
+
class MChi100G5S2P_b(ModuleChimera):
|
|
334
|
+
"""Chimera module Chi-100G-5S-2P[b]"""
|
|
335
|
+
|
|
336
|
+
def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
|
|
337
|
+
super().__init__(conn, init_data)
|
|
338
|
+
self.ports: pm.PortsManager[ports.PChi100G5S2P_b] = pm.PortsManager(
|
|
339
|
+
conn=conn,
|
|
340
|
+
ports_type=ports.PChi100G5S2P_b,
|
|
341
|
+
module_id=self.module_id,
|
|
342
|
+
ports_count=self.ports_count
|
|
343
|
+
)
|
|
344
|
+
"""Port index manager of Chi-100G-5S-2P[b]
|
|
345
|
+
|
|
346
|
+
:type: PortsManager
|
|
347
|
+
"""
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
@typing.final
|
|
351
|
+
@revisions.register_chimera_module(rev="Chimera-40G-5S-2P")
|
|
352
|
+
class MChi40G2S2P(ModuleChimera):
|
|
353
|
+
"""Chimera module Chi-40G-2S-2P"""
|
|
354
|
+
|
|
355
|
+
def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
|
|
356
|
+
super().__init__(conn, init_data)
|
|
357
|
+
self.ports: pm.PortsManager[ports.PChi40G2S2P] = pm.PortsManager(
|
|
358
|
+
conn=conn,
|
|
359
|
+
ports_type=ports.PChi40G2S2P,
|
|
360
|
+
module_id=self.module_id,
|
|
361
|
+
ports_count=self.ports_count
|
|
362
|
+
)
|
|
363
|
+
"""Port index manager of Chi-40G-2S-2P
|
|
364
|
+
|
|
365
|
+
:type: PortsManager
|
|
366
|
+
"""
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import typing
|
|
3
|
+
from typing_extensions import Self
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
M_COMMENT,
|
|
6
|
+
M_CAPABILITIES,
|
|
7
|
+
M_MULTIUSER
|
|
8
|
+
)
|
|
9
|
+
from xoa_driver import ports
|
|
10
|
+
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
11
|
+
from xoa_driver.internals.state_storage import modules_state
|
|
12
|
+
from . import base_module as bm
|
|
13
|
+
if typing.TYPE_CHECKING:
|
|
14
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
15
|
+
from . import __interfaces as m_itf
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ModuleL23VE(bm.BaseModule["modules_state.ModuleLocalState"]):
|
|
19
|
+
"""
|
|
20
|
+
This is a conceptual class of L23 test module on ValkyrieVE tester.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
|
|
24
|
+
super().__init__(conn, init_data)
|
|
25
|
+
|
|
26
|
+
self._local_states = modules_state.ModuleLocalState()
|
|
27
|
+
|
|
28
|
+
self.comment = M_COMMENT(conn, self.module_id)
|
|
29
|
+
"""Test module's description.
|
|
30
|
+
|
|
31
|
+
:type: M_COMMENT
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
self.capabilities = M_CAPABILITIES(conn, self.module_id)
|
|
35
|
+
"""Test module's capabilities.
|
|
36
|
+
|
|
37
|
+
:type: M_CAPABILITIES
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
self.multiuser = M_MULTIUSER(conn, self.module_id)
|
|
41
|
+
"""If multiple users are allowed to control the same test module.
|
|
42
|
+
|
|
43
|
+
:type: M_MULTIUSER
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
self.ports: pm.PortsManager[ports.PortL23VE] = pm.PortsManager(
|
|
47
|
+
conn=conn,
|
|
48
|
+
ports_type=ports.PortL23VE,
|
|
49
|
+
module_id=self.module_id,
|
|
50
|
+
ports_count=self.ports_count
|
|
51
|
+
)
|
|
52
|
+
"""L23 VE Port index manager of this test module.
|
|
53
|
+
|
|
54
|
+
:type: PortsManager
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def info(self) -> modules_state.ModuleLocalState:
|
|
59
|
+
"""Return the module's local state
|
|
60
|
+
|
|
61
|
+
:return: the module's local state
|
|
62
|
+
:rtype: ModuleLocalState
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
return self._local_states
|
|
66
|
+
|
|
67
|
+
async def _setup(self) -> Self:
|
|
68
|
+
await asyncio.gather(
|
|
69
|
+
self._local_states.initiate(self),
|
|
70
|
+
self.ports.fill()
|
|
71
|
+
)
|
|
72
|
+
self._local_states.register_subscriptions(self)
|
|
73
|
+
return self
|