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,145 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P")
15
- class MOdin10G1S2P(ModuleL23):
16
- """Test module Odin-10G-1S-2P"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.POdin10G1S2P] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.POdin10G1S2P,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port Index Manager of Odin-10G-1S-2P"""
26
-
27
-
28
- @typing.final
29
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P[b]")
30
- class MOdin10G1S2P_b(ModuleL23):
31
- """Test module Odin-10G-1S-2P[b]"""
32
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
33
- super().__init__(conn, init_data)
34
- self.ports: pm.PortsManager[ports.POdin10G1S2P_b] = pm.PortsManager(
35
- conn=conn,
36
- ports_type=ports.POdin10G1S2P_b,
37
- module_id=self.module_id,
38
- ports_count=self.ports_count
39
- )
40
- """Port Index Manager of Odin-10G-1S-2P[b]"""
41
-
42
-
43
- @typing.final
44
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P[c]")
45
- class MOdin10G1S2P_c(ModuleL23):
46
- """Test module Odin-10G-1S-2P[c]"""
47
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
48
- super().__init__(conn, init_data)
49
- self.ports: pm.PortsManager[ports.POdin10G1S2P_c] = pm.PortsManager(
50
- conn=conn,
51
- ports_type=ports.POdin10G1S2P_c,
52
- module_id=self.module_id,
53
- ports_count=self.ports_count
54
- )
55
- """Port Index Manager of Odin-10G-1S-2P[c]"""
56
-
57
-
58
- @typing.final
59
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-6P")
60
- class MOdin10G1S6P(ModuleL23):
61
- """Test module Odin-10G-1S-6P"""
62
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
63
- super().__init__(conn, init_data)
64
- self.ports: pm.PortsManager[ports.POdin10G1S6P] = pm.PortsManager(
65
- conn=conn,
66
- ports_type=ports.POdin10G1S6P,
67
- module_id=self.module_id,
68
- ports_count=self.ports_count
69
- )
70
- """Port Index Manager of Odin-10G-1S-6P"""
71
-
72
-
73
- @typing.final
74
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-6P[b]")
75
- class MOdin10G1S6P_b(ModuleL23):
76
- """Test module Odin-10G-1S-6P[b]"""
77
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
78
- super().__init__(conn, init_data)
79
- self.ports: pm.PortsManager[ports.POdin10G1S6P_b] = pm.PortsManager(
80
- conn=conn,
81
- ports_type=ports.POdin10G1S6P_b,
82
- module_id=self.module_id,
83
- ports_count=self.ports_count
84
- )
85
- """Port Index Manager of Odin-10G-1S-6P[b]"""
86
-
87
-
88
- @typing.final
89
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P-T")
90
- class MOdin10G1S2PT(ModuleL23):
91
- """Test module Odin-10G-1S-2P-T"""
92
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
93
- super().__init__(conn, init_data)
94
- self.ports: pm.PortsManager[ports.POdin10G1S2PT] = pm.PortsManager(
95
- conn=conn,
96
- ports_type=ports.POdin10G1S2PT,
97
- module_id=self.module_id,
98
- ports_count=self.ports_count
99
- )
100
- """Port Index Manager of Odin-10G-1S-2P-T"""
101
-
102
-
103
- @typing.final
104
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P[d]")
105
- class MOdin10G1S2P_d(ModuleL23):
106
- """Test module Odin-10G-1S-2P[d]"""
107
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
108
- super().__init__(conn, init_data)
109
- self.ports: pm.PortsManager[ports.POdin10G1S2P_d] = pm.PortsManager(
110
- conn=conn,
111
- ports_type=ports.POdin10G1S2P_d,
112
- module_id=self.module_id,
113
- ports_count=self.ports_count
114
- )
115
- """Port Index Manager of Odin-10G-1S-2P[d]"""
116
-
117
-
118
- @typing.final
119
- @revisions.register_valkyrie_module(rev="Odin-10G-1S-12P")
120
- class MOdin10G1S12P(ModuleL23):
121
- """Test module Odin-10G-1S-12P"""
122
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
123
- super().__init__(conn, init_data)
124
- self.ports: pm.PortsManager[ports.POdin10G1S12P] = pm.PortsManager(
125
- conn=conn,
126
- ports_type=ports.POdin10G1S12P,
127
- module_id=self.module_id,
128
- ports_count=self.ports_count
129
- )
130
- """Port Index Manager Odin-10G-1S-12P"""
131
-
132
-
133
- @typing.final
134
- @revisions.register_valkyrie_module(rev="Odin-10G-6S-6P[a]")
135
- class MOdin10G6S6P_a(ModuleL23):
136
- """Test module Odin-10G-6S-6P[a]"""
137
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
138
- super().__init__(conn, init_data)
139
- self.ports: pm.PortsManager[ports.POdin10G6S6P_a] = pm.PortsManager(
140
- conn=conn,
141
- ports_type=ports.POdin10G6S6P_a,
142
- module_id=self.module_id,
143
- ports_count=self.ports_count
144
- )
145
- """Port Index Manager Odin-10G-6S-6P[a]"""
@@ -1,40 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Loki-100G-5S-1P")
15
- class MLoki100G5S1P(ModuleL23):
16
- """Test module Loki-100G-5S-1P"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.PLoki100G5S1P] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.PLoki100G5S1P,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port Index Manager of Loki-100G-5S-1P"""
26
-
27
-
28
- @typing.final
29
- @revisions.register_valkyrie_module(rev="Odin-100G-3S-1P")
30
- class MOdin100G3S1P(ModuleL23):
31
- """Test module Odin-100G-3S-1P"""
32
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
33
- super().__init__(conn, init_data)
34
- self.ports: pm.PortsManager[ports.POdin100G3S1P] = pm.PortsManager(
35
- conn=conn,
36
- ports_type=ports.POdin100G3S1P,
37
- module_id=self.module_id,
38
- ports_count=self.ports_count
39
- )
40
- """Port Index Manager of Odin-100G-3S-1P"""
@@ -1,25 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Loki-100G-5S-2P")
15
- class MLoki100G5S2P(ModuleL23):
16
- """Test module Loki-100G-5S-2P"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.PLoki100G5S2P] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.PLoki100G5S2P,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port Index Manager of Loki-100G-5S-2P"""
@@ -1,25 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Thor-100G-5S-4P")
15
- class MThor100G5S4P(ModuleL23):
16
- """Test module Thor-100G-5S-4P"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.PThor100G5S4P] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.PThor100G5S4P,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port Index Manager of Thor-100G-5S-4P"""
@@ -1,39 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Thor-400G-7S-1P")
15
- class MThor400G7S1P(ModuleL23):
16
- """Test module Thor-400G-7S-1P"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.PThor400G7S1P] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.PThor400G7S1P,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port index of Thor-400G-7S-1P"""
26
-
27
- @typing.final
28
- @revisions.register_valkyrie_module(rev="Thor-400G-7S-1P LE")
29
- class MThor400G7S1PLE(ModuleL23):
30
- """Test module Thor-400G-7S-1P LE"""
31
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
32
- super().__init__(conn, init_data)
33
- self.ports: pm.PortsManager[ports.PThor400G7S1PLE] = pm.PortsManager(
34
- conn=conn,
35
- ports_type=ports.PThor400G7S1PLE,
36
- module_id=self.module_id,
37
- ports_count=self.ports_count
38
- )
39
- """Port index of Thor-400G-7S-1P LE"""
@@ -1,25 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Odin-1G-3S-6P-T1-RJ45")
15
- class MOdin1G3S6PT1RJ45(ModuleL23):
16
- """Test module Odin-1G-3S-6P-T1-RJ45"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.POdin1G3S6PT1RJ45] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.POdin1G3S6PT1RJ45,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port Index Manager of Odin-1G-3S-6P-T1-RJ45"""
@@ -1,40 +0,0 @@
1
- import typing
2
- from xoa_driver import ports
3
- from xoa_driver.internals.hli import revisions
4
- from xoa_driver.internals.utils.managers import ports_manager as pm
5
-
6
- if typing.TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
- from .. import __interfaces as m_itf
9
-
10
- from .module_l23_base import ModuleL23
11
-
12
-
13
- @typing.final
14
- @revisions.register_valkyrie_module(rev="Odin-40G-2S-2P")
15
- class MOdin40G2S2P(ModuleL23):
16
- """Test module Odin-40G-2S-2P"""
17
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
18
- super().__init__(conn, init_data)
19
- self.ports: pm.PortsManager[ports.POdin40G2S2P] = pm.PortsManager(
20
- conn=conn,
21
- ports_type=ports.POdin40G2S2P,
22
- module_id=self.module_id,
23
- ports_count=self.ports_count
24
- )
25
- """Port Index Manager of Odin-40G-2S-2P"""
26
-
27
-
28
- @typing.final
29
- @revisions.register_valkyrie_module(rev="Odin-40G-2S-2P-B")
30
- class MOdin40G2S2PB(ModuleL23):
31
- """Test module Odin-40G-2S-2P-B"""
32
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
33
- super().__init__(conn, init_data)
34
- self.ports: pm.PortsManager[ports.POdin40G2S2PB] = pm.PortsManager(
35
- conn=conn,
36
- ports_type=ports.POdin40G2S2PB,
37
- module_id=self.module_id,
38
- ports_count=self.ports_count
39
- )
40
- """Port Index Manager of Odin-40G-2S-2P-B"""
@@ -1,181 +0,0 @@
1
- from typing import (
2
- TYPE_CHECKING,
3
- Tuple,
4
- )
5
- if TYPE_CHECKING:
6
- from xoa_driver.internals.core import interfaces as itf
7
- from xoa_driver.internals.commands import (
8
- PP_PRECODING,
9
- PP_GRAYCODING,
10
- PL1_PHYTXEQ_LEVEL,
11
- PL1_PHYTXEQ_COEFF,
12
- PL1_PCS_VARIANT,
13
- PL1_PHYTXEQ,
14
- PL1_CWE_CYCLE,
15
- PL1_CWE_ERR_SYM_INDICES,
16
- PL1_CWE_BIT_ERR_MASK,
17
- PL1_CWE_FEC_ENGINE,
18
- PL1_CWE_FEC_STATS,
19
- PL1_CWE_CONTROL,
20
- PL1_CWE_FEC_STATS_CLEAR,
21
- PP_PRBSTYPE,
22
- PL1_PNSWAP_RX,
23
- PL1_PNSWAP_TX,
24
- PP_AUTONEG,
25
- PP_AUTONEGSTATUS,
26
- PP_LINKTRAIN,
27
- )
28
- from .pcs_pma_ghijkl import (
29
- Prbs,
30
- )
31
- from xoa_driver import enums
32
-
33
- class EdunPMA:
34
- """Edun PMA"""
35
-
36
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
37
- self.precoding = PP_PRECODING(conn, module_id, port_id, serdes_xindex)
38
- """GET/SET Pre-Coding Configurations.
39
-
40
- :type: PP_PRECODING
41
- """
42
-
43
- self.graycoding = PP_GRAYCODING(conn, module_id, port_id, serdes_xindex)
44
- """GET/SET Gray-Coding Configurations.
45
-
46
- :type: PP_GRAYCODING
47
- """
48
-
49
- self.pn_swap_rx = PL1_PNSWAP_RX(conn, module_id, port_id, serdes_xindex)
50
- """GET/SET PN-Swap RX Configurations.
51
-
52
- :type: PL1_PNSWAP_RX
53
- """
54
-
55
- self.pn_swap_tx = PL1_PNSWAP_TX(conn, module_id, port_id, serdes_xindex)
56
- """GET/SET PN-Swap TX Configurations.
57
-
58
- :type: PL1_PNSWAP_TX
59
- """
60
-
61
- class EdunTxTap:
62
- """Edun Tx Tap"""
63
-
64
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
65
- self.native = PL1_PHYTXEQ(conn, module_id, port_id, serdes_xindex)
66
- """TX tap native value. (only for Edun)
67
-
68
- :type: PL1_PHYTXEQ
69
- """
70
-
71
- self.level = PL1_PHYTXEQ_LEVEL(conn, module_id, port_id, serdes_xindex)
72
- """TX tap mV/dB value. (only for Edun)
73
-
74
- :type: PL1_PHYTXEQ_LEVEL
75
- """
76
-
77
- self.ieee = PL1_PHYTXEQ_COEFF(conn, module_id, port_id, serdes_xindex)
78
- """TX tap IEEE coefficient value. (only for Edun)
79
-
80
- :type: PL1_PHYTXEQ_COEFF
81
- """
82
-
83
- # class EdunRxTap:
84
- # """Edun Rx tap
85
- # """
86
- # def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
87
- # self.status = P_EDUN_RX_STATUS(conn, module_id, port_id, serdes_xindex)
88
- # """Edun Rx tap status
89
- # """
90
-
91
- class EdunMedium:
92
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
93
- self.tx = EdunTxTap(conn, module_id, port_id, serdes_xindex)
94
- """Edun Tx tap
95
- """
96
- # self.rx = EdunRxTap(conn, module_id, port_id, serdes_xindex)
97
- # """Edun Rx tap
98
- # """
99
-
100
- class SerDesEdun:
101
- """L23 high-speed port SerDes configuration and status."""
102
-
103
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, serdes_xindex: int) -> None:
104
-
105
- self.prbs = Prbs(conn, module_id, port_id, serdes_xindex)
106
- """PRBS
107
- :type: Prbs
108
- """
109
-
110
- self.pma = EdunPMA(conn, module_id, port_id, serdes_xindex)
111
- """Edun PMA
112
-
113
- :type: EdunPMA
114
- """
115
-
116
- self.medium = EdunMedium(conn, module_id, port_id, serdes_xindex)
117
- """Edun medium
118
-
119
- :type: EdunMedium
120
- """
121
-
122
- class EdunAutoneg:
123
- """Edun port-level autoneg. For per-serdes configuration and status, use serdes[x]
124
- """
125
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
126
- self.config = PP_AUTONEG(conn, module_id, port_id)
127
- """Autoneg config and status
128
- """
129
- self.status = PP_AUTONEGSTATUS(conn, module_id, port_id)
130
- """Autoneg status
131
- """
132
-
133
- class EdunFecCodewordErrorInject:
134
- """Edun FEC Codeword Error Injection
135
- """
136
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
137
- self.cycle = PL1_CWE_CYCLE(conn, module_id, port_id)
138
- """FEC codeword error injection cycle.
139
- """
140
- self.err_symbols = PL1_CWE_ERR_SYM_INDICES(conn, module_id, port_id)
141
- """The positions of the errored symbols in errored codewords.
142
- """
143
- self.bit_err_mask = PL1_CWE_BIT_ERR_MASK(conn, module_id, port_id)
144
- """The bit error mask for the errored symbols.
145
- """
146
- self.engine = PL1_CWE_FEC_ENGINE(conn, module_id, port_id)
147
- """The FEC engines to use.
148
- """
149
- self.statistics = PL1_CWE_FEC_STATS(conn, module_id, port_id)
150
- """FEC error injection statistics
151
- """
152
- self.clear_stats = PL1_CWE_FEC_STATS_CLEAR(conn, module_id, port_id)
153
- """Clear FEC codeword injection stats
154
- """
155
- self.control = PL1_CWE_CONTROL(conn, module_id, port_id)
156
- """Control the FEC codeword error injection
157
- """
158
-
159
- class Layer1:
160
- def __init__(self, conn: "itf.IConnection", port) -> None:
161
- self.serdes: Tuple[SerDesEdun, ...] = tuple(
162
- SerDesEdun(conn, *port.kind, serdes_xindex=idx)
163
- for idx in range(port.info.capabilities.serdes_count)
164
- )
165
- self.autoneg = EdunAutoneg(conn, *port.kind)
166
- """Edun port-level autoneg. For per-serdes configuration and status, use serdes[x]
167
- """
168
- self.lt = PP_LINKTRAIN(conn, *port.kind)
169
- """Edun Link Training on serdes level
170
-
171
- :type: PP_LINKTRAIN
172
- """
173
- self.pcs_variant = PL1_PCS_VARIANT(conn, *port.kind)
174
- """PCS variant configuration
175
- """
176
- self.fec_error_inject = EdunFecCodewordErrorInject(conn, *port.kind)
177
- """FEC codeword error injection
178
- """
179
- self.prbs_config = PP_PRBSTYPE(conn, *port.kind)
180
- """PRBS configuration, including PRBS polynomial, invert mode, and statistic collection mode (for RX).
181
- """
@@ -1,37 +0,0 @@
1
- from typing import TYPE_CHECKING
2
- from xoa_driver.internals.commands import P_AUTONEGSELECTION
3
- if TYPE_CHECKING:
4
- from xoa_driver.internals.core import interfaces as itf
5
-
6
- from .bases.port_l23_genuine import BasePortL23Genuine
7
- from . import family_f
8
-
9
-
10
- class POdin1G4S4PCombi(BasePortL23Genuine):
11
- """L23 ports that supports MDI/MDIX and """
12
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
13
- super().__init__(conn, module_id, port_id)
14
-
15
- self.autoneg_selection = P_AUTONEGSELECTION(conn, module_id, port_id)
16
- """L23 port's auto-negotiation selection.
17
-
18
- :type: P_AUTONEGSELECTION`
19
- """
20
-
21
-
22
- class POdin1G4S4PCombi_b(POdin1G4S4PCombi):
23
- """L23 port on Odin-1G-4S-2P-Combi_b module.
24
- """
25
- ...
26
-
27
-
28
- class POdin10G4S2PCombi(family_f.FamilyF):
29
- """L23 port on Odin-10G-4S-2P-Combi module.
30
- """
31
- ...
32
-
33
-
34
- class POdin10G4S2PCombi_b(family_f.FamilyF):
35
- """L23 port on Odin-10G-4S-2P-Combi_b module.
36
- """
37
- ...
@@ -1,51 +0,0 @@
1
- from typing import TYPE_CHECKING
2
- from xoa_driver.internals.commands import (
3
- P_MDIXMODE,
4
- P_AUTONEGSELECTION,
5
- )
6
- if TYPE_CHECKING:
7
- from xoa_driver.internals.core import interfaces as itf
8
-
9
- from .bases.port_l23_genuine import BasePortL23Genuine
10
-
11
-
12
- class FamilyD(BasePortL23Genuine):
13
- """L23 ports that supports MDI/MDIX and """
14
-
15
- def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int) -> None:
16
- super().__init__(conn, module_id, port_id)
17
- self.mdix_mode = P_MDIXMODE(conn, module_id, port_id)
18
- """L23 port's MDI/MDIX mode.
19
-
20
- :type: P_MDIXMODE
21
- """
22
-
23
- self.autoneg_selection = P_AUTONEGSELECTION(conn, module_id, port_id)
24
- """L23 port's auto-negotiation selection.
25
-
26
- :type: P_AUTONEGSELECTION
27
- """
28
-
29
-
30
- class POdin1G3S6P(FamilyD):
31
- """L23 port on Odin-1G-3S-6P module.
32
- """
33
- ...
34
-
35
-
36
- class POdin1G3S6P_b(FamilyD):
37
- """L23 port on Odin-1G-3S-6P[b] module.
38
- """
39
- ...
40
-
41
-
42
- class POdin1G3S6PE(FamilyD):
43
- """L23 port on Odin-1G-3S-6P-E module.
44
- """
45
- ...
46
-
47
-
48
- class POdin1G3S2PT(FamilyD):
49
- """L23 port on Odin-1G-3S-2P-T module.
50
- """
51
- ...