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,86 @@
|
|
|
1
|
+
import ipaddress
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from xoa_driver.internals.core.transporter.protocol.payload import (
|
|
5
|
+
field,
|
|
6
|
+
XmpByte,
|
|
7
|
+
XmpShort,
|
|
8
|
+
XmpInt,
|
|
9
|
+
XmpLong,
|
|
10
|
+
XmpMacAddress,
|
|
11
|
+
XmpIPv4Address,
|
|
12
|
+
Hex,
|
|
13
|
+
)
|
|
14
|
+
from .enums import (
|
|
15
|
+
OnOff,
|
|
16
|
+
VlanType
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass
|
|
21
|
+
class ArpChunk:
|
|
22
|
+
ipv4_address: ipaddress.IPv4Address
|
|
23
|
+
"""The IP address to match to the Target IP address in the ARP requests"""
|
|
24
|
+
|
|
25
|
+
prefix: int
|
|
26
|
+
"""The IP prefix used for address matching."""
|
|
27
|
+
|
|
28
|
+
patched_mac: OnOff
|
|
29
|
+
"""If on, the target MAC address will be patched with the part of the IP address that is not masked by the prefix"""
|
|
30
|
+
|
|
31
|
+
mac_address: Hex
|
|
32
|
+
"""The target MAC address to return in the ARP reply. If set t to all-zero, the port MAC address will be used."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass
|
|
36
|
+
class NdpChunk:
|
|
37
|
+
ipv6_address: ipaddress.IPv6Address
|
|
38
|
+
"""The IP address to match to the Target IP address in the NDP Neighbor Solicitation"""
|
|
39
|
+
|
|
40
|
+
prefix: int
|
|
41
|
+
"""The IP prefix used for address matching."""
|
|
42
|
+
|
|
43
|
+
patched_mac: OnOff
|
|
44
|
+
"""If on, the target MAC address will be patched with the part of the IP address that is not masked by the prefix"""
|
|
45
|
+
|
|
46
|
+
mac_address: Hex
|
|
47
|
+
"""The target MAC address to return in the NDP Neighbor Advertisement. If set t to all-zero, the port MAC address will be used."""
|
|
48
|
+
|
|
49
|
+
@dataclass
|
|
50
|
+
class DhcpChunk:
|
|
51
|
+
ipv4_address: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided IP address by DHCP Server
|
|
52
|
+
subnet_mask: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided Subnet mask by DHCP Server
|
|
53
|
+
braodcast_address: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided Broadcast address by DHCP Server
|
|
54
|
+
defaultgw: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided Default GW by DHCP Server
|
|
55
|
+
lease_time: int = field(XmpInt()) # provided Lease Time by DHCP Server
|
|
56
|
+
mac_address: Hex = field(XmpMacAddress()) # The client source mac address that this DHCP request blongs to
|
|
57
|
+
|
|
58
|
+
@dataclass
|
|
59
|
+
class GroupAddressElem:
|
|
60
|
+
def __init__(self, ip_address, subnet_mask, mac_address):
|
|
61
|
+
self.ipv4_address = ip_address
|
|
62
|
+
self.subnet_mask = subnet_mask
|
|
63
|
+
self.mac_address = mac_address
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
ipv4_address: ipaddress.IPv4Address = field(XmpIPv4Address()) # Ip address
|
|
68
|
+
subnet_mask: ipaddress.IPv4Address = field(XmpIPv4Address()) # Subne Mask
|
|
69
|
+
mac_address: Hex = field(XmpMacAddress()) # Mac Address
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
@dataclass
|
|
73
|
+
class VlanTag:
|
|
74
|
+
def __init__(self, tci, type):
|
|
75
|
+
self.tci = tci
|
|
76
|
+
self.type = type
|
|
77
|
+
|
|
78
|
+
tci: int = field(XmpShort()) #
|
|
79
|
+
type: VlanType = field(XmpByte()) # Subne Mask
|
|
80
|
+
|
|
81
|
+
@dataclass
|
|
82
|
+
class QueueStatsElem:
|
|
83
|
+
rx_bytes: int = field(XmpLong()) # Total Received Bytes
|
|
84
|
+
rx_packets: int = field(XmpLong()) # Total Received Packets
|
|
85
|
+
tx_bytes: int = field(XmpLong()) # Total Sent Bytes
|
|
86
|
+
tx_packets: int = field(XmpLong()) # Total Sent Packets
|
|
File without changes
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from .transporter.protocol.struct_request import Request
|
|
3
|
+
from .transporter.protocol._constants import CommandType
|
|
4
|
+
from .transporter._typings import (
|
|
5
|
+
ICmdOnlySet,
|
|
6
|
+
ICmdOnlyGet,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def build_set_request(cls: ICmdOnlySet, **kwargs) -> Request:
|
|
11
|
+
indices = kwargs.pop("indices", [])
|
|
12
|
+
module = kwargs.pop("module", None)
|
|
13
|
+
port = kwargs.pop("port", None)
|
|
14
|
+
req_values = cls.SetDataAttr(**kwargs)
|
|
15
|
+
return Request(
|
|
16
|
+
class_name=type(cls).__name__,
|
|
17
|
+
cmd_type=CommandType.COMMAND_VALUE,
|
|
18
|
+
cmd_code=cls.code,
|
|
19
|
+
module_index=module,
|
|
20
|
+
port_index=port,
|
|
21
|
+
indices=indices,
|
|
22
|
+
values=req_values
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def build_get_request(cls: ICmdOnlyGet, **kwargs) -> Request:
|
|
27
|
+
indices = kwargs.pop("indices", [])
|
|
28
|
+
module = kwargs.pop("module", None)
|
|
29
|
+
port = kwargs.pop("port", None)
|
|
30
|
+
req_values = None
|
|
31
|
+
return Request(
|
|
32
|
+
class_name=type(cls).__name__,
|
|
33
|
+
cmd_type=CommandType.COMMAND_QUERY,
|
|
34
|
+
cmd_code=cls.code,
|
|
35
|
+
module_index=module,
|
|
36
|
+
port_index=port,
|
|
37
|
+
indices=indices,
|
|
38
|
+
values=req_values
|
|
39
|
+
)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
from .transporter.protocol.exceptions import (
|
|
2
|
+
XmpStatusException,
|
|
3
|
+
XmpNoConnectionError,
|
|
4
|
+
XmpNoLoggedOnError,
|
|
5
|
+
XmpNotReservedError,
|
|
6
|
+
XmpNotWritableError,
|
|
7
|
+
XmpNotReadableError,
|
|
8
|
+
XmpNotValidError,
|
|
9
|
+
XmpBadHeaderError,
|
|
10
|
+
XmpBadCommandError,
|
|
11
|
+
XmpBadParameterError,
|
|
12
|
+
XmpBadModuleError,
|
|
13
|
+
XmpBadPortError,
|
|
14
|
+
XmpBadIndexError,
|
|
15
|
+
XmpBadSizeError,
|
|
16
|
+
XmpBadValueError,
|
|
17
|
+
XmpFailedError,
|
|
18
|
+
XmpMemoryFailureError,
|
|
19
|
+
XmpNoPeLicenseError,
|
|
20
|
+
XmpNoFreePortLicenseError,
|
|
21
|
+
XmpNotSupportedError,
|
|
22
|
+
XmpPendingError,
|
|
23
|
+
XmpModuleOperationNotSupportedByChassisError,
|
|
24
|
+
XmpXlsFailedError,
|
|
25
|
+
XmpXlsDeniedError,
|
|
26
|
+
XmpXlsInvalidError,
|
|
27
|
+
)
|
|
28
|
+
from .transporter.exceptions import (
|
|
29
|
+
XoaException,
|
|
30
|
+
TransporterException,
|
|
31
|
+
XoaConnectionTimeoutError,
|
|
32
|
+
XoaConnectionError,
|
|
33
|
+
RepeatedRequestID,
|
|
34
|
+
XoaLostFuture
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
__all__ = (
|
|
38
|
+
"XmpStatusException",
|
|
39
|
+
"XmpNoConnectionError",
|
|
40
|
+
"XmpNoLoggedOnError",
|
|
41
|
+
"XmpNotReservedError",
|
|
42
|
+
"XmpNotWritableError",
|
|
43
|
+
"XmpNotReadableError",
|
|
44
|
+
"XmpNotValidError",
|
|
45
|
+
"XmpBadHeaderError",
|
|
46
|
+
"XmpBadCommandError",
|
|
47
|
+
"XmpBadParameterError",
|
|
48
|
+
"XmpBadModuleError",
|
|
49
|
+
"XmpBadPortError",
|
|
50
|
+
"XmpBadIndexError",
|
|
51
|
+
"XmpBadSizeError",
|
|
52
|
+
"XmpBadValueError",
|
|
53
|
+
"XmpFailedError",
|
|
54
|
+
"XmpMemoryFailureError",
|
|
55
|
+
"XmpNoPeLicenseError",
|
|
56
|
+
"XmpNoFreePortLicenseError",
|
|
57
|
+
"XmpNotSupportedError",
|
|
58
|
+
"XmpPendingError",
|
|
59
|
+
"XmpModuleOperationNotSupportedByChassisError",
|
|
60
|
+
"XmpXlsFailedError",
|
|
61
|
+
"XmpXlsDeniedError",
|
|
62
|
+
"XmpXlsInvalidError",
|
|
63
|
+
"XoaException",
|
|
64
|
+
"TransporterException",
|
|
65
|
+
"XoaConnectionTimeoutError",
|
|
66
|
+
"XoaConnectionError",
|
|
67
|
+
"RepeatedRequestID",
|
|
68
|
+
"XoaLostFuture",
|
|
69
|
+
)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import asyncio
|
|
3
|
+
from asyncio.events import AbstractEventLoop
|
|
4
|
+
import io
|
|
5
|
+
from typing import (
|
|
6
|
+
TYPE_CHECKING,
|
|
7
|
+
Any,
|
|
8
|
+
AsyncGenerator,
|
|
9
|
+
)
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from .transporter.handler import TransportationHandler
|
|
12
|
+
from . import interfaces
|
|
13
|
+
|
|
14
|
+
from .token import Token
|
|
15
|
+
from .transporter import exceptions
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
async def establish_connection(transporter: "TransportationHandler", host: str, port: int = 22606, *, seconds_timeout: int = 5, loop: AbstractEventLoop | None = None) -> None:
|
|
19
|
+
"""
|
|
20
|
+
Establish connection to provided host and port and assign ``<TransportationHandler>`` to it.
|
|
21
|
+
"""
|
|
22
|
+
assert isinstance(loop, AbstractEventLoop) or loop is None, "<loop> must be an instance of AbstractEventLoop or None"
|
|
23
|
+
__loop = loop if loop else asyncio.get_event_loop()
|
|
24
|
+
try:
|
|
25
|
+
await asyncio.wait_for(
|
|
26
|
+
__loop.create_connection(lambda: transporter, host=host, port=port),
|
|
27
|
+
seconds_timeout
|
|
28
|
+
)
|
|
29
|
+
except OSError:
|
|
30
|
+
raise exceptions.XoaConnectionError(host, port) from None
|
|
31
|
+
except asyncio.exceptions.TimeoutError:
|
|
32
|
+
raise exceptions.XoaConnectionTimeoutError(host, port, seconds_timeout) from None
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
async def apply_iter(*cmd_tokens: Token[Any], return_exceptions: bool = False, token_timeout_sec: float | None = 5.0) -> AsyncGenerator[Any, None]:
|
|
36
|
+
"""
|
|
37
|
+
Main interface for chunking the commands which need to be send to the single tester at the same time.
|
|
38
|
+
"""
|
|
39
|
+
if not cmd_tokens:
|
|
40
|
+
return
|
|
41
|
+
conn: "interfaces.IConnection" = cmd_tokens[0].connection
|
|
42
|
+
buffer_bytes = io.BytesIO()
|
|
43
|
+
queue: asyncio.Queue[asyncio.Future] = asyncio.Queue()
|
|
44
|
+
for t in cmd_tokens:
|
|
45
|
+
(data, fut) = await t.connection.prepare_data(t.request)
|
|
46
|
+
buffer_bytes.write(data)
|
|
47
|
+
queue.put_nowait(fut)
|
|
48
|
+
conn.send(buffer_bytes.getvalue())
|
|
49
|
+
buffer_bytes.close()
|
|
50
|
+
del buffer_bytes
|
|
51
|
+
|
|
52
|
+
while not queue.empty():
|
|
53
|
+
future = await queue.get()
|
|
54
|
+
try:
|
|
55
|
+
result_ = await asyncio.wait_for(
|
|
56
|
+
asyncio.shield(future),
|
|
57
|
+
token_timeout_sec if return_exceptions else None
|
|
58
|
+
)
|
|
59
|
+
except Exception as e:
|
|
60
|
+
if return_exceptions:
|
|
61
|
+
yield e
|
|
62
|
+
else:
|
|
63
|
+
raise e
|
|
64
|
+
else:
|
|
65
|
+
yield result_
|
|
66
|
+
queue.task_done()
|
|
67
|
+
await queue.join()
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
async def apply(*cmd_tokens: Token[Any], return_exceptions: bool = False, token_timeout_sec: float | None = 5.0) -> list[Any]:
|
|
71
|
+
"""
|
|
72
|
+
Main interface for chunking the commands which need to be send to one or multiple testers at the same time.
|
|
73
|
+
"""
|
|
74
|
+
assert len(cmd_tokens) <= 200, "Number of the commands is bigger then 200 for one aggregation, please use function <apply_iter> instead"
|
|
75
|
+
return [
|
|
76
|
+
f async for f in apply_iter(
|
|
77
|
+
*cmd_tokens,
|
|
78
|
+
return_exceptions=return_exceptions,
|
|
79
|
+
token_timeout_sec=token_timeout_sec
|
|
80
|
+
)
|
|
81
|
+
]
|