p_ue_commands module

This module contains the L23 port classes (UE) that deal with basic information about, and configuration of L23 test ports. The L23 port command names all have the form P_UE_<xxx> and require a module index id and a port index id. In general, port commands cannot be changed while traffic is on. Additionally, every stream must be disabled before changing parameters that affect the bandwidth of the port.

Port Commands - Ultra Ethernet

Port Commands - Ultra Ethernet

class P_UE_CBFC_APPLY[source]

Bases: object

Copy a staged CBFC configuration data storage into its active counterpart, and push it to the hardware. Applying the local sender storage also re-programs the whole stream-to-virtual- channel table, so a P_UE_CBFC_NUMVCS reduction is reflected in the hardware.

class SetDataAttr[source]

Bases: RequestBodyStruct

storage_index

integer, the staged configuration data storage to apply.

local_rx(*, storage_index=0)

Apply the local receiver staged configuration.

local_tx(*, storage_index=1)

Apply the local sender staged configuration.

set(storage_index)[source]

Apply a staged CBFC configuration data storage.

Parameters:

storage_index (int) – the staged configuration data storage to apply, 0 (local receiver) or 1 (local sender)

class P_UE_CBFC_CCUPDATE_HDR[source]

Bases: object

The header fields of the CBFC CC_Update message generated by the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cid

three hex bytes, the Company ID of the CC_Update message.

Default set to “FA7ACB”.

dmac

six hex bytes, the destination MAC address of the CC_Update message.

Destination MAC address for the CC_Update message. Default set to “0180C2000001” or the 48-bit individual address of the destination station.

ethertype

two hex bytes, the EtherType of the CC_Update message.

Default set to “88B5”.

opcode

two hex bytes, the opcode of the CC_Update message.

Default set to “FFFE”.

smac

six hex bytes, the source MAC address of the CC_Update message.

class SetDataAttr[source]

Bases: RequestBodyStruct

cid

three hex bytes, the Company ID of the CC_Update message.

Default set to “FA7ACB”.

dmac

six hex bytes, the destination MAC address of the CC_Update message.

Destination MAC address for the CC_Update message. Default set to “0180C2000001” or the 48-bit individual address of the destination station.

ethertype

two hex bytes, the EtherType of the CC_Update message.

Default set to “88B5”.

opcode

two hex bytes, the opcode of the CC_Update message.

Default set to “FFFE”.

smac

six hex bytes, the source MAC address of the CC_Update message.

get()[source]

Get the CBFC CC_Update message header of the port.

Returns:

the CBFC CC_Update message header of the port

Return type:

P_UE_CBFC_CCUPDATE_HDR.GetDataAttr

set(dmac, smac, ethertype, opcode, cid)[source]

Set the CBFC CC_Update message header of the port.

Parameters:
  • dmac (Hex) – the destination MAC address of the CC_Update message, default set to “0180C2000001”

  • smac (Hex) – the source MAC address of the CC_Update message, default set to port MAC address.

  • ethertype (Hex) – the EtherType of the CC_Update message, default set to “88B5”

  • opcode (Hex) – the opcode of the CC_Update message, default set to “FFFE”

  • cid (Hex) – the Company ID of the CC_Update message, default set to “FA7ACB”

class P_UE_CBFC_CCUPDATE_TIMER[source]

Bases: object

The period at which the port generates CBFC CC_Update messages.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cc_msg_timer

integer, the CC_Update generation period in microseconds.

class SetDataAttr[source]

Bases: RequestBodyStruct

cc_msg_timer

integer, the CC_Update generation period in microseconds.

get()[source]

Get the CBFC CC_Update generation period of the port.

Returns:

the CBFC CC_Update generation period of the port

Return type:

P_UE_CBFC_CCUPDATE_TIMER.GetDataAttr

set(cc_msg_timer)[source]

Set the CBFC CC_Update generation period of the port.

Parameters:

cc_msg_timer (int) – the CC_Update generation period in microseconds

class P_UE_CBFC_CC_INC[source]

Bases: object

The number of credits added to the CC_Update credits consumed counter by the CC_UPDATE_INC error injection, and the virtual channel it is applied to.

CC_Update is generated by the sender, so vc_index is resolved against the local sender staged storage: it must be below its P_UE_CBFC_NUMVCS, and a non-zero credits also requires that virtual channel to be lossless.

class GetDataAttr[source]

Bases: ResponseBodyStruct

credit_increment

integer, the number of credits added to the credits consumed counter.

vc_index

integer, the virtual channel the credit leak is injected on.

class SetDataAttr[source]

Bases: RequestBodyStruct

credit_increment

integer, the number of credits added to the credits consumed counter, in the range 0 to 1048575.

vc_index

integer, the virtual channel the credit leak is injected on.

get()[source]

Get the CC_Update credit increment of the port.

Returns:

the CC_Update credit increment of the port

Return type:

P_UE_CBFC_CC_INC.GetDataAttr

set(vc_index, credit_increment)[source]

Set the CC_Update credit increment of the port.

Parameters:
  • vc_index (int) – the virtual channel the credit leak is injected on

  • credit_increment (int) – the number of credits added to the credits consumed counter, in the range 0 to 1048575

class P_UE_CBFC_CFUPDATE_TIMER[source]

Bases: object

The interval bounds at which the port generates CBFC CF_Update CtlOS.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cf_max_timer

integer, the maximum number of bytes between two CF_Update CtlOS.

cf_min_timer

integer, the minimum number of bytes between two CF_Update CtlOS.

class SetDataAttr[source]

Bases: RequestBodyStruct

cf_max_timer

integer, the maximum number of bytes between two CF_Update CtlOS.

cf_min_timer

integer, the minimum number of bytes between two CF_Update CtlOS.

get()[source]

Get the CBFC CF_Update timers of the port.

Returns:

the CBFC CF_Update timers of the port

Return type:

P_UE_CBFC_CFUPDATE_TIMER.GetDataAttr

set(cf_min_timer, cf_max_timer)[source]

Set the CBFC CF_Update timers of the port.

Parameters:
  • cf_min_timer (int) – the minimum number of bytes between two CF_Update CtlOS. Default: 800. Allowed range: 800 bytes to 16384 bytes. Resolution: 8 bytes.

  • cf_max_timer (int) – the maximum number of bytes between two CF_Update CtlOS. Default: 16384. Allowed range: 16384 bytes to 1048576 bytes with granularity of 16384 bytes (16 KB to 1 MB with granularity of 16 KB). Resolution: 16384 bytes.

class P_UE_CBFC_CLEAR[source]

Bases: object

Clear UE CBFC counters and statistics in the specified direction(s).

class SetDataAttr[source]

Bases: RequestBodyStruct

direction

coded byte, direction of the counters to clear.

clear_all()

Clear all CBFC RX and TX counters.

clear_none()

Clear no CBFC counters.

clear_rx()

Clear all CBFC RX counters.

clear_tx()

Clear all CBFC TX counters.

set(direction)[source]

Clear the CBFC counters in the given direction.

Parameters:

direction (UecCbfcClearDirection) – direction of the counters to clear

class P_UE_CBFC_INJECT_ERR[source]

Bases: object

CBFC error injection of the port.

No burst pattern is defined for CBFC in this release. burst_size and burst_interval must still be supplied, but they are accepted without any range check and never reach the hardware.

class SetDataAttr[source]

Bases: RequestBodyStruct

burst_interval

integer, the interval between bursts. Not supported in this release, accepted and ignored.

burst_size

integer, the number of errors in a burst. Not supported in this release, accepted and ignored.

error_type

coded byte, the type of error to inject.

pattern

coded byte, the pattern of error injection.

cc_update_bad_fcs()

Inject a bad FCS in the next CC_Update message.

cc_update_inc()

Increase the CC_Update credits consumed counter once, creating a credit leak.

cc_update_poisoned_fcs()

Inject a poisoned FCS in the next CC_Update message.

set(error_type, pattern, burst_size, burst_interval)[source]

Set the CBFC error injection configuration of the port.

Parameters:
  • error_type (UecCbfcInjectErrType) – the type of error to inject

  • pattern (UecCbfcInjectErrPattern) – the pattern of error injection

  • burst_size (int) – the number of errors in a burst, not supported in this release, accepted and ignored

  • burst_interval (int) – the interval between bursts, not supported in this release, accepted and ignored

Bases: object

The CBFC link parameters of a CBFC configuration data storage.

Only the two local staged storages (0 = local receiver, 1 = local sender) are writable. UecCbfcCreditLimitMethod.NONE is not supported by the hardware and is rejected.

class GetDataAttr[source]

Bases: ResponseBodyStruct

credit_limit_method

coded byte, how the receive buffer is distributed across the virtual channels.

credit_size

integer, the size of a credit in bytes.

packet_overhead

integer, the per-packet overhead in bytes added when accounting credits.

total_credit_limit

integer, the credit limit shared by all lossless virtual channels.

class SetDataAttr[source]

Bases: RequestBodyStruct

credit_limit_method

coded byte, how the receive buffer is distributed across the virtual channels.

credit_size

integer, the size of a credit in bytes.

packet_overhead

integer, the per-packet overhead in bytes added when accounting credits, in the range -16 to 12.

total_credit_limit

integer, the credit limit shared by all lossless virtual channels, in the range 0 to 524287.

get()[source]

Get the CBFC link parameters of the storage.

Returns:

the CBFC link parameters of the storage

Return type:

P_UE_CBFC_LINK.GetDataAttr

set(credit_size, credit_limit_method, total_credit_limit, packet_overhead)[source]

Set the CBFC link parameters of the storage.

Parameters:
  • credit_size (int) – the size of a credit in bytes

  • credit_limit_method (UecCbfcCreditLimitMethod) – how the receive buffer is distributed across the virtual channels

  • total_credit_limit (int) – the credit limit shared by all lossless virtual channels

  • packet_overhead (int) – the per-packet overhead in bytes added when accounting credits

class P_UE_CBFC_MODE[source]

Bases: object

The CBFC mode of operation of the port, for the sender (TX) and the receiver (RX). Both directions are ON by default.

Turning the sender OFF stops CC_Update generation and makes every packet bypass the credit check, so traffic is forwarded uncredited, and the credit wallet is zeroed. Turning the receiver OFF bypasses credit accounting altogether. Either way that direction’s CBFC statistics are cleared, while the CBFC link message configuration and the CBFC virtual channel configuration are left untouched.

class GetDataAttr[source]

Bases: ResponseBodyStruct

rx_mode

coded byte, the CBFC receiver mode.

tx_mode

coded byte, the CBFC sender mode.

class SetDataAttr[source]

Bases: RequestBodyStruct

rx_mode

coded byte, the CBFC receiver mode.

tx_mode

coded byte, the CBFC sender mode.

disable_both()

Disable both the CBFC receiver and sender.

enable_both()

Enable both the CBFC receiver and sender.

enable_rx_only()

Enable the CBFC receiver while disabling the sender.

enable_tx_only()

Enable the CBFC sender while disabling the receiver.

get()[source]

Get the CBFC mode of the port.

Returns:

the CBFC receiver and sender modes of the port

Return type:

P_UE_CBFC_MODE.GetDataAttr

set(rx_mode, tx_mode)[source]

Set the CBFC mode of the port.

Parameters:
class P_UE_CBFC_NUMVCS[source]

Bases: object

The number of CBFC virtual channels in a CBFC configuration data storage.

Only the two local staged storages (0 = local receiver, 1 = local sender) are writable. Reducing the number of virtual channels resets the dropped ones to their defaults, and on the local sender storage it also removes the PS_UE_CBFC_VC mapping of every stream that pointed at a dropped virtual channel.

class GetDataAttr[source]

Bases: ResponseBodyStruct

num_vcs

integer, the number of virtual channels.

class SetDataAttr[source]

Bases: RequestBodyStruct

num_vcs

integer, the number of virtual channels, in the range 1 to 32.

get()[source]

Get the number of CBFC virtual channels of the storage.

Returns:

the number of CBFC virtual channels of the storage

Return type:

P_UE_CBFC_NUMVCS.GetDataAttr

set(num_vcs)[source]

Set the number of CBFC virtual channels of the storage.

Parameters:

num_vcs (int) – the number of virtual channels

class P_UE_CBFC_RX_ERRORS[source]

Bases: object

CBFC Rx error counters of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cc_update_bad_cid

long integer, unsigned, the number of CC_Update received with a CID that is not FA-7A-CB, since the last clear.

cc_update_bad_opcode

long integer, unsigned, the number of CC_Update received with an opcode that is not 0xFFFE, since the last clear.

cc_update_unknown_msg_type

long integer, unsigned, the number of CC_Update received with a message type value that is not 0x01 or 0x02, since the last clear.

lost_credits

long integer, signed, the accumulative per-port Lost Credits since the last clear.

get()[source]

Get the CBFC Rx error counters of the port.

Returns:

the CBFC Rx error counters of the port

Return type:

P_UE_CBFC_RX_ERRORS.GetDataAttr

class P_UE_CBFC_RX_STATS[source]

Bases: object

CBFC Rx statistics of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cc_update_count

long integer, unsigned, the number of CC_Update messages received since the last clear.

cc_update_interval_avg

long integer, the average interval in microseconds between two consecutive Rx CC_Update since the last clear.

cc_update_interval_max

long integer, the maximum interval in microseconds between two consecutive Rx CC_Update since the last clear.

cc_update_interval_min

long integer, the minimum interval in microseconds between two consecutive Rx CC_Update since the last clear.

get()[source]

Get the CBFC Rx statistics of the port.

Returns:

the CBFC Rx statistics of the port

Return type:

P_UE_CBFC_RX_STATS.GetDataAttr

class P_UE_CBFC_TX_STATS[source]

Bases: object

CBFC Tx statistics of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cc_update_count

long integer, the number of CC_Update messages transmitted since the last clear.

cc_update_interval_avg

long integer, the average interval in microseconds between two consecutive Tx CC_Update since the last clear.

cc_update_interval_max

long integer, the maximum interval in microseconds between two consecutive Tx CC_Update since the last clear.

cc_update_interval_min

long integer, the minimum interval in microseconds between two consecutive Tx CC_Update since the last clear.

get()[source]

Get the CBFC Tx statistics of the port.

Returns:

the CBFC Tx statistics of the port

Return type:

P_UE_CBFC_TX_STATS.GetDataAttr

class P_UE_CBFC_VC[source]

Bases: object

The credit limit and the packet classification of a CBFC virtual channel.

Only the two local staged storages (0 = local receiver, 1 = local sender) are writable. UecCbfcVcMapping.HANDLE is not supported by the classifier and is rejected, so handle is range checked but never programmed.

class GetDataAttr[source]

Bases: ResponseBodyStruct

credit_limit

integer, the credit limit of the virtual channel.

handle

integer, the UE packet handle mapped to the virtual channel.

mapping

coded byte, the packet field used to map a packet to the virtual channel.

mask_dscp

one hex byte, the mask applied to the IP DSCP field.

mask_pcp_dei

one hex byte, the mask applied to the VLAN PCP/DEI field.

value_dscp

one hex byte, the value the masked IP DSCP field is matched against.

value_pcp_dei

one hex byte, the value the masked VLAN PCP/DEI field is matched against.

class SetDataAttr[source]

Bases: RequestBodyStruct

credit_limit

integer, the credit limit of the virtual channel, in the range 0 to 524287. Ignored by a best-effort virtual channel.

handle

integer, the UE packet handle mapped to the virtual channel, at most 4095. Not programmed in this release.

mapping

coded byte, the packet field used to map a packet to the virtual channel. HANDLE is not supported in this release.

mask_dscp

one hex byte, the mask applied to the IP DSCP field. At most 0x3F.

mask_pcp_dei

one hex byte, the mask applied to the VLAN PCP/DEI field. At most 0x0F.

value_dscp

one hex byte, the value the masked IP DSCP field is matched against. At most 0x3F.

value_pcp_dei

one hex byte, the value the masked VLAN PCP/DEI field is matched against. At most 0x0F.

get()[source]

Get the configuration of the CBFC virtual channel.

Returns:

the configuration of the CBFC virtual channel

Return type:

P_UE_CBFC_VC.GetDataAttr

set(credit_limit, mapping, mask_pcp_dei, value_pcp_dei, mask_dscp, value_dscp, handle)[source]

Set the configuration of the CBFC virtual channel.

Parameters:
  • credit_limit (int) – the credit limit of the virtual channel

  • mapping (UecCbfcVcMapping) – the packet field used to map a packet to the virtual channel

  • mask_pcp_dei (Hex) – the mask applied to the VLAN PCP/DEI field

  • value_pcp_dei (Hex) – the value the masked VLAN PCP/DEI field is matched against

  • mask_dscp (Hex) – the mask applied to the IP DSCP field

  • value_dscp (Hex) – the value the masked IP DSCP field is matched against

  • handle (int) – the UE packet handle mapped to the virtual channel

class P_UE_CBFC_VC_RX_STATS[source]

Bases: object

CBFC Rx statistics of a virtual channel.

class GetDataAttr[source]

Bases: ResponseBodyStruct

bits_last_sec

long integer, the number of bits received in the last second.

bytes_last_sec

long integer, the number of bytes received in the last second.

bytes_total

long integer, the total number of bytes received.

credits_consumed

long integer, signed, receiver VC credits consumed (R_VC_CC) since the last clear. A best-effort VC always returns -1.

credits_freed

long integer, signed, receiver VC credits freed (R_VC_CF) since the last clear. A best-effort VC always returns -1.

pkts_last_sec

long integer, the number of packets received in the last second.

pkts_total

long integer, the total number of packets received.

get()[source]

Get the CBFC Rx statistics of the virtual channel.

Returns:

the CBFC Rx statistics of the virtual channel

Return type:

P_UE_CBFC_VC_RX_STATS.GetDataAttr

class P_UE_CBFC_VC_STREAMS[source]

Bases: object

The streams that are mapped to a CBFC virtual channel. The stream-to-virtual-channel mapping is N:1 and is set per stream with PS_UE_CBFC_VC.

class GetDataAttr[source]

Bases: ResponseBodyStruct

stream_indices

list of integers, the indices of the streams mapped to the virtual channel.

get()[source]

Get the streams mapped to the CBFC virtual channel.

Returns:

the indices of the streams mapped to the virtual channel

Return type:

P_UE_CBFC_VC_STREAMS.GetDataAttr

class P_UE_CBFC_VC_TX_STATS[source]

Bases: object

CBFC Tx statistics of a virtual channel.

class GetDataAttr[source]

Bases: ResponseBodyStruct

bits_last_sec

long integer, the number of bits transmitted in the last second.

bytes_last_sec

long integer, the number of bytes transmitted in the last second.

bytes_total

long integer, the total number of bytes transmitted.

credits_consumed

long integer, signed, sender VC credits consumed (S_VC_CC) since the last clear. A best-effort VC always returns -1.

credits_freed

long integer, signed, sender VC credits freed (S_VC_CF) since the last clear. A best-effort VC always returns -1.

pkts_last_sec

long integer, the number of packets transmitted in the last second.

pkts_total

long integer, the total number of packets transmitted.

get()[source]

Get the CBFC Tx statistics of the virtual channel.

Returns:

the CBFC Tx statistics of the virtual channel

Return type:

P_UE_CBFC_VC_TX_STATS.GetDataAttr

class P_UE_CBFC_VC_TYPE[source]

Bases: object

Whether a CBFC virtual channel is lossless or best-effort.

Only the two local staged storages (0 = local receiver, 1 = local sender) are writable.

class GetDataAttr[source]

Bases: ResponseBodyStruct

vc_type

coded byte, whether the virtual channel is lossless.

class SetDataAttr[source]

Bases: RequestBodyStruct

vc_type

coded byte, whether the virtual channel is lossless.

get()[source]

Get the type of the CBFC virtual channel.

Returns:

the type of the CBFC virtual channel

Return type:

P_UE_CBFC_VC_TYPE.GetDataAttr

set(vc_type)[source]

Set the type of the CBFC virtual channel.

Parameters:

vc_type (UecCbfcVcType) – whether the virtual channel is lossless

set_best_effort()

Make the virtual channel best-effort.

set_lossless()

Make the virtual channel lossless.

class P_UE_CTLOS_CLEAR[source]

Bases: object

Clear UE CtlOS counters in the specified direction(s).

class SetDataAttr[source]

Bases: RequestBodyStruct

direction

UE CtlOS clear direction.

clear_all()

Clear all UE CtlOS counters (RX and TX).

clear_none()

Not clear UE CtlOS counters

clear_rx()

Clear RX UE CtlOS counters

clear_tx()

Clear TX UE CtlOS counters

set(direction)[source]

Set the UE CtlOS clear direction.

Parameters:

direction (UecCtlosClearDirection) – the UE CtlOS clear direction

class P_UE_CTLOS_RX_ERRORS[source]

Bases: object

Get the CtlOS Rx error counters of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cf_update_interval_high

long integer, the number of CF_UPDATE received with an interval that is too high.

cf_update_interval_low

long integer, the number of CF_UPDATE received with an interval that is too low.

cf_update_padding_error

long integer, the number of CF_UPDATE received with a padding error.

ctlos_msg_type_errors

long integer, the number of CtlOS message type errors.

ctlos_padding_errors

long integer, the number of CtlOS padding errors.

llr_ack_nack_interval_high

long integer, the number of LLR_ACK/NACK received with an interval that is too high.

llr_ack_nack_interval_low

long integer, the number of LLR_ACK/NACK received with an interval that is too low.

llr_ack_nack_seq_error_cnt

long integer, the number of LLR_ACK/NACK received with a sequence error.

llr_ctlos_padding_error

long integer, the number of LLR CtlOS padding errors.

llr_init_echo_invalid_init_data

long integer, the number of LLR_INIT_ECHO with invalid INIT data.

llr_init_echo_invalid_init_seq

long integer, the number of LLR_INIT_ECHO with an invalid INIT sequence number.

llr_init_interval_low

long integer, the number of LLR_INIT received with an interval that is too low.

get()[source]

Get the CtlOS Rx error counters of the port.

Returns:

the CtlOS Rx error counters of the port

Return type:

P_UE_CTLOS_RX_ERRORS.GetDataAttr

class P_UE_CTLOS_RX_STATS[source]

Bases: object

CtlOS Rx statistics, including counters of all UE CtlOS message type values.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cbfc_cf_update_cnt

The number of CF_UPDATE CtlOS received.

llr_ack_cnt

The number of LLR_ACK CtlOS received.

llr_init_cnt

The number of LLR_INIT CtlOS received.

llr_init_data

The init_data (16 bits) of the most recently received LLR_INIT CtlOS.

llr_init_echo_cnt

The number of LLR_INIT_ECHO CtlOS received.

llr_init_echo_data

The init_data (16 bits) of the most recently received LLR_INIT_ECHO CtlOS.

llr_init_echo_mismatch

The number of Rx LLR_INIT_ECHO CtlOS with a sequence number or data that does not match the most recently transmitted LLR_INIT CtlOS.

llr_init_echo_seq

The init_seq (20 bits) of the most recently received LLR_INIT_ECHO CtlOS.

llr_init_seq

The init_seq (20 bits) of the most recently received LLR_INIT CtlOS.

llr_nack_cnt

The number of LLR_NACK CtlOS received.

get()[source]

Get UE CtlOS Rx statistics.

Returns:

the UE CtlOS Rx statistics

Return type:

P_UE_CTLOS_RX_STATS.GetDataAttr

class P_UE_CTLOS_SPACING[source]

Bases: object

Configures the CtlOS spacing parameters of the port.

Only min_spacing is configurable in this release. target_spacing, min_sop_spacing and min_inframe_spacing must still be supplied, but they are accepted without any range check, never reach the hardware, and always read back as their fixed defaults 1600, 256 and 2048.

class GetDataAttr[source]

Bases: ResponseBodyStruct

min_inframe_spacing

integer, the minimum number of bytes between two CtlOS within the same frame. Not configurable in this release, always reads 2048.

min_sop_spacing

integer, the minimum number of bytes between the SOP and the first CtlOS in that frame. Not configurable in this release, always reads 256.

min_spacing

integer, the minimum number of bytes between two CtlOS. Either 400 or 0 (CtlOS may appear back-to-back).

target_spacing

integer, the target number of bytes between two CtlOS. Not configurable in this release, always reads 1600.

class SetDataAttr[source]

Bases: RequestBodyStruct

min_inframe_spacing

integer, the minimum number of bytes between two CtlOS within the same frame. Not configurable in this release, accepted and ignored.

min_sop_spacing

integer, the minimum number of bytes between the SOP and the first CtlOS in that frame. Not configurable in this release, accepted and ignored.

min_spacing

integer, the minimum number of bytes between two CtlOS. Must be either 400 or 0 (CtlOS may appear back-to-back); any other value is rejected.

target_spacing

integer, the target number of bytes between two CtlOS. Not configurable in this release, accepted and ignored.

get()[source]

Get the CtlOS spacing parameters of the port.

Returns:

the CtlOS spacing parameters of the port

Return type:

P_UE_CTLOS_SPACING.GetDataAttr

set(target_spacing, min_spacing, min_sop_spacing, min_inframe_spacing)[source]

Set the CtlOS spacing parameters of the port.

Parameters:
  • target_spacing (int) – the target number of bytes between two CtlOS, not configurable in this release, accepted and ignored

  • min_spacing (int) – the minimum number of bytes between two CtlOS, either 400 or 0 (CtlOS may appear back-to-back)

  • min_sop_spacing (int) – the minimum number of bytes between the SOP and the first CtlOS in that frame, not configurable in this release, accepted and ignored

  • min_inframe_spacing (int) – the minimum number of bytes between two CtlOS within the same frame, not configurable in this release, accepted and ignored

class P_UE_CTLOS_TX_STATS[source]

Bases: object

CtlOS Tx statistics, including counters of all UE CtlOS message type values.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cbfc_cf_update_cnt

The number of CF_UPDATE CtlOS transmitted.

llr_ack_cnt

The number of LLR_ACK CtlOS transmitted.

llr_init_cnt

The number of LLR_INIT CtlOS transmitted.

llr_init_data

The LLR_INIT data. 2 bytes in hex format.

llr_init_echo_cnt

The number of LLR_INIT_ECHO CtlOS transmitted.

llr_init_echo_data

The LLR_INIT_ECHO data. 2 bytes in hex format.

llr_init_echo_seq

The LLR_INIT_ECHO sequence number. 3 bytes in hex format.

llr_init_seq

The LLR_INIT sequence number. 3 bytes in hex format.

llr_nack_cnt

The number of LLR_NACK CtlOS transmitted.

get()[source]

Get UE CtlOS Tx statistics.

Returns:

the UE CtlOS Tx statistics

Return type:

P_UE_CTLOS_TX_STATS.GetDataAttr

class P_UE_LINKNEG_OPTIONS[source]

Bases: object

This command selects which LLDP agent to use for UE Link Negotiation Options, and configures the desired LLR-W (local) setting. After the set operation, the UE Link Negotiation Options TLV will be added to the LLDPDU (if it is not already present in the LLDPDU) or replace the existing one (if Options TLV was previously added in LLDP configurataion).

The UE Link Negotiation Options TLV is used to discover and configure advanced UE link capabilities. Currently, the Options TLV is used to advertise the following UEC Link features:

  • Link Layer Retry (LLR): Provides link level re-transmissions for packets with errors.

Note

In Link Negotiation for LLR, the R/W access of the four flags are:

  • LLR-W (local): RW

  • LLR-W (remote): RO

  • LLR-E (local): RO

  • LLR-E (remote): RO

When Link Negotiation is enabled on a LLDP agent, the only configurable parameter is LLR-W (local). To read LLR-W (remote), use P_UE_LINKNEG_OPTIONS_STATUS. To read LLR-E (local) and LLR-E (remote), use P_UE_LLR_MODE

To disable Link Negotation for UE Link Options, send the command with no parameters. This will remove the Options TLV from the LLDPDU and disable Link Negotiation for UE Link Options.

class GetDataAttr[source]

Bases: ResponseBodyStruct

lldp_agent_index

integer, The LLDP agent index to use for advertising the advanced UE link capabilities. An LLDP agent must be created and configured separately using the LLDP commands before it can be used with this command.

Values: 0 to 7.

llr_wanted_local

coded integer, Indicates whether the local port wants LLR.

class SetDataAttr[source]

Bases: RequestBodyStruct

lldp_agent_index

integer, The LLDP agent index to use for advertising the advanced UE link capabilities. An LLDP agent must be created and configured separately using the LLDP commands before it can be used with this command.

Values: 0 to 7.

llr_wanted_local

coded integer, Indicates whether the local port wants LLR.

get()[source]

Get the description of the port.

Returns:

the description of the port

Return type:

P_UE_LINKNEG_OPTIONS.GetDataAttr

set(lldp_agent_index, llr_wanted_local)[source]

Set the UE Link Negotiation Options.

Parameters:
  • lldp_agent_index (int) – The LLDP agent index to use for advertising the advanced UE link capabilities. Values: 0 to 7.

  • llr_wanted_local (UecLinkOptionLlr) – Indicates whether the local port wants LLR.

class P_UE_LINKNEG_OPTIONS_STATUS[source]

Bases: object

Read LLR-W (local) and LLR-W (remote) of the port, which indicates whether the local and remote ports want to use LLR. This command is for read-only purposes and does not change any configuration or behavior of the LLR.

class GetDataAttr[source]

Bases: ResponseBodyStruct

llr_wanted_local

coded integer, Indicates whether the local port wants LLR.

llr_wanted_remote

coded integer, Indicates whether the remote port wants LLR.

get()[source]

Get the current UE link negotiation options status.

Returns:

the current UE link negotiation options status

Return type:

P_UE_LINKNEG_OPTIONS_STATUS.GetDataAttr

class P_UE_LLR_ACKNACK[source]

Bases: object

Configures the LLR ACK/NACK spacing parameters of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

max_spacing

integer, the maximum ACK/NACK spacing.

min_spacing

integer, the minimum ACK/NACK spacing.

target_spacing

integer, the target ACK/NACK spacing.

class SetDataAttr[source]

Bases: RequestBodyStruct

max_spacing

integer, the maximum ACK/NACK spacing.

min_spacing

integer, the minimum ACK/NACK spacing.

target_spacing

integer, the target ACK/NACK spacing.

get()[source]

Get the LLR ACK/NACK spacing parameters of the port.

Returns:

the LLR ACK/NACK spacing parameters of the port

Return type:

P_UE_LLR_ACKNACK.GetDataAttr

set(target_spacing, min_spacing, max_spacing)[source]

Set the LLR ACK/NACK spacing parameters of the port.

Parameters:
  • target_spacing (int) – the target ACK/NACK spacing

  • min_spacing (int) – the minimum ACK/NACK spacing

  • max_spacing (int) – the maximum ACK/NACK spacing

class P_UE_LLR_BEHAVIOR[source]

Bases: object

Configures the LLR behavior of the port for the INIT and FLUSH states.

class GetDataAttr[source]

Bases: ResponseBodyStruct

llr_flush_behavior

coded byte, the LLR behavior for LLR-eligible frames when the TX state machine is in the FLUSH state.

llr_init_behavior

coded byte, the LLR behavior for LLR-eligible frames when the TX state machine is in the INIT state.

re_init_on_discard

coded byte, whether to re-initialize the LLR on discard.

class SetDataAttr[source]

Bases: RequestBodyStruct

llr_flush_behavior

coded byte, the LLR behavior for LLR-eligible frames when the TX state machine is in the FLUSH state.

llr_init_behavior

coded byte, the LLR behavior for LLR-eligible frames when the TX state machine is in the INIT state.

re_init_on_discard

coded byte, whether to re-initialize the LLR on discard.

get()[source]

Get the LLR behavior of the port.

Returns:

the LLR behavior of the port

Return type:

P_UE_LLR_BEHAVIOR.GetDataAttr

set(llr_init_behavior, llr_flush_behavior, re_init_on_discard)[source]

Set the LLR behavior of the port.

Parameters:
  • llr_init_behavior (UecLlrBehavior) – the LLR behavior for LLR-eligible frames when the TX state machine is in the INIT state

  • llr_flush_behavior (UecLlrBehavior) – the LLR behavior for LLR-eligible frames when the TX state machine is in the FLUSH state

  • re_init_on_discard (YesNo) – whether to re-initialize the LLR on discard

class P_UE_LLR_INIT[source]

Bases: object

Configures the LLR INIT parameters of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

init_data

2 bytes in hex format, the 16-bit LLR_INIT data.

init_seq

3 bytes in hex format, the 24-bit LLR_INIT sequence number.

min_spacing_multiplier

integer, the minimum multiplier of the number of bytes between transmission of successive LLR_INIT CtlOS. Range 4 to 256.

class SetDataAttr[source]

Bases: RequestBodyStruct

init_data

2 bytes in hex format, the 16-bit LLR_INIT data.

init_seq

3 bytes in hex format, the 24-bit LLR_INIT sequence number.

min_spacing_multiplier

integer, the minimum multiplier of the number of bytes between transmission of successive LLR_INIT CtlOS. Range 4 to 256.

get()[source]

Get the LLR INIT parameters of the port.

Returns:

the LLR INIT parameters of the port

Return type:

P_UE_LLR_INIT.GetDataAttr

set(init_seq, init_data, min_spacing_multiplier)[source]

Set the LLR INIT parameters of the port.

Parameters:
  • init_seq (Hex) – the 24-bit LLR_INIT sequence number (3 bytes)

  • init_data (Hex) – the 16-bit LLR_INIT data (2 bytes)

  • min_spacing_multiplier (int) – the minimum spacing multiplier

class P_UE_LLR_INIT_ECHO[source]

Bases: object

Configures the LLR INIT_ECHO parameters of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

init_data

2 bytes in hex format, the 16-bit INIT_ECHO data when manual mode is used.

init_data_mode

coded byte, the source mode of the INIT_ECHO data.

init_seq

3 bytes in hex format, the 24-bit INIT_ECHO sequence number when manual mode is used.

init_seq_mode

coded byte, the source mode of the INIT_ECHO sequence number.

class SetDataAttr[source]

Bases: RequestBodyStruct

init_data

2 bytes in hex format, the 16-bit INIT_ECHO data when manual mode is used.

init_data_mode

coded byte, the source mode of the INIT_ECHO data.

init_seq

3 bytes in hex format, the 24-bit INIT_ECHO sequence number when manual mode is used.

init_seq_mode

coded byte, the source mode of the INIT_ECHO sequence number.

get()[source]

Get the LLR INIT_ECHO parameters of the port.

Returns:

the LLR INIT_ECHO parameters of the port

Return type:

P_UE_LLR_INIT_ECHO.GetDataAttr

set(init_seq_mode, init_seq, init_data_mode, init_data)[source]

Set the LLR INIT_ECHO parameters of the port.

Parameters:
  • init_seq_mode (UecLlrInitEchoMode) – the source mode of the INIT_ECHO sequence number

  • init_seq (Hex) – the 24-bit INIT_ECHO sequence number when manual mode is used (3 bytes)

  • init_data_mode (UecLlrInitEchoMode) – the source mode of the INIT_ECHO data

  • init_data (Hex) – the 16-bit INIT_ECHO data when manual mode is used (2 bytes)

class P_UE_LLR_INIT_ECHO_CHK[source]

Bases: object

Configures the validation of the LLR INIT_ECHO sequence number and data of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

validate_init_data

coded byte, whether to validate the INIT_ECHO data.

validate_init_seq

coded byte, whether to validate the INIT_ECHO sequence number.

class SetDataAttr[source]

Bases: RequestBodyStruct

validate_init_data

coded byte, whether to validate the INIT_ECHO data.

validate_init_seq

coded byte, whether to validate the INIT_ECHO sequence number.

get()[source]

Get the LLR INIT_ECHO validation configuration of the port.

Returns:

the LLR INIT_ECHO validation configuration of the port

Return type:

P_UE_LLR_INIT_ECHO_CHK.GetDataAttr

set(validate_init_seq, validate_init_data)[source]

Set the LLR INIT_ECHO validation configuration of the port.

Parameters:
  • validate_init_seq (UecLlrEchoCheck) – whether to validate the INIT_ECHO sequence number

  • validate_init_data (UecLlrEchoCheck) – whether to validate the INIT_ECHO data

validate_both()

Validate both the init_seq and init_data of the INIT_ECHO.

validate_init_data()

Only validate the init_data of the INIT_ECHO.

validate_init_seq()

Only validate the init_seq of the INIT_ECHO.

validate_none()

Do not validate the init_seq nor the init_data of the INIT_ECHO.

class P_UE_LLR_INJECT_ERR[source]

Bases: object

LLR TX error injection of the port.

class SetDataAttr[source]

Bases: RequestBodyStruct

burst_interval

integer, the interval between bursts.

burst_size

integer, the number of errors in a burst.

error_type

coded byte, the type of error to inject.

pattern

coded byte, the pattern of error injection.

inject_fcs_bad(burst_size, burst_interval)

Inject a single FCS bad error.

inject_fcs_poison(burst_size, burst_interval)

Inject a single FCS poison error.

inject_llr_ack_drop(burst_size, burst_interval)

Inject a single LLR ACK drop error.

inject_llr_nack_drop(burst_size, burst_interval)

Inject a single LLR NACK drop error.

inject_seq_drop(burst_size, burst_interval)

Inject a single sequence drop error.

inject_seq_duplicate(burst_size, burst_interval)

Inject a single sequence duplicate error.

set(error_type, pattern, burst_size, burst_interval)[source]

Set the LLR TX error injection configuration of the port.

Parameters:
  • error_type (UecLlrTxErrType) – the type of error to inject

  • pattern (UecLlrTxErrPattern) – the pattern of error injection

  • burst_size (int) – the number of errors in a burst

  • burst_interval (int) – the interval between bursts

class P_UE_LLR_MODE[source]

Bases: object

Configures the mode of operation of the LLR. Only when both local and remote ports have LLR ON, the LLR will be active. If either port has LLR disabled, the LLR will be inactive.

class GetDataAttr[source]

Bases: ResponseBodyStruct

llr_mode_local

coded integer, LLR mode of the local port.

llr_mode_remote

coded integer, LLR mode of the remote port.

class SetDataAttr[source]

Bases: RequestBodyStruct

llr_mode_local

coded integer, LLR mode of the local port.

llr_mode_remote

coded integer, LLR mode of the remote port.

get()[source]

Get the LLR mode of the local port.

Returns:

the LLR mode of the local port

Return type:

P_UE_LLR_MODE.GetDataAttr

set(llr_mode_local, llr_mode_remote)[source]

Set the LLR mode of the local port.

Parameters:
  • llr_mode_local (OnOff) – the LLR mode of the local port

  • llr_mode_remote (OnOff) – the LLR mode of the remote port

set_off(*, llr_mode_local=OnOff.OFF, llr_mode_remote=OnOff.OFF)

Set LLR local to OFF, LLR remote to OFF.

set_on(*, llr_mode_local=OnOff.ON, llr_mode_remote=OnOff.ON)

Set LLR local to ON, LLR remote to ON.

class P_UE_LLR_POISONFCS[source]

Bases: object

Configures the poisoned FCS pattern used by the LLR TX error injection of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

pattern

4 bytes in hex format, the 32-bit poison FCS pattern.

class SetDataAttr[source]

Bases: RequestBodyStruct

pattern

4 bytes in hex format, the 32-bit poison FCS pattern.

get()[source]

Get the poison FCS pattern of the port.

Returns:

the poison FCS pattern of the port

Return type:

P_UE_LLR_TXERR_POISONFCS.GetDataAttr

set(pattern)[source]

Set the poison FCS pattern of the port.

Parameters:

pattern (Hex) – the 32-bit poison FCS pattern (4 bytes)

set_55555555()

Set the poisoned FCS pattern of the port to 0x55555555.

set_aaaaaaaa()

Set the poisoned FCS pattern of the port to 0xAAAAAAAA.

class P_UE_LLR_REPLAY[source]

Bases: object

Configures the LLR replay parameters of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

data_age_timer_max

long integer, the maximum value of the data age timer.

outstanding_data_max

integer, the maximum amount of outstanding data.

outstanding_seq_max

integer, the maximum number of outstanding sequence numbers.

pcs_lost_status_timer_max

long integer, the maximum value of the PCS lost status timer.

replay_ct_max

integer, the maximum replay count.

replay_timer_max

integer, the maximum value of the replay timer.

class SetDataAttr[source]

Bases: RequestBodyStruct

data_age_timer_max

long integer, the maximum value of the data age timer.

outstanding_data_max

integer, the maximum amount of outstanding data.

outstanding_seq_max

integer, the maximum number of outstanding sequence numbers.

pcs_lost_status_timer_max

long integer, the maximum value of the PCS lost status timer.

replay_ct_max

integer, the maximum replay count.

replay_timer_max

integer, the maximum value of the replay timer.

get()[source]

Get the LLR replay parameters of the port.

Returns:

the LLR replay parameters of the port

Return type:

P_UE_LLR_REPLAY.GetDataAttr

set(outstanding_seq_max, outstanding_data_max, replay_timer_max, replay_ct_max, pcs_lost_status_timer_max, data_age_timer_max)[source]

Set the LLR replay parameters of the port.

Parameters:
  • outstanding_seq_max (int) – the maximum number of outstanding sequence numbers

  • outstanding_data_max (int) – the maximum amount of outstanding data

  • replay_timer_max (int) – the maximum value of the replay timer

  • replay_ct_max (int) – the maximum replay count

  • pcs_lost_status_timer_max (int) – the maximum value of the PCS lost status timer

  • data_age_timer_max (int) – the maximum value of the data age timer

class P_UE_LLR_RXFSM_STATE[source]

Bases: object

Return the current state of the LLR Rx FSM that the port is in, along with the current values of the relevant timers and counters for that state. The possible states are: OFF, SEND_ACKS, SEND_NACK, and NACK_SENT. The specific timers and counters returned depend on the current state of the FSM.

class GetDataAttr[source]

Bases: ResponseBodyStruct

ns_in_nack_sent

long integer, the number of nanoseconds the FSM has been in the NACK_SENT state since the last time it was cleared.

ns_in_off

long integer, the number of nanoseconds the FSM has been in the OFF state since the last time it was cleared.

ns_in_send_acks

long integer, the number of nanoseconds the FSM has been in the SEND_ACKS state since the last time it was cleared.

ns_in_send_nack

long integer, the number of nanoseconds the FSM has been in the SEND_NACK state since the last time it was cleared.

rxfsm_state

coded byte, the current state of the LLR Rx FSM that the port is in.

get()[source]

Get the state of the LLR RX finite state machine of the port.

Returns:

the state of the LLR RX finite state machine of the port

Return type:

P_UE_LLR_RXFSM_STATE.GetDataAttr

class P_UE_LLR_RX_STATS[source]

Bases: object

Get the LLR Rx link-layer traffic statistics of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

rx_llr_eligible_bad_fcs

The number of LLR-eligible frames received with a bad FCS.

rx_llr_eligible_bad_fcs_exp_seq

The number of LLR-eligible frames received with a bad FCS that had the expected sequence number.

rx_llr_eligible_duplicate_seq

The number of LLR-eligible frames received that had a duplicate sequence number (irrespective of FCS status).

rx_llr_eligible_good_fcs

The number of LLR-eligible frames received with a good FCS.

rx_llr_eligible_good_fcs_exp_seq

The number of LLR-eligible frames received with a good FCS that had the expected sequence number.

rx_llr_eligible_missing_seq

The number of LLR-eligible frames received that had a sequence number that indicated a missing LLR-eligible frame in the sequence (irrespective of FCS status).

rx_llr_eligible_poisoned_fcs

The number of LLR-eligible frames received with a poisoned FCS.

rx_llr_eligible_poisoned_fcs_exp_seq

The number of LLR-eligible frames received with a poisoned FCS that had the expected sequence number.

rx_llr_eligible_total

The total number of LLR-eligible frames received.

rx_llr_eligible_total_exp_seq

The total number of LLR-eligible frames received with the expected sequence number (irrespective of FCS status).

rx_llr_ineligible_bad_fcs

The number of LLR-ineligible frames received with a bad FCS.

rx_llr_ineligible_good_fcs

The number of LLR-ineligible frames received with a good FCS.

rx_llr_ineligible_total

The total number of LLR-ineligible frames received.

rx_replay_operations

The number of replay operations detected.

get()[source]

Get the LLR Rx link-layer traffic statistics of the port.

Returns:

the LLR Rx link-layer traffic statistics

Return type:

P_UE_LLR_RX_STATS.GetDataAttr

class P_UE_LLR_STATUS[source]

Bases: object

Get the active status of the LLR of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

status

coded byte, whether the LLR is active.

get()[source]

Get the active status of the LLR of the port.

Returns:

the active status of the LLR of the port

Return type:

P_UE_LLR_STATUS.GetDataAttr

class P_UE_LLR_TXFSM_STATE[source]

Bases: object

Return the current state of the LLR Tx FSM that the port is in, along with the current values of the relevant timers and counters for that state. The possible states are: LLR_OFF, INIT, ADVANCE, REPLAY, and FLUSH. The specific timers and counters returned depend on the current state of the FSM.

class GetDataAttr[source]

Bases: ResponseBodyStruct

ns_in_advance

long integer, the number of nanoseconds the FSM has been in the ADVANCE state since the last time it was cleared.

ns_in_flush

long integer, the number of nanoseconds the FSM has been in the FLUSH state since the last time it was cleared.

ns_in_init

long integer, the number of nanoseconds the FSM has been in the INIT state since the last time it was cleared.

ns_in_llr_off

long integer, the number of nanoseconds the FSM has been in the LLR_OFF state since the last time it was cleared.

ns_in_replay

long integer, the number of nanoseconds the FSM has been in the REPLAY state since the last time it was cleared.

txfsm_state

coded byte, the current state of the LLR Tx FSM that the port is in.

get()[source]

Get the state of the LLR TX finite state machine of the port.

Returns:

the state of the LLR TX finite state machine of the port

Return type:

P_UE_LLR_TXFSM_STATE.GetDataAttr

class P_UE_LLR_TX_STATS[source]

Bases: object

Get the LLR Tx link-layer traffic statistics of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

tx_llr_eligible_bad_fcs

The number of LLR-eligible frames transmitted with a bad FCS.

tx_llr_eligible_bad_fcs_good_seq

The number of LLR-eligible frames transmitted with a bad FCS and a good sequence number.

tx_llr_eligible_discard

The number of LLR-eligible frames discarded by the LLR TX when the TX state machine is in the INIT state and the llr_init_behavior is set to DISCARD, or when the TX state machine is in the FLUSH state and the llr_flush_behavior is set to DISCARD.

tx_llr_eligible_duplicate_seq

The number of LLR-eligible frames that with duplicate sequence number (irrespective of the FCS).

tx_llr_eligible_good_fcs

The number of LLR-eligible frames transmitted with a good FCS.

tx_llr_eligible_good_fcs_good_seq

The number of LLR-eligible frames transmitted with a good FCS and a good sequence number.

tx_llr_eligible_missing_seq

The number of LLR-eligible frames that with missing sequence number (irrespective of the FCS).

tx_llr_eligible_poisoned_fcs

The number of LLR-eligible frames transmitted with a poisoned FCS.

tx_llr_eligible_poisoned_fcs_good_seq

The number of LLR-eligible frames transmitted with a poisoned FCS and a good sequence number.

tx_llr_eligible_total

The total number of LLR-eligible frames transmitted.

tx_llr_ineligible_bad_fcs

The number of LLR-ineligible frames transmitted with a bad FCS.

tx_llr_ineligible_good_fcs

The number of LLR-ineligible frames transmitted with a good FCS.

tx_llr_ineligible_total

The total number of LLR-ineligible frames transmitted.

tx_replay_operations

The number of times the LLR TX state machine has exited the REPLAY state (replay operations).

tx_replayed

The number of frames transmitted by the LLR TX that were replayed from the LLR replay buffer.

get()[source]

Get the LLR Tx link-layer traffic statistics of the port.

Returns:

the LLR Tx link-layer traffic statistics

Return type:

P_UE_LLR_TX_STATS.GetDataAttr