modules module

Module APIs Overview

Module APIs

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

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

Examples - Z800 Freya and Z1600 Edun Specific Module 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

Examples - E100 Chimera Specific Module 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()