How do I disable UFO...without ethtool?

nintendoeats

New Member
Joined
Jan 30, 2026
Messages
1
Reaction score
0
Credits
17
Hello. I have a question which may require deep knowledge of the ways of the ancients.

I have virtualized a very old linux-bearing device, which was really just an x86 machine. It mostly just has busybox, the custom software to do its job, and kernel 2.6.34.1.

Everything is working, except that every now and again (think around 10 minutes) I get these in the logs, and then the system restarts. It's not a huge deal, but I'd like to fix it.

Code:
err    kernel: udp0: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.
err    kernel: udp0: Dropping NETIF_F_UFO since no NETIF_F_SG feature.

From some poking around, I think this may be due to a bug in the e1000e driver in this ancient kernel (or in the e1000e emulator). Rather than trying to update the kernel, I'm hoping I can fix it by just disabling UDP Fragmentation Offload. Unfortunately, all of the information I can find about how to do this involves either ethtool or /etc/networking/interfaces. I...don't have those things...

Can anybody provide any advice? Thank you.
 


That brings back memories of the "good?" ole days.

You can try doing this thru syfs.

Code:
# Disable UFO on udp0
echo 0 > /sys/class/net/udp0/features/ufo

# Or try the tx-udp-fragmentation flag if it exists
echo 0 > /sys/class/net/udp0/features/tx-udp-fragmentation

All of the options don't exist for all interfaces, to see what yours has...

Code:
ls -la /sys/class/net/udp0/features/

The following depends on your version of busybox, might work, might not., worth a try.

Code:
# Using ip command if available (busybox might have a minimal version)
ip link set udp0 ufo off

# Or try the older ifconfig syntax
ifconfig udp0 -ufo

If none of that works.. there is another option... disclaimer, this can break stuff...
use at your own risk!
Code:
# Check current module parameters
cat /sys/module/e1000e/parameters/*

# Try reloading with offloads disabled (add to modprobe.conf or init scripts)
rmmod e1000e
modprobe e1000e InterruptThrottleRate=0,0 # or other relevant params

Since this is virtualized, what hypervisor are you using? You might be able to fix this at the hypervisor level.
Have you tried e1000 instead of e1000e ? (or even virtio-net)

What does cat /proc/net/dev show for your interface names? The "udp0" name is unusual - is this perhaps a tunnel or special interface type rather than a physical ethernet?
 


Follow Linux.org

Members online


Top