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
+ """Subtypes for various commands."""
1
2
  import ipaddress
2
3
  from dataclasses import dataclass
3
4
 
@@ -18,7 +19,7 @@ from .enums import (
18
19
 
19
20
 
20
21
  @dataclass
21
- class ArpChunk:
22
+ class ArpEntry:
22
23
  ipv4_address: ipaddress.IPv4Address
23
24
  """The IP address to match to the Target IP address in the ARP requests"""
24
25
 
@@ -33,7 +34,7 @@ class ArpChunk:
33
34
 
34
35
 
35
36
  @dataclass
36
- class NdpChunk:
37
+ class NdpEntry:
37
38
  ipv6_address: ipaddress.IPv6Address
38
39
  """The IP address to match to the Target IP address in the NDP Neighbor Solicitation"""
39
40
 
@@ -47,7 +48,7 @@ class NdpChunk:
47
48
  """The target MAC address to return in the NDP Neighbor Advertisement. If set t to all-zero, the port MAC address will be used."""
48
49
 
49
50
  @dataclass
50
- class DhcpChunk:
51
+ class DhcpEntry:
51
52
  ipv4_address: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided IP address by DHCP Server
52
53
  subnet_mask: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided Subnet mask by DHCP Server
53
54
  braodcast_address: ipaddress.IPv4Address = field(XmpIPv4Address()) # provided Broadcast address by DHCP Server
@@ -146,7 +146,7 @@ class Order:
146
146
 
147
147
 
148
148
  class OrderedMeta(type):
149
- def __new__(cls: Type[Self], clsname: str, bases: tuple[Type], clsdict: dict[str, Any]) -> Self:
149
+ def __new__(cls: Type[OrderedMeta], clsname: str, bases: tuple[Type], clsdict: dict[str, Any]) -> OrderedMeta:
150
150
  if clsname not in SKIP_CLASSES:
151
151
  is_response = any(iter(cls_.__name__ == RESPONSE_CLS_NAME for cls_ in bases))
152
152
  annotations = utils.resolve_annotations(
@@ -25,11 +25,16 @@ from xoa_driver.internals.commands import (
25
25
  P_MACSEC_RXSC_CONF_OFFSET,
26
26
  P_MACSEC_RXSC_CIPHERSUITE,
27
27
  P_MACSEC_RXSC_TPLDID,
28
- P_MACSEC_RXSC_STARTING_PN,
28
+ P_MACSEC_RXSC_LOWEST_PN,
29
29
  P_MACSEC_TXSC_XPN_SSCI,
30
30
  P_MACSEC_TXSC_XPN_SALT,
31
31
  P_MACSEC_RXSC_XPN_SSCI,
32
32
  P_MACSEC_RXSC_XPN_SALT,
33
+ P_MACSEC_RXSC_AN,
34
+ P_MACSEC_RXSC_NEXT_PN,
35
+ P_MACSEC_TXSC_NEXT_PN,
36
+ P_MACSEC_RXSC_PN,
37
+ P_MACSEC_TXSC_NEXT_AN,
33
38
  )
34
39
  if TYPE_CHECKING:
35
40
  from xoa_driver.internals.core import interfaces as itf
@@ -109,6 +114,18 @@ class MACSecTxScConfig:
109
114
  :type: P_MACSEC_TXSC_XPN_SALT
110
115
  """
111
116
 
117
+ self.next_pn = P_MACSEC_TXSC_NEXT_PN(conn, module_id, port_id, txsc_idx)
118
+ """Configure TX SC's next expected PN value
119
+
120
+ :type: P_MACSEC_TXSC_NEXT_PN
121
+ """
122
+
123
+ self.next_an = P_MACSEC_TXSC_NEXT_AN(conn, module_id, port_id, txsc_idx)
124
+ """Configure TX SC's next AN value
125
+
126
+ :type: P_MACSEC_TXSC_NEXT_AN
127
+ """
128
+
112
129
  class MACSecRxScConfig:
113
130
  """MACSec RX SC Configuration"""
114
131
  def __init__(self, conn: "itf.IConnection", module_id: int, port_id: int, rxsc_idx: int) -> None:
@@ -137,8 +154,11 @@ class MACSecRxScConfig:
137
154
  :type: P_MACSEC_RXSC_CIPHERSUITE
138
155
  """
139
156
 
140
- self.starting_pn = P_MACSEC_RXSC_STARTING_PN(conn, module_id, port_id, rxsc_idx)
141
- """Configure RX SC's firset expected PN"""
157
+ self.lowest_pn = P_MACSEC_RXSC_LOWEST_PN(conn, module_id, port_id, rxsc_idx)
158
+ """Configure RX SC's lowest expected PN
159
+
160
+ :type: P_MACSEC_RXSC_LOWEST_PN
161
+ """
142
162
 
143
163
  self.tpld_id = P_MACSEC_RXSC_TPLDID(conn, module_id, port_id, rxsc_idx)
144
164
  """Configure RX SC's TPLD ID value
@@ -158,6 +178,24 @@ class MACSecRxScConfig:
158
178
  :type: P_MACSEC_RXSC_XPN_SALT
159
179
  """
160
180
 
181
+ self.an = P_MACSEC_RXSC_AN(conn, module_id, port_id, rxsc_idx)
182
+ """Configure RX SC's AN value
183
+
184
+ :type: P_MACSEC_RXSC_AN
185
+ """
186
+
187
+ self.next_pn = P_MACSEC_RXSC_NEXT_PN(conn, module_id, port_id, rxsc_idx)
188
+ """Configure RX SC's next expected PN value
189
+
190
+ :type: P_MACSEC_RXSC_NEXT_PN
191
+ """
192
+
193
+ self.pn = P_MACSEC_RXSC_PN(conn, module_id, port_id, rxsc_idx)
194
+ """ the latest recovered PN for the Rx SC., 64-bit in hex.
195
+
196
+ :type: P_MACSEC_RXSC_PN
197
+ """
198
+
161
199
 
162
200
  BS = TypeVar("BS")
163
201
 
@@ -13,71 +13,7 @@ if typing.TYPE_CHECKING:
13
13
  from .module_l23_base import ModuleL23
14
14
 
15
15
 
16
- D_FAMELY_ID = CapID(1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
17
- F_FAMELY_ID = CapID(0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
18
16
 
19
17
 
20
- CombiTypes = typing.Union[
21
- ports.POdin1G4S4PCombi,
22
- ports.POdin10G4S2PCombi,
23
- ]
24
18
 
25
- CombiTypesB = typing.Union[
26
- ports.POdin1G4S4PCombi_b,
27
- ports.POdin10G4S2PCombi_b,
28
- ]
29
19
 
30
-
31
- async def _port_resolver(conn: "itf.IConnection", module_id: int, port_id: int, port_map: typing.Dict[int, typing.Type]) -> typing.Coroutine[typing.Any, typing.Any, CombiTypes]:
32
- cap = await P_CAPABILITIES(conn, module_id, port_id).get()
33
- current_port_id = CapID.create_from_capabilities(cap)
34
- port_type = port_map[current_port_id.to_int()]
35
- return await port_type(conn, module_id, port_id)
36
-
37
-
38
- @typing.final
39
- @revisions.register_valkyrie_module(rev="Odin-10G-4S-2P-Combi")
40
- class MOdin10G4S2PCombi(ModuleL23):
41
- """Test module Odin-10G-4S-2P-Combi
42
- """
43
-
44
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
45
- super().__init__(conn, init_data)
46
- PORTS_MAP = {
47
- D_FAMELY_ID.to_int(): ports.POdin1G4S4PCombi,
48
- F_FAMELY_ID.to_int(): ports.POdin10G4S2PCombi,
49
- }
50
- self.ports: pm.PortsCombiManager[CombiTypes] = pm.PortsCombiManager(
51
- conn=conn,
52
- resolver=functools.partial(_port_resolver, port_map=PORTS_MAP),
53
- module_id=self.module_id,
54
- ports_count=self.ports_count
55
- )
56
- """Port Index Manager of Odin-10G-4S-2P-Combi
57
-
58
- :type: PortsCombiManager
59
- """
60
-
61
-
62
- @typing.final
63
- @revisions.register_valkyrie_module(rev="Odin-10G-4S-2P-Combi[b]")
64
- class MOdin10G4S2PCombi_b(ModuleL23):
65
- """Test module Odin-10G-4S-2P-Combi[b]
66
- """
67
-
68
- def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
69
- super().__init__(conn, init_data)
70
- PORTS_MAP = {
71
- D_FAMELY_ID.to_int(): ports.POdin1G4S4PCombi_b,
72
- F_FAMELY_ID.to_int(): ports.POdin10G4S2PCombi_b,
73
- }
74
- self.ports: pm.PortsCombiManager[CombiTypesB] = pm.PortsCombiManager(
75
- conn=conn,
76
- resolver=functools.partial(_port_resolver, port_map=PORTS_MAP),
77
- module_id=self.module_id,
78
- ports_count=self.ports_count
79
- )
80
- """Port Index Manager of Odin-10G-4S-2P-Combi[b]
81
-
82
- :type: PortsCombiManager
83
- """
@@ -49,8 +49,6 @@ class ModuleFamilyEdun(ModuleL23):
49
49
 
50
50
  self.health = MHealth(conn, self.module_id)
51
51
  """Module health information"""
52
-
53
- # region Edun
54
52
 
55
53
  @typing.final
56
54
  @revisions.register_valkyrie_module(rev="Edun-800G-3S-1P-SMPX[a]")
@@ -96,4 +96,32 @@ class MLoki100G5S4P_a(ModuleL23):
96
96
  module_id=self.module_id,
97
97
  ports_count=self.ports_count
98
98
  )
99
- """Port index manager of Loki-100G-5S-4P[a]"""
99
+ """Port index manager of Loki-100G-5S-4P[a]"""
100
+
101
+ @typing.final
102
+ @revisions.register_valkyrie_module(rev="Loki-100G-5S-1P")
103
+ class MLoki100G5S1P(ModuleL23):
104
+ """Test module Loki-100G-5S-1P"""
105
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
106
+ super().__init__(conn, init_data)
107
+ self.ports: pm.PortsManager[ports.PLoki100G5S1P] = pm.PortsManager(
108
+ conn=conn,
109
+ ports_type=ports.PLoki100G5S1P,
110
+ module_id=self.module_id,
111
+ ports_count=self.ports_count
112
+ )
113
+ """Port Index Manager of Loki-100G-5S-1P"""
114
+
115
+ @typing.final
116
+ @revisions.register_valkyrie_module(rev="Loki-100G-5S-2P")
117
+ class MLoki100G5S2P(ModuleL23):
118
+ """Test module Loki-100G-5S-2P"""
119
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
120
+ super().__init__(conn, init_data)
121
+ self.ports: pm.PortsManager[ports.PLoki100G5S2P] = pm.PortsManager(
122
+ conn=conn,
123
+ ports_type=ports.PLoki100G5S2P,
124
+ module_id=self.module_id,
125
+ ports_count=self.ports_count
126
+ )
127
+ """Port Index Manager of Loki-100G-5S-2P"""
@@ -0,0 +1,412 @@
1
+ import typing
2
+ import functools
3
+ from xoa_driver import ports
4
+ from xoa_driver.internals.hli import revisions
5
+ from xoa_driver.internals.utils.managers import ports_manager as pm
6
+ from xoa_driver.internals.utils.cap_id import CapID
7
+ from xoa_driver.internals.commands import P_CAPABILITIES
8
+
9
+ if typing.TYPE_CHECKING:
10
+ from xoa_driver.internals.core import interfaces as itf
11
+ from .. import __interfaces as m_itf
12
+
13
+ from .module_l23_base import ModuleL23
14
+
15
+ D_FAMELY_ID = CapID(1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
16
+ F_FAMELY_ID = CapID(0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
17
+
18
+
19
+ CombiTypes = typing.Union[
20
+ ports.POdin1G4S4PCombi,
21
+ ports.POdin10G4S2PCombi,
22
+ ]
23
+
24
+ CombiTypesB = typing.Union[
25
+ ports.POdin1G4S4PCombi_b,
26
+ ports.POdin10G4S2PCombi_b,
27
+ ]
28
+
29
+ async def _port_resolver(conn: "itf.IConnection", module_id: int, port_id: int, port_map: typing.Dict[int, typing.Type]) -> typing.Coroutine[typing.Any, typing.Any, CombiTypes]:
30
+ cap = await P_CAPABILITIES(conn, module_id, port_id).get()
31
+ current_port_id = CapID.create_from_capabilities(cap)
32
+ port_type = port_map[current_port_id.to_int()]
33
+ return await port_type(conn, module_id, port_id)
34
+
35
+ @typing.final
36
+ @revisions.register_valkyrie_module(rev="Odin-10G-4S-2P-Combi")
37
+ class MOdin10G4S2PCombi(ModuleL23):
38
+ """Test module Odin-10G-4S-2P-Combi
39
+ """
40
+
41
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
42
+ super().__init__(conn, init_data)
43
+ PORTS_MAP = {
44
+ D_FAMELY_ID.to_int(): ports.POdin1G4S4PCombi,
45
+ F_FAMELY_ID.to_int(): ports.POdin10G4S2PCombi,
46
+ }
47
+ self.ports: pm.PortsCombiManager[CombiTypes] = pm.PortsCombiManager(
48
+ conn=conn,
49
+ resolver=functools.partial(_port_resolver, port_map=PORTS_MAP),
50
+ module_id=self.module_id,
51
+ ports_count=self.ports_count
52
+ )
53
+ """Port Index Manager of Odin-10G-4S-2P-Combi
54
+
55
+ :type: PortsCombiManager
56
+ """
57
+
58
+
59
+ @typing.final
60
+ @revisions.register_valkyrie_module(rev="Odin-10G-4S-2P-Combi[b]")
61
+ class MOdin10G4S2PCombi_b(ModuleL23):
62
+ """Test module Odin-10G-4S-2P-Combi[b]
63
+ """
64
+
65
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
66
+ super().__init__(conn, init_data)
67
+ PORTS_MAP = {
68
+ D_FAMELY_ID.to_int(): ports.POdin1G4S4PCombi_b,
69
+ F_FAMELY_ID.to_int(): ports.POdin10G4S2PCombi_b,
70
+ }
71
+ self.ports: pm.PortsCombiManager[CombiTypesB] = pm.PortsCombiManager(
72
+ conn=conn,
73
+ resolver=functools.partial(_port_resolver, port_map=PORTS_MAP),
74
+ module_id=self.module_id,
75
+ ports_count=self.ports_count
76
+ )
77
+ """Port Index Manager of Odin-10G-4S-2P-Combi[b]
78
+
79
+ :type: PortsCombiManager
80
+ """
81
+
82
+ @typing.final
83
+ @revisions.register_valkyrie_module(rev="Odin-1G-3S-6P")
84
+ class MOdin1G3S6P(ModuleL23):
85
+ """Test module Odin-1G-3S-6P"""
86
+
87
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
88
+ super().__init__(conn, init_data)
89
+ self.ports: pm.PortsManager[ports.POdin1G3S6P] = pm.PortsManager(
90
+ conn=conn,
91
+ ports_type=ports.POdin1G3S6P,
92
+ module_id=self.module_id,
93
+ ports_count=self.ports_count
94
+ )
95
+ """Port Index Manager of Odin-1G-3S-6P"""
96
+
97
+
98
+ @typing.final
99
+ @revisions.register_valkyrie_module(rev="Odin-1G-3S-6P[b]")
100
+ class MOdin1G3S6P_b(ModuleL23):
101
+ """Test module Odin-1G-3S-6P[b]"""
102
+
103
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
104
+ super().__init__(conn, init_data)
105
+ self.ports: pm.PortsManager[ports.POdin1G3S6P_b] = pm.PortsManager(
106
+ conn=conn,
107
+ ports_type=ports.POdin1G3S6P_b,
108
+ module_id=self.module_id,
109
+ ports_count=self.ports_count
110
+ )
111
+ """Port Index Manager of Odin-1G-3S-6P[b]"""
112
+
113
+
114
+ @typing.final
115
+ @revisions.register_valkyrie_module(rev="Odin-1G-3S-6P-E")
116
+ class MOdin1G3S6PE(ModuleL23):
117
+ """Test module Odin-1G-3S-6P-E"""
118
+
119
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
120
+ super().__init__(conn, init_data)
121
+ self.ports: pm.PortsManager[ports.POdin1G3S6PE] = pm.PortsManager(
122
+ conn=conn,
123
+ ports_type=ports.POdin1G3S6PE,
124
+ module_id=self.module_id,
125
+ ports_count=self.ports_count
126
+ )
127
+ """Port Index Manager of Odin-1G-3S-6P-E"""
128
+
129
+
130
+ @typing.final
131
+ @revisions.register_valkyrie_module(rev="Odin-1G-3S-2P-T")
132
+ class MOdin1G3S2PT(ModuleL23):
133
+ """Test module Odin-1G-3S-2P-T"""
134
+
135
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
136
+ super().__init__(conn, init_data)
137
+ self.ports: pm.PortsManager[ports.POdin1G3S2PT] = pm.PortsManager(
138
+ conn=conn,
139
+ ports_type=ports.POdin1G3S2PT,
140
+ module_id=self.module_id,
141
+ ports_count=self.ports_count
142
+ )
143
+ """Port Index Manager of Odin-1G-3S-2P-T"""
144
+
145
+
146
+ @typing.final
147
+ @revisions.register_valkyrie_module(rev="Odin-5G-4S-6P-CU")
148
+ class MOdin5G4S6PCU(ModuleL23):
149
+ """Test module Odin-5G-4S-6P-CU"""
150
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
151
+ super().__init__(conn, init_data)
152
+ self.ports: pm.PortsManager[ports.POdin5G4S6PCU] = pm.PortsManager(
153
+ conn=conn,
154
+ ports_type=ports.POdin5G4S6PCU,
155
+ module_id=self.module_id,
156
+ ports_count=self.ports_count
157
+ )
158
+ """Port Index Manager of Odin-5G-4S-6P-CU"""
159
+
160
+
161
+ @typing.final
162
+ @revisions.register_valkyrie_module(rev="Odin-10G-5S-6P-CU")
163
+ class MOdin10G5S6PCU(ModuleL23):
164
+ """Test module Odin-10G-5S-6P-CU"""
165
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
166
+ super().__init__(conn, init_data)
167
+ self.ports: pm.PortsManager[ports.POdin10G5S6PCU] = pm.PortsManager(
168
+ conn=conn,
169
+ ports_type=ports.POdin10G5S6PCU,
170
+ module_id=self.module_id,
171
+ ports_count=self.ports_count
172
+ )
173
+ """Port Index Manager of Odin-10G-5S-6P-CU"""
174
+
175
+
176
+ @typing.final
177
+ @revisions.register_valkyrie_module(rev="Odin-10G-5S-6P-CU[b]")
178
+ class MOdin10G5S6PCU_b(ModuleL23):
179
+ """Test module Odin-10G-5S-6P-CU[b]"""
180
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
181
+ super().__init__(conn, init_data)
182
+ self.ports: pm.PortsManager[ports.POdin10G5S6PCU_b] = pm.PortsManager(
183
+ conn=conn,
184
+ ports_type=ports.POdin10G5S6PCU_b,
185
+ module_id=self.module_id,
186
+ ports_count=self.ports_count
187
+ )
188
+ """Port Index Manager of Odin-10G-5S-6P-CU[b]"""
189
+
190
+
191
+ @typing.final
192
+ @revisions.register_valkyrie_module(rev="Odin-10G-3S-6P-CU")
193
+ class MOdin10G3S6PCU(ModuleL23):
194
+ """Test module Odin-10G-3S-6P-CU"""
195
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
196
+ super().__init__(conn, init_data)
197
+ self.ports: pm.PortsManager[ports.POdin10G3S6PCU] = pm.PortsManager(
198
+ conn=conn,
199
+ ports_type=ports.POdin10G3S6PCU,
200
+ module_id=self.module_id,
201
+ ports_count=self.ports_count
202
+ )
203
+ """Port Index Manager of Odin-10G-3S-6P-CU"""
204
+
205
+
206
+ @typing.final
207
+ @revisions.register_valkyrie_module(rev="Odin-10G-3S-2P-CU")
208
+ class MOdin10G3S2PCU(ModuleL23):
209
+ """Test module Odin-10G-3S-2P-CU"""
210
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
211
+ super().__init__(conn, init_data)
212
+ self.ports: pm.PortsManager[ports.POdin10G3S2PCU] = pm.PortsManager(
213
+ conn=conn,
214
+ ports_type=ports.POdin10G3S2PCU,
215
+ module_id=self.module_id,
216
+ ports_count=self.ports_count
217
+ )
218
+ """Port Index Manager of Odin-10G-3S-2P-CU"""
219
+
220
+
221
+ @typing.final
222
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P")
223
+ class MOdin10G1S2P(ModuleL23):
224
+ """Test module Odin-10G-1S-2P"""
225
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
226
+ super().__init__(conn, init_data)
227
+ self.ports: pm.PortsManager[ports.POdin10G1S2P] = pm.PortsManager(
228
+ conn=conn,
229
+ ports_type=ports.POdin10G1S2P,
230
+ module_id=self.module_id,
231
+ ports_count=self.ports_count
232
+ )
233
+ """Port Index Manager of Odin-10G-1S-2P"""
234
+
235
+
236
+ @typing.final
237
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P[b]")
238
+ class MOdin10G1S2P_b(ModuleL23):
239
+ """Test module Odin-10G-1S-2P[b]"""
240
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
241
+ super().__init__(conn, init_data)
242
+ self.ports: pm.PortsManager[ports.POdin10G1S2P_b] = pm.PortsManager(
243
+ conn=conn,
244
+ ports_type=ports.POdin10G1S2P_b,
245
+ module_id=self.module_id,
246
+ ports_count=self.ports_count
247
+ )
248
+ """Port Index Manager of Odin-10G-1S-2P[b]"""
249
+
250
+
251
+ @typing.final
252
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P[c]")
253
+ class MOdin10G1S2P_c(ModuleL23):
254
+ """Test module Odin-10G-1S-2P[c]"""
255
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
256
+ super().__init__(conn, init_data)
257
+ self.ports: pm.PortsManager[ports.POdin10G1S2P_c] = pm.PortsManager(
258
+ conn=conn,
259
+ ports_type=ports.POdin10G1S2P_c,
260
+ module_id=self.module_id,
261
+ ports_count=self.ports_count
262
+ )
263
+ """Port Index Manager of Odin-10G-1S-2P[c]"""
264
+
265
+
266
+ @typing.final
267
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-6P")
268
+ class MOdin10G1S6P(ModuleL23):
269
+ """Test module Odin-10G-1S-6P"""
270
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
271
+ super().__init__(conn, init_data)
272
+ self.ports: pm.PortsManager[ports.POdin10G1S6P] = pm.PortsManager(
273
+ conn=conn,
274
+ ports_type=ports.POdin10G1S6P,
275
+ module_id=self.module_id,
276
+ ports_count=self.ports_count
277
+ )
278
+ """Port Index Manager of Odin-10G-1S-6P"""
279
+
280
+
281
+ @typing.final
282
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-6P[b]")
283
+ class MOdin10G1S6P_b(ModuleL23):
284
+ """Test module Odin-10G-1S-6P[b]"""
285
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
286
+ super().__init__(conn, init_data)
287
+ self.ports: pm.PortsManager[ports.POdin10G1S6P_b] = pm.PortsManager(
288
+ conn=conn,
289
+ ports_type=ports.POdin10G1S6P_b,
290
+ module_id=self.module_id,
291
+ ports_count=self.ports_count
292
+ )
293
+ """Port Index Manager of Odin-10G-1S-6P[b]"""
294
+
295
+
296
+ @typing.final
297
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P-T")
298
+ class MOdin10G1S2PT(ModuleL23):
299
+ """Test module Odin-10G-1S-2P-T"""
300
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
301
+ super().__init__(conn, init_data)
302
+ self.ports: pm.PortsManager[ports.POdin10G1S2PT] = pm.PortsManager(
303
+ conn=conn,
304
+ ports_type=ports.POdin10G1S2PT,
305
+ module_id=self.module_id,
306
+ ports_count=self.ports_count
307
+ )
308
+ """Port Index Manager of Odin-10G-1S-2P-T"""
309
+
310
+
311
+ @typing.final
312
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-2P[d]")
313
+ class MOdin10G1S2P_d(ModuleL23):
314
+ """Test module Odin-10G-1S-2P[d]"""
315
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
316
+ super().__init__(conn, init_data)
317
+ self.ports: pm.PortsManager[ports.POdin10G1S2P_d] = pm.PortsManager(
318
+ conn=conn,
319
+ ports_type=ports.POdin10G1S2P_d,
320
+ module_id=self.module_id,
321
+ ports_count=self.ports_count
322
+ )
323
+ """Port Index Manager of Odin-10G-1S-2P[d]"""
324
+
325
+
326
+ @typing.final
327
+ @revisions.register_valkyrie_module(rev="Odin-10G-1S-12P")
328
+ class MOdin10G1S12P(ModuleL23):
329
+ """Test module Odin-10G-1S-12P"""
330
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
331
+ super().__init__(conn, init_data)
332
+ self.ports: pm.PortsManager[ports.POdin10G1S12P] = pm.PortsManager(
333
+ conn=conn,
334
+ ports_type=ports.POdin10G1S12P,
335
+ module_id=self.module_id,
336
+ ports_count=self.ports_count
337
+ )
338
+ """Port Index Manager Odin-10G-1S-12P"""
339
+
340
+
341
+ @typing.final
342
+ @revisions.register_valkyrie_module(rev="Odin-10G-6S-6P[a]")
343
+ class MOdin10G6S6P_a(ModuleL23):
344
+ """Test module Odin-10G-6S-6P[a]"""
345
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
346
+ super().__init__(conn, init_data)
347
+ self.ports: pm.PortsManager[ports.POdin10G6S6P_a] = pm.PortsManager(
348
+ conn=conn,
349
+ ports_type=ports.POdin10G6S6P_a,
350
+ module_id=self.module_id,
351
+ ports_count=self.ports_count
352
+ )
353
+ """Port Index Manager Odin-10G-6S-6P[a]"""
354
+
355
+ @typing.final
356
+ @revisions.register_valkyrie_module(rev="Odin-100G-3S-1P")
357
+ class MOdin100G3S1P(ModuleL23):
358
+ """Test module Odin-100G-3S-1P"""
359
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
360
+ super().__init__(conn, init_data)
361
+ self.ports: pm.PortsManager[ports.POdin100G3S1P] = pm.PortsManager(
362
+ conn=conn,
363
+ ports_type=ports.POdin100G3S1P,
364
+ module_id=self.module_id,
365
+ ports_count=self.ports_count
366
+ )
367
+ """Port Index Manager of Odin-100G-3S-1P"""
368
+
369
+
370
+ @typing.final
371
+ @revisions.register_valkyrie_module(rev="Odin-1G-3S-6P-T1-RJ45")
372
+ class MOdin1G3S6PT1RJ45(ModuleL23):
373
+ """Test module Odin-1G-3S-6P-T1-RJ45"""
374
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
375
+ super().__init__(conn, init_data)
376
+ self.ports: pm.PortsManager[ports.POdin1G3S6PT1RJ45] = pm.PortsManager(
377
+ conn=conn,
378
+ ports_type=ports.POdin1G3S6PT1RJ45,
379
+ module_id=self.module_id,
380
+ ports_count=self.ports_count
381
+ )
382
+ """Port Index Manager of Odin-1G-3S-6P-T1-RJ45"""
383
+
384
+
385
+ @typing.final
386
+ @revisions.register_valkyrie_module(rev="Odin-40G-2S-2P")
387
+ class MOdin40G2S2P(ModuleL23):
388
+ """Test module Odin-40G-2S-2P"""
389
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
390
+ super().__init__(conn, init_data)
391
+ self.ports: pm.PortsManager[ports.POdin40G2S2P] = pm.PortsManager(
392
+ conn=conn,
393
+ ports_type=ports.POdin40G2S2P,
394
+ module_id=self.module_id,
395
+ ports_count=self.ports_count
396
+ )
397
+ """Port Index Manager of Odin-40G-2S-2P"""
398
+
399
+
400
+ @typing.final
401
+ @revisions.register_valkyrie_module(rev="Odin-40G-2S-2P-B")
402
+ class MOdin40G2S2PB(ModuleL23):
403
+ """Test module Odin-40G-2S-2P-B"""
404
+ def __init__(self, conn: "itf.IConnection", init_data: "m_itf.ModuleInitData") -> None:
405
+ super().__init__(conn, init_data)
406
+ self.ports: pm.PortsManager[ports.POdin40G2S2PB] = pm.PortsManager(
407
+ conn=conn,
408
+ ports_type=ports.POdin40G2S2PB,
409
+ module_id=self.module_id,
410
+ ports_count=self.ports_count
411
+ )
412
+ """Port Index Manager of Odin-40G-2S-2P-B"""