tdl-xoa-driver 1.6.0__py3-none-any.whl → 1.6.2__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.6.0.dist-info → tdl_xoa_driver-1.6.2.dist-info}/METADATA +1 -1
- {tdl_xoa_driver-1.6.0.dist-info → tdl_xoa_driver-1.6.2.dist-info}/RECORD +24 -22
- {tdl_xoa_driver-1.6.0.dist-info → tdl_xoa_driver-1.6.2.dist-info}/licenses/LICENSE +1 -1
- xoa_driver/__init__.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/bases/__init__.py +0 -0
- xoa_driver/internals/hli/ports/port_l23/bases/port_l23.py +267 -0
- xoa_driver/internals/hli/ports/port_l23/{trafficgen → bases}/port_l23_genuine.py +8 -17
- xoa_driver/internals/hli/ports/port_l23/{port_l23ve.py → bases/port_l23ve.py} +3 -3
- xoa_driver/internals/hli/ports/port_l23/family_edun.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/family_freya.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/family_loki.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/family_odin.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/family_thor.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/layer1_edun.py +2 -2
- xoa_driver/internals/hli/ports/port_l23/layer1_freya.py +2 -2
- xoa_driver/internals/hli/ports/port_l23/layer1_loki.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/layer1_thor.py +1 -1
- xoa_driver/internals/hli/ports/port_l23/trafficgen/{port_l23.py → tgen.py} +31 -213
- xoa_driver/ports.py +2 -2
- {tdl_xoa_driver-1.6.0.dist-info → tdl_xoa_driver-1.6.2.dist-info}/WHEEL +0 -0
- {tdl_xoa_driver-1.6.0.dist-info → tdl_xoa_driver-1.6.2.dist-info}/top_level.txt +0 -0
- /xoa_driver/internals/hli/ports/port_l23/trafficgen/{port_capture.py → capture.py} +0 -0
- /xoa_driver/internals/hli/ports/port_l23/trafficgen/{port_rx_stats.py → rx_stats.py} +0 -0
- /xoa_driver/internals/hli/ports/port_l23/trafficgen/{port_tx_stats.py → tx_stats.py} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tdl-xoa-driver
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.2
|
|
4
4
|
Summary: TDL XOA Python API is a Python library providing user-friendly communication interfaces to Teledyne LeCroy Xena Ethernet traffic generation test equipment. It provides a rich collection of APIs that can be used to either write test scripts or develop applications.
|
|
5
5
|
Home-page: https://github.com/xenanetworks/tdl-xoa-driver
|
|
6
6
|
Author: Leonard Yu, Zoltan Hanisch
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
tdl_xoa_driver-1.6.
|
|
2
|
-
xoa_driver/__init__.py,sha256=
|
|
1
|
+
tdl_xoa_driver-1.6.2.dist-info/licenses/LICENSE,sha256=KcCGoRYa8BS0KGUIHDIAeebClL6sX1uRWVrtESwpjOo,11351
|
|
2
|
+
xoa_driver/__init__.py,sha256=BJtNZvzVxeMeeNgbM1nJZfXQM5-92oTAzf7iLMPcM5g,47
|
|
3
3
|
xoa_driver/enums.py,sha256=qmRAxCh_nYCP-Va5YeGR7PO3d3Dueg44vtnzUohuGS0,8579
|
|
4
4
|
xoa_driver/exceptions.py,sha256=baNpophPmeNujMTSfL9TsYHa3Gju2-ozNOg78n8tqN8,1957
|
|
5
5
|
xoa_driver/hlfuncs.py,sha256=tfyhbYX86XWpc4yFoBrj1OYqVJJfDnoxC6tHLlWTHkQ,311
|
|
6
6
|
xoa_driver/lli.py,sha256=PyT7DT9KxIM8PMw1JMu80J_KIifMPlCg9gd47J7SIjs,434
|
|
7
7
|
xoa_driver/misc.py,sha256=JBFOiKU1z7DB99HXEDv-tiFM5PvNqNkcT7AxJXZ4lPk,1968
|
|
8
8
|
xoa_driver/modules.py,sha256=sj7MeLNPqgPFtZU40WdrOQ7tV_WEFXCQfJ3FGnsE-BQ,10287
|
|
9
|
-
xoa_driver/ports.py,sha256=
|
|
9
|
+
xoa_driver/ports.py,sha256=TIn0Bqce7VWtm1p2w0s1lg-hVw48euOzu96tJXcVpx0,6908
|
|
10
10
|
xoa_driver/testers.py,sha256=Wkjjl0880Qy7ZDULMKrKzsKKxPm_M1BcsTyms42teXs,743
|
|
11
11
|
xoa_driver/utils.py,sha256=T1zjazXNDXOXFZV9KYBdHkCy3aXbZPeuep1B-QhOdBw,168
|
|
12
12
|
xoa_driver/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -139,16 +139,19 @@ xoa_driver/internals/hli/modules/modules_l23/module_l23_base.py,sha256=TIB77QUNf
|
|
|
139
139
|
xoa_driver/internals/hli/ports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
140
|
xoa_driver/internals/hli/ports/base_port.py,sha256=8p25Wh2lTd9CEFueuhm-y8yvNMIW8yoz6oUxVbWlFC8,3646
|
|
141
141
|
xoa_driver/internals/hli/ports/port_l23/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
|
-
xoa_driver/internals/hli/ports/port_l23/family_edun.py,sha256=
|
|
143
|
-
xoa_driver/internals/hli/ports/port_l23/family_freya.py,sha256=
|
|
144
|
-
xoa_driver/internals/hli/ports/port_l23/family_loki.py,sha256=
|
|
145
|
-
xoa_driver/internals/hli/ports/port_l23/family_odin.py,sha256=
|
|
146
|
-
xoa_driver/internals/hli/ports/port_l23/family_thor.py,sha256=
|
|
147
|
-
xoa_driver/internals/hli/ports/port_l23/layer1_edun.py,sha256=
|
|
148
|
-
xoa_driver/internals/hli/ports/port_l23/layer1_freya.py,sha256=
|
|
149
|
-
xoa_driver/internals/hli/ports/port_l23/layer1_loki.py,sha256=
|
|
150
|
-
xoa_driver/internals/hli/ports/port_l23/layer1_thor.py,sha256=
|
|
151
|
-
xoa_driver/internals/hli/ports/port_l23/
|
|
142
|
+
xoa_driver/internals/hli/ports/port_l23/family_edun.py,sha256=HxsbDBJicobUFqcLGPAwYD5T6qaAgTi-m-cj4JjfSs4,1238
|
|
143
|
+
xoa_driver/internals/hli/ports/port_l23/family_freya.py,sha256=0IHBp0HrguZpKdZTpirPLbPw2NbllW1AOE11mBSCx5s,2828
|
|
144
|
+
xoa_driver/internals/hli/ports/port_l23/family_loki.py,sha256=GA9Xt8XaH6nEHnZ6n88irTmChoH-yIKMbDe7NIQSbT4,2057
|
|
145
|
+
xoa_driver/internals/hli/ports/port_l23/family_odin.py,sha256=aDicYULaIpta5MJ-pCkbInFewcBWWSEqTKED5ytbzP0,4939
|
|
146
|
+
xoa_driver/internals/hli/ports/port_l23/family_thor.py,sha256=AmvOB_7csbvr-KIKXPIRuzfMXHBbSbdnmmiU79k-tBs,1600
|
|
147
|
+
xoa_driver/internals/hli/ports/port_l23/layer1_edun.py,sha256=JjC56MUwie5qq1DtPZdepBrpA7sCCBgNw4NdzOZcVes,3134
|
|
148
|
+
xoa_driver/internals/hli/ports/port_l23/layer1_freya.py,sha256=bpYGVQZSh1Xroz734cWPiF2LVW-2MFreUlMB-L4GmF8,3259
|
|
149
|
+
xoa_driver/internals/hli/ports/port_l23/layer1_loki.py,sha256=NvvwpDIRfizv5sDjTsuwyZGrvkL-nvsu8c5YXpBl0Yk,2229
|
|
150
|
+
xoa_driver/internals/hli/ports/port_l23/layer1_thor.py,sha256=_D6VgDzMfCIHK6yNRebHUjpn6KiI3MllAVxh3CRKzBU,2220
|
|
151
|
+
xoa_driver/internals/hli/ports/port_l23/bases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
|
+
xoa_driver/internals/hli/ports/port_l23/bases/port_l23.py,sha256=Yp2_7NI7dnki2C01Jr2kGZQ0mcxZJhzx4mHm_qt_tv0,6761
|
|
153
|
+
xoa_driver/internals/hli/ports/port_l23/bases/port_l23_genuine.py,sha256=h_IbIwOehkqkTzVw8cXoXOFJNZGBRFOpyeG6A07KLKw,5115
|
|
154
|
+
xoa_driver/internals/hli/ports/port_l23/bases/port_l23ve.py,sha256=BeTQG9ehAcrg0rfR1SSMvN9L-UoAIYDdiA175sDINlM,2973
|
|
152
155
|
xoa_driver/internals/hli/ports/port_l23/chimera/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
156
|
xoa_driver/internals/hli/ports/port_l23/chimera/pe_custom_distribution.py,sha256=hQ7IbqWjMuLqhtdBiN2rUSJpNmaaqfcZn6ZP2qA6gPM,3763
|
|
154
157
|
xoa_driver/internals/hli/ports/port_l23/chimera/pe_distribution.py,sha256=o4JrDRm83ict_uJHTDgOrd_Q6ru-Q6GdKnPSqhr5PAg,5970
|
|
@@ -181,12 +184,11 @@ xoa_driver/internals/hli/ports/port_l23/tcvr/__init__.py,sha256=47DEQpj8HBSa-_TI
|
|
|
181
184
|
xoa_driver/internals/hli/ports/port_l23/tcvr/cmis.py,sha256=gqCRk6JFbU4waol2zEaaORWvQE3IIrT-ASHm-DFUl-U,5713
|
|
182
185
|
xoa_driver/internals/hli/ports/port_l23/tcvr/transceiver.py,sha256=MzX2p109NyFKz4lhEyT6MAOQZ7uDCeJpM6Sx2rPcm84,4459
|
|
183
186
|
xoa_driver/internals/hli/ports/port_l23/trafficgen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
184
|
-
xoa_driver/internals/hli/ports/port_l23/trafficgen/
|
|
185
|
-
xoa_driver/internals/hli/ports/port_l23/trafficgen/port_l23.py,sha256=5QvtKSx2Wawhx4fQzqaE8CmynBDtIHTQjOhINoK5Lm0,13897
|
|
186
|
-
xoa_driver/internals/hli/ports/port_l23/trafficgen/port_l23_genuine.py,sha256=oTnHyVoe_nHbksnbINM7anqURuGYkLD1hYGQ9CJzgTM,5347
|
|
187
|
-
xoa_driver/internals/hli/ports/port_l23/trafficgen/port_rx_stats.py,sha256=cIn-TU13WCOKPWrzeX0nUskII_rN2kNuZmU4ASWOfsY,5617
|
|
188
|
-
xoa_driver/internals/hli/ports/port_l23/trafficgen/port_tx_stats.py,sha256=VU9whbQl5v1BoFbjvqOrjxAh_n6VGwzyMs8FpWevLCg,3121
|
|
187
|
+
xoa_driver/internals/hli/ports/port_l23/trafficgen/capture.py,sha256=mH_yPZW_3lTX9n1NTCMQlIixd5BWcb5VRfCrtpzY8I8,1955
|
|
189
188
|
xoa_driver/internals/hli/ports/port_l23/trafficgen/runt.py,sha256=VuxgV2piV57hUlDKcO2sucYwhwpsVO3nwiE1qvexo6g,849
|
|
189
|
+
xoa_driver/internals/hli/ports/port_l23/trafficgen/rx_stats.py,sha256=cIn-TU13WCOKPWrzeX0nUskII_rN2kNuZmU4ASWOfsY,5617
|
|
190
|
+
xoa_driver/internals/hli/ports/port_l23/trafficgen/tgen.py,sha256=vhjTH3VP5SLT0vrd9GEb6HnLLOt0iPaKDWNhzfcg8aE,9377
|
|
191
|
+
xoa_driver/internals/hli/ports/port_l23/trafficgen/tx_stats.py,sha256=VU9whbQl5v1BoFbjvqOrjxAh_n6VGwzyMs8FpWevLCg,3121
|
|
190
192
|
xoa_driver/internals/hli/ports/port_l47/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
191
193
|
xoa_driver/internals/hli/ports/port_l47/counters.py,sha256=jWeE-aLajVs_R1QIMCIumSYxEYMNezZ2IjElek-__M0,5816
|
|
192
194
|
xoa_driver/internals/hli/ports/port_l47/main.py,sha256=THEqV_SJaEtHwj0Nyd-KG3N1xP0Ck6zc5WzUA12Y188,6376
|
|
@@ -226,7 +228,7 @@ xoa_driver/internals/utils/managers/abc.py,sha256=M3XgI2FVQLUXixS5SKnZTm0MweHY6D
|
|
|
226
228
|
xoa_driver/internals/utils/managers/exceptions.py,sha256=fqLSin-OQCIKuhpzvK6RZThF3FJ8FsHers4EmqM9gSs,628
|
|
227
229
|
xoa_driver/internals/utils/managers/modules_manager.py,sha256=sCEhqUu7Waot16rucJ5nI9FyHuFEeU_sBx1JjZdhDJg,3236
|
|
228
230
|
xoa_driver/internals/utils/managers/ports_manager.py,sha256=cmXGWMVbHB27E7e0t-K9mUDessdU_t_v-6WUtpqbIho,3554
|
|
229
|
-
tdl_xoa_driver-1.6.
|
|
230
|
-
tdl_xoa_driver-1.6.
|
|
231
|
-
tdl_xoa_driver-1.6.
|
|
232
|
-
tdl_xoa_driver-1.6.
|
|
231
|
+
tdl_xoa_driver-1.6.2.dist-info/METADATA,sha256=-oC1ibfLF2P3oodLq3pCePMCgzL9H54WwixWlf6sJbo,4176
|
|
232
|
+
tdl_xoa_driver-1.6.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
233
|
+
tdl_xoa_driver-1.6.2.dist-info/top_level.txt,sha256=sBbN3hwpa4s2VxsUBoWJ5jIqqDr50vgcEb-V8kL7pvE,11
|
|
234
|
+
tdl_xoa_driver-1.6.2.dist-info/RECORD,,
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
same "printed page" as the copyright notice for easier
|
|
188
188
|
identification within third-party archives.
|
|
189
189
|
|
|
190
|
-
Copyright
|
|
190
|
+
Copyright 2026 Teledyne LeCroy Xena
|
|
191
191
|
|
|
192
192
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
193
|
you may not use this file except in compliance with the License.
|
xoa_driver/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "1.6.
|
|
1
|
+
__version__ = "1.6.2"
|
|
2
2
|
__short_version__ = "1.6"
|
|
File without changes
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
import typing
|
|
3
|
+
from xoa_driver.internals.commands import (
|
|
4
|
+
P_CAPABILITIES,
|
|
5
|
+
P_SPEED,
|
|
6
|
+
P_SPEEDREDUCTION,
|
|
7
|
+
P_INTERFRAMEGAP,
|
|
8
|
+
P_MACADDRESS,
|
|
9
|
+
P_IPADDRESS,
|
|
10
|
+
P_ARPREPLY,
|
|
11
|
+
P_PINGREPLY,
|
|
12
|
+
P_PAUSE,
|
|
13
|
+
P_RANDOMSEED,
|
|
14
|
+
P_LOOPBACK,
|
|
15
|
+
P_TRAFFIC,
|
|
16
|
+
# P_CAPTURE,
|
|
17
|
+
P_XMITONE,
|
|
18
|
+
P_LATENCYOFFSET,
|
|
19
|
+
P_LATENCYMODE,
|
|
20
|
+
P_AUTOTRAIN,
|
|
21
|
+
P_MIXWEIGHTS,
|
|
22
|
+
P_TRAFFICERR,
|
|
23
|
+
P_GAPMONITOR,
|
|
24
|
+
P_CHECKSUM,
|
|
25
|
+
P_MIXLENGTH,
|
|
26
|
+
P_ARPRXTABLE,
|
|
27
|
+
P_NDPRXTABLE,
|
|
28
|
+
P_MULTICAST,
|
|
29
|
+
P_MULTICASTEXT,
|
|
30
|
+
P_MCSRCLIST,
|
|
31
|
+
P_MULTICASTHDR,
|
|
32
|
+
P_TXMODE,
|
|
33
|
+
P_RATEFRACTION,
|
|
34
|
+
P_RATEPPS,
|
|
35
|
+
P_RATEL2BPS,
|
|
36
|
+
P_PAYLOADMODE,
|
|
37
|
+
P_TXENABLE,
|
|
38
|
+
P_MAXHEADERLENGTH,
|
|
39
|
+
P_TXTIMELIMIT,
|
|
40
|
+
P_TXTIME,
|
|
41
|
+
P_XMITONETIME,
|
|
42
|
+
P_IPV6ADDRESS,
|
|
43
|
+
P_ARPV6REPLY,
|
|
44
|
+
P_PINGV6REPLY,
|
|
45
|
+
P_ERRORS,
|
|
46
|
+
P_TXPREPARE,
|
|
47
|
+
P_TXDELAY,
|
|
48
|
+
P_TPLDMODE,
|
|
49
|
+
P_TXPACKETLIMIT,
|
|
50
|
+
P_PFCENABLE,
|
|
51
|
+
P_TXBURSTPERIOD,
|
|
52
|
+
P_CAPABILITIES_EXT,
|
|
53
|
+
P_IGMPV3_GROUP_RECORD_BUNDLE,
|
|
54
|
+
P_USED_TPLDID,
|
|
55
|
+
)
|
|
56
|
+
if typing.TYPE_CHECKING:
|
|
57
|
+
from xoa_driver.internals.core import interfaces as itf
|
|
58
|
+
from xoa_driver.internals.hli.ports import base_port
|
|
59
|
+
from xoa_driver.internals.utils import attributes as utils
|
|
60
|
+
from xoa_driver.internals.utils.indices import index_manager as idx_mgr
|
|
61
|
+
from xoa_driver.internals.state_storage import ports_state
|
|
62
|
+
from xoa_driver.internals.hli.indices.length_term import LengthTermIdx
|
|
63
|
+
from xoa_driver.internals.hli.indices.match_term import MatchTermIdx
|
|
64
|
+
|
|
65
|
+
from ..trafficgen.capture import PortCapture
|
|
66
|
+
from ..trafficgen.tgen import *
|
|
67
|
+
|
|
68
|
+
LengthTermIndices = idx_mgr.IndexManager[LengthTermIdx]
|
|
69
|
+
MatchTermIndices = idx_mgr.IndexManager[MatchTermIdx]
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class BasePortL23(base_port.BasePort[ports_state.PortL23LocalState]):
|
|
73
|
+
"""L23 port layout which is relevant to all L23 ports."""
|
|
74
|
+
|
|
75
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
76
|
+
super().__init__(conn, module_id, port_id)
|
|
77
|
+
self.capabilities = P_CAPABILITIES(conn, module_id, port_id)
|
|
78
|
+
"""L23 Port capabilities
|
|
79
|
+
|
|
80
|
+
:type: P_CAPABILITIES
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
self.capabilities_ext = P_CAPABILITIES_EXT(conn, module_id, port_id)
|
|
84
|
+
"""L23 port capabilities ext.
|
|
85
|
+
|
|
86
|
+
:type: P_CAPABILITIES_EXT
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
self.pause = P_PAUSE(conn, module_id, port_id)
|
|
90
|
+
"""L23 port response to Ethernet PAUSE frames.
|
|
91
|
+
|
|
92
|
+
:type: P_PAUSE
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
self.loopback = P_LOOPBACK(conn, module_id, port_id)
|
|
96
|
+
"""L23 port loopback mode.
|
|
97
|
+
|
|
98
|
+
:type: P_LOOPBACK
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
self.errors_count = P_ERRORS(conn, module_id, port_id)
|
|
102
|
+
"""L23 port errors.
|
|
103
|
+
|
|
104
|
+
:type: P_ERRORS
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
self.interframe_gap = P_INTERFRAMEGAP(conn, module_id, port_id)
|
|
108
|
+
"""L23 port interframe gap.
|
|
109
|
+
|
|
110
|
+
:type: P_INTERFRAMEGAP
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
self.max_header_length = P_MAXHEADERLENGTH(conn, module_id, port_id)
|
|
114
|
+
"""L23 port maximum header length.
|
|
115
|
+
|
|
116
|
+
:type: P_MAXHEADERLENGTH
|
|
117
|
+
"""
|
|
118
|
+
|
|
119
|
+
self.tpld_mode = P_TPLDMODE(conn, module_id, port_id)
|
|
120
|
+
"""L23 port test payload mode.
|
|
121
|
+
|
|
122
|
+
:type: P_TPLDMODE
|
|
123
|
+
"""
|
|
124
|
+
|
|
125
|
+
self.pfc_enable = P_PFCENABLE(conn, module_id, port_id)
|
|
126
|
+
"""L23 port Ethernet Priority Flow Control (PFC).
|
|
127
|
+
|
|
128
|
+
:type: P_PFCENABLE
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
self.random_seed = P_RANDOMSEED(conn, module_id, port_id)
|
|
132
|
+
"""L23 port seed value.
|
|
133
|
+
|
|
134
|
+
:type: P_RANDOMSEED
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
self.payload_mode = P_PAYLOADMODE(conn, module_id, port_id)
|
|
138
|
+
"""L23 port payload mode.
|
|
139
|
+
|
|
140
|
+
:type: P_PAYLOADMODE
|
|
141
|
+
"""
|
|
142
|
+
|
|
143
|
+
self.gap_monitor = P_GAPMONITOR(conn, module_id, port_id)
|
|
144
|
+
"""L23 port gap monitor.
|
|
145
|
+
|
|
146
|
+
:type: P_GAPMONITOR
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
self.checksum = P_CHECKSUM(conn, module_id, port_id)
|
|
150
|
+
"""L23 port extra payload integrity checksum.
|
|
151
|
+
|
|
152
|
+
:type: P_CHECKSUM
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
self.arp_rx_table = P_ARPRXTABLE(conn, module_id, port_id)
|
|
156
|
+
"""L23 port ARP table.
|
|
157
|
+
|
|
158
|
+
:type: P_ARPRXTABLE
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
self.ndp_rx_table = P_NDPRXTABLE(conn, module_id, port_id)
|
|
162
|
+
"""L23 port NDP table.
|
|
163
|
+
|
|
164
|
+
:type: P_NDPRXTABLE
|
|
165
|
+
"""
|
|
166
|
+
|
|
167
|
+
self.capturer = PortCapture(conn, module_id, port_id)
|
|
168
|
+
"""L23 port capturer configuration.
|
|
169
|
+
|
|
170
|
+
:type: PortCapture
|
|
171
|
+
"""
|
|
172
|
+
|
|
173
|
+
self.speed = Speed(conn, module_id, port_id)
|
|
174
|
+
"""L23 port speed configuration.
|
|
175
|
+
|
|
176
|
+
:type: Speed
|
|
177
|
+
"""
|
|
178
|
+
|
|
179
|
+
self.traffic = Traffic(conn, module_id, port_id)
|
|
180
|
+
"""L23 port traffic configuration.
|
|
181
|
+
|
|
182
|
+
:type: Traffic
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
self.mix = Mix(conn, module_id, port_id)
|
|
186
|
+
"""L23 port IMIX configuration.
|
|
187
|
+
|
|
188
|
+
:type: Mix
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
self.latency_config = LatencyConfiguration(conn, module_id, port_id)
|
|
192
|
+
"""L23 port latency configuration.
|
|
193
|
+
|
|
194
|
+
self.latency_config = LatencyConfiguration(conn, module_id, port_id)
|
|
195
|
+
:type:
|
|
196
|
+
"""
|
|
197
|
+
|
|
198
|
+
self.rate = TxRate(conn, module_id, port_id)
|
|
199
|
+
"""L23 port rate.
|
|
200
|
+
|
|
201
|
+
:type: Rate
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
self.tx_config = TxConfiguration(conn, module_id, port_id)
|
|
205
|
+
"""L23 port TX configuration.
|
|
206
|
+
|
|
207
|
+
:type: TxConfiguration
|
|
208
|
+
"""
|
|
209
|
+
|
|
210
|
+
self.tx_single_pkt = TxSinglePacket(conn, module_id, port_id)
|
|
211
|
+
"""L23 port single-packet TX configuration.
|
|
212
|
+
|
|
213
|
+
:type: TxSinglePacket
|
|
214
|
+
"""
|
|
215
|
+
|
|
216
|
+
self.multicast = Multicast(conn, module_id, port_id)
|
|
217
|
+
"""L23 port multicast configuration.
|
|
218
|
+
|
|
219
|
+
:type: Multicast
|
|
220
|
+
"""
|
|
221
|
+
|
|
222
|
+
self.net_config = NetConfig(conn, module_id, port_id)
|
|
223
|
+
"""L23 port network configuration, including MAC and IP addresses.
|
|
224
|
+
|
|
225
|
+
:type: NetConfig
|
|
226
|
+
"""
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
self.local_states = ports_state.PortL23LocalState()
|
|
230
|
+
"""L23 port local states.
|
|
231
|
+
|
|
232
|
+
:type: PortL23LocalState
|
|
233
|
+
"""
|
|
234
|
+
|
|
235
|
+
self.length_terms: LengthTermIndices = idx_mgr.IndexManager(
|
|
236
|
+
conn,
|
|
237
|
+
LengthTermIdx,
|
|
238
|
+
module_id,
|
|
239
|
+
port_id
|
|
240
|
+
)
|
|
241
|
+
"""L23 port's length term index manager.
|
|
242
|
+
|
|
243
|
+
:type: LengthTermIndices
|
|
244
|
+
"""
|
|
245
|
+
|
|
246
|
+
self.match_terms: MatchTermIndices = idx_mgr.IndexManager(
|
|
247
|
+
conn,
|
|
248
|
+
MatchTermIdx,
|
|
249
|
+
module_id,
|
|
250
|
+
port_id
|
|
251
|
+
)
|
|
252
|
+
"""L23 port's match term index manager.
|
|
253
|
+
|
|
254
|
+
:type: MatchTermIndices
|
|
255
|
+
"""
|
|
256
|
+
|
|
257
|
+
self.used_tpld_ids = P_USED_TPLDID(conn, module_id, port_id)
|
|
258
|
+
"""TG port's used TPLD IDs.
|
|
259
|
+
|
|
260
|
+
:type: P_USED_TPLDID
|
|
261
|
+
"""
|
|
262
|
+
|
|
263
|
+
on_speed_change = functools.partialmethod(utils.on_event, P_SPEED)
|
|
264
|
+
"""Register a callback to the event that the port's speed changes."""
|
|
265
|
+
|
|
266
|
+
on_traffic_change = functools.partialmethod(utils.on_event, P_TRAFFIC)
|
|
267
|
+
"""Register a callback to the event that the port's traffic status changes."""
|
|
@@ -20,24 +20,22 @@ from xoa_driver.internals.hli.indices.filter.genuine_filter import GenuineFilter
|
|
|
20
20
|
from xoa_driver.internals.hli.indices.port_dataset import PortDatasetIdx
|
|
21
21
|
from xoa_driver.internals.state_storage import ports_state
|
|
22
22
|
|
|
23
|
-
from .port_l23 import
|
|
24
|
-
BasePortL23,
|
|
25
|
-
Speed,
|
|
26
|
-
# TxConfiguration,
|
|
27
|
-
)
|
|
23
|
+
from .port_l23 import BasePortL23
|
|
28
24
|
|
|
29
25
|
from ..tcvr.transceiver import Transceiver
|
|
30
|
-
from .
|
|
31
|
-
from .
|
|
26
|
+
from ..trafficgen.rx_stats import GenuinePortReceptionStatistics
|
|
27
|
+
from ..trafficgen.tx_stats import GenuinePortTransmissionStatistics
|
|
28
|
+
from ..trafficgen.tgen import *
|
|
32
29
|
|
|
33
30
|
StreamIndices = idx_mgr.IndexManager[GenuineStreamIdx]
|
|
34
31
|
FilterIndices = idx_mgr.IndexManager[GenuineFilterIdx]
|
|
35
32
|
PortDatasetIndices = idx_mgr.IndexManager[PortDatasetIdx]
|
|
36
33
|
|
|
37
|
-
class SpeedMode:
|
|
38
|
-
"""L23 port's speed mode"""
|
|
39
34
|
|
|
35
|
+
class GenuineSpeed(Speed):
|
|
40
36
|
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
37
|
+
super().__init__(conn, module_id, port_id)
|
|
38
|
+
|
|
41
39
|
self.selection = P_SPEEDSELECTION(conn, module_id, port_id)
|
|
42
40
|
"""L23 port speed mode selection.
|
|
43
41
|
|
|
@@ -51,13 +49,6 @@ class SpeedMode:
|
|
|
51
49
|
"""
|
|
52
50
|
|
|
53
51
|
|
|
54
|
-
class GenuineSpeed(Speed):
|
|
55
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
56
|
-
super().__init__(conn, module_id, port_id)
|
|
57
|
-
self.mode = SpeedMode(conn, module_id, port_id)
|
|
58
|
-
"""L23 port's speed mode."""
|
|
59
|
-
|
|
60
|
-
|
|
61
52
|
class UnAvailableTime:
|
|
62
53
|
"""UnAvailable Time"""
|
|
63
54
|
|
|
@@ -68,7 +59,7 @@ class UnAvailableTime:
|
|
|
68
59
|
:type: P_UAT_MODE
|
|
69
60
|
"""
|
|
70
61
|
|
|
71
|
-
self.
|
|
62
|
+
self.flr = P_UAT_FLR(conn, module_id, port_id)
|
|
72
63
|
"""L23 port's Frame Loss Ratio for UAT.
|
|
73
64
|
|
|
74
65
|
:type: P_UAT_FLR
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import TYPE_CHECKING
|
|
2
|
-
from .
|
|
3
|
-
from
|
|
4
|
-
from
|
|
2
|
+
from .port_l23 import BasePortL23
|
|
3
|
+
from ..trafficgen.rx_stats import PortReceptionStatistics
|
|
4
|
+
from ..trafficgen.tx_stats import PortTxStats
|
|
5
5
|
|
|
6
6
|
from xoa_driver.internals.commands import (
|
|
7
7
|
P_MDIXMODE,
|
|
@@ -12,7 +12,7 @@ from xoa_driver.internals.utils import attributes as utils
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
13
|
from xoa_driver.internals.core import interfaces as itf
|
|
14
14
|
|
|
15
|
-
from .
|
|
15
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
16
16
|
from .layer1_edun import Layer1
|
|
17
17
|
|
|
18
18
|
|
|
@@ -12,7 +12,7 @@ from xoa_driver.internals.utils import attributes as utils
|
|
|
12
12
|
if TYPE_CHECKING:
|
|
13
13
|
from xoa_driver.internals.core import interfaces as itf
|
|
14
14
|
|
|
15
|
-
from .
|
|
15
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
16
16
|
from .layer1_freya import Layer1
|
|
17
17
|
|
|
18
18
|
|
|
@@ -11,7 +11,7 @@ from xoa_driver.internals.utils import attributes as utils
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from xoa_driver.internals.core import interfaces as itf
|
|
13
13
|
|
|
14
|
-
from .
|
|
14
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
15
15
|
from .layer1_loki import Layer1
|
|
16
16
|
from .sec.macsec import MacSec
|
|
17
17
|
|
|
@@ -10,7 +10,7 @@ from xoa_driver.internals.commands import (
|
|
|
10
10
|
from xoa_driver.internals.utils import attributes as utils
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from xoa_driver.internals.core import interfaces as itf
|
|
13
|
-
from .
|
|
13
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
14
14
|
from .layer1.lower_power import LowPowerMode
|
|
15
15
|
from .trafficgen.runt import Runt
|
|
16
16
|
from .layer1.preamble import Preamble
|
|
@@ -11,7 +11,7 @@ from xoa_driver.internals.utils import attributes as utils
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from xoa_driver.internals.core import interfaces as itf
|
|
13
13
|
|
|
14
|
-
from .
|
|
14
|
+
from .bases.port_l23_genuine import BasePortL23Genuine
|
|
15
15
|
from .layer1_thor import Layer1
|
|
16
16
|
|
|
17
17
|
|
|
@@ -61,7 +61,7 @@ class EdunPcsLayer(PcsLayer):
|
|
|
61
61
|
module_id, port_id = port.kind
|
|
62
62
|
PcsLayer.__init__(self, conn, port)
|
|
63
63
|
|
|
64
|
-
self.
|
|
64
|
+
self.variant = PL1_PCS_VARIANT(conn, module_id, port_id)
|
|
65
65
|
"""PCS variant configuration
|
|
66
66
|
"""
|
|
67
67
|
|
|
@@ -84,7 +84,7 @@ class Layer1:
|
|
|
84
84
|
"""RS Fault configuration and status
|
|
85
85
|
"""
|
|
86
86
|
|
|
87
|
-
self.
|
|
87
|
+
self.pcs = EdunPcsLayer(conn, port)
|
|
88
88
|
"""Edun PCS and FEC configuration and status
|
|
89
89
|
"""
|
|
90
90
|
|
|
@@ -61,7 +61,7 @@ class FreyaPcsLayer(PcsLayer):
|
|
|
61
61
|
module_id, port_id = port.kind
|
|
62
62
|
PcsLayer.__init__(self, conn, port)
|
|
63
63
|
|
|
64
|
-
self.
|
|
64
|
+
self.variant = PL1_PCS_VARIANT(conn, module_id, port_id)
|
|
65
65
|
"""PCS variant configuration
|
|
66
66
|
"""
|
|
67
67
|
|
|
@@ -85,7 +85,7 @@ class Layer1:
|
|
|
85
85
|
"""RS Fault configuration and status
|
|
86
86
|
"""
|
|
87
87
|
|
|
88
|
-
self.
|
|
88
|
+
self.pcs = FreyaPcsLayer(conn, port)
|
|
89
89
|
"""Freya PCS and FEC configuration and status
|
|
90
90
|
"""
|
|
91
91
|
|
|
@@ -62,7 +62,7 @@ from xoa_driver.internals.state_storage import ports_state
|
|
|
62
62
|
from xoa_driver.internals.hli.indices.length_term import LengthTermIdx
|
|
63
63
|
from xoa_driver.internals.hli.indices.match_term import MatchTermIdx
|
|
64
64
|
|
|
65
|
-
from .
|
|
65
|
+
from .capture import PortCapture
|
|
66
66
|
|
|
67
67
|
LengthTermIndices = idx_mgr.IndexManager[LengthTermIdx]
|
|
68
68
|
MatchTermIndices = idx_mgr.IndexManager[MatchTermIdx]
|
|
@@ -138,7 +138,7 @@ class TxConfiguration:
|
|
|
138
138
|
"""
|
|
139
139
|
|
|
140
140
|
|
|
141
|
-
class
|
|
141
|
+
class TxRate:
|
|
142
142
|
"""L23 port TX rate"""
|
|
143
143
|
|
|
144
144
|
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
@@ -161,6 +161,24 @@ class Rate:
|
|
|
161
161
|
"""
|
|
162
162
|
|
|
163
163
|
|
|
164
|
+
class MacControl:
|
|
165
|
+
"""MAC control configuration
|
|
166
|
+
"""
|
|
167
|
+
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
168
|
+
|
|
169
|
+
self.address = P_MACADDRESS(conn, module_id, port_id)
|
|
170
|
+
"""MAC address configuration. This attribute allows the user to configure the MAC address for the port.
|
|
171
|
+
|
|
172
|
+
:type: P_MACADDRESS
|
|
173
|
+
"""
|
|
174
|
+
|
|
175
|
+
self.autotrain = P_AUTOTRAIN(conn, module_id, port_id)
|
|
176
|
+
"""Interval between MAC auto training packets. This attribute allows the user to configure the interval at which MAC auto training packets are sent. Auto training packets are used to optimize the performance of the MAC layer and to ensure proper communication between devices.
|
|
177
|
+
|
|
178
|
+
:type: P_AUTOTRAIN
|
|
179
|
+
"""
|
|
180
|
+
|
|
181
|
+
|
|
164
182
|
class Multicast:
|
|
165
183
|
"""L23 port multicast configuration"""
|
|
166
184
|
|
|
@@ -240,23 +258,26 @@ class IPv6:
|
|
|
240
258
|
:type: P_PINGV6REPLY
|
|
241
259
|
"""
|
|
242
260
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
"""L23 port networking configuration"""
|
|
261
|
+
class NetConfig:
|
|
262
|
+
"""L23 port network interface configuration"""
|
|
246
263
|
|
|
247
264
|
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
248
|
-
self.
|
|
249
|
-
"""L23 port MAC address.
|
|
265
|
+
self.mac = MacControl(conn, module_id, port_id)
|
|
266
|
+
"""L23 port MAC address and control.
|
|
250
267
|
|
|
251
|
-
:type:
|
|
268
|
+
:type: P_IPV6ADDRESS
|
|
252
269
|
"""
|
|
253
270
|
|
|
254
271
|
self.ipv4 = IPv4(conn, module_id, port_id)
|
|
255
|
-
"""L23 port IPv4
|
|
272
|
+
"""L23 port IPv4 configuration.
|
|
273
|
+
|
|
274
|
+
:type: IPv4
|
|
256
275
|
"""
|
|
257
276
|
|
|
258
277
|
self.ipv6 = IPv6(conn, module_id, port_id)
|
|
259
|
-
"""L23 port IPv6
|
|
278
|
+
"""L23 port IPv6 configuration.
|
|
279
|
+
|
|
280
|
+
:type: IPv6
|
|
260
281
|
"""
|
|
261
282
|
|
|
262
283
|
|
|
@@ -329,206 +350,3 @@ class Traffic:
|
|
|
329
350
|
|
|
330
351
|
:type: P_TRAFFICERR
|
|
331
352
|
"""
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
class BasePortL23(base_port.BasePort[ports_state.PortL23LocalState]):
|
|
335
|
-
"""L23 port layout which is relevant to all L23 ports."""
|
|
336
|
-
|
|
337
|
-
def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
|
|
338
|
-
super().__init__(conn, module_id, port_id)
|
|
339
|
-
self.capabilities = P_CAPABILITIES(conn, module_id, port_id)
|
|
340
|
-
"""L23 Port capabilities
|
|
341
|
-
|
|
342
|
-
:type: P_CAPABILITIES
|
|
343
|
-
"""
|
|
344
|
-
|
|
345
|
-
self.capabilities_ext = P_CAPABILITIES_EXT(conn, module_id, port_id)
|
|
346
|
-
"""L23 port capabilities ext.
|
|
347
|
-
|
|
348
|
-
:type: P_CAPABILITIES_EXT
|
|
349
|
-
"""
|
|
350
|
-
|
|
351
|
-
self.pause = P_PAUSE(conn, module_id, port_id)
|
|
352
|
-
"""L23 port response to Ethernet PAUSE frames.
|
|
353
|
-
|
|
354
|
-
:type: P_PAUSE
|
|
355
|
-
"""
|
|
356
|
-
|
|
357
|
-
self.loop_back = P_LOOPBACK(conn, module_id, port_id)
|
|
358
|
-
"""L23 port loopback mode.
|
|
359
|
-
|
|
360
|
-
:type: P_LOOPBACK
|
|
361
|
-
"""
|
|
362
|
-
|
|
363
|
-
self.errors_count = P_ERRORS(conn, module_id, port_id)
|
|
364
|
-
"""L23 port errors.
|
|
365
|
-
|
|
366
|
-
:type: P_ERRORS
|
|
367
|
-
"""
|
|
368
|
-
|
|
369
|
-
self.interframe_gap = P_INTERFRAMEGAP(conn, module_id, port_id)
|
|
370
|
-
"""L23 port interframe gap.
|
|
371
|
-
|
|
372
|
-
:type: P_INTERFRAMEGAP
|
|
373
|
-
"""
|
|
374
|
-
|
|
375
|
-
self.max_header_length = P_MAXHEADERLENGTH(conn, module_id, port_id)
|
|
376
|
-
"""L23 port maximum header length.
|
|
377
|
-
|
|
378
|
-
:type: P_MAXHEADERLENGTH
|
|
379
|
-
"""
|
|
380
|
-
|
|
381
|
-
self.tpld_mode = P_TPLDMODE(conn, module_id, port_id)
|
|
382
|
-
"""L23 port test payload mode.
|
|
383
|
-
|
|
384
|
-
:type: P_TPLDMODE
|
|
385
|
-
"""
|
|
386
|
-
|
|
387
|
-
self.pfc_enable = P_PFCENABLE(conn, module_id, port_id)
|
|
388
|
-
"""L23 port Ethernet Priority Flow Control (PFC).
|
|
389
|
-
|
|
390
|
-
:type: P_PFCENABLE
|
|
391
|
-
"""
|
|
392
|
-
|
|
393
|
-
self.random_seed = P_RANDOMSEED(conn, module_id, port_id)
|
|
394
|
-
"""L23 port seed value.
|
|
395
|
-
|
|
396
|
-
:type: P_RANDOMSEED
|
|
397
|
-
"""
|
|
398
|
-
|
|
399
|
-
self.payload_mode = P_PAYLOADMODE(conn, module_id, port_id)
|
|
400
|
-
"""L23 port payload mode.
|
|
401
|
-
|
|
402
|
-
:type: P_PAYLOADMODE
|
|
403
|
-
"""
|
|
404
|
-
|
|
405
|
-
self.autotrain = P_AUTOTRAIN(conn, module_id, port_id)
|
|
406
|
-
"""L23 port interval between auto training packets.
|
|
407
|
-
|
|
408
|
-
:type: P_AUTOTRAIN
|
|
409
|
-
"""
|
|
410
|
-
|
|
411
|
-
self.gap_monitor = P_GAPMONITOR(conn, module_id, port_id)
|
|
412
|
-
"""L23 port gap monitor.
|
|
413
|
-
|
|
414
|
-
:type: P_GAPMONITOR
|
|
415
|
-
"""
|
|
416
|
-
|
|
417
|
-
self.checksum = P_CHECKSUM(conn, module_id, port_id)
|
|
418
|
-
"""L23 port extra payload integrity checksum.
|
|
419
|
-
|
|
420
|
-
:type: P_CHECKSUM
|
|
421
|
-
"""
|
|
422
|
-
|
|
423
|
-
self.arp_rx_table = P_ARPRXTABLE(conn, module_id, port_id)
|
|
424
|
-
"""L23 port ARP table.
|
|
425
|
-
|
|
426
|
-
:type: P_ARPRXTABLE
|
|
427
|
-
"""
|
|
428
|
-
|
|
429
|
-
self.ndp_rx_table = P_NDPRXTABLE(conn, module_id, port_id)
|
|
430
|
-
"""L23 port NDP table.
|
|
431
|
-
|
|
432
|
-
:type: P_NDPRXTABLE
|
|
433
|
-
"""
|
|
434
|
-
|
|
435
|
-
self.capturer = PortCapture(conn, module_id, port_id)
|
|
436
|
-
"""L23 port capturer configuration.
|
|
437
|
-
|
|
438
|
-
:type: PortCapture
|
|
439
|
-
"""
|
|
440
|
-
|
|
441
|
-
self.speed = Speed(conn, module_id, port_id)
|
|
442
|
-
"""L23 port speed configuration.
|
|
443
|
-
|
|
444
|
-
:type: Speed
|
|
445
|
-
"""
|
|
446
|
-
|
|
447
|
-
self.traffic = Traffic(conn, module_id, port_id)
|
|
448
|
-
"""L23 port traffic configuration.
|
|
449
|
-
|
|
450
|
-
:type: Traffic
|
|
451
|
-
"""
|
|
452
|
-
|
|
453
|
-
self.mix = Mix(conn, module_id, port_id)
|
|
454
|
-
"""L23 port IMIX configuration.
|
|
455
|
-
|
|
456
|
-
:type: Mix
|
|
457
|
-
"""
|
|
458
|
-
|
|
459
|
-
self.latency_config = LatencyConfiguration(conn, module_id, port_id)
|
|
460
|
-
"""L23 port latency configuration.
|
|
461
|
-
|
|
462
|
-
self.latency_config = LatencyConfiguration(conn, module_id, port_id)
|
|
463
|
-
:type:
|
|
464
|
-
"""
|
|
465
|
-
|
|
466
|
-
self.rate = Rate(conn, module_id, port_id)
|
|
467
|
-
"""L23 port rate.
|
|
468
|
-
|
|
469
|
-
:type: Rate
|
|
470
|
-
"""
|
|
471
|
-
|
|
472
|
-
self.tx_config = TxConfiguration(conn, module_id, port_id)
|
|
473
|
-
"""L23 port TX configuration.
|
|
474
|
-
|
|
475
|
-
:type: TxConfiguration
|
|
476
|
-
"""
|
|
477
|
-
|
|
478
|
-
self.tx_single_pkt = TxSinglePacket(conn, module_id, port_id)
|
|
479
|
-
"""L23 port single-packet TX configuration.
|
|
480
|
-
|
|
481
|
-
:type: TxSinglePacket
|
|
482
|
-
"""
|
|
483
|
-
|
|
484
|
-
self.multicast = Multicast(conn, module_id, port_id)
|
|
485
|
-
"""L23 port multicast configuration.
|
|
486
|
-
|
|
487
|
-
:type: Multicast
|
|
488
|
-
"""
|
|
489
|
-
|
|
490
|
-
self.net_config = NetworkConfiguration(conn, module_id, port_id)
|
|
491
|
-
"""L23 port network configuration.
|
|
492
|
-
|
|
493
|
-
:type: NetworkConfiguration
|
|
494
|
-
"""
|
|
495
|
-
|
|
496
|
-
self.local_states = ports_state.PortL23LocalState()
|
|
497
|
-
"""L23 port local states.
|
|
498
|
-
|
|
499
|
-
:type: PortL23LocalState
|
|
500
|
-
"""
|
|
501
|
-
|
|
502
|
-
self.length_terms: LengthTermIndices = idx_mgr.IndexManager(
|
|
503
|
-
conn,
|
|
504
|
-
LengthTermIdx,
|
|
505
|
-
module_id,
|
|
506
|
-
port_id
|
|
507
|
-
)
|
|
508
|
-
"""L23 port's length term index manager.
|
|
509
|
-
|
|
510
|
-
:type: LengthTermIndices
|
|
511
|
-
"""
|
|
512
|
-
|
|
513
|
-
self.match_terms: MatchTermIndices = idx_mgr.IndexManager(
|
|
514
|
-
conn,
|
|
515
|
-
MatchTermIdx,
|
|
516
|
-
module_id,
|
|
517
|
-
port_id
|
|
518
|
-
)
|
|
519
|
-
"""L23 port's match term index manager.
|
|
520
|
-
|
|
521
|
-
:type: MatchTermIndices
|
|
522
|
-
"""
|
|
523
|
-
|
|
524
|
-
self.used_tpld_ids = P_USED_TPLDID(conn, module_id, port_id)
|
|
525
|
-
"""TG port's used TPLD IDs.
|
|
526
|
-
|
|
527
|
-
:type: P_USED_TPLDID
|
|
528
|
-
"""
|
|
529
|
-
|
|
530
|
-
on_speed_change = functools.partialmethod(utils.on_event, P_SPEED)
|
|
531
|
-
"""Register a callback to the event that the port's speed changes."""
|
|
532
|
-
|
|
533
|
-
on_traffic_change = functools.partialmethod(utils.on_event, P_TRAFFIC)
|
|
534
|
-
"""Register a callback to the event that the port's traffic status changes."""
|
xoa_driver/ports.py
CHANGED
|
@@ -5,7 +5,7 @@ import typing
|
|
|
5
5
|
|
|
6
6
|
from .internals.hli.ports.port_l47.main import PortL47
|
|
7
7
|
|
|
8
|
-
from .internals.hli.ports.port_l23.port_l23ve import PortL23VE
|
|
8
|
+
from .internals.hli.ports.port_l23.bases.port_l23ve import PortL23VE
|
|
9
9
|
from .internals.hli.ports.port_l23.chimera.port_chimera import (
|
|
10
10
|
PortChimera,
|
|
11
11
|
PChi100G5S2P,
|
|
@@ -13,7 +13,7 @@ from .internals.hli.ports.port_l23.chimera.port_chimera import (
|
|
|
13
13
|
PChi40G2S2P,
|
|
14
14
|
)
|
|
15
15
|
|
|
16
|
-
from .internals.hli.ports.port_l23.
|
|
16
|
+
from .internals.hli.ports.port_l23.bases.port_l23 import BasePortL23
|
|
17
17
|
from xoa_driver.internals.hli.ports.port_l23.family_odin import (
|
|
18
18
|
POdin1G4S4PCombi,
|
|
19
19
|
POdin1G4S4PCombi_b,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|