P_CAPABILITIES
code: 106
# get
<module-index>/<port-index> P_CAPABILITIES ?
Description
Returns a series of integer values specifying various internal limits of a port.
Actions
get
Parameters
- max_speed: integer, maximum wire speed in Mbps, for fastest transceiver and mode. This is L1 Mbps, related to calculating- PS_RATEL2BPSand- PS_RATEPPS.
- max_speed_reduction: integer, maximum ppm value of speed reduction for- P_SPEEDREDUCTION.
- min_interframe_gap: integer, minimum bytes between frames for- P_INTERFRAMEGAP.
- max_interframe_gap: integer, maximum explicit bytes between frames for- P_INTERFRAMEGAP.
- max_preamble: integer, maximum preamble bytes included in frame. Ethernet preamble byte count, include in the IFG byte count.
- max_streams_per_port: integer, maximum streams per port. Max length of- PS_INDICES: stream_indices, and- PS_CREATEmax index value.
- max_percent: integer, maximum input rate in percent. Maximum incoming traffic rate in percent.
- max_pps: integer, maximum input rate in pps. Maximum incoming traffic rate in pps.
- max_mbps: integer, maximum input rate in Mbps. Maximum incoming traffic rate in Mbps.
- max_seed: integer, maximum random seed for- P_RANDOMSEED: seed.
- max_tx_packet_limit: integer, maximum stop-after-n-packet limitation for- P_TXPACKETLIMIT: packet_count_limit.
- max_burst_size: integer, maximum packets per burst for- PS_BURST: size.
- min_packet_length: integer, minimum bytes in total packet for- PS_PACKETLENGTH.
- max_packet_length: integer, maximum bytes in total packet for- PS_PACKETLENGTH.
- max_header_length: integer, maximum bytes in auto-generated packet header for- P_MAXHEADERLENGTH.
- max_protocol_segments: integer, maximum number of protocol segments. For- PS_HEADERPROTOCOL: segmentsand it should be the same as- C_CAPABILITIES: max_protocol_count.
- max_pattern_length: integer, maximum bytes in payload pattern. For- PS_PAYLOAD: hex_datamax length.
- max_modifiers: integer, maximum 16-bit modifiers per stream. For- PS_MODIFIERCOUNT: modifier_count.
- max_modifier_bytes: integer, maximum bytes in a modified field. Fixed to 2 bytes.
- max_repeat: integer, maximum repeats for a modifier. For- PS_MODIFIER: repetition.
- max_tpid: integer, maximum TPLD ID value. For- PS_TPLDID: test_payload_identifier.
- max_manual_packets: integer, maximum manual packets. Not in use.
- max_match_terms: integer, max filter match terms per port. Max length of- PM_INDICES: match_term_xindices, and- PM_CREATEmax index value.
- max_length_terms: integer, max filter length terms per port. Max length of- PL_INDICES: length_term_xindices, and- PL_CREATEmax index value.
- max_ors: integer, max or-terms per filter.
- max_nots: integer, max or-terms with nots per filter.
- max_filters: integer, max filters per port. Max length of- PF_INDICES: filter_xindices, and- PF_CREATEmax index value.
- max_captured_packets: integer, max captured packets at one time.- PC_STATS: packetsmax value
- max_tpld_stats: integer, max number of different TPLDs for RX statistics. Max TPLD index a RX port can handle.
- max_histogram: integer, max number of sampled histograms. Max length of- PD_INDICES: histogram_indices, and- PD_CREATEmax index value.
- max_32bit_modifiers: integer, max 32-bit modifiers per stream. Max value of- PS_MODIFIEREXTCOUNT: ext_modifier_count.
- can_set_autoneg: integer, whether supports auto negotiation. For- P_AUTONEGSELECTION, and it tells whether the port is a RJ45 port or not.
- can_tcp_checksum: integer, whether supports TCP with valid checksum.- PS_HEADERPROTOCOL: segments = TCPCHECKsupported or not.
- can_udp_checksum: integer, whether supports UDP with valid checksum.- PS_HEADERPROTOCOL: segments = UDPCHECKsupported or not.
- can_eee: integer, whether supports Energy Efficient Ethernet. Corresponds to whether the following commands are supported:- P_LPSUPPORT,- P_LPRXPOWER,- P_LPSNRMARGIN,- P_LPPARTNERAUTONEG,- P_LPSTATUS,- P_LPTXMODE, and- P_LPENABLE.
- can_hw_reg_access: integer, whether supports hardware register access. Corresponds to whether- PX_RWis supported.
- can_tcvr_mii_reg_access: integer, whether supports transceiver MII access. Corresponds to whether- PX_MIIis supported.
- can_adv_phy_man: integer, whether supports advanced PHY management. Corresponds to whether the following commands are supported:- PP_PHYTXEQ,- PP_PHYRXEQ,- PP_PHYRETUNE,- PP_PHYAUTOTUNE, and- PP_PHYSIGNALSTATUS.
- can_micro_tpld: integer, whether supports micro TPLD. Whether- P_TPLDMODE: mode = MICROis supported.
- can_mdi_mdix: integer, whether supports MDI/MDIX. Whether- P_MDIXMODEis supported.
- can_payload_mode: integer, whether supports payload mode. Whether- P_PAYLOADMODEis supported.
- can_custom_data_fields: integer, whether supports custom data fields. Whether- P_PAYLOADMODE: mode = CDFis supported.
- can_ext_payload: integer, whether supports extended payload. Whether- P_PAYLOADMODE: mode = EXTPLis supported.
- can_dyn_traffic_change: integer, hether supports dynamic traffic change. Whether- P_DYNAMIC: on_off = ONis supported.
- can_sync_traffic_start: integer, whether supports synchronized traffic start. Whether- C_TRAFFICSYNCand- C_TRAFFICare supported or not.
- can_pfc: integer, whether supports Priority Flow Control. Whether- P_PFCENABLEis supported.
- can_pcs_pma_config: integer, whether this port can provide PCS/PMA configuration and status. Corresponds to whether the following commands are supported:- PP_TXLANEINJECT,- PP_TXERRORRATE,- PP_TXLANECONFIG,- PP_PRBSCONFIG, and- PP_PHYSETTINGS.
- can_fec: integer, bitmask. for- PP_FECMODE.
Bit 0: RS-FEC KR
Bit 1: RS-FEC KP
Bit 2: FC FEC
Bit 3: RS-FEC INT
Bit 31: Mandatory
Important
Bit [0] and [1] are mutually exclusive.
If [31] is set, the port does not support OFF.
If [0] is set, the port supports ON, and supposedly RS_FEC and RS_FEC_KR.
If [1] is set, the port supports ON, and supposedly RS_FEC and RS_FEC_KP.
If [2] is set, the port supports FC_FEC.
If [3] is set, the port supports RS_FEC_INT
- can_fec_stats: integer, can this port provide advanced FEC stats of type x? [0] = symbol error distribution. For- PP_RXTOTALSTATS.
- can_tx_eq: integer, whether supports TX EQ settings- PP_PHYTXEQ.
- can_rx_retune: integer, whether supports RX retuning- PP_PHYRETUNE.
- prbs_types_supported: integer, bitmask, type of PRBS supported. For- PP_PRBSTYPE: prbs_inserted_type.
Bit 0: Lane-based
Bit 1: PHY-based
Bit 2-31: Reserved
See also
Detailed explanation in Explanation of prbs_types_supported
- prbs_inversions_supported: integer, bitmask, for- PP_PRBSTYPE: invert
Bit 0: Lane-based supports invert
Bit 1: PHY-based supports invert
Bit 2-31: Reserved
- prbs_polys_supported: integer list, bit map for each PRBS type. For- PP_PRBSTYPE: polynomial.
See also
Detailed explanation in Explanation of prbs_polys_supported
- serdes_count: integer, number of physical serdes on line-side.
- lane_count: integer, number of lanes (virtual).
- num_txeq: integer, number of Tx equalizers.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_max: integer, max value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
- txeq_min: integer, min value of individual Tx equalizer.
Note
This table shows the meaning of #58 to #77 based on the module type and modulation.
| # | Z800 Freya (112G serdes) | Z400 Thor (56G serdes, PAM4) | Z400 Thor (56G serdes, NRZ) | Z100 Loki (28G serdes, NRZ) | 
|---|---|---|---|---|
| 58 | max value of pre | max value of pre | max value of pre | max value of pre | 
| 59 | max value of main | max value of main | max value of main | max value of main | 
| 60 | max value of post | max value of post | max value of post | max value of post | 
| 61 | max value of pre2 | max value of pre2 | max value of pre2 | 0 | 
| 62 | max value of pre3 | max value of post2 | max value of post2 | 0 | 
| 63 | 0 | max value of post3 | max value of post3 | 0 | 
| 64 | 0 | 0 | 0 | 0 | 
| 65 | 0 | 0 | 0 | 0 | 
| 66 | 0 | 0 | 0 | 0 | 
| 67 | 0 | 0 | 0 | 0 | 
| 68 | min value of pre | min value of pre | min value of pre | min value of pre | 
| 69 | min value of main | min value of main | min value of main | min value of main | 
| 70 | min value of post | min value of post | min value of post | min value of post | 
| 71 | min value of pre2 | min value of pre2 | min value of pre2 | 0 | 
| 72 | min value of pre3 | min value of post2 | min value of post2 | 0 | 
| 73 | 0 | min value of post3 | min value of post3 | 0 | 
| 74 | 0 | 0 | 0 | 0 | 
| 75 | 0 | 0 | 0 | 0 | 
| 76 | 0 | 0 | 0 | 0 | 
| 77 | 0 | 0 | 0 | 0 | 
- max_fec_correctable_symbol_count: integer, max number of symbols correctable by the current FEC.
- max_xmit_one_packet_length: integer, maximum size (in bytes) of packets, which can be sent using- P_XMITONE(replay/streaming interface). For- P_XMITONE: hex_datalength.
- tx_runt_packet_min_length: integer, minimum TX packet size supported by runt block. Zero = not supported. For- P_TXRUNTLENGTH: runt_length.
- rx_runt_packet_min_length: integer, minimum RX packet size supported by runt block. Zero = not supported. For- P_RXRUNTLENGTH: runt_length.
- can_manipulate_preamble: integer, whether this port can manipulate the preamble. Whether- P_TXPREAMBLE_REMOVEand- P_RXPREAMBLE_INSERTare supported.
- can_set_link_train: integer, whether this port can set link training- PP_LINKTRAIN.
- can_link_flap: integer, whether this port supports link flap. Whether- PP_LINKFLAP_ENABLEand- PP_LINKFLAP_PARAMSare supported.
- can_auto_neg_base_r: integer, whether the port currently can perform BASE-R autonegotiation (as opposed to RJ45 BASE-T). Whether- PP_AUTONEGis supported.
- can_pma_error_pulse: integer, whether this port supports PMA pulse error injection. Whether- PP_PMAERRPUL_ENABLEand- PP_PMAERRPUL_PARAMSare supported.
- is_chimera: integer, whether this is a E100 Chimera port.
- has_p2p_loop_partner: integer, whether this port currently has a port-to-port loop partner. Whether- P_LOOPBACK: mode = PORT2PORTis supported.
- p2p_loop_partner: integer, The port-to-port loop partner for the port.- -1means N/A. If this is -1,- P_LOOPBACK: modecannot be- PORT2PORT.
- traffic_engine: integer, the enabled traffic engine on port. 1 = TGA, 2 = uTGA (micro TGA).
- reconc_sublayer: integer, the Reconciliation Sublayer support
NO_SUPPORT = 0
FAULT_SIGNALING = 1, which means P_FAULTSTATUS and P_FAULTSIGNALLING are supported by the port.
- max_match_term_pos: integer, max match term position in bytes
- stream_misc: integer, bitmask, what streams on this port can do.
Bit 0: Whether the port supports streams with DEC8/INC16/DEC16 payload.
Bit 1: Whether the port supports ``INCPLDFROM0`` stream option (refer to the ``PS_OPTIONS`` command).
- rxeq_cap_ctle_low_min: integer, min value of CTLE LOW.
- rxeq_cap_ctle_high_min: integer, min value of CTLE HIGH.
- rxeq_cap_agc_min: integer, min value of Automatic Gain Control.
- rxeq_cap_oc_min: integer, min value of Offset Cancellation.
- rxeq_cap_cdr_min: integer, min value of CDR, always 0.
- rxeq_cap_ffe_pre1_min: integer, min value of FFE Pre 1.
- rxeq_cap_ffe_pre2_min: integer, min value of FFE Pre 2.
- rxeq_cap_ffe_pre3_min: integer, min value of FFE Pre 3.
- rxeq_cap_ffe_pre4_min: integer, min value of FFE Pre 4.
- rxeq_cap_ffe_pre5_min: integer, min value of FFE Pre 5.
- rxeq_cap_ffe_pre6_min: integer, min value of FFE Pre 6.
- rxeq_cap_ffe_pre7_min: integer, min value of FFE Pre 7.
- rxeq_cap_ffe_pre8_min: integer, min value of FFE Pre 8.
- rxeq_cap_dfe_min: integer, min value of DFE, always 0.
- rxeq_cap_ffe_post1_min: integer, min value of FFE Post 1.
- rxeq_cap_ffe_post2_min: integer, min value of FFE Post 2.
- rxeq_cap_ffe_post3_min: integer, min value of FFE Post 3.
- rxeq_cap_ffe_post4_min: integer, min value of FFE Post 4.
- rxeq_cap_ffe_post5_min: integer, min value of FFE Post 5.
- rxeq_cap_ffe_post6_min: integer, min value of FFE Post 6.
- rxeq_cap_ffe_post7_min: integer, min value of FFE Post 7.
- rxeq_cap_ffe_post8_min: integer, min value of FFE Post 8.
- rxeq_cap_ffe_post9_min: integer, min value of FFE Post 9.
- rxeq_cap_ffe_post10_min: integer, min value of FFE Post 10.
- rxeq_cap_ffe_post11_min: integer, min value of FFE Post 11.
- rxeq_cap_ffe_post12_min: integer, min value of FFE Post 12.
- rxeq_cap_ffe_post13_min: integer, min value of FFE Post 13.
- rxeq_cap_ffe_post14_min: integer, min value of FFE Post 14.
- rxeq_cap_ffe_post15_min: integer, min value of FFE Post 15.
- rxeq_cap_ffe_post16_min: integer, min value of FFE Post 16.
- rxeq_cap_ffe_post17_min: integer, min value of FFE Post 17.
- rxeq_cap_ffe_post18_min: integer, min value of FFE Post 18.
- rxeq_cap_ffe_post19_min: integer, min value of FFE Post 19.
- rxeq_cap_ffe_post20_min: integer, min value of FFE Post 20.
- rxeq_cap_ffe_post21_min: integer, min value of FFE Post 21.
- rxeq_cap_ffe_post22_min: integer, min value of FFE Post 22.
- rxeq_cap_ffe_post23_min: integer, min value of FFE Post 23.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- rxeq_cap_ctle_low_max: integer, max value of CTLE LOW.
- rxeq_cap_ctle_high_max: integer, max value of CTLE HIGH.
- rxeq_cap_agc_max: integer, max value of Automatic Gain Control.
- rxeq_cap_oc_max: integer, max value of Offset Cancellation.
- rxeq_cap_cdr_max: integer, max value of CDR, always 0.
- rxeq_cap_ffe_pre1_max: integer, max value of FFE Pre 1.
- rxeq_cap_ffe_pre2_max: integer, max value of FFE Pre 2.
- rxeq_cap_ffe_pre3_max: integer, max value of FFE Pre 3.
- rxeq_cap_ffe_pre4_max: integer, max value of FFE Pre 4.
- rxeq_cap_ffe_pre5_max: integer, max value of FFE Pre 5.
- rxeq_cap_ffe_pre6_max: integer, max value of FFE Pre 6.
- rxeq_cap_ffe_pre7_max: integer, max value of FFE Pre 7.
- rxeq_cap_ffe_pre8_max: integer, max value of FFE Pre 8.
- rxeq_cap_dfe_max: integer, max value of DFE, always 0.
- rxeq_cap_ffe_post1_max: integer, max value of FFE Post 1.
- rxeq_cap_ffe_post2_max: integer, max value of FFE Post 2.
- rxeq_cap_ffe_post3_max: integer, max value of FFE Post 3.
- rxeq_cap_ffe_post4_max: integer, max value of FFE Post 4.
- rxeq_cap_ffe_post5_max: integer, max value of FFE Post 5.
- rxeq_cap_ffe_post6_max: integer, max value of FFE Post 6.
- rxeq_cap_ffe_post7_max: integer, max value of FFE Post 7.
- rxeq_cap_ffe_post8_max: integer, max value of FFE Post 8.
- rxeq_cap_ffe_post9_max: integer, max value of FFE Post 9.
- rxeq_cap_ffe_post10_max: integer, max value of FFE Post 10.
- rxeq_cap_ffe_post11_max: integer, max value of FFE Post 11.
- rxeq_cap_ffe_post12_max: integer, max value of FFE Post 12.
- rxeq_cap_ffe_post13_max: integer, max value of FFE Post 13.
- rxeq_cap_ffe_post14_max: integer, max value of FFE Post 14.
- rxeq_cap_ffe_post15_max: integer, max value of FFE Post 15.
- rxeq_cap_ffe_post16_max: integer, max value of FFE Post 16.
- rxeq_cap_ffe_post17_max: integer, max value of FFE Post 17.
- rxeq_cap_ffe_post18_max: integer, max value of FFE Post 18.
- rxeq_cap_ffe_post19_max: integer, max value of FFE Post 19.
- rxeq_cap_ffe_post20_max: integer, max value of FFE Post 20.
- rxeq_cap_ffe_post21_max: integer, max value of FFE Post 21.
- rxeq_cap_ffe_post22_max: integer, max value of FFE Post 22.
- rxeq_cap_ffe_post23_max: integer, max value of FFE Post 23.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- reserved: integer, reserved.
- length_histogram_step_min: integer, minimum step size for length histograms.
- length_histogram_step_max: integer, maximum step size for length histograms.
- latency_histogram_step_min: integer, minimum step size for latency histograms.
- latency_histogram_step_max: integer, maximum step size for latency histograms.
- tcvr_i2c_freq_khz_min: integer, Minimum configurable transceiver I2C frequency in kHz. Default is 100 kHz
- tcvr_i2c_freq_khz_max: integer, Maximum configurable transceiver I2C frequency in kHz. Default is 100 kHz; value is either based on module HW limits or transceiver capability limits
- can_eyescan: integer, bitmask
Bit 0: Sampled Eyescan supported.
Bit 1: Statistical Eye Scan supported (the Z100 Loki eye-scan).
- layer1_misc: integer, bitmask
Bit 0: Can IEEE variant
Bit 1: Can ETC (Ethernet Consortium) PCS variant
Bit 2: Can monitor PCS RX Lane Map
Bit 3: Can control PCS TX Lane Map
Bit 4: Can monitor PCS RX Lane Skew
Bit 5: Can control PCS TX Lane Skew
Bit 6: Can FEC error injection
Bit 7: Can P/N Polarity Swap
Bit 8: Can Pre-coding
Bit 9: Can Gray-coding
Bit 10: Can BM-PMA
Bit 11: Can SM-PMA
Bit 0: Is Mix length index 0 editable
Bit 1: Is Mix length index 1 editable
Bit 2: Is Mix length index 2 editable
Bit 3: Is Mix length index 3 editable
Bit 4: Is Mix length index 4 editable
Bit 5: Is Mix length index 5 editable
Bit 6: Is Mix length index 6 editable
Bit 7: Is Mix length index 7 editable
Bit 8: Is Mix length index 8 editable
Bit 9: Is Mix length index 9 editable
Bit 10: Is Mix length index 10 editable
Bit 11: Is Mix length index 11 editable
Bit 12: Is Mix length index 12 editable
Bit 13: Is Mix length index 13 editable
Bit 14: Is Mix length index 14 editable
Bit 15: Is Mix length index 15 editable
See also
Detailed explanation in Explanation of editable_mixlength_indices
- can_modifier_le: integer, bitmask
Bit 0: Normal modifier (16/24-bit) supports little-endian
Bit 1: Extended modifier (32-bit) supports little-endian
- capture_bitmask: integer, bitmask
If all bits are 0, CAPTURE_NOT_SUPPORTED
// Bits [0:11] are for Start triggers
Bit 0: CAPTURE_START_ON
Bit 1: CAPTURE_START_FCSERROR
Bit 2: CAPTURE_START_FILTER
Bit 3: CAPTURE_START_PLDERROR
Bit 4-11: Reserved
// Bits [12:23] are for Stop triggers
Bit 12: CAPTURE_STOP_FULL
Bit 13: CAPTURE_STOP_FCSERROR
Bit 14: CAPTURE_STOP_FILTER
Bit 15: CAPTURE_STOP_PLDERROR
Bit 16: CAPTURE_STOP_USERSTOP
Bit 17-23: Reserved
// Bits [24:31] are for Keep modes
Bit 24: CAPTURE_KEEP_ALL
Bit 25: CAPTURE_KEEP_FCSERR
Bit 26: CAPTURE_KEEP_NOTPLD
Bit 27: CAPTURE_KEEP_TPLD
Bit 28: CAPTURE_KEEP_FILTER
Bit 29: CAPTURE_KEEP_PLDERR
Bit 30-31: Reserved
- num_txeq_pre: integer, number of Tx pre equalizers. The number of postcursors = num_txeq - num_txeq_pre - 1.
- txeq_max_seq: integer, max value of individual TXEQ taps,- SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ....
- txeq_min_seq: integer, min-value of individual TXEQ taps,- SEQuential: <pre-n> <pre-(n-q)> ... <prr1> <main> <post1> <post2> ....
Example
# get
input:  0/1 P_CAPABILITIES ?
 
Fig. 3.1 Explanation of prbs_types_supported and prbs_polys_supported
 
Fig. 3.2 Explanation of editable_mixlength_indices