This allows a kernel to support UDP_GRO while not supporting
UDP_SEGMENT.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
}
err = rc.Control(func(fd uintptr) {
_, errSyscall := unix.GetsockoptInt(int(fd), unix.IPPROTO_UDP, unix.UDP_SEGMENT)
- if errSyscall != nil {
- return
- }
- txOffload = true
+ txOffload = errSyscall == nil
opt, errSyscall := unix.GetsockoptInt(int(fd), unix.IPPROTO_UDP, unix.UDP_GRO)
- if errSyscall != nil {
- return
- }
- rxOffload = opt == 1
+ rxOffload = errSyscall == nil && opt == 1
})
if err != nil {
return false, false