Visible to Intel only — GUID: nik1411172662029
Ixiasoft
Visible to Intel only — GUID: nik1411172662029
Ixiasoft
3.4.1.7. RX Statistics Registers
The RX statistics registers count RX Ethernet traffic and errors. The 64-bit statistics registers are designed to roll over, to ensure timing closure on the FPGA. However, these registers should never roll over if the link is functioning properly. The statistics registers check the size of frames, which includes the following fields:
- Size of the destination address
- Size of the source address
- Size of the data
- Four bytes of CRC
The RX statistics counters module is a synthesis option. The statistics registers are counters that are implemented inside the CSR. When you turn on the Enable RX statistics parameter in the LL 40GbE parameter editor, the counters are implemented in the CSR. When you turn off the Enable RX statistics parameter in the LL 40GbE parameter editor, the counters are not implemented in the CSR, and read access to the counters returns read data equal to 0.
Reading the value of a statistics register does not affect its value. A configuration register at offset 0x945 allows you to clear all of the RX statistics counters.
To ensure that the counters you read are consistent, you should issue a shadow request to create a snapshot of all of the RX statistics registers, by setting bit [2] of the configuration register at offset 0x945. Until you reset this bit, the counters continue to increment but the readable values remain constant.
Address |
Name- |
Description |
Access |
---|---|---|---|
0x900 |
CNTR_RX_FRAGMENTS_LO |
Number of received frames less than 64 bytes and reporting a CRC error (lower 32 bits) |
RO |
0x901 |
CNTR_RX_FRAGMENTS_HI |
Number of received frames less than 64 bytes and reporting a CRC error (upper 32 bits) |
RO |
0x902 |
CNTR_RX_JABBERS_LO |
Number of received oversized frames reporting a CRC error (lower 32 bits) |
RO |
0x903 |
CNTR_RX_JABBERS_HI |
Number of received oversized frames reporting a CRC error (upper 32 bits) |
RO |
0x904 |
CNTR_RX_FCS_LO |
Number of received packets with FCS errors. This register maintains a count of the number of pulses on the l<n>_rx_fcs_error or rx_fcs_error output signal (lower 32 bits) |
RO |
0x905 |
CNTR_RX_FCS_HI |
Number of received packets with FCS errors. This register maintains a count of the number of pulses on the l<n>_rx_fcs_error output signal (upper 32 bits) |
RO |
0x906 |
CNTR_RX_CRCERR_LO |
Number of received frames with a frame of length at least 64, with CRC error (lower 32 bits) |
RO |
0x907 |
CNTR_RX_CRCERR_HI |
Number of received frames with a frame of length at least 64, with CRC error (upper 32 bits) |
RO |
0x908 |
CNTR_RX_MCAST_DATA_ERR_LO |
Number of errored multicast frames received, excluding control frames (lower 32 bits) |
RO |
0x909 |
CNTR_RX_MCAST_DATA_ERR_HI |
Number of errored multicast frames received, excluding control frames (upper 32 bits) |
RO |
0x90A |
CNTR_RX_BCAST_DATA_ERR_LO |
Number of errored broadcast frames received, excluding control frames (lower 32 bits) |
RO |
0x90B |
CNTR_RX_BCAST_DATA_ERR_HI |
Number of errored broadcast frames received, excluding control frames (upper 32 bits) |
RO |
0x90C |
CNTR_RX_UCAST_DATA_ERR_LO |
Number of errored unicast frames received, excluding control frames (lower 32 bits) |
RO |
0x90D |
CNTR_RX_UCAST_DATA_ERR_HI |
Number of errored unicast frames received, excluding control frames (upper 32 bits) |
RO |
0x90E |
CNTR_RX_MCAST_CTRL_ERR_LO |
Number of errored multicast control frames received (lower 32 bits) |
RO |
0x90F |
CNTR_RX_MCAST_CTRL_ERR_HI |
Number of errored multicast control frames received (upper 32 bits) |
RO |
0x910 |
CNTR_RX_BCAST_CTRL_ERR_LO |
Number of errored broadcast control frames received (lower 32 bits) |
RO |
0x911 |
CNTR_RX_BCAST_CTRL_ERR_HI |
Number of errored broadcast control frames received (upper 32 bits) |
RO |
0x912 |
CNTR_RX_UCAST_CTRL_ERR_LO |
Number of errored unicast control frames received (lower 32 bits) |
RO |
0x913 |
CNTR_RX_UCAST_CTRL_ERR_HI |
Number of errored unicast control frames received (upper 32 bits) |
RO |
0x914 |
CNTR_RX_PAUSE_ERR_LO |
Number of errored pause frames received (lower 32 bits) |
RO |
0x915 |
CNTR_RX_PAUSE_ERR_HI |
Number of errored pause frames received (upper 32 bits) |
RO |
0x916 |
CNTR_RX_64B_LO |
Number of 64-byte received frames (lower 32 bits), including the CRC field but excluding the preamble and SFD bytes |
RO |
0x917 |
CNTR_RX_64B_HI |
Number of 64-byte received frames (upper 32 bits), including the CRC field but excluding the preamble and SFD bytes |
RO |
0x918 |
CNTR_RX_65to127B_LO |
Number of received frames between 65–127 bytes (lower 32 bits) |
RO |
0x919 |
CNTR_RX_65to127B_HI |
Number of received frames between 65–127 bytes (upper 32 bits) |
RO |
0x91A |
CNTR_RX_128to255B_LO |
Number of received frames between 128 –255 bytes (lower 32 bits) |
RO |
0x91B |
CNTR_RX_128to255B_HI |
Number of received frames between 128 –255 bytes (upper 32 bits) |
RO |
0x91C |
CNTR_RX_256to511B_LO |
Number of received frames between 256 –511 bytes (lower 32 bits) |
RO |
0x91D |
CNTR_RX_256to511B_HI |
Number of received frames between 256 –511 bytes (upper 32 bits) |
RO |
0x91E |
CNTR_RX_512to1023B_LO |
Number of received frames between 512–1023 bytes (lower 32 bits) |
RO |
0x91F |
CNTR_RX_512to1023B_HI |
Number of received frames between 512 –1023 bytes (upper 32 bits) |
RO |
0x920 |
CNTR_RX_1024to1518B_LO |
Number of received frames between 1024–1518 bytes (lower 32 bits) |
RO |
0x921 |
CNTR_RX_1024to1518B_HI |
Number of received frames between 1024–1518 bytes (upper 32 bits) |
RO |
0x922 |
CNTR_RX_1519toMAXB_LO |
Number of received frames between 1519 bytes and the maximum size defined in the MAX_RX_SIZE_CONFIG register (lower 32 bits) |
RO |
0x923 |
CNTR_RX_1519toMAXB_HI |
Number of received frames between 1519 bytes and the maximum size defined in the MAX_RX_SIZE_CONFIG register (upper 32 bits) |
RO |
0x924 |
CNTR_RX_OVERSIZE_LO |
Number of oversized frames (frames with more bytes than the number specified in the MAX_RX_SIZE_CONFIG register) received (lower 32 bits) |
RO |
0x925 |
CNTR_RX_OVERSIZE_HI |
Number of oversized frames (frames with more bytes than the number specified in the MAX_RX_SIZE_CONFIG register) received (upper 32 bits) |
RO |
0x926 |
CNTR_RX_MCAST_DATA_OK_LO |
Number of valid multicast frames received, excluding control frames (lower 32 bits) |
RO |
0x927 |
CNTR_RX_MCAST_DATA_OK_HI |
Number of valid multicast frames received, excluding control frames (upper 32 bits) |
RO |
0x928 |
CNTR_RX_BCAST_DATA_OK_LO |
Number of valid broadcast frames received, excluding control frames (lower 32 bits) |
RO |
0x929 |
CNTR_RX_BCAST_DATA_OK_HI |
Number of valid broadcast frames received, excluding control frames (upper 32 bits) |
RO |
0x92A |
CNTR_RX_UCAST_DATA_OK_LO |
Number of valid unicast frames received, excluding control frames (lower 32 bits) |
RO |
0x92B |
CNTR_RX_UCAST_DATA_OK_HI |
Number of valid unicast frames received, excluding control frames (upper 32 bits) |
RO |
0x92C |
CNTR_RX_MCAST_CTRL_LO |
Number of valid multicast frames received, excluding data frames (lower 32 bits) |
RO |
0x92D |
CNTR_RX_MCAST_CTRL_HI |
Number of valid multicast frames received, excluding data frames (upper 32 bits) |
RO |
0x92E |
CNTR_RX_BCAST_CTRL_LO |
Number of valid broadcast frames received, excluding data frames (lower 32 bits) |
RO |
0x92F |
CNTR_RX_BCAST_CTRL_HI |
Number of valid broadcast frames received, excluding data frames (upper 32 bits) |
RO |
0x930 |
CNTR_RX_UCAST_CTRL_LO |
Number of valid unicast frames received, excluding data frames (lower 32 bits) |
RO |
0x931 |
CNTR_RX_UCAST_CTRL_HI |
Number of valid unicast frames received, excluding data frames (upper 32 bits) |
RO |
0x932 |
CNTR_RX_PAUSE_LO |
Number of valid pause frames received (lower 32 bits) |
RO |
0x933 |
CNTR_RX_PAUSE_HI |
Number of valid pause frames received (upper 32 bits) |
RO |
0x934 |
CNTR_RX_RUNT_LO |
Number of received runt packets (lower 32 bits) A run is a packet of size less than 64 bytes but greater than eight bytes. If a packet is eight bytes or smaller, it is considered a decoding error and not a runt frame, and the IP core does not flag it nor count it as a runt. |
RO |
0x935 |
CNTR_RX_RUNT_HI |
Number of received runt packets (upper 32 bits) A run is a packet of size less than 64 bytes but greater than eight bytes. If a packet is eight bytes or smaller, it is considered a decoding error and not a runt frame, and the IP core does not flag it nor count it as a runt. |
RO |
0x936 |
CNTR_RX_ST_LO |
Number of received frame starts (lower 32 bits) |
RO |
0x937 |
CNTR_RX_ST_HI |
Number of received frame starts (upper 32 bits) |
RO |
0x938–0x93F |
Reserved |
||
0x940 | RXSTAT_REVID | RX statistics module revision ID. | RO |
0x941 | RXSTAT_SCRATCH | Scratch register available for testing. Default value is 0x09. | RW |
0x942 | RXSTAT_NAME_0 | First 4 characters of IP core variation identifier string "040gMacStats" | RO |
0x943 | RXSTAT_NAME_1 | Next 4 characters of IP core variation identifier string "040gMacStats" | RO |
0x944 | RXSTAT_NAME_2 | Final 4 characters of IP core variation identifier string "040gMacStats" | RO |
0x945 | CNTR_RX_CONFIG |
Bits [2:0]: Configuration of RX statistics counters:
Bits [31:3] are Reserved. |
RW |
0x946 | CNTR_RX_STATUS |
Bits [31:2] are Reserved. |
RO |
0x960 | RxOctetsOK_LO | Number of received payload bytes in frames with no FCS, undersized, oversized, or payload length errors. This register is compliant with section 5.2.1.14 of the IEEE Standard 802.3-2008. This register corresponds to the signals rx_inc_octetsOK[15:0] and rx_inc_octetsOK_valid. |
RO |
0x961 | RxOctetsOK_HI | RO |