Opened 2 years ago

Closed 2 years ago

#17728 closed enhancement (fixed)

No jumbo frames?

Reported by: kallisti5 Owned by: axeld
Priority: normal Milestone: R1/beta4
Component: Network & Internet/Stack Version: R1/beta3
Keywords: jumbo mtu Cc:
Blocked By: Blocking:
Platform: All

Description

See attached screenshot. The server running this VM has a 10Gbe card installed and functioning with a jumbo-frame enabled bridge.

The 10Gbe shows through to the virtio nic driver within Haiku... however haiku refuses to set an MTU larger than 1500

Attachments (1)

nojumbo.png (137.6 KB ) - added by kallisti5 2 years ago.

Download all attachments as: .zip

Change History (5)

by kallisti5, 2 years ago

Attachment: nojumbo.png added

comment:1 by kallisti5, 2 years ago

https://cgit.haiku-os.org/haiku/tree/src/add-ons/kernel/network/stack/datalink.cpp#n883

It looks like our network stack only allows MTU between 500 and the "currently set mtu" on the interface?

It also looks like the virtio driver doesn't include code for setting the MTU?

add-ons/kernel/drivers/network/ether/atheros813x/dev/alc/if_alc.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/atheros81xx/dev/ale/if_ale.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/attansic_l1/dev/age/if_age.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/attansic_l2/dev/ae/if_ae.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/broadcom570x/dev/bge/if_bge.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/emulex_oce/dev/oce/oce_if.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/intel22x/dev/igc/if_igc.c:	 IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
add-ons/kernel/drivers/network/ether/ipro1000/dev/e1000/if_em.c:	IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
add-ons/kernel/drivers/network/ether/jmicron2x0/dev/jme/if_jme.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/marvell_yukon/dev/msk/if_msk.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/nforce/dev/nfe/if_nfe.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/rtl81xx/dev/re/if_re.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/syskonnect/dev/sk/if_sk.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/vt612x/dev/vge/if_vge.c:	case SIOCSIFMTU:
add-ons/kernel/drivers/network/ether/ixgbe/dev/ixgbe/if_ixv.c:	IOCTL_DEBUGOUT("ioctl: SIOCSIFMTU (Set Interface MTU)");

comment:3 by kallisti5, 2 years ago

The virtio driver seems to "take" the MTU from qemu instead of set it.

using the following flags to qemu, you can adjust the MTU qemu presents:

qemu-system-x86_64 --cdrom haiku-nightly-anyboot.iso -m 4G --enable-kvm  -netdev user,id=net0 -device virtio-net-pci,netdev=net0,mq=on,vectors=32,host_mtu=1500

When you provide "host_mtu", you get "mtu feature" in our syslog from virtio. When you don't provide "host_mtu" you get "no mtu feature" in our syslod.

comment:4 by waddlesplash, 2 years ago

Milestone: UnscheduledR1/beta4
Resolution: fixed
Status: newclosed
Type: bugenhancement

Jumbo frames now work as of hrev56139.

Note: See TracTickets for help on using tickets.