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:
objectCopy 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_NUMVCSreduction 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.
- class P_UE_CBFC_CCUPDATE_HDR[source]
Bases:
objectThe 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:
- 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:
objectThe 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.
- class P_UE_CBFC_CC_INC[source]
Bases:
objectThe 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_indexis resolved against the local sender staged storage: it must be below itsP_UE_CBFC_NUMVCS, and a non-zerocreditsalso 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.
- class P_UE_CBFC_CFUPDATE_TIMER[source]
Bases:
objectThe 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:
- 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:
objectClear 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:
objectCBFC error injection of the port.
No burst pattern is defined for CBFC in this release.
burst_sizeandburst_intervalmust 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
- class P_UE_CBFC_LINK[source]
Bases:
objectThe CBFC link parameters of a CBFC configuration data storage.
Only the two local staged storages (0 = local receiver, 1 = local sender) are writable.
UecCbfcCreditLimitMethod.NONEis 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:
- 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:
objectThe CBFC mode of operation of the port, for the sender (TX) and the receiver (RX). Both directions are
ONby default.Turning the sender
OFFstops CC_Update generation and makes every packet bypass the credit check, so traffic is forwarded uncredited, and the credit wallet is zeroed. Turning the receiverOFFbypasses 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:
- set(rx_mode, tx_mode)[source]
Set the CBFC mode of the port.
- Parameters:
rx_mode (UecCbfcMode) – the CBFC receiver mode
tx_mode (UecCbfcMode) – the CBFC sender mode
- class P_UE_CBFC_NUMVCS[source]
Bases:
objectThe 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_VCmapping 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.
- class P_UE_CBFC_RX_ERRORS[source]
Bases:
objectCBFC 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.
- class P_UE_CBFC_RX_STATS[source]
Bases:
objectCBFC 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.
- class P_UE_CBFC_TX_STATS[source]
Bases:
objectCBFC 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.
- class P_UE_CBFC_VC[source]
Bases:
objectThe 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.HANDLEis not supported by the classifier and is rejected, sohandleis 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:
- 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:
objectCBFC 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.
- class P_UE_CBFC_VC_STREAMS[source]
Bases:
objectThe 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.
- class P_UE_CBFC_VC_TX_STATS[source]
Bases:
objectCBFC 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.
- class P_UE_CBFC_VC_TYPE[source]
Bases:
objectWhether 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:
- 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:
objectClear UE CtlOS counters in the specified direction(s).
- 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:
objectGet 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.
- class P_UE_CTLOS_RX_STATS[source]
Bases:
objectCtlOS 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.
- class P_UE_CTLOS_SPACING[source]
Bases:
objectConfigures the CtlOS spacing parameters of the port.
Only
min_spacingis configurable in this release.target_spacing,min_sop_spacingandmin_inframe_spacingmust 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:
- 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:
objectCtlOS 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.
- class P_UE_LINKNEG_OPTIONS[source]
Bases:
objectThis 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 readLLR-W (remote), useP_UE_LINKNEG_OPTIONS_STATUS. To readLLR-E (local)andLLR-E (remote), useP_UE_LLR_MODETo 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.
- 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:
objectRead
LLR-W (local)andLLR-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.
- class P_UE_LLR_ACKNACK[source]
Bases:
objectConfigures 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.
- class P_UE_LLR_BEHAVIOR[source]
Bases:
objectConfigures 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.
- 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:
objectConfigures 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.
- class P_UE_LLR_INIT_ECHO[source]
Bases:
objectConfigures 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:
- 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:
objectConfigures 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:
- 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:
objectLLR 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:
objectConfigures 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:
- 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:
objectConfigures 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:
objectConfigures 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:
- 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:
objectReturn 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.
- class P_UE_LLR_RX_STATS[source]
Bases:
objectGet 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.
- class P_UE_LLR_STATUS[source]
Bases:
objectGet the active status of the LLR of the port.
- class P_UE_LLR_TXFSM_STATE[source]
Bases:
objectReturn 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.
- class P_UE_LLR_TX_STATS[source]
Bases:
objectGet 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.