Checksum Validation and Non-TCP/UDP with ef_vi on X3522

Onload User Guide (UG1586)

Document ID
Release Date
1.2 English

Previous releases of Onloadwith X3522 support classified all non-TCP/UDP packets as discards. This release brings the behavior on X3522 in line with earlier network adapters, where by default other protocols generate a normal event, in this case an RX_REF event.

However, this change has implications for applications that rely on the hardware checksum validation. The hardware will only validate a checksum if it can successfully parse a packet as a protocol for which it does validation. If the protocol header is corrupted in such a way that the packet is not recognized as a given protocol, it might be reported as a valid packet of an unknown protocol that checksum validation is not performed for.

To allow an application to distinguish a packet that has been parsed and checksummed as a given protocol new discard types have been added. These allow the application to request that discard events are generated for any packets for protocols that are not expected by that application. For example, an application that expects to receive only UDP packets can set the discard mask for the VI to mark any packets of non-TCP/UDP L4 protocols as discards. This means that anything that is not a discard will have had the checksum validated successfully.

For more details refer to the documentation for ef_vi_receive_set_discards() and ef_vi_rx_discard_err_flags in the ef_vi User Guide (SF-114063-CD).