When using TCP or UDP Ethernet protocols, data integrity is maintained by calculating and verifying checksum values over the TCP and UDP frame data. Normally this checksum functionality is handled by the protocol stack software which can be relatively slow and uses significant processor power for large frames at high Ethernet data rates. An alternative is to offload some of this transmit checksum generation and receive checksum verification in hardware. This is possible by including checksum offloading in the subsystem using the C_TXCSUM and C_RXCSUM parameters. Including the checksum offload functions are a tradeoff between using more FPGA resources and achieving higher Ethernet performance while freeing up processor use for other functions.