modules module
Module APIs Overview
Id |
Action |
API |
Description |
|---|---|---|---|
1 |
Get Module Object |
tester.modules.obtain() |
Obtain a module object representing the module installed in a specific slot |
2 |
Release Module |
module.reservation.set_release() |
Release the module |
3 |
Relinquish Module |
module.reservation.set_relinquish() |
Relinquish the module |
4 |
Reserve Module |
module.reservation.set_reserve() |
Reserve the module |
5 |
Get Module Reservation Status |
module.reservation.get() |
Get the current reservation status of the module |
6 |
Get Module Reserved By |
module.reserved_by.get() |
Get the current reservation status of the module |
7 |
Get Module Capabilities |
module.capabilities.get() |
Get the module capabilities information |
8 |
Get Module Name |
module.name.get() |
Get the name of the module |
9 |
Set Module Description |
module.comment.set() |
Set a text description of the module |
10 |
Get Module Description |
module.comment.get() |
Get a text description of the module |
11 |
Get Module Legacy Model |
module.model.get() |
Get the legacy model of the module |
12 |
Get Module Revision |
module.revision.get() |
Get the hardware revision of the module |
13 |
Get Module Serial Number |
module.serial_number.get() |
Get the serial number of the module |
14 |
Get Module Firmware Version |
module.version_number.get() |
Get the firmware version of the module |
15 |
Get Module Port Count |
module.port_count.get() |
Get the number of ports on the module |
16 |
Get Module Status |
module.status.get() |
Get the temperature status of the module |
17 |
Get Supported Configurations |
module.supported_configs.get() |
Get the supported media configurations of the module |
18 |
Set Module Media Configuration |
module.config.media.set() |
Set the media configuration of the module |
19 |
Get Module Media Configuration |
module.config.media.get() |
Get the media configuration of the module |
20 |
Set Module Port Speed Configuration |
module.config.port_speed.set() |
Set the port speed configuration of the module |
21 |
Get Module Port Speed Configuration |
module.config.port_speed.get() |
Get the port speed configuration of the module |
22 |
Set TX Clock Filter Bandwidth |
module.advanced_timing.clock_tx.filter.set() |
Set the TX clock filter loop bandwidth |
23 |
Get TX Clock Filter Bandwidth |
module.advanced_timing.clock_tx.filter.get() |
Get the TX clock filter loop bandwidth |
24 |
Set TX Clock Source |
module.advanced_timing.clock_tx.source.set() |
Set the TX clock source |
25 |
Get TX Clock Source |
module.advanced_timing.clock_tx.source.get() |
Get the TX clock source |
26 |
Get TX Clock Status |
module.advanced_timing.clock_tx.status.get() |
Get the TX clock status |
27 |
Get SMA Status |
module.advanced_timing.sma.status.get() |
Get the SMA status |
28 |
Set SMA Input |
module.advanced_timing.sma.input.set() |
Set the SMA input |
29 |
Get SMA Input |
module.advanced_timing.sma.input.get() |
Get the SMA input |
30 |
Set SMA Output |
module.advanced_timing.sma.output.set() |
Set the SMA output |
31 |
Get SMA Output |
module.advanced_timing.sma.output.get() |
Get the SMA output |
32 |
Set Local Clock Adjust |
module.timing.clock_local_adjust.set() |
Set the local clock adjustment in parts per billion (ppb) |
33 |
Get Local Clock Adjust |
module.timing.clock_local_adjust.get() |
Get the local clock adjustment in parts per billion (ppb) |
34 |
Get Clock Sync Status |
module.timing.clock_sync_status.get() |
Get the clock synchronization status |
35 |
Set Clock Source |
module.timing.source.set() |
Set the clock source |
36 |
Get Clock Source |
module.timing.source.get() |
Get the clock source |
37 |
Set Clock PPM Sweep Configuration |
module.clock_sweep.config.set() |
Set the clock PPM sweep configuration (Z800 Freya and Z1600 Edun) |
38 |
Get Clock PPM Sweep Configuration |
module.clock_sweep.config.get() |
Get the clock PPM sweep configuration (Z800 Freya and Z1600 Edun) |
39 |
Get Clock PPM Sweep Status |
module.clock_sweep.status.get() |
Get the clock PPM sweep status (Z800 Freya and Z1600 Edun) |
40 |
Set Chimera Bypass Mode |
module.emulator_bypass_mode.set() |
Set the module bypass mode (E100 Chimera) |
41 |
Get Chimera Bypass Mode |
module.emulator_bypass_mode.get() |
Get the module bypass mode (E100 Chimera) |
42 |
Set Chimera Latency Mode |
module.latency_mode.set() |
Set the module latency mode (E100 Chimera) |
43 |
Get Chimera Latency Mode |
module.latency_mode.get() |
Get the module latency mode (E100 Chimera) |
44 |
Set Chimera TX Clock Source |
module.tx_clock.source.set() |
Set the TX clock source (E100 Chimera) |
45 |
Get Chimera TX Clock Source |
module.tx_clock.source.get() |
Get the TX clock source (E100 Chimera) |
46 |
Get Chimera TX Clock Status |
module.tx_clock.status.get() |
Get the TX clock status (E100 Chimera) |
Examples - General Module APIs
# [modules]
"""Get Module Object"""
# Obtain a module object representing the module installed in slot 0.
module = tester.modules.obtain(0)
# [Check module type]
if isinstance(module, modules.E100ChimeraModule):
return
"""Module Reservation"""
# Reserve or release the module.
await module.reservation.set_release()
await module.reservation.set_relinquish()
await module.reservation.set_reserve()
resp_obj = await module.reservation.get()
"""Module Reserved By"""
# Get the current reservation status of the module.
resp_obj = await module.reserved_by.get()
"""Module Capabilities"""
# Get the module capabilities information.
resp_obj = await module.capabilities.get()
"""Module Name"""
# The name of the module, as it appears at various places in the user interface.
resp_obj = await module.name.get()
"""Module Description"""
# A text description of the module.
await module.comment.set(comment="description")
resp_obj = await module.comment.get()
"""Legacy Model"""
# Get the legacy model of the module, e.g. "MFREYA-800G-4S-1P"
resp_obj = await module.model.get()
"""Module Revision"""
# Get the hardware revision of the module, e.g. "Freya-800G-1S-1P [a]"
resp_obj = await module.revision.get()
"""Module Serial Number"""
# Get the serial number of the module.
resp_obj = await module.serial_number.get()
"""Firmware Version"""
# Get the firmware version of the module.
resp_obj = await module.version_number.get()
"""Module Port Count"""
# Get the number of ports on the module.
resp_obj = await module.port_count.get()
"""Module Status"""
# Get the temperature status of the module.
resp_obj = await module.status.get()
"""Supported Configurations"""
# Get the supported media configurations of the module.
resp_obj = await module.supported_configs.get()
"""Module Media Configuration"""
# The media configuration of the module.
await module.config.media.set(media_config=enums.MediaConfigurationType.OSFP_1600)
await module.config.media.set(media_config=enums.MediaConfigurationType.OSFP_1600_ANLT)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFPDD800)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFPDD800_ANLT)
await module.config.media.set(media_config=enums.MediaConfigurationType.OSFP800)
await module.config.media.set(media_config=enums.MediaConfigurationType.OSFP800_ANLT)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFP112)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFP112_ANLT)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFP28_NRZ)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFP28_PAM4)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFP56_PAM4)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFPDD_NRZ)
await module.config.media.set(media_config=enums.MediaConfigurationType.QSFPDD_PAM4)
await module.config.media.set(media_config=enums.MediaConfigurationType.SFP112)
await module.config.media.set(media_config=enums.MediaConfigurationType.SFP28)
await module.config.media.set(media_config=enums.MediaConfigurationType.SFP56)
await module.config.media.set(media_config=enums.MediaConfigurationType.SFPDD)
await module.config.media.set(media_config=enums.MediaConfigurationType.BASE_T1)
await module.config.media.set(media_config=enums.MediaConfigurationType.BASE_T1S)
resp_obj = await module.config.media.get()
"""Module Port Speed Configuration"""
# The port speed configuration of the module.
await module.config.port_speed.set(portspeed_list=[1, 800_000])
await module.config.port_speed.set(portspeed_list=[2, 400_000, 400_000])
await module.config.port_speed.set(portspeed_list=[4, 200_000, 200_000, 200_000, 200_000])
await module.config.port_speed.set(portspeed_list=[8, 100_000, 100_000, 100_000, 100_000, 100_000, 100_000, 100_000, 100_000])
resp_obj = await module.config.port_speed.get()
"""TX Clock Filter Loop Bandwidth"""
# Set or get the TX clock filter loop bandwidth.
await module.advanced_timing.clock_tx.filter.set_bw103hz()
await module.advanced_timing.clock_tx.filter.set_bw1683hz()
await module.advanced_timing.clock_tx.filter.set_bw207hz()
await module.advanced_timing.clock_tx.filter.set_bw416hz()
await module.advanced_timing.clock_tx.filter.set_bw7019hz()
resp_obj = await module.advanced_timing.clock_tx.filter.get()
"""TX Clock Source"""
# Set or get the TX clock source.
await module.advanced_timing.clock_tx.source.set_modulelocalclock()
await module.advanced_timing.clock_tx.source.set_p0rxclk()
await module.advanced_timing.clock_tx.source.set_p1rxclk()
await module.advanced_timing.clock_tx.source.set_p2rxclk()
await module.advanced_timing.clock_tx.source.set_p3rxclk()
await module.advanced_timing.clock_tx.source.set_p4rxclk()
await module.advanced_timing.clock_tx.source.set_p5rxclk()
await module.advanced_timing.clock_tx.source.set_p6rxclk()
await module.advanced_timing.clock_tx.source.set_p7rxclk()
resp_obj = await module.advanced_timing.clock_tx.source.get()
"""TX Clock Status"""
# Get the TX clock status.
resp_obj = await module.advanced_timing.clock_tx.status.get()
"""SMA Status"""
# Get the SMA status.
resp_obj = await module.advanced_timing.sma.status.get()
"""SMA Input"""
# Set or get the SMA input.
await module.advanced_timing.sma.input.set_notused()
await module.advanced_timing.sma.input.set_tx10mhz()
await module.advanced_timing.sma.input.set_tx2mhz()
resp_obj = await module.advanced_timing.sma.input.get()
"""SMA Output"""
# Set or get the SMA output.
await module.advanced_timing.sma.output.set_disabled()
await module.advanced_timing.sma.output.set_p0rxclk()
await module.advanced_timing.sma.output.set_p0rxclk2mhz()
await module.advanced_timing.sma.output.set_p0sof()
await module.advanced_timing.sma.output.set_p1rxclk()
await module.advanced_timing.sma.output.set_p1rxclk2mhz()
await module.advanced_timing.sma.output.set_p1sof()
await module.advanced_timing.sma.output.set_passthrough()
await module.advanced_timing.sma.output.set_ref10mhz()
await module.advanced_timing.sma.output.set_ref125mhz()
await module.advanced_timing.sma.output.set_ref156mhz()
await module.advanced_timing.sma.output.set_ref2mhz()
await module.advanced_timing.sma.output.set_ts_pps()
resp_obj = await module.advanced_timing.sma.output.get()
"""Local Clock Adjust"""
# Set or get the local clock adjustment in parts per billion (ppb).
await module.timing.clock_local_adjust.set(ppb=10)
resp_obj = await module.timing.clock_local_adjust.get()
"""Clock Sync Status"""
# Get the clock synchronization status.
resp_obj = await module.timing.clock_sync_status.get()
"""Clock Source"""
# Set or get the clock source.
await module.timing.source.set_chassis()
await module.timing.source.set_external()
await module.timing.source.set_module()
resp_obj = await module.timing.source.get()
Examples - Z800 Freya/Z1600 Edun Specific APIs
# [Z800 Freya and Z1600 Edun Specific APIs]
if isinstance(module, modules.Z800FreyaModule) or isinstance(module, modules.Z1600EdunModule):
"""Clock PPM Sweep Configuration"""
# Set or get the clock PPM sweep configuration.
await module.clock_sweep.config.set(mode=enums.PPMSweepMode.NONE, ppb_step=10, step_delay=10, max_ppb=10, loops=1)
await module.clock_sweep.config.set(mode=enums.PPMSweepMode.TRIANGLE, ppb_step=10, step_delay=10, max_ppb=10, loops=1)
resp_obj = await module.clock_sweep.config.get()
"""Clock PPM Sweep Status"""
# Get the clock PPM sweep status.
resp_obj = await module.clock_sweep.status.get()
Examples - E100 Chimera Specific APIs
# [E100 Chimera Specific APIs]
if isinstance(module, modules.E100ChimeraModule):
"""Chimera - Bypass Mode"""
# Set or get the module bypass mode.
await module.emulator_bypass_mode.set_on()
await module.emulator_bypass_mode.set_off()
resp_obj = await module.emulator_bypass_mode.get()
"""Chimera - Latency Mode"""
# Set or get the module latency mode.
await module.latency_mode.set_normal()
await module.latency_mode.set_extended()
resp_obj = await module.latency_mode.get()
"""Chimera - TX Clock Source"""
# Set or get the TX clock source.
await module.tx_clock.source.set_modulelocalclock()
await module.tx_clock.source.set_p0rxclk()
await module.tx_clock.source.set_p1rxclk()
await module.tx_clock.source.set_p2rxclk()
await module.tx_clock.source.set_p3rxclk()
await module.tx_clock.source.set_p4rxclk()
await module.tx_clock.source.set_p5rxclk()
await module.tx_clock.source.set_p6rxclk()
await module.tx_clock.source.set_p7rxclk()
resp_obj = await module.tx_clock.source.get()
"""Chimera - TX Clock Status"""
# Get the TX clock status.
resp_obj = await module.tx_clock.status.get()