tdl-xoa-driver 1.3.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.3.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
- xoa_driver/__init__.py +2 -2
- xoa_driver/functions/anlt.py +2 -2
- xoa_driver/functions/mgmt.py +11 -20
- xoa_driver/hlfuncs.py +1 -1
- 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 +3 -3
- 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 +1 -1
- 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/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.3.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.3.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/WHEEL +0 -0
- {tdl_xoa_driver-1.3.0.dist-info → tdl_xoa_driver-1.4.0.dist-info}/licenses/LICENSE +0 -0
- {tdl_xoa_driver-1.3.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
|
|
|
@@ -26,17 +26,17 @@ from xoa_driver.internals.commands import (
|
|
|
26
26
|
M_RECONFIG_STATUS,
|
|
27
27
|
)
|
|
28
28
|
|
|
29
|
-
from xoa_driver.internals.
|
|
29
|
+
from xoa_driver.internals.hli import revisions
|
|
30
30
|
from xoa_driver.internals.utils.managers import ports_manager as pm
|
|
31
31
|
from xoa_driver.internals.utils import attributes as utils
|
|
32
32
|
from xoa_driver.internals.state_storage import modules_state
|
|
33
33
|
from xoa_driver import ports
|
|
34
|
-
from xoa_driver.internals.
|
|
34
|
+
from xoa_driver.internals.hli.modules.modules_l23.module_l23_base import MediaModule, CfpModule
|
|
35
35
|
from . import base_module as bm
|
|
36
36
|
|
|
37
37
|
if typing.TYPE_CHECKING:
|
|
38
38
|
from xoa_driver.internals.core import interfaces as itf
|
|
39
|
-
from xoa_driver.internals.
|
|
39
|
+
from xoa_driver.internals.hli.modules.modules_l23.module_l23_base import ModuleL23
|
|
40
40
|
from . import __interfaces as m_itf
|
|
41
41
|
|
|
42
42
|
|
|
@@ -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]"""
|
|
@@ -42,7 +42,7 @@ from .. import __interfaces as m_itf
|
|
|
42
42
|
|
|
43
43
|
if typing.TYPE_CHECKING:
|
|
44
44
|
from xoa_driver.internals.core import interfaces as itf
|
|
45
|
-
from xoa_driver.internals.
|
|
45
|
+
from xoa_driver.internals.hli.modules.module_chimera import ModuleChimera
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
class TXClock:
|
|
@@ -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,
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
if TYPE_CHECKING:
|
|
3
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
4
|
+
from xoa_driver.internals.commands import (
|
|
5
|
+
PX_RW,
|
|
6
|
+
PX_MII,
|
|
7
|
+
PX_TEMPERATURE,
|
|
8
|
+
PX_RW_SEQ,
|
|
9
|
+
PX_I2C_CONFIG,
|
|
10
|
+
PX_RW_SEQ_BANK,
|
|
11
|
+
PX_CDB_SUPPORT,
|
|
12
|
+
PX_CDB_ABORT_PROCESSING,
|
|
13
|
+
PX_CDB_CHANGE_PASSWORD,
|
|
14
|
+
PX_CDB_ENTER_PASSWORD,
|
|
15
|
+
PX_CDB_QUERY_STATUS,
|
|
16
|
+
PX_CDB_EXTERNAL_FEATURES,
|
|
17
|
+
PX_CDB_FW_MGMT_FEATURES,
|
|
18
|
+
PX_CDB_GET_APP_ATTRIBUTES,
|
|
19
|
+
PX_CDB_GET_IF_CODE_DESCR,
|
|
20
|
+
PX_CDB_MODULE_FEATURES,
|
|
21
|
+
PX_CDB_SEC_FEAT_CAPABILITIES,
|
|
22
|
+
PX_CDB_ABORT_FW_DOWNLOAD,
|
|
23
|
+
PX_CDB_COMMIT_FW_IMAGE,
|
|
24
|
+
PX_CDB_COMPLETE_FW_DOWNLOAD,
|
|
25
|
+
PX_CDB_COPY_FW_IMAGE,
|
|
26
|
+
PX_CDB_GET_FW_INFO,
|
|
27
|
+
PX_CDB_READ_FW_BLOCK_EPL,
|
|
28
|
+
PX_CDB_READ_FW_BLOCK_LPL,
|
|
29
|
+
PX_CDB_RUN_FW_IMAGE,
|
|
30
|
+
PX_CDB_START_FW_DOWNLOAD,
|
|
31
|
+
PX_CDB_WRITE_FW_BLOCK_EPL,
|
|
32
|
+
PX_CDB_WRITE_FW_BLOCK_LPL,
|
|
33
|
+
PX_CUST_CMD,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class PortTransceiver:
|
|
38
|
+
"""Transceiver access class."""
|
|
39
|
+
|
|
40
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
41
|
+
self.__conn = conn
|
|
42
|
+
self.__module_id = module_id
|
|
43
|
+
self.__port_id = port_id
|
|
44
|
+
|
|
45
|
+
self.i2c_config = PX_I2C_CONFIG(conn, module_id, port_id)
|
|
46
|
+
"""
|
|
47
|
+
Access speed on a transceiver I2C access in the unit of KHz. Default to 100.
|
|
48
|
+
|
|
49
|
+
When the transceiver is plugged out and in again, the speed will be reset to the default value 100. The speed has a minimum and a maximum, which can be obtained from port.capabilities().
|
|
50
|
+
|
|
51
|
+
The I2C speed configuration will not be included in the port configuration file (.xpc). When you load a port configuration to a port, the transceiver I2C access speed will be reset to default.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
self.temperature = PX_TEMPERATURE(conn, module_id, port_id)
|
|
55
|
+
"""Transceiver temperature in Celsius.
|
|
56
|
+
|
|
57
|
+
Temperature value before the decimal digit, and 1/256th of a degree Celsius after the decimal digit.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
self.cmis = CMIS(conn, module_id, port_id)
|
|
61
|
+
"""
|
|
62
|
+
Access CMIS interface.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
def access_rw(self, page_address: int, register_address: int) -> "PX_RW":
|
|
66
|
+
"""Access to register interface by the transceiver.
|
|
67
|
+
|
|
68
|
+
:param page_address: page address
|
|
69
|
+
:type page_address: int
|
|
70
|
+
:param register_address: register address
|
|
71
|
+
:type register_address: int
|
|
72
|
+
:return: transceiver register values
|
|
73
|
+
:rtype: PX_RW
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
return PX_RW(
|
|
77
|
+
self.__conn,
|
|
78
|
+
self.__module_id,
|
|
79
|
+
self.__port_id,
|
|
80
|
+
page_address,
|
|
81
|
+
register_address
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
def access_mii(self, register_address: int) -> "PX_MII":
|
|
85
|
+
"""Access to the register interface supported by the media-independent interface (MII) transceiver.
|
|
86
|
+
|
|
87
|
+
:param register_address: register address
|
|
88
|
+
:type register_address: int
|
|
89
|
+
:return: register values
|
|
90
|
+
:rtype: PX_MII
|
|
91
|
+
"""
|
|
92
|
+
return PX_MII(
|
|
93
|
+
self.__conn,
|
|
94
|
+
self.__module_id,
|
|
95
|
+
self.__port_id,
|
|
96
|
+
register_address
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
def access_rw_seq(self, page_address: int, register_address: int, byte_count: int) -> "PX_RW_SEQ":
|
|
100
|
+
"""Sequential read/write a number of bytes to the register interface supported by the media-independent interface (MII) transceiver.
|
|
101
|
+
|
|
102
|
+
:param page_address: page address (0-255)
|
|
103
|
+
:type page_address: int
|
|
104
|
+
:param register_address: register address (0-255)
|
|
105
|
+
:type register_address: int
|
|
106
|
+
:param byte_count: the number of bytes to read/write
|
|
107
|
+
:type byte_count: int
|
|
108
|
+
:return: transceiver register values
|
|
109
|
+
:rtype: PX_RW_SEQ
|
|
110
|
+
"""
|
|
111
|
+
return PX_RW_SEQ(
|
|
112
|
+
self.__conn,
|
|
113
|
+
self.__module_id,
|
|
114
|
+
self.__port_id,
|
|
115
|
+
page_address,
|
|
116
|
+
register_address,
|
|
117
|
+
byte_count
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
def access_rw_seq_bank(self, bank_address: int, page_address: int, register_address: int, byte_count: int) -> "PX_RW_SEQ_BANK":
|
|
121
|
+
"""Sequential read/write a number of bytes to the register interface supported by the media-independent interface (MII) transceiver.
|
|
122
|
+
|
|
123
|
+
:param bank_address: bank address (0-255)
|
|
124
|
+
:type bank_address: int
|
|
125
|
+
:param page_address: page address (0-255)
|
|
126
|
+
:type page_address: int
|
|
127
|
+
:param register_address: register address (0-255)
|
|
128
|
+
:type register_address: int
|
|
129
|
+
:param byte_count: the number of bytes to read/write
|
|
130
|
+
:type byte_count: int
|
|
131
|
+
:return: transceiver register values
|
|
132
|
+
:rtype: PX_RW_SEQ_BANK
|
|
133
|
+
"""
|
|
134
|
+
return PX_RW_SEQ_BANK(
|
|
135
|
+
self.__conn,
|
|
136
|
+
self.__module_id,
|
|
137
|
+
self.__port_id,
|
|
138
|
+
bank_address,
|
|
139
|
+
page_address,
|
|
140
|
+
register_address,
|
|
141
|
+
byte_count
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
class CMIS():
|
|
145
|
+
"""CMIS access class.
|
|
146
|
+
"""
|
|
147
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
148
|
+
self.__conn = conn
|
|
149
|
+
self.__module_id = module_id
|
|
150
|
+
self.__port_id = port_id
|
|
151
|
+
|
|
152
|
+
self.cdb_instances_supported = PX_CDB_SUPPORT(conn, module_id, port_id)
|
|
153
|
+
"""Return the number of supported CDB instances.
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
def cdb(self, cdb_instance_id: int) -> "CDB":
|
|
157
|
+
"""Access CMIS CDB command interface.
|
|
158
|
+
|
|
159
|
+
:param cdb_instance_id: 0 for CDB Instance 1, 1 for CDB Instance 2
|
|
160
|
+
:type cdb_instance_id: int
|
|
161
|
+
"""
|
|
162
|
+
return CDB(self.__conn, self.__module_id, self.__port_id, cdb_instance_id)
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class CDB():
|
|
166
|
+
"""CMIS CDB command access class.
|
|
167
|
+
"""
|
|
168
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, cdb_instance_id: int) -> None:
|
|
169
|
+
|
|
170
|
+
self.__conn = conn
|
|
171
|
+
self.__module_id = module_id
|
|
172
|
+
self.__port_id = port_id
|
|
173
|
+
self.__cdb_instance_id = cdb_instance_id
|
|
174
|
+
|
|
175
|
+
# CDB Module Commands
|
|
176
|
+
self.cmd_0000h_query_status = PX_CDB_QUERY_STATUS(conn, module_id, port_id, cdb_instance_id)
|
|
177
|
+
"""CMD 0000h: Query Status
|
|
178
|
+
"""
|
|
179
|
+
self.cmd_0001h_enter_password = PX_CDB_ENTER_PASSWORD(conn, module_id, port_id, cdb_instance_id)
|
|
180
|
+
"""CMD 0001h: Enter Password
|
|
181
|
+
"""
|
|
182
|
+
self.cmd_0002h_change_password = PX_CDB_CHANGE_PASSWORD(conn, module_id, port_id, cdb_instance_id)
|
|
183
|
+
"""CMD 0002h: Change Password
|
|
184
|
+
"""
|
|
185
|
+
self.cmd_0004h_abort_processing = PX_CDB_ABORT_PROCESSING(conn, module_id, port_id, cdb_instance_id)
|
|
186
|
+
"""CMD 0004h: Abort Processing
|
|
187
|
+
"""
|
|
188
|
+
|
|
189
|
+
# CDB Features and Capabilities Inquiry Commands
|
|
190
|
+
self.cmd_0040h_module_features = PX_CDB_MODULE_FEATURES(conn, module_id, port_id, cdb_instance_id)
|
|
191
|
+
"""CMD 0040h: Module Features
|
|
192
|
+
"""
|
|
193
|
+
self.cmd_0041h_fw_mgmt_features = PX_CDB_FW_MGMT_FEATURES(conn, module_id, port_id, cdb_instance_id)
|
|
194
|
+
"""CMD 0041h: Firmware Management Features
|
|
195
|
+
"""
|
|
196
|
+
self.cmd_0044h_sec_feat_capabilities = PX_CDB_SEC_FEAT_CAPABILITIES(conn, module_id, port_id, cdb_instance_id)
|
|
197
|
+
"""CMD 0044h: Security Features and Capabilities
|
|
198
|
+
"""
|
|
199
|
+
self.cmd_0045h_external_features = PX_CDB_EXTERNAL_FEATURES(conn, module_id, port_id, cdb_instance_id)
|
|
200
|
+
"""CMD 0045h: Externally Defined Features
|
|
201
|
+
"""
|
|
202
|
+
self.cmd_0050h_get_app_attributes = PX_CDB_GET_APP_ATTRIBUTES(conn, module_id, port_id, cdb_instance_id)
|
|
203
|
+
"""CMD 0050h: Get Application Attributes
|
|
204
|
+
"""
|
|
205
|
+
self.cmd_0051h_get_if_code_descr = PX_CDB_GET_IF_CODE_DESCR(conn, module_id, port_id, cdb_instance_id)
|
|
206
|
+
"""CMD 0051h: Get Interface Code Description
|
|
207
|
+
"""
|
|
208
|
+
|
|
209
|
+
# CDB Firmware Management Commands
|
|
210
|
+
self.cmd_0100h_get_firmware_info = PX_CDB_GET_FW_INFO(conn, module_id, port_id, cdb_instance_id)
|
|
211
|
+
"""CMD 0100h: Get Firmware Info
|
|
212
|
+
"""
|
|
213
|
+
self.cmd_0101h_start_firmware_download = PX_CDB_START_FW_DOWNLOAD(conn, module_id, port_id, cdb_instance_id)
|
|
214
|
+
"""CMD 0101h: Start Firmware Download
|
|
215
|
+
"""
|
|
216
|
+
self.cmd_0102h_abort_firmware_download = PX_CDB_ABORT_FW_DOWNLOAD(conn, module_id, port_id, cdb_instance_id)
|
|
217
|
+
"""CMD 0102h: Abort Firmware Download
|
|
218
|
+
"""
|
|
219
|
+
self.cmd_0103h_write_firmware_block_lpl = PX_CDB_WRITE_FW_BLOCK_LPL(conn, module_id, port_id, cdb_instance_id)
|
|
220
|
+
"""CMD 0103h: Write Firmware Block LPL
|
|
221
|
+
"""
|
|
222
|
+
self.cmd_0104h_write_firmware_block_epl = PX_CDB_WRITE_FW_BLOCK_EPL(conn, module_id, port_id, cdb_instance_id)
|
|
223
|
+
"""CMD 0104h: Write Firmware Block EPL
|
|
224
|
+
"""
|
|
225
|
+
self.cmd_0105h_read_firmware_block_lpl = PX_CDB_READ_FW_BLOCK_LPL(conn, module_id, port_id, cdb_instance_id)
|
|
226
|
+
"""CMD 0105h: Read Firmware Block LPL
|
|
227
|
+
"""
|
|
228
|
+
self.cmd_0106h_read_firmware_block_epl = PX_CDB_READ_FW_BLOCK_EPL(conn, module_id, port_id, cdb_instance_id)
|
|
229
|
+
"""CMD 0106h: Read Firmware Block EPL
|
|
230
|
+
"""
|
|
231
|
+
self.cmd_0107h_complete_firmware_download = PX_CDB_COMPLETE_FW_DOWNLOAD(conn, module_id, port_id, cdb_instance_id)
|
|
232
|
+
"""CMD 0107h: Complete Firmware Download
|
|
233
|
+
"""
|
|
234
|
+
self.cmd_0108h_copy_firmware_image = PX_CDB_COPY_FW_IMAGE(conn, module_id, port_id, cdb_instance_id)
|
|
235
|
+
"""CMD 0108h: Copy Firmware Image
|
|
236
|
+
"""
|
|
237
|
+
self.cmd_0109h_run_firmware_image = PX_CDB_RUN_FW_IMAGE(conn, module_id, port_id, cdb_instance_id)
|
|
238
|
+
"""CMD 0109h: Run Firmware Image
|
|
239
|
+
"""
|
|
240
|
+
self.cmd_010ah_commit_firmware_image = PX_CDB_COMMIT_FW_IMAGE(conn, module_id, port_id, cdb_instance_id)
|
|
241
|
+
"""CMD 010Ah: Commit Firmware Image
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
# Custom Commands
|
|
245
|
+
self.custom_cmd = PX_CUST_CMD(conn, module_id, port_id, cdb_instance_id)
|
|
246
|
+
"""Defnes the custom CDB commdand (CMD and Reply) to be sent to the CDB instance.
|
|
247
|
+
"""
|
|
@@ -4,7 +4,7 @@ from typing import (
|
|
|
4
4
|
)
|
|
5
5
|
if TYPE_CHECKING:
|
|
6
6
|
from xoa_driver.internals.core import interfaces as itf
|
|
7
|
-
from xoa_driver.internals.
|
|
7
|
+
from xoa_driver.internals.hli.indices.streams.genuine_stream import GenuineStreamIdx
|
|
8
8
|
from xoa_driver.internals.commands import (
|
|
9
9
|
PT_TOTAL,
|
|
10
10
|
PT_NOTPLD,
|