tdl-xoa-driver 1.5.1__py3-none-any.whl → 1.6.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.
Files changed (110) hide show
  1. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.0.dist-info}/METADATA +1 -1
  2. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.0.dist-info}/RECORD +89 -88
  3. xoa_driver/__init__.py +2 -2
  4. xoa_driver/enums.py +10 -10
  5. xoa_driver/functions/anlt.py +60 -78
  6. xoa_driver/functions/cli/testbed_config.py +1 -1
  7. xoa_driver/functions/cmis/_replies.py +4 -4
  8. xoa_driver/functions/mgmt.py +206 -250
  9. xoa_driver/functions/tools.py +11 -6
  10. xoa_driver/internals/commands/c_commands.py +59 -0
  11. xoa_driver/internals/commands/enums.py +101 -90
  12. xoa_driver/internals/commands/m4_commands.py +25 -0
  13. xoa_driver/internals/commands/m4e_commands.py +6 -0
  14. xoa_driver/internals/commands/m_commands.py +51 -1
  15. xoa_driver/internals/commands/p4_commands.py +63 -1
  16. xoa_driver/internals/commands/p4e_commands.py +9 -0
  17. xoa_driver/internals/commands/p4g_commands.py +139 -0
  18. xoa_driver/internals/commands/p_commands.py +455 -61
  19. xoa_driver/internals/commands/pc_commands.py +9 -0
  20. xoa_driver/internals/commands/pd_commands.py +11 -0
  21. xoa_driver/internals/commands/pe_commands.py +27 -0
  22. xoa_driver/internals/commands/pec_commands.py +9 -0
  23. xoa_driver/internals/commands/ped_commands.py +23 -0
  24. xoa_driver/internals/commands/pef_commands.py +43 -0
  25. xoa_driver/internals/commands/pf_commands.py +11 -0
  26. xoa_driver/internals/commands/pl1_commands.py +315 -48
  27. xoa_driver/internals/commands/pl_commands.py +8 -0
  28. xoa_driver/internals/commands/pm_commands.py +11 -0
  29. xoa_driver/internals/commands/pp_commands.py +84 -27
  30. xoa_driver/internals/commands/pr_commands.py +25 -0
  31. xoa_driver/internals/commands/ps_commands.py +47 -1
  32. xoa_driver/internals/commands/pt_commands.py +15 -0
  33. xoa_driver/internals/commands/px_commands.py +180 -136
  34. xoa_driver/internals/commands/subtypes.py +4 -3
  35. xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +1 -1
  36. xoa_driver/internals/hli/indices/macsecscs/base_macsecsc.py +41 -3
  37. xoa_driver/internals/hli/modules/modules_l23/family_combi.py +0 -64
  38. xoa_driver/internals/hli/modules/modules_l23/family_edun.py +0 -2
  39. xoa_driver/internals/hli/modules/modules_l23/{family_g.py → family_loki.py} +29 -1
  40. xoa_driver/internals/hli/modules/modules_l23/family_odin.py +412 -0
  41. xoa_driver/internals/hli/modules/modules_l23/{family_l.py → family_thor.py} +44 -0
  42. xoa_driver/internals/hli/ports/port_l23/chimera/port_chimera.py +3 -3
  43. xoa_driver/internals/hli/ports/port_l23/family_edun.py +9 -44
  44. xoa_driver/internals/hli/ports/port_l23/{family_l1.py → family_freya.py} +10 -45
  45. xoa_driver/internals/hli/ports/port_l23/{family_g.py → family_loki.py} +33 -32
  46. xoa_driver/internals/hli/ports/port_l23/family_odin.py +225 -0
  47. xoa_driver/internals/hli/ports/port_l23/family_thor.py +67 -0
  48. xoa_driver/internals/hli/ports/port_l23/layer1/anlt.py +512 -0
  49. xoa_driver/internals/hli/ports/port_l23/layer1/brr.py +26 -0
  50. xoa_driver/internals/hli/ports/port_l23/layer1/eye_diagram.py +71 -0
  51. xoa_driver/internals/hli/ports/port_l23/{pcs_pma_ijkl_chimera.py → layer1/impair.py} +7 -7
  52. xoa_driver/internals/hli/ports/port_l23/layer1/laser_power.py +28 -0
  53. xoa_driver/internals/hli/ports/port_l23/{family_e.py → layer1/lower_power.py} +1 -51
  54. xoa_driver/internals/hli/ports/port_l23/{freya_l1.py → layer1/medium.py} +38 -358
  55. xoa_driver/internals/hli/ports/port_l23/layer1/pcs_fec.py +219 -0
  56. xoa_driver/internals/hli/ports/port_l23/layer1/pma.py +43 -0
  57. xoa_driver/internals/hli/ports/port_l23/layer1/prbs.py +39 -0
  58. xoa_driver/internals/hli/ports/port_l23/layer1/preamble.py +25 -0
  59. xoa_driver/internals/hli/ports/port_l23/{fault_jkl.py → layer1/rs_fault.py} +2 -2
  60. xoa_driver/internals/hli/ports/port_l23/layer1/siv.py +69 -0
  61. xoa_driver/internals/hli/ports/port_l23/layer1_edun.py +103 -0
  62. xoa_driver/internals/hli/ports/port_l23/layer1_freya.py +103 -0
  63. xoa_driver/internals/hli/ports/port_l23/layer1_loki.py +74 -0
  64. xoa_driver/internals/hli/ports/port_l23/layer1_thor.py +70 -0
  65. xoa_driver/internals/hli/ports/port_l23/port_l23ve.py +4 -4
  66. xoa_driver/internals/hli/ports/port_l23/sec/__init__.py +0 -0
  67. xoa_driver/internals/hli/ports/port_l23/sec/macsec.py +108 -0
  68. xoa_driver/internals/hli/ports/port_l23/tcvr/__init__.py +0 -0
  69. xoa_driver/internals/hli/ports/port_l23/{bases/port_transceiver.py → tcvr/cmis.py} +4 -118
  70. xoa_driver/internals/hli/ports/port_l23/tcvr/transceiver.py +124 -0
  71. xoa_driver/internals/hli/ports/port_l23/trafficgen/__init__.py +0 -0
  72. xoa_driver/internals/hli/ports/port_l23/{bases → trafficgen}/port_l23.py +1 -1
  73. xoa_driver/internals/hli/ports/port_l23/{bases → trafficgen}/port_l23_genuine.py +5 -45
  74. xoa_driver/internals/hli/ports/port_l23/{bases/port_reception_statistics.py → trafficgen/port_rx_stats.py} +0 -21
  75. xoa_driver/internals/hli/ports/port_l23/{bases/port_transmission_statistics.py → trafficgen/port_tx_stats.py} +2 -22
  76. xoa_driver/internals/hli/ports/port_l23/trafficgen/runt.py +32 -0
  77. xoa_driver/internals/hli/testers/l23_tester.py +1 -3
  78. xoa_driver/internals/utils/indices/_interfaces.py +18 -6
  79. xoa_driver/internals/utils/indices/index_manager.py +8 -2
  80. xoa_driver/internals/utils/managers/ports_manager.py +5 -2
  81. xoa_driver/misc.py +6 -6
  82. xoa_driver/modules.py +31 -47
  83. xoa_driver/ports.py +10 -29
  84. xoa_driver/internals/hli/modules/modules_l23/family_d.py +0 -75
  85. xoa_driver/internals/hli/modules/modules_l23/family_e.py +0 -85
  86. xoa_driver/internals/hli/modules/modules_l23/family_f.py +0 -145
  87. xoa_driver/internals/hli/modules/modules_l23/family_h.py +0 -40
  88. xoa_driver/internals/hli/modules/modules_l23/family_i.py +0 -25
  89. xoa_driver/internals/hli/modules/modules_l23/family_j.py +0 -25
  90. xoa_driver/internals/hli/modules/modules_l23/family_k.py +0 -39
  91. xoa_driver/internals/hli/modules/modules_l23/family_m.py +0 -25
  92. xoa_driver/internals/hli/modules/modules_l23/family_n.py +0 -40
  93. xoa_driver/internals/hli/ports/port_l23/edun_l1.py +0 -181
  94. xoa_driver/internals/hli/ports/port_l23/family_combi.py +0 -37
  95. xoa_driver/internals/hli/ports/port_l23/family_d.py +0 -51
  96. xoa_driver/internals/hli/ports/port_l23/family_f.py +0 -151
  97. xoa_driver/internals/hli/ports/port_l23/family_h.py +0 -67
  98. xoa_driver/internals/hli/ports/port_l23/family_i.py +0 -84
  99. xoa_driver/internals/hli/ports/port_l23/family_j.py +0 -68
  100. xoa_driver/internals/hli/ports/port_l23/family_k.py +0 -73
  101. xoa_driver/internals/hli/ports/port_l23/family_l.py +0 -82
  102. xoa_driver/internals/hli/ports/port_l23/family_m.py +0 -29
  103. xoa_driver/internals/hli/ports/port_l23/pcs_pma_ghijkl.py +0 -369
  104. xoa_driver/internals/hli/ports/port_l23/pcs_pma_l.py +0 -78
  105. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.0.dist-info}/WHEEL +0 -0
  106. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.0.dist-info}/licenses/LICENSE +0 -0
  107. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.0.dist-info}/top_level.txt +0 -0
  108. /xoa_driver/internals/hli/modules/modules_l23/{family_l1.py → family_freya.py} +0 -0
  109. /xoa_driver/internals/hli/ports/port_l23/{bases → layer1}/__init__.py +0 -0
  110. /xoa_driver/internals/hli/ports/port_l23/{bases → trafficgen}/port_capture.py +0 -0
@@ -1,3 +1,4 @@
1
+ """Port Commands"""
1
2
  from __future__ import annotations
2
3
  from dataclasses import dataclass
3
4
  import ipaddress
@@ -28,8 +29,8 @@ from xoa_driver.internals.core.transporter.protocol.payload import (
28
29
  Hex,
29
30
  )
30
31
  from .subtypes import (
31
- ArpChunk,
32
- NdpChunk,
32
+ ArpEntry,
33
+ NdpEntry,
33
34
  )
34
35
  from .enums import (
35
36
  ReservedStatus,
@@ -199,6 +200,11 @@ class P_CAPABILITIES:
199
200
  _module: int
200
201
  _port: int
201
202
 
203
+ def __init__(self, conn: 'interfaces.IConnection', module_id: int, port_id: int) -> None:
204
+ self._connection = conn
205
+ self._module = module_id
206
+ self._port = port_id
207
+
202
208
  class GetDataAttr(ResponseBodyStruct):
203
209
  max_speed: int = field(XmpInt())
204
210
  """integer, max wire speed in Mbps, for fastest transceiver and mode"""
@@ -641,7 +647,7 @@ class P_CAPABILITIES:
641
647
  """min-value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
642
648
 
643
649
 
644
- def get(self) -> Token[GetDataAttr]:
650
+ def get(self) -> Token[P_CAPABILITIES.GetDataAttr]:
645
651
  """Get the internal limits, aka. capabilities, of the port.
646
652
 
647
653
  :return: the internal limits, aka. capabilities, of the port.
@@ -2332,10 +2338,10 @@ class P_ARPRXTABLE:
2332
2338
  _port: int
2333
2339
 
2334
2340
  class GetDataAttr(ResponseBodyStruct):
2335
- chunks: typing.List[ArpChunk] = field(XmpSequence(types_chunk=[XmpIPv4Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2341
+ entries: typing.List[ArpEntry] = field(XmpSequence(types_chunk=[XmpIPv4Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2336
2342
 
2337
2343
  class SetDataAttr(RequestBodyStruct):
2338
- chunks: typing.List[ArpChunk] = field(XmpSequence(types_chunk=[XmpIPv4Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2344
+ entries: typing.List[ArpEntry] = field(XmpSequence(types_chunk=[XmpIPv4Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2339
2345
 
2340
2346
  def get(self) -> Token[GetDataAttr]:
2341
2347
  """Get the port's ARP table used to reply to incoming ARP requests.
@@ -2350,18 +2356,18 @@ class P_ARPRXTABLE:
2350
2356
 
2351
2357
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
2352
2358
 
2353
- def set(self, chunks: typing.List[ArpChunk]) -> Token[None]:
2359
+ def set(self, entries: typing.List[ArpEntry]) -> Token[None]:
2354
2360
  """Set the port's ARP table used to reply to incoming ARP requests.
2355
2361
 
2356
- :param chunks:
2362
+ :param entries:
2357
2363
  * IP address to match to the Target IP address in the ARP requests
2358
2364
  * The prefix used for address matching
2359
2365
  * Whether the target MAC address will be patched with the part of the IP address that is not masked by the prefix
2360
2366
  * The target MAC address to return in the ARP reply
2361
- :type chunks: typing.List[subtypes.ArpChunkList]
2367
+ :type entries: typing.List[subtypes.ArpChunkList]
2362
2368
  """
2363
2369
 
2364
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, chunks=chunks))
2370
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, entries=entries))
2365
2371
 
2366
2372
 
2367
2373
  @register_command
@@ -2379,10 +2385,10 @@ class P_NDPRXTABLE:
2379
2385
  _port: int
2380
2386
 
2381
2387
  class GetDataAttr(ResponseBodyStruct):
2382
- chunks: typing.List[NdpChunk] = field(XmpSequence(types_chunk=[XmpIPv6Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2388
+ entries: typing.List[NdpEntry] = field(XmpSequence(types_chunk=[XmpIPv6Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2383
2389
 
2384
2390
  class SetDataAttr(RequestBodyStruct):
2385
- chunks: typing.List[NdpChunk] = field(XmpSequence(types_chunk=[XmpIPv6Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2391
+ entries: typing.List[NdpEntry] = field(XmpSequence(types_chunk=[XmpIPv6Address(), XmpShort(), XmpByte(), XmpMacAddress()]))
2386
2392
 
2387
2393
  def get(self) -> Token[GetDataAttr]:
2388
2394
  """Get the port's NDP table used to reply to incoming NDP Neighbor Solicitation.
@@ -2397,19 +2403,18 @@ class P_NDPRXTABLE:
2397
2403
 
2398
2404
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
2399
2405
 
2400
- def set(self, chunks: typing.List[NdpChunk]) -> Token[None]:
2406
+ def set(self, entries: typing.List[NdpEntry]) -> Token[None]:
2401
2407
  """Set the port's NDP table used to reply to incoming NDP Neighbor Solicitation.
2402
2408
 
2403
- :param chunks:
2409
+ :param entries:
2404
2410
  * IP address to match to the Target IP address in the NDP Neighbor Solicitation
2405
2411
  * The prefix used for address matching
2406
2412
  * Whether the target MAC address will be patched with the part of the IP address that is not masked by the prefix
2407
2413
  * The target MAC address to return in the NDP Neighbor Advertisement
2408
- :type chunks: typing.List[subtypes.NdpChunkList]
2414
+ :type entries: typing.List[subtypes.NdpChunkList]
2409
2415
  """
2410
2416
 
2411
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, chunks=chunks))
2412
-
2417
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, entries=entries))
2413
2418
 
2414
2419
  @register_command
2415
2420
  @dataclass
@@ -4986,14 +4991,14 @@ class P_MACSEC_TXSC_STARTING_PN:
4986
4991
  _txsc_index: int
4987
4992
 
4988
4993
  class GetDataAttr(ResponseBodyStruct):
4989
- start: int = field(XmpLong())
4994
+ starting_pn: int = field(XmpLong())
4990
4995
  """integer, the starting PN number. Default to 1, maximum 2^64. Allowed to be 0."""
4991
4996
 
4992
4997
  mode: MACSecPNMode = field(XmpByte())
4993
4998
  """byte, defining how to continue the TX PN after the start-traffic. Default to CONTINUOUS."""
4994
4999
 
4995
5000
  class SetDataAttr(RequestBodyStruct):
4996
- start: int = field(XmpLong())
5001
+ starting_pn: int = field(XmpLong())
4997
5002
  """integer, the starting PN number. Default to 1, maximum 2^64. Allowed to be 0."""
4998
5003
 
4999
5004
  mode: MACSecPNMode = field(XmpByte())
@@ -5007,15 +5012,15 @@ class P_MACSEC_TXSC_STARTING_PN:
5007
5012
  """
5008
5013
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
5009
5014
 
5010
- def set(self, start: int, mode: MACSecPNMode) -> Token[None]:
5015
+ def set(self, starting_pn: int, mode: MACSecPNMode) -> Token[None]:
5011
5016
  """Set the starting PN number. Default to 1, maximum 2^64. Allowed to be 0.
5012
5017
 
5013
- :param start: the starting PN number. Default to 1, maximum 2^64.
5014
- :type start: int
5018
+ :param starting_pn: the starting PN number. Default to 1, maximum 2^64.
5019
+ :type starting_pn: int
5015
5020
  :param mode: defining how to continue the TX PN after the start-traffic.
5016
5021
  :type mode: MACSecPNMode
5017
5022
  """
5018
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], start=start, mode=mode))
5023
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], starting_pn=starting_pn, mode=mode))
5019
5024
 
5020
5025
 
5021
5026
  # @register_command
@@ -5221,11 +5226,11 @@ class P_MACSEC_TXSC_XPN_SSCI:
5221
5226
  _txsc_index: int
5222
5227
 
5223
5228
  class GetDataAttr(ResponseBodyStruct):
5224
- ssci: Hex = field(XmpHex(size=4))
5229
+ xpn_ssci: Hex = field(XmpHex(size=4))
5225
5230
  """hex 4 bytes, The XPN Short SCI of the port's TX SC when XPN cipher suite is in use"""
5226
5231
 
5227
5232
  class SetDataAttr(RequestBodyStruct):
5228
- ssci: Hex = field(XmpHex(size=4))
5233
+ xpn_ssci: Hex = field(XmpHex(size=4))
5229
5234
  """hex 4 bytes, The XPN Short SCI of the port's TX SC when XPN cipher suite is in use"""
5230
5235
 
5231
5236
  def get(self) -> Token[GetDataAttr]:
@@ -5236,13 +5241,13 @@ class P_MACSEC_TXSC_XPN_SSCI:
5236
5241
  """
5237
5242
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
5238
5243
 
5239
- def set(self, ssci: Hex) -> Token[None]:
5244
+ def set(self, xpn_ssci: Hex) -> Token[None]:
5240
5245
  """Set the XPN Short SCI of the port's TX SC when XPN cipher suite is in use
5241
5246
 
5242
- :param ssci: the XPN Short SCI of the port's TX SC when XPN cipher suite is in use
5243
- :type ssci: int
5247
+ :param xpn_ssci: the XPN Short SCI of the port's TX SC when XPN cipher suite is in use
5248
+ :type xpn_ssci: int
5244
5249
  """
5245
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], ssci=ssci))
5250
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], xpn_ssci=xpn_ssci))
5246
5251
 
5247
5252
 
5248
5253
  @register_command
@@ -5261,11 +5266,11 @@ class P_MACSEC_TXSC_XPN_SALT:
5261
5266
  _txsc_index: int
5262
5267
 
5263
5268
  class GetDataAttr(ResponseBodyStruct):
5264
- salt: Hex = field(XmpHex(size=12))
5269
+ xpn_salt: Hex = field(XmpHex(size=12))
5265
5270
  """hex 12 bytes, XPN salt of the port's TX SC when XPN cipher suite is in use."""
5266
5271
 
5267
5272
  class SetDataAttr(RequestBodyStruct):
5268
- salt: Hex = field(XmpHex(size=12))
5273
+ xpn_salt: Hex = field(XmpHex(size=12))
5269
5274
  """hex 12 bytes, XPN salt of the port's TX SC when XPN cipher suite is in use."""
5270
5275
 
5271
5276
  def get(self) -> Token[GetDataAttr]:
@@ -5276,13 +5281,13 @@ class P_MACSEC_TXSC_XPN_SALT:
5276
5281
  """
5277
5282
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
5278
5283
 
5279
- def set(self, salt: Hex) -> Token[None]:
5284
+ def set(self, xpn_salt: Hex) -> Token[None]:
5280
5285
  """Set XPN salt of the port's TX SC when XPN cipher suite is in use.
5281
5286
 
5282
- :param salt: XPN salt of the port's TX SC when XPN cipher suite is in use.
5283
- :type salt: int
5287
+ :param xpn_salt: XPN salt of the port's TX SC when XPN cipher suite is in use.
5288
+ :type xpn_salt: int
5284
5289
  """
5285
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], salt=salt))
5290
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], xpn_salt=xpn_salt))
5286
5291
 
5287
5292
 
5288
5293
  @register_command
@@ -5555,9 +5560,9 @@ class P_MACSEC_RXSC_CIPHERSUITE:
5555
5560
 
5556
5561
  @register_command
5557
5562
  @dataclass
5558
- class P_MACSEC_RXSC_STARTING_PN:
5563
+ class P_MACSEC_RXSC_LOWEST_PN:
5559
5564
  """
5560
- The first PN number of the port’s RX SC expects to receive.
5565
+ The lowest PN number of the port’s RX SC expects to receive.
5561
5566
  """
5562
5567
 
5563
5568
  code: typing.ClassVar[int] = 511
@@ -5569,28 +5574,29 @@ class P_MACSEC_RXSC_STARTING_PN:
5569
5574
  _rxsc_index: int
5570
5575
 
5571
5576
  class GetDataAttr(ResponseBodyStruct):
5572
- value: int = field(XmpLong())
5573
- """integer, The first PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
5577
+ lowest_pn: Hex = field(XmpHex(size=8))
5578
+ """hex, The lowest PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
5574
5579
 
5575
5580
  class SetDataAttr(RequestBodyStruct):
5576
- value: int = field(XmpLong())
5577
- """integer, The first PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
5581
+ lowest_pn: Hex = field(XmpHex(size=8))
5582
+ """hex, The lowest PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
5583
+
5578
5584
 
5579
5585
  def get(self) -> Token[GetDataAttr]:
5580
- """Get the first PN number of the port’s RX SC expects to receive
5586
+ """Get the lowest PN number of the port’s RX SC expects to receive
5581
5587
 
5582
- :return: the first PN number of the port’s RX SC expects to receive
5583
- :rtype: P_MACSEC_RXSC_STARTING_PN.GetDataAttr
5588
+ :return: the lowest PN number of the port’s RX SC expects to receive
5589
+ :rtype: P_MACSEC_RXSC_LOWEST_PN.GetDataAttr
5584
5590
  """
5585
5591
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
5586
5592
 
5587
- def set(self, value: int) -> Token[None]:
5588
- """Set the first PN number of the port’s RX SC expects to receive
5593
+ def set(self, lowest_pn: int) -> Token[None]:
5594
+ """Set the lowest PN number of the port’s RX SC expects to receive
5589
5595
 
5590
- :param start: The first PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64.
5591
- :type start: int
5596
+ :param lowest_pn: The lowest PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64.
5597
+ :type lowest_pn: int
5592
5598
  """
5593
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], value=value))
5599
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], lowest_pn=lowest_pn))
5594
5600
 
5595
5601
 
5596
5602
  @register_command
@@ -5690,11 +5696,11 @@ class P_MACSEC_RXSC_XPN_SSCI:
5690
5696
  _rxsc_index: int
5691
5697
 
5692
5698
  class GetDataAttr(ResponseBodyStruct):
5693
- ssci: Hex = field(XmpHex(size=4))
5699
+ xpn_ssci: Hex = field(XmpHex(size=4))
5694
5700
  """hex 4 bytes, The XPN Short SCI of the port's RX SC when XPN cipher suite is in use"""
5695
5701
 
5696
5702
  class SetDataAttr(RequestBodyStruct):
5697
- ssci: Hex = field(XmpHex(size=4))
5703
+ xpn_ssci: Hex = field(XmpHex(size=4))
5698
5704
  """hex 4 bytes, The XPN Short SCI of the port's RX SC when XPN cipher suite is in use"""
5699
5705
 
5700
5706
  def get(self) -> Token[GetDataAttr]:
@@ -5705,13 +5711,13 @@ class P_MACSEC_RXSC_XPN_SSCI:
5705
5711
  """
5706
5712
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
5707
5713
 
5708
- def set(self, ssci: Hex) -> Token[None]:
5714
+ def set(self, xpn_ssci: Hex) -> Token[None]:
5709
5715
  """Set the XPN Short SCI of the port's RX SC when XPN cipher suite is in use
5710
5716
 
5711
- :param ssci: the XPN Short SCI of the port's RX SC when XPN cipher suite is in use
5712
- :type ssci: int
5717
+ :param xpn_ssci: the XPN Short SCI of the port's RX SC when XPN cipher suite is in use
5718
+ :type xpn_ssci: int
5713
5719
  """
5714
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], ssci=ssci))
5720
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], xpn_ssci=xpn_ssci))
5715
5721
 
5716
5722
 
5717
5723
  @register_command
@@ -5730,11 +5736,11 @@ class P_MACSEC_RXSC_XPN_SALT:
5730
5736
  _rxsc_index: int
5731
5737
 
5732
5738
  class GetDataAttr(ResponseBodyStruct):
5733
- salt: Hex = field(XmpHex(size=12))
5739
+ xpn_salt: Hex = field(XmpHex(size=12))
5734
5740
  """hex 12 bytes, XPN salt of the port's RX SC when XPN cipher suite is in use."""
5735
5741
 
5736
5742
  class SetDataAttr(RequestBodyStruct):
5737
- salt: Hex = field(XmpHex(size=12))
5743
+ xpn_salt: Hex = field(XmpHex(size=12))
5738
5744
  """hex 12 bytes, XPN salt of the port's RX SC when XPN cipher suite is in use."""
5739
5745
 
5740
5746
  def get(self) -> Token[GetDataAttr]:
@@ -5745,13 +5751,13 @@ class P_MACSEC_RXSC_XPN_SALT:
5745
5751
  """
5746
5752
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
5747
5753
 
5748
- def set(self, salt: Hex) -> Token[None]:
5754
+ def set(self, xpn_salt: Hex) -> Token[None]:
5749
5755
  """Set XPN salt of the port's RX SC when XPN cipher suite is in use.
5750
5756
 
5751
- :param salt: XPN salt of the port's RX SC when XPN cipher suite is in use.
5752
- :type salt: int
5757
+ :param xpn_salt: XPN salt of the port's RX SC when XPN cipher suite is in use.
5758
+ :type xpn_salt: int
5753
5759
  """
5754
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], salt=salt))
5760
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], xpn_salt=xpn_salt))
5755
5761
 
5756
5762
 
5757
5763
  @register_command
@@ -6037,6 +6043,190 @@ class P_MACSEC_RX_ENABLE:
6037
6043
  """Enable the RX port MACSec.
6038
6044
  """
6039
6045
 
6046
+
6047
+ @register_command
6048
+ @dataclass
6049
+ class P_MACSEC_RXSC_AN:
6050
+ """
6051
+ RX SC's next AN
6052
+ """
6053
+
6054
+ code: typing.ClassVar[int] = 550
6055
+ pushed: typing.ClassVar[bool] = False
6056
+
6057
+ _connection: 'interfaces.IConnection'
6058
+ _module: int
6059
+ _port: int
6060
+ _rxsc_index: int
6061
+
6062
+ class GetDataAttr(ResponseBodyStruct):
6063
+ next_an: int = field(XmpInt())
6064
+ """integer, the next AN"""
6065
+
6066
+ def get(self) -> Token[GetDataAttr]:
6067
+ """Get RX SC's next AN
6068
+
6069
+ :return: RX SC's next AN
6070
+ :rtype: P_MACSEC_RXSC_AN.GetDataAttr
6071
+ """
6072
+
6073
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
6074
+
6075
+
6076
+ @register_command
6077
+ @dataclass
6078
+ class P_MACSEC_RXSC_NEXT_PN:
6079
+ """
6080
+ The next PN number of the port’s RX SC expects to receive.
6081
+ """
6082
+
6083
+ code: typing.ClassVar[int] = 548
6084
+ pushed: typing.ClassVar[bool] = False
6085
+
6086
+ _connection: 'interfaces.IConnection'
6087
+ _module: int
6088
+ _port: int
6089
+ _rxsc_index: int
6090
+
6091
+ class GetDataAttr(ResponseBodyStruct):
6092
+ next_pn: Hex = field(XmpHex(size=8))
6093
+ """hex, The next PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
6094
+
6095
+ class SetDataAttr(RequestBodyStruct):
6096
+ next_pn: Hex = field(XmpHex(size=8))
6097
+ """hex, The next PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
6098
+
6099
+
6100
+ def get(self) -> Token[GetDataAttr]:
6101
+ """Get the next PN number of the port’s RX SC expects to receive
6102
+
6103
+ :return: the next PN number of the port’s RX SC expects to receive
6104
+ :rtype: P_MACSEC_RXSC_NEXT_PN.GetDataAttr
6105
+ """
6106
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
6107
+
6108
+ def set(self, value: int) -> Token[None]:
6109
+ """Set the next PN number of the port’s RX SC expects to receive
6110
+
6111
+ :param value: The next PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64.
6112
+ :type value: int
6113
+ """
6114
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._rxsc_index], value=value))
6115
+
6116
+
6117
+ @register_command
6118
+ @dataclass
6119
+ class P_MACSEC_TXSC_NEXT_PN:
6120
+ """
6121
+ The next PN number of the port’s TX SC expects to receive.
6122
+ """
6123
+
6124
+ code: typing.ClassVar[int] = 547
6125
+ pushed: typing.ClassVar[bool] = False
6126
+
6127
+ _connection: 'interfaces.IConnection'
6128
+ _module: int
6129
+ _port: int
6130
+ _txsc_index: int
6131
+
6132
+ class GetDataAttr(ResponseBodyStruct):
6133
+ next_pn: Hex = field(XmpHex(size=8))
6134
+ """hex, The next PN number of the port’s TX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
6135
+ class SetDataAttr(RequestBodyStruct):
6136
+ next_pn: Hex = field(XmpHex(size=8))
6137
+ """hex, The next PN number of the port’s TX SC expects to receive. Default to 1, maximum 2^64. Allowed to be 0."""
6138
+
6139
+ def get(self) -> Token[GetDataAttr]:
6140
+ """Get the next PN number of the port’s TX SC expects to receive
6141
+
6142
+ NextPN is a monotonically incrementing 32 or 64 bit counter that is never zero.
6143
+
6144
+ :return: the next PN number of the port’s TX SC expects to receive
6145
+ :rtype: P_MACSEC_TXSC_NEXT_PN.GetDataAttr
6146
+ """
6147
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
6148
+
6149
+ def set(self, next_pn: int) -> Token[None]:
6150
+ """Set the next PN number of the port’s TX SC expects to receive
6151
+
6152
+ NextPN is a monotonically incrementing 32 or 64 bit counter that is never zero.
6153
+
6154
+ :param next_pn: The next PN number of the port’s TX SC expects to receive. Default to 1, maximum 2^64.
6155
+ :type next_pn: int
6156
+ """
6157
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], next_pn=next_pn))
6158
+
6159
+
6160
+
6161
+ @register_command
6162
+ @dataclass
6163
+ class P_MACSEC_RXSC_PN:
6164
+ """
6165
+ RX SC's next PN
6166
+ """
6167
+
6168
+ code: typing.ClassVar[int] = 551
6169
+ pushed: typing.ClassVar[bool] = False
6170
+
6171
+ _connection: 'interfaces.IConnection'
6172
+ _module: int
6173
+ _port: int
6174
+ _rxsc_index: int
6175
+
6176
+ class GetDataAttr(ResponseBodyStruct):
6177
+ pn: Hex = field(XmpHex(size=8))
6178
+ """hex, 8-byte long, the latest recovered PN for the Rx SC"""
6179
+
6180
+ def get(self) -> Token[GetDataAttr]:
6181
+ """Get RX SC's next PN
6182
+
6183
+ :return: RX SC's next PN
6184
+ :rtype: P_MACSEC_RXSC_PN.GetDataAttr
6185
+ """
6186
+
6187
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
6188
+
6189
+
6190
+ @register_command
6191
+ @dataclass
6192
+ class P_MACSEC_TXSC_NEXT_AN:
6193
+ """
6194
+ The next AN number of the port’s TX SC expects to receive.
6195
+ """
6196
+
6197
+ code: typing.ClassVar[int] = 549
6198
+ pushed: typing.ClassVar[bool] = False
6199
+
6200
+ _connection: 'interfaces.IConnection'
6201
+ _module: int
6202
+ _port: int
6203
+ _txsc_index: int
6204
+
6205
+ class GetDataAttr(ResponseBodyStruct):
6206
+ next_an: int = field(XmpInt())
6207
+ """integer, The next AN number of the port’s TX SC expects to receive. Allowed to be 0."""
6208
+
6209
+ class SetDataAttr(RequestBodyStruct):
6210
+ next_an: int = field(XmpInt())
6211
+ """integer, The next AN number of the port’s TX SC expects to receive. Allowed to be 0."""
6212
+
6213
+ def get(self) -> Token[GetDataAttr]:
6214
+ """Get the next AN number of the port’s TX SC expects to receive
6215
+
6216
+ :return: the next AN number of the port’s TX SC expects to receive
6217
+ :rtype: P_MACSEC_TXSC_NEXT_AN.GetDataAttr
6218
+ """
6219
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
6220
+
6221
+ def set(self, next_an: int) -> Token[None]:
6222
+ """Set the next AN number of the port’s TX SC expects to receive
6223
+
6224
+ :param next_an: The next AN number of the port’s TX SC expects to receive.
6225
+ :type next_an: int
6226
+ """
6227
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._txsc_index], next_an=next_an))
6228
+
6229
+
6040
6230
  @register_command
6041
6231
  @dataclass
6042
6232
  class P_USED_TPLDID:
@@ -6062,4 +6252,208 @@ class P_USED_TPLDID:
6062
6252
  :rtype: P_USED_TPLDID.GetDataAttr
6063
6253
  """
6064
6254
 
6065
- return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
6255
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
6256
+
6257
+ #################################################################
6258
+ # #
6259
+ # EDUN Temporary Commands #
6260
+ # #
6261
+ #################################################################
6262
+
6263
+ @register_command
6264
+ @dataclass
6265
+ class P_EDUN_RX_STATUS:
6266
+ """
6267
+ Edun Rx status values for the specified SerDes index on the port.
6268
+ """
6269
+
6270
+ code: typing.ClassVar[int] = 598
6271
+ pushed: typing.ClassVar[bool] = False
6272
+
6273
+ _connection: 'interfaces.IConnection'
6274
+ _module: int
6275
+ _port: int
6276
+ _serdes_xindex: int
6277
+
6278
+ class GetDataAttr(ResponseBodyStruct):
6279
+ signal_detected: int = field(XmpByte())
6280
+ """1=Detected, 0=not detected"""
6281
+ pmd_lock: int = field(XmpByte())
6282
+ """1=Lock, 0=No Lock"""
6283
+ tuning_done: int = field(XmpByte())
6284
+ """1=Done, 0=Not Done"""
6285
+ eye_slicer_upper: int = field(XmpInt())
6286
+ """Upper eye slicer value. Unit is in mV."""
6287
+ eye_slicer_middle: int = field(XmpInt())
6288
+ """Middle eye slicer value. Unit is in mV."""
6289
+ eye_slicer_lower: int = field(XmpInt())
6290
+ """Lower eye slicer value. Unit is in mV."""
6291
+ snr: int = field(XmpInt())
6292
+ """Signal to Noise ratio, 1/100 dB"""
6293
+ vga: int = field(XmpInt())
6294
+ """Variable Gain Amplifier setting (0 to 64)"""
6295
+ dco: int = field(XmpInt())
6296
+ """DC Offset compensation value"""
6297
+ ffe_pre3: int = field(XmpInt())
6298
+ """Pre-cursor 3 of the RX equalizer"""
6299
+ ffe_pre2: int = field(XmpInt())
6300
+ """Pre-cursor 2 of the RX equalizer"""
6301
+ ffe_pre1: int = field(XmpInt())
6302
+ """Pre-cursor 1 of the RX equalizer"""
6303
+ ffe_main: int = field(XmpInt())
6304
+ """Main cursor of the RX equalizer"""
6305
+ ffe_post1: int = field(XmpInt())
6306
+ """Post-cursor 1 of the RX equalizer"""
6307
+ ffe_post2: int = field(XmpInt())
6308
+ """Post-cursor 2 of the RX equalizer"""
6309
+ tp0: int = field(XmpInt())
6310
+ """RX Channel Loss hint given by user (dB)"""
6311
+ tp1: int = field(XmpInt())
6312
+ """RX Channel Loss (initial) estimate"""
6313
+ tp2: int = field(XmpInt())
6314
+ """AFE static bandwitdh setting (200G == 0 else 100G if < 3 else 50GPAM4/NRZ if <5 else LinkCAT)"""
6315
+ dfe1: int = field(XmpInt())
6316
+ """ISI correction tap 1"""
6317
+ dfe2: int = field(XmpInt())
6318
+ """ISI correction tap 2"""
6319
+ flt_m: int = field(XmpInt())
6320
+ """Max. floating tap value"""
6321
+ flt_s: int = field(XmpInt())
6322
+ """Sum of floating taps"""
6323
+
6324
+ def get(self) -> Token[GetDataAttr]:
6325
+ """Get Edun Rx status values for the specified SerDes index on the port.
6326
+
6327
+ :return: Edun Rx status values for the specified SerDes index on the port.
6328
+ :rtype: P_EDUN_RX_STATUS.GetDataAttr
6329
+ """
6330
+
6331
+ return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._serdes_xindex]))
6332
+
6333
+
6334
+ __all__ = [
6335
+ "P_ARPREPLY",
6336
+ "P_ARPRXTABLE",
6337
+ "P_ARPV6REPLY",
6338
+ "P_AUTONEGSELECTION",
6339
+ "P_AUTOTRAIN",
6340
+ "P_BRRMODE",
6341
+ "P_BRRSTATUS",
6342
+ "P_CAPABILITIES",
6343
+ "P_CAPABILITIES_EXT",
6344
+ "P_CAPTURE",
6345
+ "P_CHECKSUM",
6346
+ "P_COMMENT",
6347
+ "P_DYNAMIC",
6348
+ "P_EMULATE",
6349
+ "P_ERRORS",
6350
+ "P_FAULTSIGNALING",
6351
+ "P_FAULTSTATUS",
6352
+ "P_FLASH",
6353
+ "P_GAPMONITOR",
6354
+ "P_IGMPV3_GROUP_RECORD_BUNDLE",
6355
+ "P_INTERFACE",
6356
+ "P_INTERFRAMEGAP",
6357
+ "P_IPADDRESS",
6358
+ "P_IPV6ADDRESS",
6359
+ "P_LATENCYMODE",
6360
+ "P_LATENCYOFFSET",
6361
+ "P_LOADMODE",
6362
+ "P_LOOPBACK",
6363
+ "P_LPENABLE",
6364
+ "P_LPPARTNERAUTONEG",
6365
+ "P_LPRXPOWER",
6366
+ "P_LPSNRMARGIN",
6367
+ "P_LPSTATUS",
6368
+ "P_LPSUPPORT",
6369
+ "P_LPTXMODE",
6370
+ "P_MACADDRESS",
6371
+ "P_MACSEC_RXSC_CIPHERSUITE",
6372
+ "P_MACSEC_RXSC_CONF_OFFSET",
6373
+ "P_MACSEC_RXSC_CREATE",
6374
+ "P_MACSEC_RXSC_DELETE",
6375
+ "P_MACSEC_RXSC_DESCR",
6376
+ "P_MACSEC_RXSC_INDICES",
6377
+ "P_MACSEC_RXSC_SAK_VALUE",
6378
+ "P_MACSEC_RXSC_SCI",
6379
+ "P_MACSEC_RXSC_LOWEST_PN",
6380
+ "P_MACSEC_RXSC_STATS",
6381
+ "P_MACSEC_RXSC_TPLDID",
6382
+ "P_MACSEC_RXSC_XPN_SALT",
6383
+ "P_MACSEC_RXSC_XPN_SSCI",
6384
+ "P_MACSEC_RX_CLEAR",
6385
+ "P_MACSEC_RX_ENABLE",
6386
+ "P_MACSEC_RX_STATS",
6387
+ "P_MACSEC_TXSC_CIPHERSUITE",
6388
+ "P_MACSEC_TXSC_CONF_OFFSET",
6389
+ "P_MACSEC_TXSC_CREATE",
6390
+ "P_MACSEC_TXSC_DELETE",
6391
+ "P_MACSEC_TXSC_DESCR",
6392
+ "P_MACSEC_TXSC_ENCRYPT",
6393
+ "P_MACSEC_TXSC_INDICES",
6394
+ "P_MACSEC_TXSC_REKEY_MODE",
6395
+ "P_MACSEC_TXSC_SAK_VALUE",
6396
+ "P_MACSEC_TXSC_SCI",
6397
+ "P_MACSEC_TXSC_SCI_MODE",
6398
+ "P_MACSEC_TXSC_STARTING_PN",
6399
+ "P_MACSEC_TXSC_STATS",
6400
+ "P_MACSEC_TXSC_XPN_SALT",
6401
+ "P_MACSEC_TXSC_XPN_SSCI",
6402
+ "P_MACSEC_TX_CLEAR",
6403
+ "P_MACSEC_TX_STATS",
6404
+ "P_MAXHEADERLENGTH",
6405
+ "P_MCSRCLIST",
6406
+ "P_MDIXMODE",
6407
+ "P_MIXLENGTH",
6408
+ "P_MIXWEIGHTS",
6409
+ "P_MULTICAST",
6410
+ "P_MULTICASTEXT",
6411
+ "P_MULTICASTHDR",
6412
+ "P_NDPRXTABLE",
6413
+ "P_PAUSE",
6414
+ "P_PAYLOADMODE",
6415
+ "P_PFCENABLE",
6416
+ "P_PINGREPLY",
6417
+ "P_PINGV6REPLY",
6418
+ "P_RANDOMSEED",
6419
+ "P_RATEFRACTION",
6420
+ "P_RATEL2BPS",
6421
+ "P_RATEPPS",
6422
+ "P_RECEIVESYNC",
6423
+ "P_RESERVATION",
6424
+ "P_RESERVEDBY",
6425
+ "P_RESET",
6426
+ "P_RXPREAMBLE_INSERT",
6427
+ "P_RXRUNTLENGTH",
6428
+ "P_RXRUNTLEN_ERRS",
6429
+ "P_SPEED",
6430
+ "P_SPEEDREDUCTION",
6431
+ "P_SPEEDSELECTION",
6432
+ "P_SPEEDS_SUPPORTED",
6433
+ "P_STATUS",
6434
+ "P_TCVRSTATUS",
6435
+ "P_TPLDMODE",
6436
+ "P_TRAFFIC",
6437
+ "P_TRAFFICERR",
6438
+ "P_TXBURSTPERIOD",
6439
+ "P_TXDELAY",
6440
+ "P_TXENABLE",
6441
+ "P_TXMODE",
6442
+ "P_TXPACKETLIMIT",
6443
+ "P_TXPREAMBLE_REMOVE",
6444
+ "P_TXPREPARE",
6445
+ "P_TXRUNTLENGTH",
6446
+ "P_TXTIME",
6447
+ "P_TXTIMELIMIT",
6448
+ "P_UAT_FLR",
6449
+ "P_UAT_MODE",
6450
+ "P_USED_TPLDID",
6451
+ "P_XMITONE",
6452
+ "P_XMITONETIME",
6453
+ "P_EDUN_RX_STATUS",
6454
+ "P_MACSEC_RXSC_AN",
6455
+ "P_MACSEC_RXSC_NEXT_PN",
6456
+ "P_MACSEC_TXSC_NEXT_PN",
6457
+ "P_MACSEC_RXSC_PN",
6458
+ "P_MACSEC_TXSC_NEXT_AN",
6459
+ ]