The payload checksum in UDP is optionnal, so indeed you are only left with the IP header cheksum. If all your packets have the same length, the checksum will always be the same and can be pre-calculated in software. If your packets have various length, the software can pre-calculate the checksum with a length of 0 and the hardware just needs to add the length to that value before putting it in the header. I don't remember how this is done in the example.
The Ethernet CRC is automatically calculated by the TSE so you don't need to worry about this one.