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
|
@@ -1,420 +0,0 @@
|
|
|
1
|
-
from typing import (
|
|
2
|
-
TYPE_CHECKING,
|
|
3
|
-
Tuple,
|
|
4
|
-
)
|
|
5
|
-
from xoa_driver.internals.commands.enums import ImpairmentTypeIndex
|
|
6
|
-
from xoa_driver.internals.commands.ped_commands import PED_ENABLE, PED_ONESHOTSTATUS, PED_SCHEDULE
|
|
7
|
-
|
|
8
|
-
if TYPE_CHECKING:
|
|
9
|
-
from xoa_driver.internals.core import interfaces as itf
|
|
10
|
-
|
|
11
|
-
from xoa_driver.internals.commands import (
|
|
12
|
-
PE_FCSDROP,
|
|
13
|
-
PE_TPLDMODE,
|
|
14
|
-
PE_COMMENT,
|
|
15
|
-
PE_INDICES,
|
|
16
|
-
PE_LATENCYRANGE,
|
|
17
|
-
PE_CORRUPT,
|
|
18
|
-
PE_MISORDER,
|
|
19
|
-
PE_BANDPOLICER,
|
|
20
|
-
PE_BANDSHAPER,
|
|
21
|
-
PE_DROPTOTAL,
|
|
22
|
-
PE_LATENCYTOTAL,
|
|
23
|
-
PE_DUPTOTAL,
|
|
24
|
-
PE_MISTOTAL,
|
|
25
|
-
PE_CORTOTAL,
|
|
26
|
-
PE_JITTERTOTAL,
|
|
27
|
-
PE_CLEAR,
|
|
28
|
-
PE_FLOWDROPTOTAL,
|
|
29
|
-
PE_FLOWLATENCYTOTAL,
|
|
30
|
-
PE_FLOWDUPTOTAL,
|
|
31
|
-
PE_FLOWMISTOTAL,
|
|
32
|
-
PE_FLOWCORTOTAL,
|
|
33
|
-
PE_FLOWJITTERTOTAL,
|
|
34
|
-
PE_FLOWCLEAR,
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
from .reception_statistics import ReceptionStatistics
|
|
38
|
-
from .transmission_statistics import TransmissionStatistics
|
|
39
|
-
from .pe_distribution import ImpairmentDistribution
|
|
40
|
-
from .filter_definition import (
|
|
41
|
-
shadow,
|
|
42
|
-
working,
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
class CTotalFlow:
|
|
47
|
-
"""Total flow statistics."""
|
|
48
|
-
|
|
49
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
50
|
-
self.dropped = PE_FLOWDROPTOTAL(conn, module_id, port_id, flow_index)
|
|
51
|
-
"""Statistics of all packets dropped in a flow.
|
|
52
|
-
Representation of PE_FLOWDROPTOTAL
|
|
53
|
-
"""
|
|
54
|
-
|
|
55
|
-
self.delayed = PE_FLOWLATENCYTOTAL(conn, module_id, port_id, flow_index)
|
|
56
|
-
"""Statistics of all packets delayed in a flow.
|
|
57
|
-
Representation of PE_FLOWLATENCYTOTAL
|
|
58
|
-
"""
|
|
59
|
-
|
|
60
|
-
self.duplicated = PE_FLOWDUPTOTAL(conn, module_id, port_id, flow_index)
|
|
61
|
-
"""Statistics of all packets duplicate in a flow.
|
|
62
|
-
Representation of PE_FLOWDUPTOTAL
|
|
63
|
-
"""
|
|
64
|
-
|
|
65
|
-
self.misordered = PE_FLOWMISTOTAL(conn, module_id, port_id, flow_index)
|
|
66
|
-
"""Statistics of all packets misordered in a flow.
|
|
67
|
-
Representation of PE_FLOWMISTOTAL
|
|
68
|
-
"""
|
|
69
|
-
|
|
70
|
-
self.corrupted = PE_FLOWCORTOTAL(conn, module_id, port_id, flow_index)
|
|
71
|
-
"""Statistics of all packets corrupted in a flow.
|
|
72
|
-
Representation of PE_FLOWCORTOTAL
|
|
73
|
-
"""
|
|
74
|
-
|
|
75
|
-
self.jittered = PE_FLOWJITTERTOTAL(conn, module_id, port_id, flow_index)
|
|
76
|
-
"""Statistics of all packets jittered in a flow.
|
|
77
|
-
Representation of PE_FLOWJITTERTOTAL
|
|
78
|
-
"""
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
class StatisticsTotals:
|
|
82
|
-
"""Total port statistics."""
|
|
83
|
-
|
|
84
|
-
def __init__(self, conn, module_id, port_id) -> None:
|
|
85
|
-
self.dropped = PE_DROPTOTAL(conn, module_id, port_id)
|
|
86
|
-
"""Statistics of all packets dropped on the port.
|
|
87
|
-
Representation of PE_DROPTOTAL
|
|
88
|
-
"""
|
|
89
|
-
|
|
90
|
-
self.delayed = PE_LATENCYTOTAL(conn, module_id, port_id)
|
|
91
|
-
"""Statistics of all packets delayed on the port.
|
|
92
|
-
Representation of PE_LATENCYTOTAL
|
|
93
|
-
"""
|
|
94
|
-
|
|
95
|
-
self.duplicated = PE_DUPTOTAL(conn, module_id, port_id)
|
|
96
|
-
"""Statistics of all packets duplicated on the port.
|
|
97
|
-
Representation of PE_DUPTOTAL
|
|
98
|
-
"""
|
|
99
|
-
|
|
100
|
-
self.misordered = PE_MISTOTAL(conn, module_id, port_id)
|
|
101
|
-
"""Statistics of all packets mirordered on the port.
|
|
102
|
-
Representation of PE_MISTOTAL
|
|
103
|
-
"""
|
|
104
|
-
|
|
105
|
-
self.corrupted = PE_CORTOTAL(conn, module_id, port_id)
|
|
106
|
-
"""Statistics of all packets corrupted on the port.
|
|
107
|
-
Representation of PE_CORTOTAL
|
|
108
|
-
"""
|
|
109
|
-
|
|
110
|
-
self.jittered = PE_JITTERTOTAL(conn, module_id, port_id)
|
|
111
|
-
"""Statistics of all packets jittered on the port.
|
|
112
|
-
Representation of PE_JITTERTOTAL
|
|
113
|
-
"""
|
|
114
|
-
|
|
115
|
-
self.fcs_errors = PE_FCSDROP(conn, module_id, port_id)
|
|
116
|
-
"""Action on FCS errors.
|
|
117
|
-
Representation of PE_FCSDROP
|
|
118
|
-
"""
|
|
119
|
-
|
|
120
|
-
self.clear = PE_CLEAR(conn, module_id, port_id)
|
|
121
|
-
"""Clear impairment statistics.
|
|
122
|
-
Representation of PE_CLEAR
|
|
123
|
-
"""
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
class CFlowStatistics:
|
|
127
|
-
"""Per flow statistics."""
|
|
128
|
-
|
|
129
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
130
|
-
self.rx = ReceptionStatistics(conn, module_id, port_id, flow_index)
|
|
131
|
-
"""RX statistics."""
|
|
132
|
-
|
|
133
|
-
self.tx = TransmissionStatistics(conn, module_id, port_id, flow_index)
|
|
134
|
-
"""TX statistics."""
|
|
135
|
-
|
|
136
|
-
self.total = CTotalFlow(conn, module_id, port_id, flow_index)
|
|
137
|
-
"""Total flow statistics."""
|
|
138
|
-
|
|
139
|
-
self.clear = PE_FLOWCLEAR(conn, module_id, port_id, flow_index)
|
|
140
|
-
"""Clear the impairment statistics on a flow.
|
|
141
|
-
Representation of PE_FLOWCLEAR
|
|
142
|
-
"""
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
class CBandwidth:
|
|
146
|
-
"""Bandwidth configuration."""
|
|
147
|
-
|
|
148
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
149
|
-
self.policer = PE_BANDPOLICER(conn, module_id, port_id, flow_index)
|
|
150
|
-
"""Bandwidth policer configuration.
|
|
151
|
-
Representation of PE_BANDPOLICER
|
|
152
|
-
"""
|
|
153
|
-
|
|
154
|
-
self.shaper = PE_BANDSHAPER(conn, module_id, port_id, flow_index)
|
|
155
|
-
"""Bandwidth shaper configuration.
|
|
156
|
-
Representation of PE_BANDSHAPER
|
|
157
|
-
"""
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
class ChimeraPE:
|
|
161
|
-
"""Port Emulation"""
|
|
162
|
-
|
|
163
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
164
|
-
self._conn = conn
|
|
165
|
-
self.module_id = module_id
|
|
166
|
-
self.port_id = port_id
|
|
167
|
-
self.drop_fcs_errors = PE_FCSDROP(conn, module_id, port_id)
|
|
168
|
-
"""Action on FCS errors.
|
|
169
|
-
Representation of PE_FCSDROP
|
|
170
|
-
"""
|
|
171
|
-
|
|
172
|
-
self.clear = PE_CLEAR(conn, module_id, port_id)
|
|
173
|
-
"""Clear impairment statistics.
|
|
174
|
-
Representation of PE_CLEAR
|
|
175
|
-
"""
|
|
176
|
-
|
|
177
|
-
self.statistics = StatisticsTotals(conn, module_id, port_id)
|
|
178
|
-
"""Total port statistics."""
|
|
179
|
-
|
|
180
|
-
self.tpld_mode = PE_TPLDMODE(conn, module_id, port_id)
|
|
181
|
-
"""TPLD mode.
|
|
182
|
-
Representation of PE_TPLDMODE
|
|
183
|
-
"""
|
|
184
|
-
|
|
185
|
-
self.flow: Tuple["CFlow", ...] = tuple()
|
|
186
|
-
|
|
187
|
-
def __await__(self):
|
|
188
|
-
return self._setup().__await__()
|
|
189
|
-
|
|
190
|
-
async def _setup(self) -> None:
|
|
191
|
-
indices = await PE_INDICES(self._conn, self.module_id, self.port_id).get()
|
|
192
|
-
self.flow = tuple(
|
|
193
|
-
CFlow(self._conn, self.module_id, self.port_id, idx)
|
|
194
|
-
for idx in indices.to_tuple()
|
|
195
|
-
)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
class CTotalFlowStats:
|
|
199
|
-
"""Total flow statistics."""
|
|
200
|
-
|
|
201
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
202
|
-
self.dropped = PE_FLOWDROPTOTAL(conn, module_id, port_id, flow_index)
|
|
203
|
-
"""Statistics of all packets dropped in a flow.
|
|
204
|
-
Representation of PE_FLOWDROPTOTAL
|
|
205
|
-
"""
|
|
206
|
-
|
|
207
|
-
self.delayed = PE_FLOWLATENCYTOTAL(conn, module_id, port_id, flow_index)
|
|
208
|
-
"""Statistics of all packets delayed in a flow.
|
|
209
|
-
Representation of PE_FLOWLATENCYTOTAL
|
|
210
|
-
"""
|
|
211
|
-
|
|
212
|
-
self.duplicated = PE_FLOWDUPTOTAL(conn, module_id, port_id, flow_index)
|
|
213
|
-
"""Statistics of all packets duplicate in a flow.
|
|
214
|
-
Representation of PE_FLOWDUPTOTAL
|
|
215
|
-
"""
|
|
216
|
-
|
|
217
|
-
self.misordered = PE_FLOWMISTOTAL(conn, module_id, port_id, flow_index)
|
|
218
|
-
"""Statistics of all packets misordered in a flow.
|
|
219
|
-
Representation of PE_FLOWMISTOTAL
|
|
220
|
-
"""
|
|
221
|
-
|
|
222
|
-
self.corrupted = PE_FLOWCORTOTAL(conn, module_id, port_id, flow_index)
|
|
223
|
-
"""Statistics of all packets corrupted in a flow.
|
|
224
|
-
Representation of PE_FLOWCORTOTAL
|
|
225
|
-
"""
|
|
226
|
-
|
|
227
|
-
self.jittered = PE_FLOWJITTERTOTAL(conn, module_id, port_id, flow_index)
|
|
228
|
-
"""Statistics of all packets jittered in a flow.
|
|
229
|
-
Representation of PE_FLOWJITTERTOTAL
|
|
230
|
-
"""
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
class CPerFlowStats:
|
|
234
|
-
"""Per flow statistics."""
|
|
235
|
-
|
|
236
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
237
|
-
self.rx = ReceptionStatistics(conn, module_id, port_id, flow_index)
|
|
238
|
-
"""RX statistics."""
|
|
239
|
-
|
|
240
|
-
self.tx = TransmissionStatistics(conn, module_id, port_id, flow_index)
|
|
241
|
-
"""TX statistics."""
|
|
242
|
-
|
|
243
|
-
self.total = CTotalFlowStats(conn, module_id, port_id, flow_index)
|
|
244
|
-
"""Total flow statistics."""
|
|
245
|
-
|
|
246
|
-
self.clear = PE_FLOWCLEAR(conn, module_id, port_id, flow_index)
|
|
247
|
-
"""Clear the impairment statistics on a flow.
|
|
248
|
-
Representation of PE_FLOWCLEAR
|
|
249
|
-
"""
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
class CDropImpairment:
|
|
253
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
254
|
-
self.distribution = ImpairmentDistribution(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DROP)
|
|
255
|
-
|
|
256
|
-
self.schedule = PED_SCHEDULE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DROP)
|
|
257
|
-
"""Impairment scheduling configuration.
|
|
258
|
-
Representation of PED_SCHEDULE
|
|
259
|
-
"""
|
|
260
|
-
|
|
261
|
-
self.one_shot_status = PED_ONESHOTSTATUS(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DROP)
|
|
262
|
-
"""One-shot status.
|
|
263
|
-
Representation of PED_ONESHOTSTATUS
|
|
264
|
-
"""
|
|
265
|
-
|
|
266
|
-
self.enable = PED_ENABLE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DROP)
|
|
267
|
-
"""Impairment distribution control.
|
|
268
|
-
Representation of PED_ENABLE
|
|
269
|
-
"""
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
class CCorruptionImpairment:
|
|
273
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
274
|
-
|
|
275
|
-
self.type = PE_CORRUPT(conn, module_id, port_id, flow_index)
|
|
276
|
-
"""Bandwidth policer configuration.
|
|
277
|
-
Representation of PE_BANDPOLICER
|
|
278
|
-
"""
|
|
279
|
-
|
|
280
|
-
self.distribution = ImpairmentDistribution(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.CORRUPTION)
|
|
281
|
-
|
|
282
|
-
self.schedule = PED_SCHEDULE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.CORRUPTION)
|
|
283
|
-
"""Impairment scheduling configuration.
|
|
284
|
-
Representation of PED_SCHEDULE
|
|
285
|
-
"""
|
|
286
|
-
|
|
287
|
-
self.one_shot_status = PED_ONESHOTSTATUS(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.CORRUPTION)
|
|
288
|
-
"""One-shot status.
|
|
289
|
-
Representation of PED_ONESHOTSTATUS
|
|
290
|
-
"""
|
|
291
|
-
|
|
292
|
-
self.enable = PED_ENABLE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.CORRUPTION)
|
|
293
|
-
"""Impairment distribution control.
|
|
294
|
-
Representation of PED_ENABLE
|
|
295
|
-
"""
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
class CMisorderingImpairment:
|
|
299
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
300
|
-
self.depth = PE_MISORDER(conn, module_id, port_id, flow_index)
|
|
301
|
-
"""Misordering depth
|
|
302
|
-
Representation of PE_MISORDER
|
|
303
|
-
"""
|
|
304
|
-
|
|
305
|
-
self.distribution = ImpairmentDistribution(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.MISORDER)
|
|
306
|
-
|
|
307
|
-
self.schedule = PED_SCHEDULE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.MISORDER)
|
|
308
|
-
"""Impairment scheduling configuration.
|
|
309
|
-
Representation of PED_SCHEDULE
|
|
310
|
-
"""
|
|
311
|
-
|
|
312
|
-
self.one_shot_status = PED_ONESHOTSTATUS(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.MISORDER)
|
|
313
|
-
"""One-shot status.
|
|
314
|
-
Representation of PED_ONESHOTSTATUS
|
|
315
|
-
"""
|
|
316
|
-
|
|
317
|
-
self.enable = PED_ENABLE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.MISORDER)
|
|
318
|
-
"""Impairment distribution control.
|
|
319
|
-
Representation of PED_ENABLE
|
|
320
|
-
"""
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
class CLatencyJitterImpairment:
|
|
324
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
325
|
-
|
|
326
|
-
self.range = PE_LATENCYRANGE(conn, module_id, port_id, flow_index)
|
|
327
|
-
"""Flow latency range.
|
|
328
|
-
Representation of PE_LATENCYRANGE
|
|
329
|
-
"""
|
|
330
|
-
|
|
331
|
-
self.distribution = ImpairmentDistribution(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.LATENCYJITTER)
|
|
332
|
-
|
|
333
|
-
self.schedule = PED_SCHEDULE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.LATENCYJITTER)
|
|
334
|
-
"""Impairment scheduling configuration.
|
|
335
|
-
Representation of PED_SCHEDULE
|
|
336
|
-
"""
|
|
337
|
-
|
|
338
|
-
self.one_shot_status = PED_ONESHOTSTATUS(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.LATENCYJITTER)
|
|
339
|
-
"""One-shot status.
|
|
340
|
-
Representation of PED_ONESHOTSTATUS
|
|
341
|
-
"""
|
|
342
|
-
|
|
343
|
-
self.enable = PED_ENABLE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.LATENCYJITTER)
|
|
344
|
-
"""Impairment distribution control.
|
|
345
|
-
Representation of PED_ENABLE
|
|
346
|
-
"""
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
class CDuplicationImpairment:
|
|
350
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
351
|
-
|
|
352
|
-
self.distribution = ImpairmentDistribution(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DUPLICATION)
|
|
353
|
-
|
|
354
|
-
self.schedule = PED_SCHEDULE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DUPLICATION)
|
|
355
|
-
"""Impairment scheduling configuration.
|
|
356
|
-
Representation of PED_SCHEDULE
|
|
357
|
-
"""
|
|
358
|
-
|
|
359
|
-
self.one_shot_status = PED_ONESHOTSTATUS(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DUPLICATION)
|
|
360
|
-
"""One-shot status.
|
|
361
|
-
Representation of PED_ONESHOTSTATUS
|
|
362
|
-
"""
|
|
363
|
-
|
|
364
|
-
self.enable = PED_ENABLE(conn, module_id, port_id, flow_index, ImpairmentTypeIndex.DUPLICATION)
|
|
365
|
-
"""Impairment distribution control.
|
|
366
|
-
Representation of PED_ENABLE
|
|
367
|
-
"""
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
class CShaperImpairment:
|
|
371
|
-
"""Bandwidth shaper impairment configuration."""
|
|
372
|
-
|
|
373
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
374
|
-
self.config = PE_BANDSHAPER(conn, module_id, port_id, flow_index)
|
|
375
|
-
"""Bandwidth shaper configuration.
|
|
376
|
-
Representation of PE_BANDSHAPER
|
|
377
|
-
"""
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
class CPolicerImpairment:
|
|
381
|
-
"""Bandwidth policer impairment configuration."""
|
|
382
|
-
|
|
383
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
384
|
-
self.config = PE_BANDPOLICER(conn, module_id, port_id, flow_index)
|
|
385
|
-
"""Bandwidth policer configuration.
|
|
386
|
-
Representation of PE_BANDPOLICER
|
|
387
|
-
"""
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
class CFlow:
|
|
391
|
-
"""Flow settings."""
|
|
392
|
-
|
|
393
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
394
|
-
self.comment = PE_COMMENT(conn, module_id, port_id, flow_index)
|
|
395
|
-
"""Flow description.
|
|
396
|
-
Representation of PE_COMMENT
|
|
397
|
-
"""
|
|
398
|
-
|
|
399
|
-
self.statistics = CPerFlowStats(conn, module_id, port_id, flow_index)
|
|
400
|
-
"""Flow statistics."""
|
|
401
|
-
|
|
402
|
-
self.shadow_filter = shadow.FilterDefinitionShadow(conn, module_id, port_id, flow_index)
|
|
403
|
-
"""Shadow copy."""
|
|
404
|
-
|
|
405
|
-
self.working_filter = working.FilterDefinitionWorking(conn, module_id, port_id, flow_index)
|
|
406
|
-
"""Working copy."""
|
|
407
|
-
|
|
408
|
-
self.drop = CDropImpairment(conn, module_id, port_id, flow_index)
|
|
409
|
-
|
|
410
|
-
self.misordering = CMisorderingImpairment(conn, module_id, port_id, flow_index)
|
|
411
|
-
|
|
412
|
-
self.latency_jitter = CLatencyJitterImpairment(conn, module_id, port_id, flow_index)
|
|
413
|
-
|
|
414
|
-
self.duplication = CDuplicationImpairment(conn, module_id, port_id, flow_index)
|
|
415
|
-
|
|
416
|
-
self.corruption = CCorruptionImpairment(conn, module_id, port_id, flow_index)
|
|
417
|
-
|
|
418
|
-
self.policer = CPolicerImpairment(conn, module_id, port_id, flow_index)
|
|
419
|
-
|
|
420
|
-
self.shaper = CShaperImpairment(conn, module_id, port_id, flow_index)
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
PR_FLOWTOTAL,
|
|
6
|
-
PR_FLOWCLEAR,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ReceptionStatistics:
|
|
11
|
-
"""Chimera RX statistics."""
|
|
12
|
-
|
|
13
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
14
|
-
self.total = PR_FLOWTOTAL(conn, module_id, port_id, flow_index)
|
|
15
|
-
"""RX statistics of a flow.
|
|
16
|
-
Representation of PR_FLOWTOTAL
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
self.clear = PR_FLOWCLEAR(conn, module_id, port_id, flow_index)
|
|
20
|
-
"""Clear RX statistics of a flow.
|
|
21
|
-
Representation of PR_FLOWCLEAR
|
|
22
|
-
"""
|
|
@@ -1,22 +0,0 @@
|
|
|
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
|
-
PT_FLOWTOTAL,
|
|
6
|
-
PT_FLOWCLEAR,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class TransmissionStatistics:
|
|
11
|
-
"""Chimera TX statistics."""
|
|
12
|
-
|
|
13
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, flow_index: int) -> None:
|
|
14
|
-
self.total = PT_FLOWTOTAL(conn, module_id, port_id, flow_index)
|
|
15
|
-
"""TX statistics of a flow.
|
|
16
|
-
Representation of PT_FLOWTOTAL
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
self.clear = PT_FLOWCLEAR(conn, module_id, port_id, flow_index)
|
|
20
|
-
"""Clear TX statistics of a flow.
|
|
21
|
-
Representation of PT_FLOWCLEAR
|
|
22
|
-
"""
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING
|
|
2
|
-
from xoa_driver.internals.commands import P_AUTONEGSELECTION
|
|
3
|
-
if TYPE_CHECKING:
|
|
4
|
-
from xoa_driver.internals.core import interfaces as itf
|
|
5
|
-
|
|
6
|
-
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
7
|
-
from . import family_f
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class POdin1G4S4PCombi(BasePortL23Genuine):
|
|
11
|
-
"""L23 ports that supports MDI/MDIX and """
|
|
12
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
13
|
-
super().__init__(conn, module_id, port_id)
|
|
14
|
-
|
|
15
|
-
self.autoneg_selection = P_AUTONEGSELECTION(conn, module_id, port_id)
|
|
16
|
-
"""L23 port's auto-negotiation selection.
|
|
17
|
-
Representation of P_AUTONEGSELECTION`
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class POdin1G4S4PCombi_b(POdin1G4S4PCombi):
|
|
22
|
-
"""L23 port on Odin-1G-4S-2P-Combi_b module.
|
|
23
|
-
"""
|
|
24
|
-
...
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class POdin10G4S2PCombi(family_f.FamilyF):
|
|
28
|
-
"""L23 port on Odin-10G-4S-2P-Combi module.
|
|
29
|
-
"""
|
|
30
|
-
...
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class POdin10G4S2PCombi_b(family_f.FamilyF):
|
|
34
|
-
"""L23 port on Odin-10G-4S-2P-Combi_b module.
|
|
35
|
-
"""
|
|
36
|
-
...
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING
|
|
2
|
-
from xoa_driver.internals.commands import (
|
|
3
|
-
P_MDIXMODE,
|
|
4
|
-
P_AUTONEGSELECTION,
|
|
5
|
-
)
|
|
6
|
-
if TYPE_CHECKING:
|
|
7
|
-
from xoa_driver.internals.core import interfaces as itf
|
|
8
|
-
|
|
9
|
-
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class FamilyD(BasePortL23Genuine):
|
|
13
|
-
"""L23 ports that supports MDI/MDIX and """
|
|
14
|
-
|
|
15
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
16
|
-
super().__init__(conn, module_id, port_id)
|
|
17
|
-
self.mdix_mode = P_MDIXMODE(conn, module_id, port_id)
|
|
18
|
-
"""L23 port's MDI/MDIX mode.
|
|
19
|
-
Representation of P_MDIXMODE
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
self.autoneg_selection = P_AUTONEGSELECTION(conn, module_id, port_id)
|
|
23
|
-
"""L23 port's auto-negotiation selection.
|
|
24
|
-
Representation of P_AUTONEGSELECTION
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
class POdin1G3S6P(FamilyD):
|
|
29
|
-
"""L23 port on Odin-1G-3S-6P module.
|
|
30
|
-
"""
|
|
31
|
-
...
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class POdin1G3S6P_b(FamilyD):
|
|
35
|
-
"""L23 port on Odin-1G-3S-6P[b] module.
|
|
36
|
-
"""
|
|
37
|
-
...
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class POdin1G3S6PE(FamilyD):
|
|
41
|
-
"""L23 port on Odin-1G-3S-6P-E module.
|
|
42
|
-
"""
|
|
43
|
-
...
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
class POdin1G3S2PT(FamilyD):
|
|
47
|
-
"""L23 port on Odin-1G-3S-2P-T module.
|
|
48
|
-
"""
|
|
49
|
-
...
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING
|
|
2
|
-
from xoa_driver.internals.commands import (
|
|
3
|
-
P_AUTONEGSELECTION, # questionable which ports are electrical
|
|
4
|
-
P_LPENABLE,
|
|
5
|
-
P_LPTXMODE,
|
|
6
|
-
P_LPSTATUS,
|
|
7
|
-
P_LPPARTNERAUTONEG,
|
|
8
|
-
P_LPSNRMARGIN,
|
|
9
|
-
P_LPRXPOWER,
|
|
10
|
-
P_LPSUPPORT,
|
|
11
|
-
)
|
|
12
|
-
if TYPE_CHECKING:
|
|
13
|
-
from xoa_driver.internals.core import interfaces as itf
|
|
14
|
-
|
|
15
|
-
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class LowPowerMode:
|
|
19
|
-
"""L23 port low power mode."""
|
|
20
|
-
|
|
21
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
22
|
-
self.enable = P_LPENABLE(conn, module_id, port_id)
|
|
23
|
-
"""Energy Efficiency Ethernet.
|
|
24
|
-
Representation of P_LPENABLE
|
|
25
|
-
"""
|
|
26
|
-
|
|
27
|
-
self.mode = P_LPTXMODE(conn, module_id, port_id)
|
|
28
|
-
"""Low power TX mode.
|
|
29
|
-
Representation of P_LPTXMODE
|
|
30
|
-
"""
|
|
31
|
-
self.status = P_LPSTATUS(conn, module_id, port_id)
|
|
32
|
-
"""Low power status.
|
|
33
|
-
Representation of P_LPSTATUS
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
self.partner_capabilities = P_LPPARTNERAUTONEG(conn, module_id, port_id)
|
|
37
|
-
"""EEE capabilities advertised during auto-negotiation by the far side.
|
|
38
|
-
Representation of P_LPPARTNERAUTONEG
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
self.snr_margin = P_LPSNRMARGIN(conn, module_id, port_id)
|
|
42
|
-
"""SNR margin on the four link channels by the PHY.
|
|
43
|
-
Representation of P_LPSNRMARGIN
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
self.rx_power = P_LPRXPOWER(conn, module_id, port_id)
|
|
47
|
-
"""RX power recorded during training for the four channels.
|
|
48
|
-
Representation of P_LPRXPOWER
|
|
49
|
-
"""
|
|
50
|
-
|
|
51
|
-
self.capabilities = P_LPSUPPORT(conn, module_id, port_id)
|
|
52
|
-
"""EEE capabilities of the port.
|
|
53
|
-
Representation of P_LPSUPPORT
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
class FamilyE(BasePortL23Genuine):
|
|
58
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
59
|
-
super().__init__(conn, module_id, port_id)
|
|
60
|
-
self.autoneg_selection = P_AUTONEGSELECTION(conn, module_id, port_id)
|
|
61
|
-
"""L23 port's auto-negotiation selection.
|
|
62
|
-
Representation of P_AUTONEGSELECTION
|
|
63
|
-
"""
|
|
64
|
-
|
|
65
|
-
self.eee = LowPowerMode(conn, module_id, port_id)
|
|
66
|
-
"""L23 port Low Power mode settings."""
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
class POdin5G4S6PCU(FamilyE):
|
|
70
|
-
"""L23 port on Odin-5G-4S-6P-CU module.
|
|
71
|
-
"""
|
|
72
|
-
...
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
class POdin10G5S6PCU(FamilyE):
|
|
76
|
-
"""L23 port on Odin-10G-5S-6P-CU module.
|
|
77
|
-
"""
|
|
78
|
-
...
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
class POdin10G5S6PCU_b(FamilyE):
|
|
82
|
-
"""L23 port on Odin-10G-5S-6P-CU[b] module.
|
|
83
|
-
"""
|
|
84
|
-
...
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
class POdin10G3S6PCU(FamilyE):
|
|
88
|
-
"""L23 port on Odin-10G-3S-6P-CU module.
|
|
89
|
-
"""
|
|
90
|
-
...
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
class POdin10G3S2PCU(FamilyE):
|
|
94
|
-
"""L23 port on Odin-10G-3S-2P-CU module.
|
|
95
|
-
"""
|
|
96
|
-
...
|