diff options
| author | msaitoh <msaitoh@NetBSD.org> | 2019-11-11 08:12:35 +0000 |
|---|---|---|
| committer | msaitoh <msaitoh@NetBSD.org> | 2019-11-11 08:12:35 +0000 |
| commit | c43338d4ef554fe177366e4927323ba684e5b1ab (patch) | |
| tree | a495d87277a9a7be6150a952561473061c9368c0 /external/apache2/llvm/lib/libLLVMAMDGPUCodeGen | |
| parent | e226ee443dd7ddc0a899322b7c7b972771fba3f4 (diff) | |
Fix IP broadcast + checksum offload problem.
When a machine sends a IP broadcast packet to an Ethernet interface that the
checksum offload flags are set, the packet goes through ether_output() ->
looutput() and the offload flags is cleard without calculating the checksum.
And then, ip_input() calculate the packet's checksum because it's csum_flags is
zero. It regard as bad checksum and it's dropped because the packet's ifp
is s not lo0's. Fixes this bug by passing csum_flags as "calculated and good"
when IN_LOOPBACK_NEED_CHECKSUM() is false. Adviced by ryo@.
This problem was seen when "routed -s" was used and the machine's interface's
offload flags were set. bad checksum field of "netstat -s" was increased every
30 minutes.
Diffstat (limited to 'external/apache2/llvm/lib/libLLVMAMDGPUCodeGen')
0 files changed, 0 insertions, 0 deletions
