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.
@@ -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 count. This value will be ignored if the mode is set to PN_EXHAUSTION"""
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 count. This value will be ignored if the mode is set to PN_EXHAUSTION"""
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.media = MediaModule(conn, 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.media = MediaModule(conn, 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
- available_speeds: List["ModuleSpeed"] = field(default_factory=list)
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