Transceiver
Status
Get various tcvr status information. RX loss status of the individual RX optical lanes (only 4 lanes are supported currently).
Corresponding low-level API class: P_TCVRSTATUS
# Transceiver Status
resp = await port.tcvr_status.get()
resp.rx_loss_lane_0
resp.rx_loss_lane_1
resp.rx_loss_lane_2
resp.rx_loss_lane_3
Read & Write
Provides read and write access to the register interface supported by the port transceiver. It is possible to both read and write register values.
Corresponding low-level API class: PX_RW
# Transceiver Read & Write
await port.transceiver.access_rw(page_address=0, register_address=0).set(value=Hex("FF"))
resp = await port.transceiver.access_rw(page_address=0, register_address=0).get()
resp.value
Sequential Read & Write
I2C sequential access to a transceiver’s register.
When invoked, the <byte_count>
number of bytes will be read or written in one I2C transaction, in which the <value>
is read or written with only a single register address setup. A subsequent invocation will perform a second I2C transaction in the same manner.
<_page_xindex>
: the transceiver page address, integer, 0-255.
<_register_xaddress>
: the address within the page, integer, 0-255.
Corresponding low-level API class: PX_RW_SEQ
# Transceiver Sequential Read & Write
await port.transceiver.access_rw_seq(page_address=0, register_address=0, byte_count=4).set(value=Hex("00FF00FF"))
resp = await port.transceiver.access_rw_seq(page_address=0, register_address=0, byte_count=4).get()
resp.value
Sequential Read & Write (Banked)
I2C sequential access to a transceiver’s register.
When invoked, the <byte_count>
number of bytes will be read or written in one I2C transaction, in which the <value>
is read or written with only a single register address setup. A subsequent invocation will perform a second I2C transaction in the same manner.
<bank_xindex>
: the bank address, integer, 0-255.
<_page_xindex>
: the transceiver page address, integer, 0-255.
<_register_xaddress>
: the address within the page, integer, 0-255.
Corresponding low-level API class: PX_RW_SEQ_BANK
# Transceiver Sequential Read & Write (banked)
await port.transceiver.access_rw_seq_bank(bank_address=1, page_address=0x9F, register_address=200, byte_count=1).set(value=Hex("00"))
resp = await port.transceiver.access_rw_seq_bank(bank_address=1, page_address=0x9F, register_address=200, byte_count=1).get()
resp.value
MII
Provides access to the register interface supported by the media-independent interface (MII) transceiver. It is possible to both read and write register values.
Corresponding low-level API class: PX_MII
# Transceiver MII
await port.transceiver.access_mii(register_address=0).set(value=Hex("00"))
resp = await port.transceiver.access_mii(register_address=0).get()
resp.value
Temperature
Transceiver temperature in degrees Celsius.
Corresponding low-level API class: PX_TEMPERATURE
# Transceiver Temperature
resp = await port.transceiver.access_temperature().get()
resp.integral_part
resp.fractional_part
RX Laser Power
Reading of the optical power level of the received signal. There is one value for each laser/wavelength, and the number of these depends on the kind of CFP transceiver used. The list is empty if the CFP transceiver does not support optical power read-out.
Corresponding low-level API class: PP_RXLASERPOWER
# Transceiver RX Laser Power
resp = await port.pcs_pma.transceiver.rx_laser_power.get()
resp.nanowatts
TX Laser Power
Reading of the optical power level of the transmission signal. There is one value for each laser/wavelength, and the number of these depends on the kind of CFP transceiver used. The list is empty if the CFP transceiver does not support optical power read-out.
Corresponding low-level API class: PP_TXLASERPOWER
# Transceiver TX Laser Power
resp = await port.pcs_pma.transceiver.tx_laser_power.get()
resp.nanowatts