tdl-xoa-driver 1.2.0__py3-none-any.whl → 1.4.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.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/METADATA +5 -5
- tdl_xoa_driver-1.4.0.dist-info/RECORD +218 -0
- {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/WHEEL +1 -1
- xoa_driver/__init__.py +2 -2
- xoa_driver/enums.py +2 -0
- xoa_driver/functions/anlt.py +2 -2
- xoa_driver/functions/exceptions.py +7 -0
- xoa_driver/functions/mgmt.py +62 -25
- xoa_driver/hlfuncs.py +1 -1
- xoa_driver/internals/commands/enums.py +10 -1
- xoa_driver/internals/commands/m_commands.py +35 -3
- xoa_driver/internals/commands/p_commands.py +12 -10
- xoa_driver/internals/commands/pt_commands.py +21 -1
- xoa_driver/internals/commands/px_commands.py +1686 -6
- xoa_driver/internals/core/transporter/_request_id_counter.py +1 -1
- xoa_driver/internals/core/transporter/protocol/payload/__init__.py +3 -1
- xoa_driver/internals/core/transporter/protocol/payload/field.py +41 -0
- xoa_driver/internals/core/transporter/protocol/payload/types.py +19 -0
- xoa_driver/internals/{hli_v1 → hli}/indices/filter/base_filter.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/indices/length_term.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/base_macsecsc.py +2 -2
- xoa_driver/internals/{hli_v1 → hli}/indices/match_term.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/indices/port_dataset.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/indices/streams/base_stream.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/module_chimera.py +20 -15
- xoa_driver/internals/{hli_v1 → hli}/modules/module_l47.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_combi.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_d.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_e.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_f.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_g.py +17 -2
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_h.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_i.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_j.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_k.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_l1.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_m.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/family_n.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/module_l23_base.py +18 -12
- xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23.py +3 -3
- xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_l23_genuine.py +4 -4
- xoa_driver/internals/hli/ports/port_l23/bases/port_transceiver.py +247 -0
- xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_transmission_statistics.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_chimera.py +1 -1
- xoa_driver/internals/{hli_v2 → hli}/ports/port_l23/family_g.py +5 -0
- xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/port_l23ve.py +2 -2
- xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/main.py +2 -2
- xoa_driver/internals/{hli_v1 → hli}/testers/l23_tester.py +1 -1
- xoa_driver/internals/{hli_v1 → hli}/testers/l47_tester.py +2 -2
- xoa_driver/internals/state_storage/modules_state.py +1 -1
- xoa_driver/misc.py +12 -17
- xoa_driver/modules.py +18 -22
- xoa_driver/ports.py +20 -20
- xoa_driver/testers.py +4 -8
- tdl_xoa_driver-1.2.0.dist-info/RECORD +0 -325
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_transceiver.py +0 -117
- xoa_driver/internals/hli_v1/ports/port_l23/family_g.py +0 -77
- 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 +0 -39
- xoa_driver/internals/hli_v2/indices/connection_group/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/connection_group/cg.py +0 -115
- xoa_driver/internals/hli_v2/indices/connection_group/histogram.py +0 -59
- xoa_driver/internals/hli_v2/indices/connection_group/l2.py +0 -71
- xoa_driver/internals/hli_v2/indices/connection_group/l3.py +0 -96
- xoa_driver/internals/hli_v2/indices/connection_group/raw.py +0 -148
- xoa_driver/internals/hli_v2/indices/connection_group/replay.py +0 -89
- xoa_driver/internals/hli_v2/indices/connection_group/tcp.py +0 -261
- xoa_driver/internals/hli_v2/indices/connection_group/tls.py +0 -166
- xoa_driver/internals/hli_v2/indices/connection_group/udp.py +0 -112
- xoa_driver/internals/hli_v2/indices/connection_group/user_state.py +0 -25
- xoa_driver/internals/hli_v2/indices/filter/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/filter/base_filter.py +0 -50
- xoa_driver/internals/hli_v2/indices/filter/genuine_filter.py +0 -17
- xoa_driver/internals/hli_v2/indices/length_term.py +0 -44
- xoa_driver/internals/hli_v2/indices/match_term.py +0 -49
- xoa_driver/internals/hli_v2/indices/port_dataset.py +0 -53
- xoa_driver/internals/hli_v2/indices/streams/__init__.py +0 -0
- xoa_driver/internals/hli_v2/indices/streams/base_stream.py +0 -234
- xoa_driver/internals/hli_v2/indices/streams/genuine_stream.py +0 -32
- xoa_driver/internals/hli_v2/modules/__init__.py +0 -0
- xoa_driver/internals/hli_v2/modules/__interfaces.py +0 -21
- xoa_driver/internals/hli_v2/modules/base_module.py +0 -125
- xoa_driver/internals/hli_v2/modules/module_chimera.py +0 -358
- xoa_driver/internals/hli_v2/modules/module_l23ve.py +0 -58
- xoa_driver/internals/hli_v2/modules/module_l47.py +0 -230
- xoa_driver/internals/hli_v2/modules/module_l47ve.py +0 -8
- xoa_driver/internals/hli_v2/modules/modules_l23/__init__.py +0 -0
- xoa_driver/internals/hli_v2/modules/modules_l23/family_combi.py +0 -73
- xoa_driver/internals/hli_v2/modules/modules_l23/family_d.py +0 -75
- xoa_driver/internals/hli_v2/modules/modules_l23/family_e.py +0 -85
- xoa_driver/internals/hli_v2/modules/modules_l23/family_f.py +0 -144
- xoa_driver/internals/hli_v2/modules/modules_l23/family_g.py +0 -84
- xoa_driver/internals/hli_v2/modules/modules_l23/family_h.py +0 -40
- xoa_driver/internals/hli_v2/modules/modules_l23/family_i.py +0 -25
- xoa_driver/internals/hli_v2/modules/modules_l23/family_j.py +0 -25
- xoa_driver/internals/hli_v2/modules/modules_l23/family_k.py +0 -39
- xoa_driver/internals/hli_v2/modules/modules_l23/family_l.py +0 -55
- xoa_driver/internals/hli_v2/modules/modules_l23/family_l1.py +0 -797
- xoa_driver/internals/hli_v2/modules/modules_l23/family_m.py +0 -25
- xoa_driver/internals/hli_v2/modules/modules_l23/family_n.py +0 -40
- xoa_driver/internals/hli_v2/modules/modules_l23/module_l23_base.py +0 -339
- xoa_driver/internals/hli_v2/ports/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/base_port.py +0 -105
- 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 +0 -64
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23.py +0 -441
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_l23_genuine.py +0 -172
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_reception_statistics.py +0 -156
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transceiver.py +0 -117
- xoa_driver/internals/hli_v2/ports/port_l23/bases/port_transmission_statistics.py +0 -59
- 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 +0 -15
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/general.py +0 -340
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/shadow.py +0 -99
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/filter_definition/working.py +0 -36
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_custom_distribution.py +0 -116
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/pe_distribution.py +0 -102
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_chimera.py +0 -113
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/port_emulation.py +0 -420
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/reception_statistics.py +0 -22
- xoa_driver/internals/hli_v2/ports/port_l23/chimera/transmission_statistics.py +0 -22
- xoa_driver/internals/hli_v2/ports/port_l23/family_combi.py +0 -36
- xoa_driver/internals/hli_v2/ports/port_l23/family_d.py +0 -49
- xoa_driver/internals/hli_v2/ports/port_l23/family_e.py +0 -96
- xoa_driver/internals/hli_v2/ports/port_l23/family_f.py +0 -144
- xoa_driver/internals/hli_v2/ports/port_l23/family_h.py +0 -60
- xoa_driver/internals/hli_v2/ports/port_l23/family_i.py +0 -66
- xoa_driver/internals/hli_v2/ports/port_l23/family_j.py +0 -53
- xoa_driver/internals/hli_v2/ports/port_l23/family_k.py +0 -58
- xoa_driver/internals/hli_v2/ports/port_l23/family_l.py +0 -67
- xoa_driver/internals/hli_v2/ports/port_l23/family_l1.py +0 -149
- xoa_driver/internals/hli_v2/ports/port_l23/family_m.py +0 -28
- xoa_driver/internals/hli_v2/ports/port_l23/fault_jkl.py +0 -22
- xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ghijkl.py +0 -342
- xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -50
- xoa_driver/internals/hli_v2/ports/port_l23/pcs_pma_l.py +0 -65
- xoa_driver/internals/hli_v2/ports/port_l23/port_l23ve.py +0 -81
- xoa_driver/internals/hli_v2/ports/port_l47/__init__.py +0 -0
- xoa_driver/internals/hli_v2/ports/port_l47/counters.py +0 -146
- xoa_driver/internals/hli_v2/ports/port_l47/main.py +0 -137
- xoa_driver/internals/hli_v2/ports/port_l47/packet_engine.py +0 -20
- xoa_driver/internals/hli_v2/revisions.py +0 -11
- xoa_driver/internals/hli_v2/testers/__init__.py +0 -0
- xoa_driver/internals/hli_v2/testers/_base_tester.py +0 -207
- 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 +0 -16
- xoa_driver/internals/hli_v2/testers/genuine/l_23/rest_api.py +0 -34
- xoa_driver/internals/hli_v2/testers/genuine/l_23/time_keeper.py +0 -50
- xoa_driver/internals/hli_v2/testers/genuine/l_23/upload_file.py +0 -26
- xoa_driver/internals/hli_v2/testers/genuine/management_interface.py +0 -38
- xoa_driver/internals/hli_v2/testers/l23_tester.py +0 -159
- xoa_driver/internals/hli_v2/testers/l23ve_tester.py +0 -98
- xoa_driver/internals/hli_v2/testers/l47_tester.py +0 -95
- xoa_driver/internals/hli_v2/testers/l47ve_tester.py +0 -50
- xoa_driver/v2/__init__.py +0 -11
- xoa_driver/v2/misc.py +0 -77
- xoa_driver/v2/modules.py +0 -308
- xoa_driver/v2/ports.py +0 -232
- xoa_driver/v2/testers.py +0 -24
- {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/licenses/LICENSE +0 -0
- {tdl_xoa_driver-1.2.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/top_level.txt +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/base_index.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/cg.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/histogram.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l2.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/l3.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/raw.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/replay.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tcp.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/tls.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/udp.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/connection_group/user_state.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/filter/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/filter/genuine_filter.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/macsecscs/genuine_macsecsc.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/streams/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/indices/streams/genuine_stream.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/modules/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/modules/__interfaces.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/modules/base_module.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/modules/module_l23ve.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/modules/module_l47ve.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/modules/modules_l23/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/base_port.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_capture.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/bases/port_reception_statistics.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/_utils.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/general.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/shadow.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/filter_definition/working.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_custom_distribution.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/pe_distribution.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/port_emulation.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/reception_statistics.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/chimera/transmission_statistics.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_combi.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_d.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_e.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_f.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_h.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_i.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_j.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_k.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_l1.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/family_m.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/fault_jkl.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/freya_l1.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ghijkl.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_ijkl_chimera.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l23/pcs_pma_l.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/counters.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/ports/port_l47/packet_engine.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/revisions.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/_base_tester.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/__init__.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/health.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/rest_api.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/time_keeper.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/l_23/upload_file.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/genuine/management_interface.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/l23ve_tester.py +0 -0
- /xoa_driver/internals/{hli_v1 → hli}/testers/l47ve_tester.py +0 -0
|
@@ -38,6 +38,7 @@ from .types import (
|
|
|
38
38
|
# Preconverted Dynamic
|
|
39
39
|
XmpStr,
|
|
40
40
|
XmpSequence,
|
|
41
|
+
XmpJson,
|
|
41
42
|
)
|
|
42
43
|
|
|
43
44
|
|
|
@@ -53,6 +54,7 @@ TYPES_FIXED = (
|
|
|
53
54
|
TYPES_COMBI = (XmpHex,)
|
|
54
55
|
TYPES_DYNAMIC = (XmpStr,)
|
|
55
56
|
TYPES_COMPOSED = (XmpSequence,)
|
|
57
|
+
TYPES_JSON = (XmpJson,)
|
|
56
58
|
|
|
57
59
|
# Important: The instances of the FieldSpecs will live as a class variables
|
|
58
60
|
# which mean wea are not able to update its attributes during runtime.
|
|
@@ -194,6 +196,43 @@ class HexSpec(FieldSpecs):
|
|
|
194
196
|
return next(iter(struct.unpack_from(format, buffer, offset)), b"")
|
|
195
197
|
|
|
196
198
|
|
|
199
|
+
class JsonSpec(FieldSpecs):
|
|
200
|
+
xmp_type: XmpJson
|
|
201
|
+
|
|
202
|
+
def __init__(
|
|
203
|
+
self,
|
|
204
|
+
xmp_type: XmpJson,
|
|
205
|
+
min_version: int | None = None,
|
|
206
|
+
max_version: int | None = None,
|
|
207
|
+
deprecated: bool = False,
|
|
208
|
+
deprecation_reason: str | None = None,
|
|
209
|
+
) -> None:
|
|
210
|
+
super().__init__(xmp_type, min_version, max_version, deprecated, deprecation_reason)
|
|
211
|
+
|
|
212
|
+
@property
|
|
213
|
+
def is_dynamic(self) -> bool:
|
|
214
|
+
return True
|
|
215
|
+
|
|
216
|
+
def format(self, bsize: int | None = None) -> str:
|
|
217
|
+
return _build_format(self.xmp_type.data_format, bsize)
|
|
218
|
+
|
|
219
|
+
def calc_bsize(self, buff: memoryview | None = None, left_offset: int = 0) -> int | None:
|
|
220
|
+
if buff is None:
|
|
221
|
+
return None
|
|
222
|
+
return len(buff[left_offset:])
|
|
223
|
+
|
|
224
|
+
def get_context_formatter(self, client_type: Type[Any], is_response: bool) -> Callable[[Any], Any]:
|
|
225
|
+
if is_response:
|
|
226
|
+
return self.xmp_type.client_format
|
|
227
|
+
return self.xmp_type.server_format
|
|
228
|
+
|
|
229
|
+
def pack(self, format: str, val: bytes) -> bytes:
|
|
230
|
+
return val
|
|
231
|
+
|
|
232
|
+
def unpack(self, format: str, buffer: memoryview, offset: int) -> Any:
|
|
233
|
+
return next(iter(struct.unpack_from(format, buffer, offset)), b"")
|
|
234
|
+
|
|
235
|
+
|
|
197
236
|
def _prepare_client_chunks(client_type: Type[Any], xmp_types_chunks: tuple) -> Callable[[Any], List[Tuple[Any, ...]]]:
|
|
198
237
|
"""Selecting the function for parsing data chunks from XMP types to Python types"""
|
|
199
238
|
def converted_dcls(val_):
|
|
@@ -284,6 +323,8 @@ def field(
|
|
|
284
323
|
specs_type = FieldSpecs
|
|
285
324
|
elif isinstance(xmp_type, TYPES_COMBI):
|
|
286
325
|
specs_type = HexSpec
|
|
326
|
+
elif isinstance(xmp_type, TYPES_JSON):
|
|
327
|
+
specs_type = JsonSpec
|
|
287
328
|
else:
|
|
288
329
|
return None
|
|
289
330
|
|
|
@@ -10,6 +10,7 @@ from typing import (
|
|
|
10
10
|
TypeVar,
|
|
11
11
|
cast,
|
|
12
12
|
)
|
|
13
|
+
import json
|
|
13
14
|
|
|
14
15
|
FMT_ORDER_NETWORK = '!'
|
|
15
16
|
FMT_BYTES_STRING = 's'
|
|
@@ -21,6 +22,7 @@ FMT_INT = 'i'
|
|
|
21
22
|
FMT_U_INT = 'I'
|
|
22
23
|
FMT_SHORT = 'h'
|
|
23
24
|
FMT_U_SHORT = 'H'
|
|
25
|
+
FMT_BYTES_JSON = 's'
|
|
24
26
|
|
|
25
27
|
# region Base Type
|
|
26
28
|
|
|
@@ -170,4 +172,21 @@ class XmpSequence(XmpType[tuple]):
|
|
|
170
172
|
self.repetitions = None
|
|
171
173
|
self.data_format = "".join(f"{t.repetitions or ''}{t.data_format}" for t in self.types_chunk)
|
|
172
174
|
|
|
175
|
+
|
|
176
|
+
class XmpJson(XmpType[bytes]):
|
|
177
|
+
"""Description class of XMP JSON type representation"""
|
|
178
|
+
|
|
179
|
+
__slots__ = ("min_len",)
|
|
180
|
+
|
|
181
|
+
def __init__(self, min_len: int | None = None) -> None:
|
|
182
|
+
self.data_format = FMT_BYTES_JSON
|
|
183
|
+
self.repetitions = None
|
|
184
|
+
self.min_len = min_len
|
|
185
|
+
|
|
186
|
+
def client_format(self, val: bytes) -> dict[str, Any]:
|
|
187
|
+
return json.loads(val.decode())
|
|
188
|
+
|
|
189
|
+
def server_format(self, val: dict) -> bytes:
|
|
190
|
+
return json.dumps(val).encode()
|
|
191
|
+
|
|
173
192
|
# endregion
|
|
@@ -62,4 +62,4 @@ class BaseFilterIdx(BaseIndex):
|
|
|
62
62
|
@classmethod
|
|
63
63
|
async def _new(cls: Type[FT], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> FT:
|
|
64
64
|
await PF_CREATE(conn, *kind).set()
|
|
65
|
-
return cls(conn, kind, observer)
|
|
65
|
+
return cls(conn, kind, observer) # type: ignore
|
|
@@ -46,4 +46,4 @@ class LengthTermIdx(BaseIndex):
|
|
|
46
46
|
@classmethod
|
|
47
47
|
async def _new(cls: Type[LT], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> LT:
|
|
48
48
|
await PL_CREATE(conn, *kind).set()
|
|
49
|
-
return cls(conn, kind, observer)
|
|
49
|
+
return cls(conn, kind, observer) # type: ignore
|
|
@@ -190,7 +190,7 @@ class BaseMacSecTxScIdx(BaseIndex):
|
|
|
190
190
|
@classmethod
|
|
191
191
|
async def _new(cls: Type[BS], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> BS:
|
|
192
192
|
await P_MACSEC_TXSC_CREATE(conn, *kind).set()
|
|
193
|
-
return cls(conn, kind, observer)
|
|
193
|
+
return cls(conn, kind, observer) # type: ignore
|
|
194
194
|
|
|
195
195
|
|
|
196
196
|
class BaseMacSecRxScIdx(BaseIndex):
|
|
@@ -221,4 +221,4 @@ class BaseMacSecRxScIdx(BaseIndex):
|
|
|
221
221
|
@classmethod
|
|
222
222
|
async def _new(cls: Type[BS], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> BS:
|
|
223
223
|
await P_MACSEC_RXSC_CREATE(conn, *kind).set()
|
|
224
|
-
return cls(conn, kind, observer)
|
|
224
|
+
return cls(conn, kind, observer) # type: ignore
|
|
@@ -61,4 +61,4 @@ class MatchTermIdx(BaseIndex):
|
|
|
61
61
|
@classmethod
|
|
62
62
|
async def _new(cls: Type[MT], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> MT:
|
|
63
63
|
await PM_CREATE(conn, *kind).set()
|
|
64
|
-
return cls(conn, kind, observer)
|
|
64
|
+
return cls(conn, kind, observer) # type: ignore
|
|
@@ -69,4 +69,4 @@ class PortDatasetIdx(BaseIndex):
|
|
|
69
69
|
@classmethod
|
|
70
70
|
async def _new(cls: Type[PD], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> PD:
|
|
71
71
|
await PD_CREATE(conn, *kind).set()
|
|
72
|
-
return cls(conn, kind, observer)
|
|
72
|
+
return cls(conn, kind, observer) # type: ignore
|
|
@@ -401,5 +401,5 @@ class BaseStreamIdx(BaseIndex):
|
|
|
401
401
|
@classmethod
|
|
402
402
|
async def _new(cls: Type[BS], conn: "itf.IConnection", kind: "kind.IndicesKind", observer: "idx_obs.IndicesObserver") -> BS:
|
|
403
403
|
await PS_CREATE(conn, *kind).set()
|
|
404
|
-
return cls(conn, kind, observer)
|
|
404
|
+
return cls(conn, kind, observer) # type: ignore
|
|
405
405
|
|
|
@@ -23,19 +23,20 @@ from xoa_driver.internals.commands import (
|
|
|
23
23
|
M_CFPCONFIGEXT,
|
|
24
24
|
M_UPGRADEPAR,
|
|
25
25
|
M_VERSIONSTR,
|
|
26
|
+
M_RECONFIG_STATUS,
|
|
26
27
|
)
|
|
27
28
|
|
|
28
|
-
from xoa_driver.internals.
|
|
29
|
+
from xoa_driver.internals.hli import revisions
|
|
29
30
|
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
30
31
|
from xoa_driver.internals.utils import attributes as utils
|
|
31
32
|
from xoa_driver.internals.state_storage import modules_state
|
|
32
33
|
from xoa_driver import ports
|
|
33
|
-
from xoa_driver.internals.
|
|
34
|
+
from xoa_driver.internals.hli.modules.modules_l23.module_l23_base import MediaModule, CfpModule
|
|
34
35
|
from . import base_module as bm
|
|
35
36
|
|
|
36
37
|
if typing.TYPE_CHECKING:
|
|
37
38
|
from xoa_driver.internals.core import interfaces as itf
|
|
38
|
-
from xoa_driver.internals.
|
|
39
|
+
from xoa_driver.internals.hli.modules.modules_l23.module_l23_base import ModuleL23
|
|
39
40
|
from . import __interfaces as m_itf
|
|
40
41
|
|
|
41
42
|
|
|
@@ -71,13 +72,20 @@ class ChCFP:
|
|
|
71
72
|
|
|
72
73
|
:type: M_CFPTYPE
|
|
73
74
|
"""
|
|
74
|
-
self.config = CfpModule(conn, module)
|
|
75
|
-
"""
|
|
76
|
-
The CFP configuration of the test module.
|
|
77
75
|
|
|
78
|
-
:type: CfpModule
|
|
79
|
-
"""
|
|
80
76
|
|
|
77
|
+
class ChConfig:
|
|
78
|
+
"""Configuration test module (Chimera)."""
|
|
79
|
+
|
|
80
|
+
def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
|
|
81
|
+
self.media = MediaModule(conn, module)
|
|
82
|
+
"""Test module's media type configuration."""
|
|
83
|
+
|
|
84
|
+
self.port_speed = CfpModule(conn, module)
|
|
85
|
+
"""Test module's port speed configuration."""
|
|
86
|
+
|
|
87
|
+
self.status = M_RECONFIG_STATUS(conn, module.module_id)
|
|
88
|
+
"""Test module's configuration status."""
|
|
81
89
|
|
|
82
90
|
class ChUpgrade:
|
|
83
91
|
"""
|
|
@@ -220,13 +228,7 @@ class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
|
|
|
220
228
|
:type: M_VERSIONSTR
|
|
221
229
|
"""
|
|
222
230
|
|
|
223
|
-
self.
|
|
224
|
-
"""Test module's media type.
|
|
225
|
-
|
|
226
|
-
:type: MediaModule
|
|
227
|
-
"""
|
|
228
|
-
|
|
229
|
-
self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
|
|
231
|
+
self.supported_configs = M_MEDIASUPPORT(conn, self.module_id)
|
|
230
232
|
"""Test module's available speeds.
|
|
231
233
|
|
|
232
234
|
:type: M_MEDIASUPPORT
|
|
@@ -238,6 +240,9 @@ class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
|
|
|
238
240
|
:type: M_NAME
|
|
239
241
|
"""
|
|
240
242
|
|
|
243
|
+
self.config = ChConfig(conn, self)
|
|
244
|
+
"""Test module's configuration."""
|
|
245
|
+
|
|
241
246
|
self.ports: pm.PortsManager["ports.PortChimera"] = pm.PortsManager(
|
|
242
247
|
conn=conn,
|
|
243
248
|
ports_type=ports.PortChimera,
|
|
@@ -37,7 +37,7 @@ from xoa_driver.internals.commands import (
|
|
|
37
37
|
M4E_RESERVE,
|
|
38
38
|
M4_TLS_CIPHER_SUITES,
|
|
39
39
|
)
|
|
40
|
-
from xoa_driver.internals.
|
|
40
|
+
from xoa_driver.internals.hli import revisions
|
|
41
41
|
from xoa_driver.internals.utils import attributes as utils
|
|
42
42
|
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
43
43
|
from xoa_driver.internals.state_storage import modules_state
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import typing
|
|
2
2
|
import functools
|
|
3
3
|
from xoa_driver import ports
|
|
4
|
-
from xoa_driver.internals.
|
|
4
|
+
from xoa_driver.internals.hli import revisions
|
|
5
5
|
from xoa_driver.internals.commands import P_CAPABILITIES
|
|
6
6
|
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
7
7
|
from xoa_driver.internals.utils.cap_id import CapID
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import typing
|
|
2
2
|
from xoa_driver import ports
|
|
3
|
-
from xoa_driver.internals.
|
|
3
|
+
from xoa_driver.internals.hli import revisions
|
|
4
4
|
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
5
5
|
|
|
6
6
|
if typing.TYPE_CHECKING:
|
|
@@ -81,4 +81,19 @@ class MLoki100G3S1PB_b(ModuleL23):
|
|
|
81
81
|
module_id=self.module_id,
|
|
82
82
|
ports_count=self.ports_count
|
|
83
83
|
)
|
|
84
|
-
"""Port index manager of Loki-100G-3S-1P-B[b]"""
|
|
84
|
+
"""Port index manager of Loki-100G-3S-1P-B[b]"""
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@typing.final
|
|
88
|
+
@revisions.register_valkyrie_module(rev="Loki-100G-5S-4P[a]")
|
|
89
|
+
class MLoki100G35S4P_a(ModuleL23):
|
|
90
|
+
"""Test module Loki-100G-5S-4P[a]"""
|
|
91
|
+
def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
|
|
92
|
+
super().__init__(conn, init_data)
|
|
93
|
+
self.ports: pm.PortsManager[ports.PLoki100G5S4P_a] = pm.PortsManager(
|
|
94
|
+
conn=conn,
|
|
95
|
+
ports_type=ports.PLoki100G5S4P_a,
|
|
96
|
+
module_id=self.module_id,
|
|
97
|
+
ports_count=self.ports_count
|
|
98
|
+
)
|
|
99
|
+
"""Port index manager of Loki-100G-5S-4P[a]"""
|
|
@@ -29,6 +29,7 @@ from xoa_driver.internals.commands import (
|
|
|
29
29
|
M_TXCLOCKFILTER_NEW,
|
|
30
30
|
M_UPGRADEPAR,
|
|
31
31
|
M_VERSIONSTR,
|
|
32
|
+
M_RECONFIG_STATUS,
|
|
32
33
|
)
|
|
33
34
|
|
|
34
35
|
from xoa_driver.internals.utils import attributes as utils
|
|
@@ -41,7 +42,7 @@ from .. import __interfaces as m_itf
|
|
|
41
42
|
|
|
42
43
|
if typing.TYPE_CHECKING:
|
|
43
44
|
from xoa_driver.internals.core import interfaces as itf
|
|
44
|
-
from xoa_driver.internals.
|
|
45
|
+
from xoa_driver.internals.hli.modules.module_chimera import ModuleChimera
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
class TXClock:
|
|
@@ -161,12 +162,20 @@ class CFP:
|
|
|
161
162
|
:type: M_CFPTYPE
|
|
162
163
|
"""
|
|
163
164
|
|
|
164
|
-
self.config = CfpModule(conn, module)
|
|
165
|
-
"""The CFP configuration of the test module.
|
|
166
165
|
|
|
167
|
-
:type: CfpModule
|
|
168
|
-
"""
|
|
169
166
|
|
|
167
|
+
class ModuleConfig:
|
|
168
|
+
"""Test module CFP"""
|
|
169
|
+
|
|
170
|
+
def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
|
|
171
|
+
self.media = MediaModule(conn, module)
|
|
172
|
+
"""Test module's media type configuration."""
|
|
173
|
+
|
|
174
|
+
self.port_speed = CfpModule(conn, module)
|
|
175
|
+
"""Test module's port speed configuration."""
|
|
176
|
+
|
|
177
|
+
self.status = M_RECONFIG_STATUS(conn, module.module_id)
|
|
178
|
+
"""Test module's configuration status."""
|
|
170
179
|
|
|
171
180
|
class MTiming:
|
|
172
181
|
"""Test module timing and clock configuration"""
|
|
@@ -249,13 +258,7 @@ class ModuleL23(bm.BaseModule["modules_state.ModuleL23LocalState"]):
|
|
|
249
258
|
:type: M_STATUS
|
|
250
259
|
"""
|
|
251
260
|
|
|
252
|
-
self.
|
|
253
|
-
"""Test module's media type.
|
|
254
|
-
|
|
255
|
-
:type: ModuleMedia
|
|
256
|
-
"""
|
|
257
|
-
|
|
258
|
-
self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
|
|
261
|
+
self.supported_configs = M_MEDIASUPPORT(conn, self.module_id)
|
|
259
262
|
"""Test module's available speeds.
|
|
260
263
|
|
|
261
264
|
:type: M_MEDIASUPPORT
|
|
@@ -303,6 +306,9 @@ class ModuleL23(bm.BaseModule["modules_state.ModuleL23LocalState"]):
|
|
|
303
306
|
:type: CFP
|
|
304
307
|
"""
|
|
305
308
|
|
|
309
|
+
self.config = ModuleConfig(conn, self)
|
|
310
|
+
"""Test module's configuration."""
|
|
311
|
+
|
|
306
312
|
self.upgrade = MUpgrade(conn, self.module_id)
|
|
307
313
|
"""Test module's upgrade settings.
|
|
308
314
|
|
|
@@ -55,12 +55,12 @@ from xoa_driver.internals.commands import (
|
|
|
55
55
|
)
|
|
56
56
|
if typing.TYPE_CHECKING:
|
|
57
57
|
from xoa_driver.internals.core import interfaces as itf
|
|
58
|
-
from xoa_driver.internals.
|
|
58
|
+
from xoa_driver.internals.hli.ports import base_port
|
|
59
59
|
from xoa_driver.internals.utils import attributes as utils
|
|
60
60
|
from xoa_driver.internals.utils.indices import index_manager as idx_mgr
|
|
61
61
|
from xoa_driver.internals.state_storage import ports_state
|
|
62
|
-
from xoa_driver.internals.
|
|
63
|
-
from xoa_driver.internals.
|
|
62
|
+
from xoa_driver.internals.hli.indices.length_term import LengthTermIdx
|
|
63
|
+
from xoa_driver.internals.hli.indices.match_term import MatchTermIdx
|
|
64
64
|
|
|
65
65
|
from .port_capture import PortCapture
|
|
66
66
|
|
|
@@ -16,11 +16,11 @@ from xoa_driver.internals.commands import (
|
|
|
16
16
|
)
|
|
17
17
|
from xoa_driver.internals.utils import attributes as utils
|
|
18
18
|
from xoa_driver.internals.utils.indices import index_manager as idx_mgr
|
|
19
|
-
from xoa_driver.internals.
|
|
20
|
-
from xoa_driver.internals.
|
|
21
|
-
from xoa_driver.internals.
|
|
19
|
+
from xoa_driver.internals.hli.indices.streams.genuine_stream import GenuineStreamIdx
|
|
20
|
+
from xoa_driver.internals.hli.indices.filter.genuine_filter import GenuineFilterIdx
|
|
21
|
+
from xoa_driver.internals.hli.indices.port_dataset import PortDatasetIdx
|
|
22
22
|
from xoa_driver.internals.state_storage import ports_state
|
|
23
|
-
from xoa_driver.internals.
|
|
23
|
+
from xoa_driver.internals.hli.indices.macsecscs.genuine_macsecsc import GenuineMacSecTxScIdx, GenuineMacSecRxScIdx
|
|
24
24
|
|
|
25
25
|
from .port_l23 import (
|
|
26
26
|
BasePortL23,
|