tdl-xoa-driver 1.1.0__py3-none-any.whl → 1.3.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.1.0.dist-info → tdl_xoa_driver-1.3.0.dist-info}/METADATA +5 -123
- {tdl_xoa_driver-1.1.0.dist-info → tdl_xoa_driver-1.3.0.dist-info}/RECORD +26 -26
- {tdl_xoa_driver-1.1.0.dist-info → tdl_xoa_driver-1.3.0.dist-info}/WHEEL +1 -1
- xoa_driver/__init__.py +2 -2
- xoa_driver/enums.py +2 -0
- xoa_driver/functions/anlt.py +0 -30
- xoa_driver/functions/exceptions.py +7 -0
- xoa_driver/functions/headers.py +312 -11
- xoa_driver/functions/mgmt.py +82 -90
- xoa_driver/functions/tools.py +13 -1
- xoa_driver/internals/commands/c_commands.py +26 -0
- xoa_driver/internals/commands/enums.py +17 -29
- xoa_driver/internals/commands/m_commands.py +35 -7
- xoa_driver/internals/commands/p_commands.py +30 -3
- xoa_driver/internals/commands/pl1_commands.py +96 -71
- xoa_driver/internals/commands/pr_commands.py +0 -8
- xoa_driver/internals/commands/ps_commands.py +0 -2
- xoa_driver/internals/commands/pt_commands.py +0 -6
- xoa_driver/internals/hli_v1/modules/module_chimera.py +17 -12
- xoa_driver/internals/hli_v1/modules/modules_l23/module_l23_base.py +17 -11
- xoa_driver/internals/hli_v1/ports/port_l23/bases/port_l23.py +7 -0
- xoa_driver/internals/hli_v1/ports/port_l23/freya_l1.py +14 -0
- xoa_driver/internals/hli_v1/testers/_base_tester.py +7 -0
- xoa_driver/internals/state_storage/modules_state.py +1 -1
- {tdl_xoa_driver-1.1.0.dist-info → tdl_xoa_driver-1.3.0.dist-info/licenses}/LICENSE +0 -0
- {tdl_xoa_driver-1.1.0.dist-info → tdl_xoa_driver-1.3.0.dist-info}/top_level.txt +0 -0
|
@@ -5053,14 +5053,14 @@ class P_MACSEC_TXSC_REKEY_MODE:
|
|
|
5053
5053
|
"""byte, the rekey mode of the port’s TX SC"""
|
|
5054
5054
|
|
|
5055
5055
|
value: int = field(XmpInt())
|
|
5056
|
-
"""integer, defines the packet
|
|
5056
|
+
"""integer, defines the packet number that triggers the rekey. This value will be ignored if the mode is set to PN_EXHAUSTION"""
|
|
5057
5057
|
|
|
5058
5058
|
class SetDataAttr(RequestBodyStruct):
|
|
5059
5059
|
mode: MACSecRekeyMode = field(XmpByte())
|
|
5060
5060
|
"""byte, the rekey mode of the port’s TX SC"""
|
|
5061
5061
|
|
|
5062
5062
|
value: int = field(XmpInt())
|
|
5063
|
-
"""integer, defines the packet
|
|
5063
|
+
"""integer, defines the packet number that triggers the rekey. This value will be ignored if the mode is set to PN_EXHAUSTION"""
|
|
5064
5064
|
|
|
5065
5065
|
def get(self) -> Token[GetDataAttr]:
|
|
5066
5066
|
"""Get the rekey mode of the port’s TX SC
|
|
@@ -5997,4 +5997,31 @@ class P_MACSEC_RX_ENABLE:
|
|
|
5997
5997
|
|
|
5998
5998
|
set_on = functools.partialmethod(set, OnOff.ON)
|
|
5999
5999
|
"""Enable the RX port MACSec.
|
|
6000
|
-
"""
|
|
6000
|
+
"""
|
|
6001
|
+
|
|
6002
|
+
@register_command
|
|
6003
|
+
@dataclass
|
|
6004
|
+
class P_USED_TPLDID:
|
|
6005
|
+
"""
|
|
6006
|
+
Get the used TPLD IDs from the port. If the port doesn't support TPLD ID traffic, the port will return <NOTSUPPORTED>
|
|
6007
|
+
"""
|
|
6008
|
+
|
|
6009
|
+
code: typing.ClassVar[int] = 319
|
|
6010
|
+
pushed: typing.ClassVar[bool] = False
|
|
6011
|
+
|
|
6012
|
+
_connection: 'interfaces.IConnection'
|
|
6013
|
+
_module: int
|
|
6014
|
+
_port: int
|
|
6015
|
+
|
|
6016
|
+
class GetDataAttr(ResponseBodyStruct):
|
|
6017
|
+
used_tpld_ids: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()]))
|
|
6018
|
+
"""integer list, the used TPLD IDs from the port."""
|
|
6019
|
+
|
|
6020
|
+
def get(self) -> Token[GetDataAttr]:
|
|
6021
|
+
"""Get the used TPLD IDs from the port.
|
|
6022
|
+
|
|
6023
|
+
:return: the used TPLD IDs from the port.
|
|
6024
|
+
:rtype: P_USED_TPLDID.GetDataAttr
|
|
6025
|
+
"""
|
|
6026
|
+
|
|
6027
|
+
return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
|
|
@@ -59,14 +59,7 @@ from .enums import (
|
|
|
59
59
|
@dataclass
|
|
60
60
|
class PL1_AUTONEGINFO:
|
|
61
61
|
"""
|
|
62
|
-
.. versionadded:: 2.0
|
|
63
|
-
|
|
64
|
-
.. warning::
|
|
65
|
-
|
|
66
|
-
Still in beta mode. Subjected to changes
|
|
67
|
-
|
|
68
62
|
Get L1 auto-negotiation information. Information is split into a number of pages.
|
|
69
|
-
|
|
70
63
|
"""
|
|
71
64
|
|
|
72
65
|
code: typing.ClassVar[int] = 385
|
|
@@ -117,12 +110,6 @@ class PL1_AUTONEGINFO:
|
|
|
117
110
|
@dataclass
|
|
118
111
|
class PL1_LINKTRAININFO:
|
|
119
112
|
"""
|
|
120
|
-
.. versionadded:: 2.0
|
|
121
|
-
|
|
122
|
-
.. warning::
|
|
123
|
-
|
|
124
|
-
Still in beta mode. Subjected to changes
|
|
125
|
-
|
|
126
113
|
Get L1 link training information. Information is per Serdes and split into a number of pages.
|
|
127
114
|
"""
|
|
128
115
|
|
|
@@ -304,12 +291,6 @@ class PL1_LINKTRAININFO:
|
|
|
304
291
|
@dataclass
|
|
305
292
|
class PL1_LOG:
|
|
306
293
|
"""
|
|
307
|
-
.. versionadded:: 2.0
|
|
308
|
-
|
|
309
|
-
.. warning::
|
|
310
|
-
|
|
311
|
-
Still in beta mode. Subjected to changes
|
|
312
|
-
|
|
313
294
|
Return a log line of either AN or LT for the given Serdes. The log string line contains the latest 100 lines.
|
|
314
295
|
"""
|
|
315
296
|
|
|
@@ -339,8 +320,6 @@ class PL1_LOG:
|
|
|
339
320
|
@dataclass
|
|
340
321
|
class PL1_CFG_TMP:
|
|
341
322
|
"""
|
|
342
|
-
.. versionadded:: 1.1
|
|
343
|
-
|
|
344
323
|
.. warning::
|
|
345
324
|
|
|
346
325
|
Still in beta mode. Subjected to changes
|
|
@@ -388,8 +367,6 @@ class PL1_CFG_TMP:
|
|
|
388
367
|
@dataclass
|
|
389
368
|
class PL1_LINKTRAIN_CMD:
|
|
390
369
|
"""
|
|
391
|
-
.. versionadded:: 1.1
|
|
392
|
-
|
|
393
370
|
.. warning::
|
|
394
371
|
|
|
395
372
|
Still in beta mode. Subjected to changes
|
|
@@ -440,8 +417,6 @@ class PL1_LINKTRAIN_CMD:
|
|
|
440
417
|
@dataclass
|
|
441
418
|
class PL1_LT_PHYTXEQ_RANGE:
|
|
442
419
|
"""
|
|
443
|
-
.. versionadded:: 2.9
|
|
444
|
-
|
|
445
420
|
Configure the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.
|
|
446
421
|
|
|
447
422
|
"""
|
|
@@ -487,8 +462,6 @@ class PL1_LT_PHYTXEQ_RANGE:
|
|
|
487
462
|
@dataclass
|
|
488
463
|
class PL1_LT_PHYTXEQ_RANGE_COEFF:
|
|
489
464
|
"""
|
|
490
|
-
.. versionadded:: 2.9
|
|
491
|
-
|
|
492
465
|
Configure the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.
|
|
493
466
|
|
|
494
467
|
Whenever <response> == AUTO (the default), min and max will have their default values, which can be read with “get”. Any value that attempt to set the min and max when <response> == AUTO will be ignored by the chassis.
|
|
@@ -559,8 +532,6 @@ class PL1_LT_PHYTXEQ_RANGE_COEFF:
|
|
|
559
532
|
@dataclass
|
|
560
533
|
class PL1_CTRL:
|
|
561
534
|
"""
|
|
562
|
-
.. versionadded:: 2.5
|
|
563
|
-
|
|
564
535
|
The Signal Integrity feature offers the equivalent of an Equivalent Time oscilloscope trace of the RX PAM4 signal (later, also PAM2). The trace is done with the A/D converter in the GTM receiver also doing the data sampling / CDR function, i.e. the trace is taken after the RX equalizer.
|
|
565
536
|
|
|
566
537
|
The HW characteristics of the Versal GTM used in Freya are: Trace length = 2000 samples, sample resolution = 7 bits 2's complement, i.e. range = -64..63.
|
|
@@ -600,8 +571,6 @@ class PL1_CTRL:
|
|
|
600
571
|
@dataclass
|
|
601
572
|
class PL1_GET_DATA:
|
|
602
573
|
"""
|
|
603
|
-
.. versionadded:: 2.5
|
|
604
|
-
|
|
605
574
|
The Signal Integrity feature offers the equivalent of an Equivalent Time oscilloscope trace of the RX PAM4 signal (later, also PAM2). The trace is done with the A/D converter in the GTM receiver also doing the data sampling / CDR function, i.e. the trace is taken after the RX equalizer.
|
|
606
575
|
|
|
607
576
|
The HW characteristics of the Versal GTM used in Freya are: Trace length = 2000 samples, sample resolution = 7 bits 2’s complement, i.e. range = -64..63.
|
|
@@ -664,8 +633,6 @@ class PL1_GET_DATA:
|
|
|
664
633
|
@dataclass
|
|
665
634
|
class PL1_PRESET_CONFIG:
|
|
666
635
|
"""
|
|
667
|
-
.. versionadded:: 2.9
|
|
668
|
-
|
|
669
636
|
Configure the preset values (native values) of a serdes and the response to the received IC request.
|
|
670
637
|
|
|
671
638
|
"""
|
|
@@ -723,8 +690,6 @@ class PL1_PRESET_CONFIG:
|
|
|
723
690
|
@dataclass
|
|
724
691
|
class PL1_PRESET_RESET:
|
|
725
692
|
"""
|
|
726
|
-
.. versionadded:: 2.9
|
|
727
|
-
|
|
728
693
|
Reset the preset of the serdes to its default values.
|
|
729
694
|
|
|
730
695
|
"""
|
|
@@ -753,8 +718,6 @@ class PL1_PRESET_RESET:
|
|
|
753
718
|
@dataclass
|
|
754
719
|
class PL1_PRESET_CONFIG_LEVEL:
|
|
755
720
|
"""
|
|
756
|
-
.. versionadded:: 2.9
|
|
757
|
-
|
|
758
721
|
Configure the preset values (mV/dB values) of a serdes and the response to the received IC request.
|
|
759
722
|
|
|
760
723
|
"""
|
|
@@ -812,8 +775,6 @@ class PL1_PRESET_CONFIG_LEVEL:
|
|
|
812
775
|
@dataclass
|
|
813
776
|
class PL1_PRESET_CONFIG_COEFF:
|
|
814
777
|
"""
|
|
815
|
-
.. versionadded:: 2.9
|
|
816
|
-
|
|
817
778
|
Configure the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.
|
|
818
779
|
|
|
819
780
|
"""
|
|
@@ -871,8 +832,6 @@ class PL1_PRESET_CONFIG_COEFF:
|
|
|
871
832
|
@dataclass
|
|
872
833
|
class PL1_PHYTXEQ_LEVEL:
|
|
873
834
|
"""
|
|
874
|
-
.. versionadded:: 2.5
|
|
875
|
-
|
|
876
835
|
Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage).
|
|
877
836
|
|
|
878
837
|
.. note::
|
|
@@ -927,8 +886,6 @@ class PL1_PHYTXEQ_LEVEL:
|
|
|
927
886
|
@dataclass
|
|
928
887
|
class PL1_PHYTXEQ_COEFF:
|
|
929
888
|
"""
|
|
930
|
-
.. versionadded:: 2.5
|
|
931
|
-
|
|
932
889
|
Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage).
|
|
933
890
|
|
|
934
891
|
.. note::
|
|
@@ -993,8 +950,6 @@ class PL1_PHYTXEQ_COEFF:
|
|
|
993
950
|
@dataclass
|
|
994
951
|
class PL1_AUTONEG_STATUS:
|
|
995
952
|
"""
|
|
996
|
-
.. versionadded:: 2.5
|
|
997
|
-
|
|
998
953
|
Returns received technology abilities, FEC abilities, pause abilities, HCD technology ability, FEC mode result, and pause mode result.
|
|
999
954
|
"""
|
|
1000
955
|
|
|
@@ -1033,8 +988,6 @@ class PL1_AUTONEG_STATUS:
|
|
|
1033
988
|
@dataclass
|
|
1034
989
|
class PL1_AUTONEG_ABILITIES:
|
|
1035
990
|
"""
|
|
1036
|
-
.. versionadded:: 2.5
|
|
1037
|
-
|
|
1038
991
|
Return the supported technology abilities, FEC abilities, and pause abilities of the port.
|
|
1039
992
|
"""
|
|
1040
993
|
|
|
@@ -1063,8 +1016,6 @@ class PL1_AUTONEG_ABILITIES:
|
|
|
1063
1016
|
@dataclass
|
|
1064
1017
|
class PL1_PCS_VARIANT:
|
|
1065
1018
|
"""
|
|
1066
|
-
.. versionadded:: 2.5
|
|
1067
|
-
|
|
1068
1019
|
PCS variant configuration.
|
|
1069
1020
|
"""
|
|
1070
1021
|
|
|
@@ -1097,8 +1048,6 @@ class PL1_PCS_VARIANT:
|
|
|
1097
1048
|
@dataclass
|
|
1098
1049
|
class PL1_CWE_CYCLE:
|
|
1099
1050
|
"""
|
|
1100
|
-
.. versionadded:: 2.7
|
|
1101
|
-
|
|
1102
1051
|
Configure the FEC codeword error injection cycle.
|
|
1103
1052
|
"""
|
|
1104
1053
|
|
|
@@ -1142,8 +1091,6 @@ class PL1_CWE_CYCLE:
|
|
|
1142
1091
|
@dataclass
|
|
1143
1092
|
class PL1_CWE_ERR_SYM_INDICES:
|
|
1144
1093
|
"""
|
|
1145
|
-
.. versionadded:: 2.7
|
|
1146
|
-
|
|
1147
1094
|
Configure the positions of the errored symbols in errored codewords.
|
|
1148
1095
|
"""
|
|
1149
1096
|
|
|
@@ -1193,8 +1140,6 @@ class PL1_CWE_ERR_SYM_INDICES:
|
|
|
1193
1140
|
@dataclass
|
|
1194
1141
|
class PL1_CWE_BIT_ERR_MASK:
|
|
1195
1142
|
"""
|
|
1196
|
-
.. versionadded:: 2.7
|
|
1197
|
-
|
|
1198
1143
|
Configure the bit error mask for the errored symbols.
|
|
1199
1144
|
"""
|
|
1200
1145
|
|
|
@@ -1236,8 +1181,6 @@ class PL1_CWE_BIT_ERR_MASK:
|
|
|
1236
1181
|
@dataclass
|
|
1237
1182
|
class PL1_CWE_FEC_ENGINE:
|
|
1238
1183
|
"""
|
|
1239
|
-
.. versionadded:: 2.7
|
|
1240
|
-
|
|
1241
1184
|
Configure which FEC engines to use.
|
|
1242
1185
|
"""
|
|
1243
1186
|
|
|
@@ -1283,8 +1226,6 @@ class PL1_CWE_FEC_ENGINE:
|
|
|
1283
1226
|
@dataclass
|
|
1284
1227
|
class PL1_CWE_FEC_STATS:
|
|
1285
1228
|
"""
|
|
1286
|
-
.. versionadded:: 2.7
|
|
1287
|
-
|
|
1288
1229
|
FEC error injection statistics.
|
|
1289
1230
|
"""
|
|
1290
1231
|
|
|
@@ -1316,8 +1257,6 @@ class PL1_CWE_FEC_STATS:
|
|
|
1316
1257
|
@dataclass
|
|
1317
1258
|
class PL1_AUTONEG_CONFIG:
|
|
1318
1259
|
"""
|
|
1319
|
-
.. versionadded:: 2.5
|
|
1320
|
-
|
|
1321
1260
|
Auto-negotiation configuration for Freya
|
|
1322
1261
|
"""
|
|
1323
1262
|
|
|
@@ -1350,8 +1289,6 @@ class PL1_AUTONEG_CONFIG:
|
|
|
1350
1289
|
@dataclass
|
|
1351
1290
|
class PL1_ANLT:
|
|
1352
1291
|
"""
|
|
1353
|
-
.. versionadded:: 2.5
|
|
1354
|
-
|
|
1355
1292
|
ANLT action
|
|
1356
1293
|
"""
|
|
1357
1294
|
|
|
@@ -1408,8 +1345,6 @@ class PL1_ANLT:
|
|
|
1408
1345
|
@dataclass
|
|
1409
1346
|
class PL1_PHYTXEQ:
|
|
1410
1347
|
"""
|
|
1411
|
-
.. versionadded:: 2.5
|
|
1412
|
-
|
|
1413
1348
|
Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage).
|
|
1414
1349
|
|
|
1415
1350
|
.. note::
|
|
@@ -1464,8 +1399,6 @@ class PL1_PHYTXEQ:
|
|
|
1464
1399
|
@dataclass
|
|
1465
1400
|
class PL1_LINKTRAIN_CONFIG:
|
|
1466
1401
|
"""
|
|
1467
|
-
.. versionadded:: 2.5
|
|
1468
|
-
|
|
1469
1402
|
Per-port link training settings
|
|
1470
1403
|
"""
|
|
1471
1404
|
|
|
@@ -1528,8 +1461,6 @@ class PL1_LINKTRAIN_STATUS:
|
|
|
1528
1461
|
@dataclass
|
|
1529
1462
|
class PL1_CWE_CONTROL:
|
|
1530
1463
|
"""
|
|
1531
|
-
.. versionadded:: 2.7
|
|
1532
|
-
|
|
1533
1464
|
Control the FEC codeword error injection.
|
|
1534
1465
|
"""
|
|
1535
1466
|
|
|
@@ -1567,8 +1498,6 @@ class PL1_CWE_CONTROL:
|
|
|
1567
1498
|
@dataclass
|
|
1568
1499
|
class PL1_CWE_FEC_STATS_CLEAR:
|
|
1569
1500
|
"""
|
|
1570
|
-
.. versionadded:: 2.7
|
|
1571
|
-
|
|
1572
1501
|
Clear FEC codeword injection TX stats
|
|
1573
1502
|
"""
|
|
1574
1503
|
|
|
@@ -1586,3 +1515,99 @@ class PL1_CWE_FEC_STATS_CLEAR:
|
|
|
1586
1515
|
"""Clear FEC codeword injection TX stats
|
|
1587
1516
|
"""
|
|
1588
1517
|
return Token(self._connection, build_set_request(self, module=self._module, port=self._port))
|
|
1518
|
+
|
|
1519
|
+
|
|
1520
|
+
@register_command
|
|
1521
|
+
@dataclass
|
|
1522
|
+
class PL1_PNSWAP_TX:
|
|
1523
|
+
"""
|
|
1524
|
+
Enable/disable P/N polarity swap of the SerDes in the transmission direction
|
|
1525
|
+
"""
|
|
1526
|
+
|
|
1527
|
+
code: typing.ClassVar[int] = 532
|
|
1528
|
+
pushed: typing.ClassVar[bool] = False
|
|
1529
|
+
|
|
1530
|
+
_connection: 'interfaces.IConnection'
|
|
1531
|
+
_module: int
|
|
1532
|
+
_port: int
|
|
1533
|
+
_serdes_xindex: int
|
|
1534
|
+
|
|
1535
|
+
class GetDataAttr(ResponseBodyStruct):
|
|
1536
|
+
on_off: OnOff = field(XmpByte())
|
|
1537
|
+
|
|
1538
|
+
class SetDataAttr(RequestBodyStruct):
|
|
1539
|
+
on_off: OnOff = field(XmpByte())
|
|
1540
|
+
|
|
1541
|
+
def get(self) -> Token[GetDataAttr]:
|
|
1542
|
+
"""Get the P/N polarity swap setting of the SerDes in the transmission direction.
|
|
1543
|
+
|
|
1544
|
+
:return: P/N polarity swap setting of the SerDes in the transmission direction
|
|
1545
|
+
:rtype: PL1_PNSWAP_TX.GetDataAttr
|
|
1546
|
+
"""
|
|
1547
|
+
|
|
1548
|
+
return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._serdes_xindex]))
|
|
1549
|
+
|
|
1550
|
+
def set(self, on_off: OnOff) -> Token[None]:
|
|
1551
|
+
"""Set the P/N polarity swap setting of the SerDes in the transmission direction.
|
|
1552
|
+
|
|
1553
|
+
:param on_off: P/N polarity swap setting of the SerDes in the transmission direction.
|
|
1554
|
+
:type on_off: OnOff
|
|
1555
|
+
"""
|
|
1556
|
+
|
|
1557
|
+
return Token(self._connection, build_set_request(self, module=self._module, port=self._port, on_off=on_off, indices=[self._serdes_xindex]))
|
|
1558
|
+
|
|
1559
|
+
set_on = functools.partialmethod(set, OnOff.ON)
|
|
1560
|
+
"""Set P/N polarity swap of the SerDes in the transmission direction to ON
|
|
1561
|
+
"""
|
|
1562
|
+
|
|
1563
|
+
set_off = functools.partialmethod(set, OnOff.OFF)
|
|
1564
|
+
"""Set P/N polarity swap of the SerDes in the transmission direction to OFF
|
|
1565
|
+
"""
|
|
1566
|
+
|
|
1567
|
+
|
|
1568
|
+
@register_command
|
|
1569
|
+
@dataclass
|
|
1570
|
+
class PL1_PNSWAP_RX:
|
|
1571
|
+
"""
|
|
1572
|
+
Enable/disable P/N polarity swap of the SerDes in the receiving direction
|
|
1573
|
+
"""
|
|
1574
|
+
|
|
1575
|
+
code: typing.ClassVar[int] = 533
|
|
1576
|
+
pushed: typing.ClassVar[bool] = False
|
|
1577
|
+
|
|
1578
|
+
_connection: 'interfaces.IConnection'
|
|
1579
|
+
_module: int
|
|
1580
|
+
_port: int
|
|
1581
|
+
_serdes_xindex: int
|
|
1582
|
+
|
|
1583
|
+
class GetDataAttr(ResponseBodyStruct):
|
|
1584
|
+
on_off: OnOff = field(XmpByte())
|
|
1585
|
+
|
|
1586
|
+
class SetDataAttr(RequestBodyStruct):
|
|
1587
|
+
on_off: OnOff = field(XmpByte())
|
|
1588
|
+
|
|
1589
|
+
def get(self) -> Token[GetDataAttr]:
|
|
1590
|
+
"""Get the P/N polarity swap setting of the SerDes in the receiving direction.
|
|
1591
|
+
|
|
1592
|
+
:return: P/N polarity swap setting of the SerDes in the receiving direction
|
|
1593
|
+
:rtype: PL1_PNSWAP_RX.GetDataAttr
|
|
1594
|
+
"""
|
|
1595
|
+
|
|
1596
|
+
return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._serdes_xindex]))
|
|
1597
|
+
|
|
1598
|
+
def set(self, on_off: OnOff) -> Token[None]:
|
|
1599
|
+
"""Set the P/N polarity swap setting of the SerDes in the receiving direction.
|
|
1600
|
+
|
|
1601
|
+
:param on_off: P/N polarity swap setting of the SerDes in the receiving direction.
|
|
1602
|
+
:type on_off: OnOff
|
|
1603
|
+
"""
|
|
1604
|
+
|
|
1605
|
+
return Token(self._connection, build_set_request(self, module=self._module, port=self._port, on_off=on_off, indices=[self._serdes_xindex]))
|
|
1606
|
+
|
|
1607
|
+
set_on = functools.partialmethod(set, OnOff.ON)
|
|
1608
|
+
"""Set P/N polarity swap of the SerDes in the receiving direction to ON
|
|
1609
|
+
"""
|
|
1610
|
+
|
|
1611
|
+
set_off = functools.partialmethod(set, OnOff.OFF)
|
|
1612
|
+
"""Set P/N polarity swap of the SerDes in the receiving direction to OFF
|
|
1613
|
+
"""
|
|
@@ -509,8 +509,6 @@ class PR_UAT_TIME:
|
|
|
509
509
|
@dataclass
|
|
510
510
|
class PR_TOTALEXT:
|
|
511
511
|
"""
|
|
512
|
-
.. versionadded: v1.1
|
|
513
|
-
|
|
514
512
|
An extension of :class:`PR_TOTAL` that also includes a calculation of bytes received in the last second, as well as a number of port error counters.
|
|
515
513
|
PR_TOTALEXT returns list of long integers. This list may be expanded in future software releases.
|
|
516
514
|
"""
|
|
@@ -565,8 +563,6 @@ class PR_TOTALEXT:
|
|
|
565
563
|
@dataclass
|
|
566
564
|
class PR_NOTPLDEXT:
|
|
567
565
|
"""
|
|
568
|
-
.. versionadded: v1.1
|
|
569
|
-
|
|
570
566
|
An extension of :class:`PR_NOTPLD` that also includes a calculation of bytes received in the last second.
|
|
571
567
|
PR_NOTPLDEXT returns list of long integers. This list may be expanded in future software releases.
|
|
572
568
|
"""
|
|
@@ -610,8 +606,6 @@ class PR_NOTPLDEXT:
|
|
|
610
606
|
@dataclass
|
|
611
607
|
class PR_TPLDTRAFFICEXT:
|
|
612
608
|
"""
|
|
613
|
-
.. versionadded: v1.1
|
|
614
|
-
|
|
615
609
|
An extension of :class:`PR_TPLDTRAFFIC` that also includes a calculation of bytes received in the last second.
|
|
616
610
|
PR_TPLDTRAFFICEXT returns list of long integers. This list may be expanded in future software releases.
|
|
617
611
|
"""
|
|
@@ -657,8 +651,6 @@ class PR_TPLDTRAFFICEXT:
|
|
|
657
651
|
@dataclass
|
|
658
652
|
class PR_FILTEREXT:
|
|
659
653
|
"""
|
|
660
|
-
.. versionadded: v1.1
|
|
661
|
-
|
|
662
654
|
An extension of :class:`PR_FILTER` that also includes a calculation of bytes received in the last second.
|
|
663
655
|
PR_FILTEREXT returns list of long integers. This list may be expanded in future software releases.
|
|
664
656
|
"""
|
|
@@ -405,8 +405,6 @@ class PS_INSERTFCS:
|
|
|
405
405
|
@dataclass
|
|
406
406
|
class PS_AUTOADJUST:
|
|
407
407
|
"""
|
|
408
|
-
.. versionadded:: v2.0
|
|
409
|
-
|
|
410
408
|
Executing PS_AUTOADJUST will adjust the packet length distribution (:class:`PS_PACKETLENGTH`) of the stream:
|
|
411
409
|
|
|
412
410
|
(1) Set the type of packet length distribution (:class:`PS_PACKETLENGTH` ``<length_type>``) to ``FIXED``.
|
|
@@ -183,8 +183,6 @@ class PT_EXTRA:
|
|
|
183
183
|
@dataclass
|
|
184
184
|
class PT_TOTALEXT:
|
|
185
185
|
"""
|
|
186
|
-
.. versionadded: v1.1
|
|
187
|
-
|
|
188
186
|
An extension to :class:`PT_TOTAL` that also includes a calculation of bytes transmitted in the last second.
|
|
189
187
|
It returns list of long integers; this list may be expanded in future software releases.
|
|
190
188
|
"""
|
|
@@ -224,8 +222,6 @@ class PT_TOTALEXT:
|
|
|
224
222
|
@dataclass
|
|
225
223
|
class PT_NOTPLDEXT:
|
|
226
224
|
"""
|
|
227
|
-
.. versionadded: v1.1
|
|
228
|
-
|
|
229
225
|
An extension to :class:`PT_NOTPLD` that also includes a calculation of bytes transmitted in the last second.
|
|
230
226
|
It returns list of long integers; this list may be expanded in future software releases.
|
|
231
227
|
"""
|
|
@@ -265,8 +261,6 @@ class PT_NOTPLDEXT:
|
|
|
265
261
|
@dataclass
|
|
266
262
|
class PT_STREAMEXT:
|
|
267
263
|
"""
|
|
268
|
-
.. versionadded: v1.1
|
|
269
|
-
|
|
270
264
|
An extension to :class:`PT_STREAM` that also includes a calculation of bytes transmitted in the last second.
|
|
271
265
|
It returns list of long integers; this list may be expanded in future software releases.
|
|
272
266
|
"""
|
|
@@ -23,6 +23,7 @@ from xoa_driver.internals.commands import (
|
|
|
23
23
|
M_CFPCONFIGEXT,
|
|
24
24
|
M_UPGRADEPAR,
|
|
25
25
|
M_VERSIONSTR,
|
|
26
|
+
M_RECONFIG_STATUS,
|
|
26
27
|
)
|
|
27
28
|
|
|
28
29
|
from xoa_driver.internals.hli_v1 import revisions
|
|
@@ -71,13 +72,20 @@ class ChCFP:
|
|
|
71
72
|
|
|
72
73
|
:type: M_CFPTYPE
|
|
73
74
|
"""
|
|
74
|
-
self.config = CfpModule(conn, module)
|
|
75
|
-
"""
|
|
76
|
-
The CFP configuration of the test module.
|
|
77
75
|
|
|
78
|
-
:type: CfpModule
|
|
79
|
-
"""
|
|
80
76
|
|
|
77
|
+
class ChConfig:
|
|
78
|
+
"""Configuration test module (Chimera)."""
|
|
79
|
+
|
|
80
|
+
def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
|
|
81
|
+
self.media = MediaModule(conn, module)
|
|
82
|
+
"""Test module's media type configuration."""
|
|
83
|
+
|
|
84
|
+
self.port_speed = CfpModule(conn, module)
|
|
85
|
+
"""Test module's port speed configuration."""
|
|
86
|
+
|
|
87
|
+
self.status = M_RECONFIG_STATUS(conn, module.module_id)
|
|
88
|
+
"""Test module's configuration status."""
|
|
81
89
|
|
|
82
90
|
class ChUpgrade:
|
|
83
91
|
"""
|
|
@@ -220,13 +228,7 @@ class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
|
|
|
220
228
|
:type: M_VERSIONSTR
|
|
221
229
|
"""
|
|
222
230
|
|
|
223
|
-
self.
|
|
224
|
-
"""Test module's media type.
|
|
225
|
-
|
|
226
|
-
:type: MediaModule
|
|
227
|
-
"""
|
|
228
|
-
|
|
229
|
-
self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
|
|
231
|
+
self.supported_configs = M_MEDIASUPPORT(conn, self.module_id)
|
|
230
232
|
"""Test module's available speeds.
|
|
231
233
|
|
|
232
234
|
:type: M_MEDIASUPPORT
|
|
@@ -238,6 +240,9 @@ class ModuleChimera(bm.BaseModule["modules_state.ModuleLocalState"]):
|
|
|
238
240
|
:type: M_NAME
|
|
239
241
|
"""
|
|
240
242
|
|
|
243
|
+
self.config = ChConfig(conn, self)
|
|
244
|
+
"""Test module's configuration."""
|
|
245
|
+
|
|
241
246
|
self.ports: pm.PortsManager["ports.PortChimera"] = pm.PortsManager(
|
|
242
247
|
conn=conn,
|
|
243
248
|
ports_type=ports.PortChimera,
|
|
@@ -29,6 +29,7 @@ from xoa_driver.internals.commands import (
|
|
|
29
29
|
M_TXCLOCKFILTER_NEW,
|
|
30
30
|
M_UPGRADEPAR,
|
|
31
31
|
M_VERSIONSTR,
|
|
32
|
+
M_RECONFIG_STATUS,
|
|
32
33
|
)
|
|
33
34
|
|
|
34
35
|
from xoa_driver.internals.utils import attributes as utils
|
|
@@ -161,12 +162,20 @@ class CFP:
|
|
|
161
162
|
:type: M_CFPTYPE
|
|
162
163
|
"""
|
|
163
164
|
|
|
164
|
-
self.config = CfpModule(conn, module)
|
|
165
|
-
"""The CFP configuration of the test module.
|
|
166
165
|
|
|
167
|
-
:type: CfpModule
|
|
168
|
-
"""
|
|
169
166
|
|
|
167
|
+
class ModuleConfig:
|
|
168
|
+
"""Test module CFP"""
|
|
169
|
+
|
|
170
|
+
def __init__(self, conn: "itf.IConnection", module: typing.Union["ModuleL23", "ModuleChimera"]) -> None:
|
|
171
|
+
self.media = MediaModule(conn, module)
|
|
172
|
+
"""Test module's media type configuration."""
|
|
173
|
+
|
|
174
|
+
self.port_speed = CfpModule(conn, module)
|
|
175
|
+
"""Test module's port speed configuration."""
|
|
176
|
+
|
|
177
|
+
self.status = M_RECONFIG_STATUS(conn, module.module_id)
|
|
178
|
+
"""Test module's configuration status."""
|
|
170
179
|
|
|
171
180
|
class MTiming:
|
|
172
181
|
"""Test module timing and clock configuration"""
|
|
@@ -249,13 +258,7 @@ class ModuleL23(bm.BaseModule["modules_state.ModuleL23LocalState"]):
|
|
|
249
258
|
:type: M_STATUS
|
|
250
259
|
"""
|
|
251
260
|
|
|
252
|
-
self.
|
|
253
|
-
"""Test module's media type.
|
|
254
|
-
|
|
255
|
-
:type: ModuleMedia
|
|
256
|
-
"""
|
|
257
|
-
|
|
258
|
-
self.available_speeds = M_MEDIASUPPORT(conn, self.module_id)
|
|
261
|
+
self.supported_configs = M_MEDIASUPPORT(conn, self.module_id)
|
|
259
262
|
"""Test module's available speeds.
|
|
260
263
|
|
|
261
264
|
:type: M_MEDIASUPPORT
|
|
@@ -303,6 +306,9 @@ class ModuleL23(bm.BaseModule["modules_state.ModuleL23LocalState"]):
|
|
|
303
306
|
:type: CFP
|
|
304
307
|
"""
|
|
305
308
|
|
|
309
|
+
self.config = ModuleConfig(conn, self)
|
|
310
|
+
"""Test module's configuration."""
|
|
311
|
+
|
|
306
312
|
self.upgrade = MUpgrade(conn, self.module_id)
|
|
307
313
|
"""Test module's upgrade settings.
|
|
308
314
|
|
|
@@ -51,6 +51,7 @@ from xoa_driver.internals.commands import (
|
|
|
51
51
|
P_TXBURSTPERIOD,
|
|
52
52
|
P_CAPABILITIES_EXT,
|
|
53
53
|
P_IGMPV3_GROUP_RECORD_BUNDLE,
|
|
54
|
+
P_USED_TPLDID,
|
|
54
55
|
)
|
|
55
56
|
if typing.TYPE_CHECKING:
|
|
56
57
|
from xoa_driver.internals.core import interfaces as itf
|
|
@@ -520,6 +521,12 @@ class BasePortL23(base_port.BasePort[ports_state.PortL23LocalState]):
|
|
|
520
521
|
:type: MatchTermIndices
|
|
521
522
|
"""
|
|
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
|
+
|
|
523
530
|
on_speed_change = functools.partialmethod(utils.on_event, P_SPEED)
|
|
524
531
|
"""Register a callback to the event that the port's speed changes."""
|
|
525
532
|
|
|
@@ -41,6 +41,8 @@ from xoa_driver.internals.commands import (
|
|
|
41
41
|
PL1_PRESET_CONFIG_LEVEL,
|
|
42
42
|
PL1_PRESET_RESET,
|
|
43
43
|
PP_PRBSTYPE,
|
|
44
|
+
PL1_PNSWAP_RX,
|
|
45
|
+
PL1_PNSWAP_TX,
|
|
44
46
|
)
|
|
45
47
|
from .pcs_pma_ghijkl import (
|
|
46
48
|
Prbs,
|
|
@@ -63,6 +65,18 @@ class FreyaPMA:
|
|
|
63
65
|
:type: PP_GRAYCODING
|
|
64
66
|
"""
|
|
65
67
|
|
|
68
|
+
self.pn_swap_rx = PL1_PNSWAP_RX(conn, module_id, port_id, serdes_xindex)
|
|
69
|
+
"""GET/SET PN-Swap RX Configurations. (only for Freya)
|
|
70
|
+
|
|
71
|
+
:type: PL1_PNSWAP_RX
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
self.pn_swap_tx = PL1_PNSWAP_TX(conn, module_id, port_id, serdes_xindex)
|
|
75
|
+
"""GET/SET PN-Swap TX Configurations. (only for Freya)
|
|
76
|
+
|
|
77
|
+
:type: PL1_PNSWAP_TX
|
|
78
|
+
"""
|
|
79
|
+
|
|
66
80
|
class FreyaSIV:
|
|
67
81
|
"""Freya Signal Integrity View"""
|
|
68
82
|
|
|
@@ -29,6 +29,7 @@ from xoa_driver.internals.commands import (
|
|
|
29
29
|
C_FLASH,
|
|
30
30
|
C_MODEL_NAME,
|
|
31
31
|
C_MODEL_NUMBER,
|
|
32
|
+
C_USED_TPLDID,
|
|
32
33
|
)
|
|
33
34
|
from xoa_driver.internals.core.funcs import establish_connection
|
|
34
35
|
from xoa_driver.internals.core.transporter.handler import TransportationHandler
|
|
@@ -173,6 +174,12 @@ class BaseTester(ABC, Generic[TesterStateStorage]):
|
|
|
173
174
|
:type: C_FLASH
|
|
174
175
|
"""
|
|
175
176
|
|
|
177
|
+
self.used_tpld_ids = C_USED_TPLDID(self._conn)
|
|
178
|
+
"""Tester's used TPLD IDs.
|
|
179
|
+
|
|
180
|
+
:type: C_USED_TPLDID
|
|
181
|
+
"""
|
|
182
|
+
|
|
176
183
|
async def __aenter__(self: Awaitable[T]) -> T:
|
|
177
184
|
return await self
|
|
178
185
|
|
|
@@ -80,7 +80,7 @@ class MediaInfo:
|
|
|
80
80
|
:rtype: MediaConfigurationType
|
|
81
81
|
"""
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
supported_configs: List["ModuleSpeed"] = field(default_factory=list)
|
|
84
84
|
"""List of module's port-speed information
|
|
85
85
|
|
|
86
86
|
:return: list of module's port-speed information
|
|
File without changes
|
|
File without changes
|