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.
Over to maintainer(s).
Is this something still valid and you care about? If not, can we close it?
For bugs that match the following
- Status Is In progress
- Untouched since 2018-01-01.
- Affects Base System OR Documentation
Reset to open status.
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.