tdl-xoa-driver 1.5.1__py3-none-any.whl → 1.6.1__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.1.dist-info}/METADATA +1 -1
  2. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.1.dist-info}/RECORD +87 -88
  3. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.1.dist-info}/licenses/LICENSE +1 -1
  4. xoa_driver/__init__.py +2 -2
  5. xoa_driver/enums.py +10 -10
  6. xoa_driver/functions/anlt.py +60 -78
  7. xoa_driver/functions/cli/testbed_config.py +1 -1
  8. xoa_driver/functions/cmis/_replies.py +4 -4
  9. xoa_driver/functions/mgmt.py +206 -250
  10. xoa_driver/functions/tools.py +11 -6
  11. xoa_driver/internals/commands/c_commands.py +59 -0
  12. xoa_driver/internals/commands/enums.py +101 -90
  13. xoa_driver/internals/commands/m4_commands.py +25 -0
  14. xoa_driver/internals/commands/m4e_commands.py +6 -0
  15. xoa_driver/internals/commands/m_commands.py +51 -1
  16. xoa_driver/internals/commands/p4_commands.py +63 -1
  17. xoa_driver/internals/commands/p4e_commands.py +9 -0
  18. xoa_driver/internals/commands/p4g_commands.py +139 -0
  19. xoa_driver/internals/commands/p_commands.py +455 -61
  20. xoa_driver/internals/commands/pc_commands.py +9 -0
  21. xoa_driver/internals/commands/pd_commands.py +11 -0
  22. xoa_driver/internals/commands/pe_commands.py +27 -0
  23. xoa_driver/internals/commands/pec_commands.py +9 -0
  24. xoa_driver/internals/commands/ped_commands.py +23 -0
  25. xoa_driver/internals/commands/pef_commands.py +43 -0
  26. xoa_driver/internals/commands/pf_commands.py +11 -0
  27. xoa_driver/internals/commands/pl1_commands.py +315 -48
  28. xoa_driver/internals/commands/pl_commands.py +8 -0
  29. xoa_driver/internals/commands/pm_commands.py +11 -0
  30. xoa_driver/internals/commands/pp_commands.py +84 -27
  31. xoa_driver/internals/commands/pr_commands.py +25 -0
  32. xoa_driver/internals/commands/ps_commands.py +47 -1
  33. xoa_driver/internals/commands/pt_commands.py +15 -0
  34. xoa_driver/internals/commands/px_commands.py +180 -136
  35. xoa_driver/internals/commands/subtypes.py +4 -3
  36. xoa_driver/internals/core/transporter/protocol/payload/base_struct.py +1 -1
  37. xoa_driver/internals/hli/indices/macsecscs/base_macsecsc.py +41 -3
  38. xoa_driver/internals/hli/modules/modules_l23/family_combi.py +0 -64
  39. xoa_driver/internals/hli/modules/modules_l23/family_edun.py +0 -2
  40. xoa_driver/internals/hli/modules/modules_l23/{family_g.py → family_loki.py} +29 -1
  41. xoa_driver/internals/hli/modules/modules_l23/family_odin.py +412 -0
  42. xoa_driver/internals/hli/modules/modules_l23/{family_l.py → family_thor.py} +44 -0
  43. xoa_driver/internals/hli/ports/port_l23/chimera/port_chimera.py +3 -3
  44. xoa_driver/internals/hli/ports/port_l23/family_edun.py +8 -43
  45. xoa_driver/internals/hli/ports/port_l23/{family_l1.py → family_freya.py} +9 -44
  46. xoa_driver/internals/hli/ports/port_l23/{family_g.py → family_loki.py} +32 -31
  47. xoa_driver/internals/hli/ports/port_l23/family_odin.py +225 -0
  48. xoa_driver/internals/hli/ports/port_l23/family_thor.py +67 -0
  49. xoa_driver/internals/hli/ports/port_l23/layer1/anlt.py +512 -0
  50. xoa_driver/internals/hli/ports/port_l23/layer1/brr.py +26 -0
  51. xoa_driver/internals/hli/ports/port_l23/layer1/eye_diagram.py +71 -0
  52. xoa_driver/internals/hli/ports/port_l23/{pcs_pma_ijkl_chimera.py → layer1/impair.py} +7 -7
  53. xoa_driver/internals/hli/ports/port_l23/layer1/laser_power.py +28 -0
  54. xoa_driver/internals/hli/ports/port_l23/{family_e.py → layer1/lower_power.py} +1 -51
  55. xoa_driver/internals/hli/ports/port_l23/{freya_l1.py → layer1/medium.py} +38 -358
  56. xoa_driver/internals/hli/ports/port_l23/layer1/pcs_fec.py +219 -0
  57. xoa_driver/internals/hli/ports/port_l23/layer1/pma.py +43 -0
  58. xoa_driver/internals/hli/ports/port_l23/layer1/prbs.py +39 -0
  59. xoa_driver/internals/hli/ports/port_l23/layer1/preamble.py +25 -0
  60. xoa_driver/internals/hli/ports/port_l23/{fault_jkl.py → layer1/rs_fault.py} +2 -2
  61. xoa_driver/internals/hli/ports/port_l23/layer1/siv.py +69 -0
  62. xoa_driver/internals/hli/ports/port_l23/layer1_edun.py +103 -0
  63. xoa_driver/internals/hli/ports/port_l23/layer1_freya.py +103 -0
  64. xoa_driver/internals/hli/ports/port_l23/layer1_loki.py +74 -0
  65. xoa_driver/internals/hli/ports/port_l23/layer1_thor.py +70 -0
  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/trafficgen/runt.py +32 -0
  73. xoa_driver/internals/hli/ports/port_l23/{bases/port_reception_statistics.py → trafficgen/rx_stats.py} +0 -21
  74. xoa_driver/internals/hli/ports/port_l23/{bases/port_l23.py → trafficgen/tgen.py} +31 -213
  75. xoa_driver/internals/hli/ports/port_l23/{bases/port_transmission_statistics.py → trafficgen/tx_stats.py} +2 -22
  76. xoa_driver/internals/hli/testers/l23_tester.py +1 -3
  77. xoa_driver/internals/utils/indices/_interfaces.py +18 -6
  78. xoa_driver/internals/utils/indices/index_manager.py +8 -2
  79. xoa_driver/internals/utils/managers/ports_manager.py +5 -2
  80. xoa_driver/misc.py +6 -6
  81. xoa_driver/modules.py +31 -47
  82. xoa_driver/ports.py +10 -29
  83. xoa_driver/internals/hli/modules/modules_l23/family_d.py +0 -75
  84. xoa_driver/internals/hli/modules/modules_l23/family_e.py +0 -85
  85. xoa_driver/internals/hli/modules/modules_l23/family_f.py +0 -145
  86. xoa_driver/internals/hli/modules/modules_l23/family_h.py +0 -40
  87. xoa_driver/internals/hli/modules/modules_l23/family_i.py +0 -25
  88. xoa_driver/internals/hli/modules/modules_l23/family_j.py +0 -25
  89. xoa_driver/internals/hli/modules/modules_l23/family_k.py +0 -39
  90. xoa_driver/internals/hli/modules/modules_l23/family_m.py +0 -25
  91. xoa_driver/internals/hli/modules/modules_l23/family_n.py +0 -40
  92. xoa_driver/internals/hli/ports/port_l23/bases/port_l23_genuine.py +0 -229
  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. xoa_driver/internals/hli/ports/port_l23/port_l23ve.py +0 -101
  106. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.1.dist-info}/WHEEL +0 -0
  107. {tdl_xoa_driver-1.5.1.dist-info → tdl_xoa_driver-1.6.1.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/port_capture.py → trafficgen/capture.py} +0 -0
@@ -1,3 +1,4 @@
1
+ """Port Basic Layer 1 Commands"""
1
2
  from __future__ import annotations
2
3
  from dataclasses import dataclass
3
4
  import typing
@@ -263,6 +264,14 @@ class PP_TXPRBSCONFIG:
263
264
  error_on_off=error_on_off
264
265
  )
265
266
  )
267
+
268
+ set_on = functools.partialmethod(set, 17, PRBSOnOff.PRBSON, ErrorOnOff.ERRORSOFF)
269
+ """Enable PRBS transmission on this SerDes without error injection.
270
+ """
271
+
272
+ set_off = functools.partialmethod(set, 17, PRBSOnOff.PRBSOFF, ErrorOnOff.ERRORSOFF)
273
+ """Disable PRBS transmission on this SerDes without error injection.
274
+ """
266
275
 
267
276
 
268
277
  @register_command
@@ -840,7 +849,7 @@ class PP_TXLASERPOWER:
840
849
  @dataclass
841
850
  class PP_PMAERRPUL_ENABLE:
842
851
  """
843
- Enable / disable 'PMA pulse error inject'.
852
+ Enable / disable PMA pulse error inject.
844
853
  """
845
854
 
846
855
  code: typing.ClassVar[int] = 300
@@ -868,8 +877,8 @@ class PP_PMAERRPUL_ENABLE:
868
877
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
869
878
 
870
879
  def set(self, on_off: OnOff) -> Token[None]:
871
- """Set the status of 'PMA pulse error inject'.
872
-
880
+ """Set the status of PMA pulse error inject.
881
+
873
882
  :param on_off: whether PMA pulse error inject is enabled
874
883
  :type on_off: OnOff
875
884
  """
@@ -1946,8 +1955,7 @@ class PP_PHYRXEQSTATUS_EXT:
1946
1955
  @dataclass
1947
1956
  class PP_AUTONEG:
1948
1957
  """
1949
- Auto-negotiation settings of the PHY - for Thor-400G-7S-1P Thor-400G-7S-1P[b]
1950
- and [c]
1958
+ Basic Auto-negotiation configuration and control
1951
1959
  """
1952
1960
 
1953
1961
  code: typing.ClassVar[int] = 381
@@ -1960,25 +1968,25 @@ class PP_AUTONEG:
1960
1968
  class GetDataAttr(ResponseBodyStruct):
1961
1969
  mode: AutoNegMode = field(XmpInt())
1962
1970
  """coded integer, mode"""
1963
- tec_ability: AutoNegTecAbility = field(XmpInt())
1964
- """coded integer, technical ability."""
1965
- fec_capable: int = field(XmpInt())
1971
+ tec_ability: Hex = field(XmpHex(size=8))
1972
+ """hex string, technical ability."""
1973
+ fec_capable: Hex = field(XmpHex(size=1))
1966
1974
  """coded integer, FEC capable."""
1967
- fec_requested: int = field(XmpInt())
1975
+ fec_requested: Hex = field(XmpHex(size=1))
1968
1976
  """coded integer, FEC requested."""
1969
- pause_mode: PauseMode = field(XmpInt())
1977
+ pause_mode: Hex = field(XmpHex(size=1))
1970
1978
  """coded integer, pause mode."""
1971
1979
 
1972
1980
  class SetDataAttr(RequestBodyStruct):
1973
1981
  mode: AutoNegMode = field(XmpInt())
1974
1982
  """coded integer, mode"""
1975
- tec_ability: AutoNegTecAbility = field(XmpInt())
1976
- """coded integer, technical ability."""
1977
- fec_capable: int = field(XmpInt())
1983
+ tec_ability: Hex = field(XmpHex(size=8))
1984
+ """hex string, technical ability."""
1985
+ fec_capable: Hex = field(XmpHex(size=1))
1978
1986
  """coded integer, FEC capable."""
1979
- fec_requested: int = field(XmpInt())
1987
+ fec_requested: Hex = field(XmpHex(size=1))
1980
1988
  """coded integer, FEC requested."""
1981
- pause_mode: PauseMode = field(XmpInt())
1989
+ pause_mode: Hex = field(XmpHex(size=1))
1982
1990
  """coded integer, pause mode."""
1983
1991
 
1984
1992
  def get(self) -> Token[GetDataAttr]:
@@ -1990,19 +1998,19 @@ class PP_AUTONEG:
1990
1998
 
1991
1999
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port))
1992
2000
 
1993
- def set(self, mode: AutoNegMode, tec_ability: AutoNegTecAbility, fec_capable: AutoNegFECOption, fec_requested: AutoNegFECOption, pause_mode: PauseMode) -> Token[None]:
2001
+ def set(self, mode: AutoNegMode, tec_ability: Hex, fec_capable: Hex, fec_requested: Hex, pause_mode: Hex) -> Token[None]:
1994
2002
  """Set the auto-negotiation settings of the PHY.
1995
2003
 
1996
2004
  :param mode: auto neg mode
1997
2005
  :type mode: AutoNegMode
1998
- :param tec_ability: technical ability
1999
- :type tec_ability: AutoNegTecAbility
2006
+ :param tec_ability: technical ability (hex string with 0x prefix or AutoNegTecAbility enum)
2007
+ :type tec_ability: Hex
2000
2008
  :param fec_capable: FEC capable
2001
- :type fec_capable: AutoNegFECOption
2009
+ :type fec_capable: Hex
2002
2010
  :param fec_requested: FEC requested
2003
- :type fec_requested: AutoNegFECOption
2004
- :param pause_mode: pause mode
2005
- :type pause_mode: PauseMode
2011
+ :type fec_requested: Hex
2012
+ :param pause_mode: pause mode (hex string with 0x prefix or PauseMode enum)
2013
+ :type pause_mode: Hex
2006
2014
  """
2007
2015
 
2008
2016
  return Token(
@@ -2024,7 +2032,7 @@ class PP_AUTONEG:
2024
2032
  @dataclass
2025
2033
  class PP_AUTONEGSTATUS:
2026
2034
  """
2027
- Status of auto-negotiation settings of the PHY - for Thor-400G-7S-1P[b] and [c]
2035
+ Basic Auto-negotiation status
2028
2036
  """
2029
2037
 
2030
2038
  code: typing.ClassVar[int] = 382
@@ -2041,13 +2049,13 @@ class PP_AUTONEGSTATUS:
2041
2049
  """codec integer, FEC."""
2042
2050
  auto_state: AutoNegStatus = field(XmpInt())
2043
2051
  """coded integer, auto-negotiation state."""
2044
- tec_ability: AutoNegTecAbility = field(XmpInt())
2052
+ tec_ability: Hex = field(XmpHex(size=8))
2045
2053
  """coded integer, technical ability."""
2046
- fec_capable: int = field(XmpInt())
2054
+ fec_capable: Hex = field(XmpHex(size=1))
2047
2055
  """coded integer, FEC capable partner."""
2048
- fec_requested: int = field(XmpInt())
2056
+ fec_requested: Hex = field(XmpHex(size=1))
2049
2057
  """coded integer, FEC requested partner."""
2050
- pause_mode: PauseMode = field(XmpInt())
2058
+ pause_mode: Hex = field(XmpHex(size=1))
2051
2059
  """coded integer, pause mode."""
2052
2060
 
2053
2061
  def get(self) -> Token[GetDataAttr]:
@@ -2328,3 +2336,52 @@ class PP_PRECODINGSTATUS:
2328
2336
  """
2329
2337
 
2330
2338
  return Token(self._connection, build_get_request(self, module=self._module, port=self._port, indices=[self._serdes_xindex]))
2339
+
2340
+
2341
+ __all__ = [
2342
+ "PP_ALARMS_ERRORS",
2343
+ "PP_AUTONEG",
2344
+ "PP_AUTONEGSTATUS",
2345
+ "PP_EYEBER",
2346
+ "PP_EYEDWELLBITS",
2347
+ "PP_EYEINFO",
2348
+ "PP_EYEMEASURE",
2349
+ "PP_EYEREAD",
2350
+ "PP_EYERESOLUTION",
2351
+ "PP_FECMODE",
2352
+ "PP_GRAYCODING",
2353
+ "PP_LINKFLAP_ENABLE",
2354
+ "PP_LINKFLAP_PARAMS",
2355
+ "PP_LINKTRAIN",
2356
+ "PP_LINKTRAINSTATUS",
2357
+ "PP_PHYAUTONEG",
2358
+ "PP_PHYAUTOTUNE",
2359
+ "PP_PHYRETUNE",
2360
+ "PP_PHYRXEQ",
2361
+ "PP_PHYRXEQSTATUS_EXT",
2362
+ "PP_PHYRXEQ_EXT",
2363
+ "PP_PHYSETTINGS",
2364
+ "PP_PHYSIGNALSTATUS",
2365
+ "PP_PHYTXEQ",
2366
+ "PP_PMAERRPUL_ENABLE",
2367
+ "PP_PMAERRPUL_PARAMS",
2368
+ "PP_PRBSTYPE",
2369
+ "PP_PRECODING",
2370
+ "PP_PRECODINGSTATUS",
2371
+ "PP_RXCLEAR",
2372
+ "PP_RXFECSTATS",
2373
+ "PP_RXLANEERRORS",
2374
+ "PP_RXLANELOCK",
2375
+ "PP_RXLANESTATUS",
2376
+ "PP_RXLASERPOWER",
2377
+ "PP_RXPRBSSTATUS",
2378
+ "PP_RXPRBSTYPE",
2379
+ "PP_RXTOTALSTATS",
2380
+ "PP_TXERRORRATE",
2381
+ "PP_TXINJECTONE",
2382
+ "PP_TXLANECONFIG",
2383
+ "PP_TXLANEINJECT",
2384
+ "PP_TXLASERPOWER",
2385
+ "PP_TXPRBSCONFIG",
2386
+ "PP_TXPRBSTYPE",
2387
+ ]
@@ -1,3 +1,4 @@
1
+ """Port Rx Statistics Commands"""
1
2
  from __future__ import annotations
2
3
  from dataclasses import dataclass
3
4
  import typing
@@ -803,3 +804,27 @@ class PR_FLOWCLEAR:
803
804
  """
804
805
 
805
806
  return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
807
+
808
+
809
+ __all__ = [
810
+ "PR_CALIBRATE",
811
+ "PR_CLEAR",
812
+ "PR_EXTRA",
813
+ "PR_FILTER",
814
+ "PR_FILTEREXT",
815
+ "PR_FLOWCLEAR",
816
+ "PR_FLOWTOTAL",
817
+ "PR_NOTPLD",
818
+ "PR_NOTPLDEXT",
819
+ "PR_PFCSTATS",
820
+ "PR_TOTAL",
821
+ "PR_TOTALEXT",
822
+ "PR_TPLDERRORS",
823
+ "PR_TPLDJITTER",
824
+ "PR_TPLDLATENCY",
825
+ "PR_TPLDS",
826
+ "PR_TPLDTRAFFIC",
827
+ "PR_TPLDTRAFFICEXT",
828
+ "PR_UAT_STATUS",
829
+ "PR_UAT_TIME",
830
+ ]
@@ -1,3 +1,4 @@
1
+ """Port Stream Commands"""
1
2
  from __future__ import annotations
2
3
  from dataclasses import dataclass
3
4
  import ipaddress
@@ -2306,4 +2307,49 @@ class PS_MODIFIER_ENDIAN:
2306
2307
 
2307
2308
  set_little_endia = functools.partialmethod(set, mode=ModifierEndianness.LITTLE)
2308
2309
  """Set a stream modifier endianness to Little Endian.
2309
- """
2310
+ """
2311
+
2312
+ __all__ = [
2313
+ "PS_ARPREQUEST",
2314
+ "PS_AUTOADJUST",
2315
+ "PS_BURST",
2316
+ "PS_BURSTGAP",
2317
+ "PS_CDFCOUNT",
2318
+ "PS_CDFDATA",
2319
+ "PS_CDFOFFSET",
2320
+ "PS_COMMENT",
2321
+ "PS_CREATE",
2322
+ "PS_DELETE",
2323
+ "PS_ENABLE",
2324
+ "PS_EXTPAYLOAD",
2325
+ "PS_HEADERPROTOCOL",
2326
+ "PS_INDICES",
2327
+ "PS_INJECTFCSERR",
2328
+ "PS_INJECTMISERR",
2329
+ "PS_INJECTPLDERR",
2330
+ "PS_INJECTSEQERR",
2331
+ "PS_INJECTTPLDERR",
2332
+ "PS_INSERTFCS",
2333
+ "PS_IPV4GATEWAY",
2334
+ "PS_IPV6GATEWAY",
2335
+ "PS_MACSEC_ASSIGN",
2336
+ "PS_MACSEC_ENABLE",
2337
+ "PS_MODIFIER",
2338
+ "PS_MODIFIERCOUNT",
2339
+ "PS_MODIFIEREXT",
2340
+ "PS_MODIFIEREXTCOUNT",
2341
+ "PS_MODIFIEREXTRANGE",
2342
+ "PS_MODIFIERRANGE",
2343
+ "PS_MODIFIER_ENDIAN",
2344
+ "PS_OPTIONS",
2345
+ "PS_PACKETHEADER",
2346
+ "PS_PACKETLENGTH",
2347
+ "PS_PACKETLIMIT",
2348
+ "PS_PAYLOAD",
2349
+ "PS_PFCPRIORITY",
2350
+ "PS_PINGREQUEST",
2351
+ "PS_RATEFRACTION",
2352
+ "PS_RATEL2BPS",
2353
+ "PS_RATEPPS",
2354
+ "PS_TPLDID",
2355
+ ]
@@ -1,3 +1,4 @@
1
+ """Port Tx Statistics Commands"""
1
2
  from __future__ import annotations
2
3
  from dataclasses import dataclass
3
4
  import typing
@@ -382,3 +383,17 @@ class PT_FLOWCLEAR:
382
383
  """
383
384
 
384
385
  return Token(self._connection, build_set_request(self, module=self._module, port=self._port, indices=[self._flow_xindex]))
386
+
387
+
388
+ __all__ = [
389
+ "PT_CLEAR",
390
+ "PT_EXTRA",
391
+ "PT_FLOWCLEAR",
392
+ "PT_FLOWTOTAL",
393
+ "PT_NOTPLD",
394
+ "PT_NOTPLDEXT",
395
+ "PT_STREAM",
396
+ "PT_STREAMEXT",
397
+ "PT_TOTAL",
398
+ "PT_TOTALEXT",
399
+ ]