tcp_lro_rx() in sys/netinet/tcp_lro.c calculates the IP checksum of all non-fragmented TCP packets while determining whether they can be queued for LRO. Some optimization is possible here if the hardware has already verified the IP checksum - just take CSUM_IP_CHECKED and CSUM_IP_VALID into account before doing the checksum in software. Fix: Patch attached. Patch attached with submission follows: How-To-Repeat: N/A. Problem was discovered while reading the code.
Responsible Changed From-To: freebsd-bugs->freebsd-net Over to maintainer(s).
Navdeep, Is this something still valid and you care about? If not, can we close it?
batch change: For bugs that match the following - Status Is In progress AND - Untouched since 2018-01-01. AND - Affects Base System OR Documentation DO: Reset to open status. Note: I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.
Change looks good to me.
The LRO code has been modified extensively since this bug was filed. The latest code does take CSUM_IP_CHECKED and CSUM_IP_VALID into account.