tdl-xoa-driver 1.5.0b2__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 (111) hide show
  1. {tdl_xoa_driver-1.5.0b2.dist-info → tdl_xoa_driver-1.6.0.dist-info}/METADATA +8 -8
  2. {tdl_xoa_driver-1.5.0b2.dist-info → tdl_xoa_driver-1.6.0.dist-info}/RECORD +91 -89
  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/__init__.py +5 -5
  7. xoa_driver/functions/cli/port_config.py +16 -7
  8. xoa_driver/functions/cli/{test_case_config.py → testbed_config.py} +53 -46
  9. xoa_driver/functions/cmis/_replies.py +4 -4
  10. xoa_driver/functions/mgmt.py +206 -250
  11. xoa_driver/functions/tools.py +11 -6
  12. xoa_driver/internals/commands/c_commands.py +59 -0
  13. xoa_driver/internals/commands/enums.py +101 -90
  14. xoa_driver/internals/commands/m4_commands.py +25 -0
  15. xoa_driver/internals/commands/m4e_commands.py +6 -0
  16. xoa_driver/internals/commands/m_commands.py +51 -1
  17. xoa_driver/internals/commands/p4_commands.py +63 -1
  18. xoa_driver/internals/commands/p4e_commands.py +9 -0
  19. xoa_driver/internals/commands/p4g_commands.py +139 -0
  20. xoa_driver/internals/commands/p_commands.py +493 -63
  21. xoa_driver/internals/commands/pc_commands.py +9 -0
  22. xoa_driver/internals/commands/pd_commands.py +11 -0
  23. xoa_driver/internals/commands/pe_commands.py +27 -0
  24. xoa_driver/internals/commands/pec_commands.py +9 -0
  25. xoa_driver/internals/commands/ped_commands.py +23 -0
  26. xoa_driver/internals/commands/pef_commands.py +43 -0
  27. xoa_driver/internals/commands/pf_commands.py +11 -0
  28. xoa_driver/internals/commands/pl1_commands.py +442 -118
  29. xoa_driver/internals/commands/pl_commands.py +8 -0
  30. xoa_driver/internals/commands/pm_commands.py +11 -0
  31. xoa_driver/internals/commands/pp_commands.py +128 -82
  32. xoa_driver/internals/commands/pr_commands.py +25 -0
  33. xoa_driver/internals/commands/ps_commands.py +47 -1
  34. xoa_driver/internals/commands/pt_commands.py +15 -0
  35. xoa_driver/internals/commands/px_commands.py +180 -136
  36. xoa_driver/internals/commands/subtypes.py +4 -3
  37. xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +1 -1
  38. xoa_driver/internals/hli/indices/macsecscs/base_macsecsc.py +41 -3
  39. xoa_driver/internals/hli/modules/modules_l23/family_combi.py +0 -64
  40. xoa_driver/internals/hli/modules/modules_l23/family_edun.py +0 -2
  41. xoa_driver/internals/hli/modules/modules_l23/{family_g.py → family_loki.py} +29 -1
  42. xoa_driver/internals/hli/modules/modules_l23/family_odin.py +412 -0
  43. xoa_driver/internals/hli/modules/modules_l23/{family_l.py → family_thor.py} +44 -0
  44. xoa_driver/internals/hli/ports/port_l23/chimera/port_chimera.py +3 -3
  45. xoa_driver/internals/hli/ports/port_l23/family_edun.py +9 -44
  46. xoa_driver/internals/hli/ports/port_l23/{family_l1.py → family_freya.py} +10 -45
  47. xoa_driver/internals/hli/ports/port_l23/{family_g.py → family_loki.py} +33 -32
  48. xoa_driver/internals/hli/ports/port_l23/family_odin.py +225 -0
  49. xoa_driver/internals/hli/ports/port_l23/family_thor.py +67 -0
  50. xoa_driver/internals/hli/ports/port_l23/layer1/anlt.py +512 -0
  51. xoa_driver/internals/hli/ports/port_l23/layer1/brr.py +26 -0
  52. xoa_driver/internals/hli/ports/port_l23/layer1/eye_diagram.py +71 -0
  53. xoa_driver/internals/hli/ports/port_l23/{pcs_pma_ijkl_chimera.py → layer1/impair.py} +7 -7
  54. xoa_driver/internals/hli/ports/port_l23/layer1/laser_power.py +28 -0
  55. xoa_driver/internals/hli/ports/port_l23/{family_e.py → layer1/lower_power.py} +1 -51
  56. xoa_driver/internals/hli/ports/port_l23/{freya_l1.py → layer1/medium.py} +38 -358
  57. xoa_driver/internals/hli/ports/port_l23/layer1/pcs_fec.py +219 -0
  58. xoa_driver/internals/hli/ports/port_l23/layer1/pma.py +43 -0
  59. xoa_driver/internals/hli/ports/port_l23/layer1/prbs.py +39 -0
  60. xoa_driver/internals/hli/ports/port_l23/layer1/preamble.py +25 -0
  61. xoa_driver/internals/hli/ports/port_l23/{fault_jkl.py → layer1/rs_fault.py} +2 -2
  62. xoa_driver/internals/hli/ports/port_l23/layer1/siv.py +69 -0
  63. xoa_driver/internals/hli/ports/port_l23/layer1_edun.py +103 -0
  64. xoa_driver/internals/hli/ports/port_l23/layer1_freya.py +103 -0
  65. xoa_driver/internals/hli/ports/port_l23/layer1_loki.py +74 -0
  66. xoa_driver/internals/hli/ports/port_l23/layer1_thor.py +70 -0
  67. xoa_driver/internals/hli/ports/port_l23/port_l23ve.py +4 -4
  68. xoa_driver/internals/hli/ports/port_l23/sec/__init__.py +0 -0
  69. xoa_driver/internals/hli/ports/port_l23/sec/macsec.py +108 -0
  70. xoa_driver/internals/hli/ports/port_l23/tcvr/__init__.py +0 -0
  71. xoa_driver/internals/hli/ports/port_l23/{bases/port_transceiver.py → tcvr/cmis.py} +4 -118
  72. xoa_driver/internals/hli/ports/port_l23/tcvr/transceiver.py +124 -0
  73. xoa_driver/internals/hli/ports/port_l23/trafficgen/__init__.py +0 -0
  74. xoa_driver/internals/hli/ports/port_l23/{bases → trafficgen}/port_l23.py +1 -1
  75. xoa_driver/internals/hli/ports/port_l23/{bases → trafficgen}/port_l23_genuine.py +5 -45
  76. xoa_driver/internals/hli/ports/port_l23/{bases/port_reception_statistics.py → trafficgen/port_rx_stats.py} +0 -21
  77. xoa_driver/internals/hli/ports/port_l23/{bases/port_transmission_statistics.py → trafficgen/port_tx_stats.py} +2 -22
  78. xoa_driver/internals/hli/ports/port_l23/trafficgen/runt.py +32 -0
  79. xoa_driver/internals/hli/testers/l23_tester.py +1 -3
  80. xoa_driver/internals/utils/indices/_interfaces.py +18 -6
  81. xoa_driver/internals/utils/indices/index_manager.py +8 -2
  82. xoa_driver/internals/utils/managers/ports_manager.py +5 -2
  83. xoa_driver/misc.py +6 -6
  84. xoa_driver/modules.py +31 -47
  85. xoa_driver/ports.py +10 -29
  86. xoa_driver/internals/hli/modules/modules_l23/family_d.py +0 -75
  87. xoa_driver/internals/hli/modules/modules_l23/family_e.py +0 -85
  88. xoa_driver/internals/hli/modules/modules_l23/family_f.py +0 -145
  89. xoa_driver/internals/hli/modules/modules_l23/family_h.py +0 -40
  90. xoa_driver/internals/hli/modules/modules_l23/family_i.py +0 -25
  91. xoa_driver/internals/hli/modules/modules_l23/family_j.py +0 -25
  92. xoa_driver/internals/hli/modules/modules_l23/family_k.py +0 -39
  93. xoa_driver/internals/hli/modules/modules_l23/family_m.py +0 -25
  94. xoa_driver/internals/hli/modules/modules_l23/family_n.py +0 -40
  95. xoa_driver/internals/hli/ports/port_l23/family_combi.py +0 -37
  96. xoa_driver/internals/hli/ports/port_l23/family_d.py +0 -51
  97. xoa_driver/internals/hli/ports/port_l23/family_f.py +0 -151
  98. xoa_driver/internals/hli/ports/port_l23/family_h.py +0 -67
  99. xoa_driver/internals/hli/ports/port_l23/family_i.py +0 -84
  100. xoa_driver/internals/hli/ports/port_l23/family_j.py +0 -68
  101. xoa_driver/internals/hli/ports/port_l23/family_k.py +0 -73
  102. xoa_driver/internals/hli/ports/port_l23/family_l.py +0 -82
  103. xoa_driver/internals/hli/ports/port_l23/family_m.py +0 -29
  104. xoa_driver/internals/hli/ports/port_l23/pcs_pma_ghijkl.py +0 -369
  105. xoa_driver/internals/hli/ports/port_l23/pcs_pma_l.py +0 -78
  106. {tdl_xoa_driver-1.5.0b2.dist-info → tdl_xoa_driver-1.6.0.dist-info}/WHEEL +0 -0
  107. {tdl_xoa_driver-1.5.0b2.dist-info → tdl_xoa_driver-1.6.0.dist-info}/licenses/LICENSE +0 -0
  108. {tdl_xoa_driver-1.5.0b2.dist-info → tdl_xoa_driver-1.6.0.dist-info}/top_level.txt +0 -0
  109. /xoa_driver/internals/hli/modules/modules_l23/{family_l1.py → family_freya.py} +0 -0
  110. /xoa_driver/internals/hli/ports/port_l23/{bases → layer1}/__init__.py +0 -0
  111. /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"""
@@ -601,10 +607,47 @@ class P_CAPABILITIES:
601
607
  * Bit 0: Normal modifier (16/24-bit) supports little-endian
602
608
  * Bit 1: Extended modifier (32-bit) supports little-endian
603
609
  """
604
-
610
+ capture_bitmask: int = field(XmpInt(), min_version=470)
611
+ """integer, bitmask indicating capture capabilities.
605
612
 
613
+ If all bits are 0: CAPTURE_NOT_SUPPORTED
606
614
 
607
- def get(self) -> Token[GetDataAttr]:
615
+ Bits [0:11] are for Start triggers:
616
+
617
+ * Bit 0: CAPTURE_START_ON
618
+ * Bit 1: CAPTURE_START_FCSERROR
619
+ * Bit 2: CAPTURE_START_FILTER
620
+ * Bit 3: CAPTURE_START_PLDERROR
621
+ * Bit 4-11: Reserved
622
+
623
+ Bits [12:23] are for Stop triggers:
624
+
625
+ * Bit 12: CAPTURE_STOP_FULL
626
+ * Bit 13: CAPTURE_STOP_FCSERROR
627
+ * Bit 14: CAPTURE_STOP_FILTER
628
+ * Bit 15: CAPTURE_STOP_PLDERROR
629
+ * Bit 16: CAPTURE_STOP_USERSTOP
630
+ * Bit 17-23: Reserved
631
+
632
+ Bits [24:31] are for Keep modes:
633
+
634
+ * Bit 24: CAPTURE_KEEP_ALL
635
+ * Bit 25: CAPTURE_KEEP_FCSERR
636
+ * Bit 26: CAPTURE_KEEP_NOTPLD
637
+ * Bit 27: CAPTURE_KEEP_TPLD
638
+ * Bit 28: CAPTURE_KEEP_FILTER
639
+ * Bit 29: CAPTURE_KEEP_PLDERR
640
+ * Bit 30-31: Reserved
641
+ """
642
+ num_txeq_pre: int = field(XmpInt(), min_version=470)
643
+ """The number of postcursors = num_txeq - num_txeq_pre - 1."""
644
+ txeq_max_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
645
+ """max value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
646
+ txeq_min_seq: typing.List[int] = field(XmpSequence(types_chunk=[XmpInt()], length=10), min_version=470)
647
+ """min-value of individual TXEQ taps, SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ...."""
648
+
649
+
650
+ def get(self) -> Token[P_CAPABILITIES.GetDataAttr]:
608
651
  """Get the internal limits, aka. capabilities, of the port.
609
652
 
610
653
  :return: the internal limits, aka. capabilities, of the port.
@@ -1512,7 +1555,6 @@ class P_XMITONE:
1512
1555
  A valid Frame Check Sum is written into the final four bytes.
1513
1556
 
1514
1557
  :param hex_data: raw bytes of the packet in hex to transmit
1515
- :rtype: typing.List[str]
1516
1558
  """
1517
1559
 
1518
1560
  return Token(self._connection, build_set_request(self, module=self._module, port=self._port, hex_data=hex_data))
@@ -2296,10 +2338,10 @@ class P_ARPRXTABLE:
2296
2338
  _port: int
2297
2339
 
2298
2340
  class GetDataAttr(ResponseBodyStruct):
2299
- 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()]))
2300
2342
 
2301
2343
  class SetDataAttr(RequestBodyStruct):
2302
- 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()]))
2303
2345
 
2304
2346
  def get(self) -> Token[GetDataAttr]:
2305
2347
  """Get the port's ARP table used to reply to incoming ARP requests.
@@ -2314,18 +2356,18 @@ class P_ARPRXTABLE:
2314
2356
 
2315
2357
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
2316
2358
 
2317
- def set(self, chunks: typing.List[ArpChunk]) -> Token[None]:
2359
+ def set(self, entries: typing.List[ArpEntry]) -> Token[None]:
2318
2360
  """Set the port's ARP table used to reply to incoming ARP requests.
2319
2361
 
2320
- :param chunks:
2362
+ :param entries:
2321
2363
  * IP address to match to the Target IP address in the ARP requests
2322
2364
  * The prefix used for address matching
2323
2365
  * Whether the target MAC address will be patched with the part of the IP address that is not masked by the prefix
2324
2366
  * The target MAC address to return in the ARP reply
2325
- :type chunks: typing.List[subtypes.ArpChunkList]
2367
+ :type entries: typing.List[subtypes.ArpChunkList]
2326
2368
  """
2327
2369
 
2328
- 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))
2329
2371
 
2330
2372
 
2331
2373
  @register_command
@@ -2343,10 +2385,10 @@ class P_NDPRXTABLE:
2343
2385
  _port: int
2344
2386
 
2345
2387
  class GetDataAttr(ResponseBodyStruct):
2346
- 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()]))
2347
2389
 
2348
2390
  class SetDataAttr(RequestBodyStruct):
2349
- 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()]))
2350
2392
 
2351
2393
  def get(self) -> Token[GetDataAttr]:
2352
2394
  """Get the port's NDP table used to reply to incoming NDP Neighbor Solicitation.
@@ -2361,19 +2403,18 @@ class P_NDPRXTABLE:
2361
2403
 
2362
2404
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
2363
2405
 
2364
- def set(self, chunks: typing.List[NdpChunk]) -> Token[None]:
2406
+ def set(self, entries: typing.List[NdpEntry]) -> Token[None]:
2365
2407
  """Set the port's NDP table used to reply to incoming NDP Neighbor Solicitation.
2366
2408
 
2367
- :param chunks:
2409
+ :param entries:
2368
2410
  * IP address to match to the Target IP address in the NDP Neighbor Solicitation
2369
2411
  * The prefix used for address matching
2370
2412
  * Whether the target MAC address will be patched with the part of the IP address that is not masked by the prefix
2371
2413
  * The target MAC address to return in the NDP Neighbor Advertisement
2372
- :type chunks: typing.List[subtypes.NdpChunkList]
2414
+ :type entries: typing.List[subtypes.NdpChunkList]
2373
2415
  """
2374
2416
 
2375
- return Token(self._connection, build_set_request(self, module=self._module, port=self._port, chunks=chunks))
2376
-
2417
+ return Token(self._connection, build_set_request(self, module=self._module, port=self._port, entries=entries))
2377
2418
 
2378
2419
  @register_command
2379
2420
  @dataclass
@@ -4950,14 +4991,14 @@ class P_MACSEC_TXSC_STARTING_PN:
4950
4991
  _txsc_index: int
4951
4992
 
4952
4993
  class GetDataAttr(ResponseBodyStruct):
4953
- start: int = field(XmpLong())
4994
+ starting_pn: int = field(XmpLong())
4954
4995
  """integer, the starting PN number. Default to 1, maximum 2^64. Allowed to be 0."""
4955
4996
 
4956
4997
  mode: MACSecPNMode = field(XmpByte())
4957
4998
  """byte, defining how to continue the TX PN after the start-traffic. Default to CONTINUOUS."""
4958
4999
 
4959
5000
  class SetDataAttr(RequestBodyStruct):
4960
- start: int = field(XmpLong())
5001
+ starting_pn: int = field(XmpLong())
4961
5002
  """integer, the starting PN number. Default to 1, maximum 2^64. Allowed to be 0."""
4962
5003
 
4963
5004
  mode: MACSecPNMode = field(XmpByte())
@@ -4971,15 +5012,15 @@ class P_MACSEC_TXSC_STARTING_PN:
4971
5012
  """
4972
5013
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
4973
5014
 
4974
- def set(self, start: int, mode: MACSecPNMode) -> Token[None]:
5015
+ def set(self, starting_pn: int, mode: MACSecPNMode) -> Token[None]:
4975
5016
  """Set the starting PN number. Default to 1, maximum 2^64. Allowed to be 0.
4976
5017
 
4977
- :param start: the starting PN number. Default to 1, maximum 2^64.
4978
- :type start: int
5018
+ :param starting_pn: the starting PN number. Default to 1, maximum 2^64.
5019
+ :type starting_pn: int
4979
5020
  :param mode: defining how to continue the TX PN after the start-traffic.
4980
5021
  :type mode: MACSecPNMode
4981
5022
  """
4982
- 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))
4983
5024
 
4984
5025
 
4985
5026
  # @register_command
@@ -5185,11 +5226,11 @@ class P_MACSEC_TXSC_XPN_SSCI:
5185
5226
  _txsc_index: int
5186
5227
 
5187
5228
  class GetDataAttr(ResponseBodyStruct):
5188
- ssci: Hex = field(XmpHex(size=4))
5229
+ xpn_ssci: Hex = field(XmpHex(size=4))
5189
5230
  """hex 4 bytes, The XPN Short SCI of the port's TX SC when XPN cipher suite is in use"""
5190
5231
 
5191
5232
  class SetDataAttr(RequestBodyStruct):
5192
- ssci: Hex = field(XmpHex(size=4))
5233
+ xpn_ssci: Hex = field(XmpHex(size=4))
5193
5234
  """hex 4 bytes, The XPN Short SCI of the port's TX SC when XPN cipher suite is in use"""
5194
5235
 
5195
5236
  def get(self) -> Token[GetDataAttr]:
@@ -5200,13 +5241,13 @@ class P_MACSEC_TXSC_XPN_SSCI:
5200
5241
  """
5201
5242
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
5202
5243
 
5203
- def set(self, ssci: Hex) -> Token[None]:
5244
+ def set(self, xpn_ssci: Hex) -> Token[None]:
5204
5245
  """Set the XPN Short SCI of the port's TX SC when XPN cipher suite is in use
5205
5246
 
5206
- :param ssci: the XPN Short SCI of the port's TX SC when XPN cipher suite is in use
5207
- :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
5208
5249
  """
5209
- 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))
5210
5251
 
5211
5252
 
5212
5253
  @register_command
@@ -5225,11 +5266,11 @@ class P_MACSEC_TXSC_XPN_SALT:
5225
5266
  _txsc_index: int
5226
5267
 
5227
5268
  class GetDataAttr(ResponseBodyStruct):
5228
- salt: Hex = field(XmpHex(size=12))
5269
+ xpn_salt: Hex = field(XmpHex(size=12))
5229
5270
  """hex 12 bytes, XPN salt of the port's TX SC when XPN cipher suite is in use."""
5230
5271
 
5231
5272
  class SetDataAttr(RequestBodyStruct):
5232
- salt: Hex = field(XmpHex(size=12))
5273
+ xpn_salt: Hex = field(XmpHex(size=12))
5233
5274
  """hex 12 bytes, XPN salt of the port's TX SC when XPN cipher suite is in use."""
5234
5275
 
5235
5276
  def get(self) -> Token[GetDataAttr]:
@@ -5240,13 +5281,13 @@ class P_MACSEC_TXSC_XPN_SALT:
5240
5281
  """
5241
5282
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._txsc_index]))
5242
5283
 
5243
- def set(self, salt: Hex) -> Token[None]:
5284
+ def set(self, xpn_salt: Hex) -> Token[None]:
5244
5285
  """Set XPN salt of the port's TX SC when XPN cipher suite is in use.
5245
5286
 
5246
- :param salt: XPN salt of the port's TX SC when XPN cipher suite is in use.
5247
- :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
5248
5289
  """
5249
- 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))
5250
5291
 
5251
5292
 
5252
5293
  @register_command
@@ -5519,9 +5560,9 @@ class P_MACSEC_RXSC_CIPHERSUITE:
5519
5560
 
5520
5561
  @register_command
5521
5562
  @dataclass
5522
- class P_MACSEC_RXSC_STARTING_PN:
5563
+ class P_MACSEC_RXSC_LOWEST_PN:
5523
5564
  """
5524
- 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.
5525
5566
  """
5526
5567
 
5527
5568
  code: typing.ClassVar[int] = 511
@@ -5533,28 +5574,29 @@ class P_MACSEC_RXSC_STARTING_PN:
5533
5574
  _rxsc_index: int
5534
5575
 
5535
5576
  class GetDataAttr(ResponseBodyStruct):
5536
- value: int = field(XmpLong())
5537
- """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."""
5538
5579
 
5539
5580
  class SetDataAttr(RequestBodyStruct):
5540
- value: int = field(XmpLong())
5541
- """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
+
5542
5584
 
5543
5585
  def get(self) -> Token[GetDataAttr]:
5544
- """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
5545
5587
 
5546
- :return: the first PN number of the port’s RX SC expects to receive
5547
- :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
5548
5590
  """
5549
5591
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
5550
5592
 
5551
- def set(self, value: int) -> Token[None]:
5552
- """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
5553
5595
 
5554
- :param start: The first PN number of the port’s RX SC expects to receive. Default to 1, maximum 2^64.
5555
- :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
5556
5598
  """
5557
- 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))
5558
5600
 
5559
5601
 
5560
5602
  @register_command
@@ -5654,11 +5696,11 @@ class P_MACSEC_RXSC_XPN_SSCI:
5654
5696
  _rxsc_index: int
5655
5697
 
5656
5698
  class GetDataAttr(ResponseBodyStruct):
5657
- ssci: Hex = field(XmpHex(size=4))
5699
+ xpn_ssci: Hex = field(XmpHex(size=4))
5658
5700
  """hex 4 bytes, The XPN Short SCI of the port's RX SC when XPN cipher suite is in use"""
5659
5701
 
5660
5702
  class SetDataAttr(RequestBodyStruct):
5661
- ssci: Hex = field(XmpHex(size=4))
5703
+ xpn_ssci: Hex = field(XmpHex(size=4))
5662
5704
  """hex 4 bytes, The XPN Short SCI of the port's RX SC when XPN cipher suite is in use"""
5663
5705
 
5664
5706
  def get(self) -> Token[GetDataAttr]:
@@ -5669,13 +5711,13 @@ class P_MACSEC_RXSC_XPN_SSCI:
5669
5711
  """
5670
5712
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
5671
5713
 
5672
- def set(self, ssci: Hex) -> Token[None]:
5714
+ def set(self, xpn_ssci: Hex) -> Token[None]:
5673
5715
  """Set the XPN Short SCI of the port's RX SC when XPN cipher suite is in use
5674
5716
 
5675
- :param ssci: the XPN Short SCI of the port's RX SC when XPN cipher suite is in use
5676
- :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
5677
5719
  """
5678
- 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))
5679
5721
 
5680
5722
 
5681
5723
  @register_command
@@ -5694,11 +5736,11 @@ class P_MACSEC_RXSC_XPN_SALT:
5694
5736
  _rxsc_index: int
5695
5737
 
5696
5738
  class GetDataAttr(ResponseBodyStruct):
5697
- salt: Hex = field(XmpHex(size=12))
5739
+ xpn_salt: Hex = field(XmpHex(size=12))
5698
5740
  """hex 12 bytes, XPN salt of the port's RX SC when XPN cipher suite is in use."""
5699
5741
 
5700
5742
  class SetDataAttr(RequestBodyStruct):
5701
- salt: Hex = field(XmpHex(size=12))
5743
+ xpn_salt: Hex = field(XmpHex(size=12))
5702
5744
  """hex 12 bytes, XPN salt of the port's RX SC when XPN cipher suite is in use."""
5703
5745
 
5704
5746
  def get(self) -> Token[GetDataAttr]:
@@ -5709,13 +5751,13 @@ class P_MACSEC_RXSC_XPN_SALT:
5709
5751
  """
5710
5752
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._rxsc_index]))
5711
5753
 
5712
- def set(self, salt: Hex) -> Token[None]:
5754
+ def set(self, xpn_salt: Hex) -> Token[None]:
5713
5755
  """Set XPN salt of the port's RX SC when XPN cipher suite is in use.
5714
5756
 
5715
- :param salt: XPN salt of the port's RX SC when XPN cipher suite is in use.
5716
- :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
5717
5759
  """
5718
- 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))
5719
5761
 
5720
5762
 
5721
5763
  @register_command
@@ -6001,6 +6043,190 @@ class P_MACSEC_RX_ENABLE:
6001
6043
  """Enable the RX port MACSec.
6002
6044
  """
6003
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
+
6004
6230
  @register_command
6005
6231
  @dataclass
6006
6232
  class P_USED_TPLDID:
@@ -6026,4 +6252,208 @@ class P_USED_TPLDID:
6026
6252
  :rtype: P_USED_TPLDID.GetDataAttr
6027
6253
  """
6028
6254
 
6029
- 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
+ ]