jumbo frame support between 2 linux devices

Janpieter Sollie

Honorable
Jun 2, 2013
73
0
10,640
my movie player is getting problems to play the recently encoded stuff on the NAS server due to its lack of CPU capacity, so one of the things i'd like to try is to get jumbo frames working.
NAS server adaptor: Broadcom BCM5704C
media center adaptor RTL8111E (I don't have much choice here, the mainboard is E35M1-I and I need the PCIe slot)
both support MTU 9000
switch between both of them is netgear gs608, which should support jumbo frames

problem: I can't get it working! I even tried the 2nd port of the BCM controller on the NAS (without taking the first one offline, it has a separate interrupt and separate specs), the official realtek driver (r8168) instead of the open-source one (r8169), etc ...
both adapters claim to accept packet sizes up to MTU 9000, but as soon as I'm starting to use tracepath with an MTU > 1500, there's no answer.

this is not a network performance issue: when I'm simply trying dd if=/nfs/mounted/dir/hugeimage.iso of=/dev/null, the network speed is almost 120MB/s, it's just an issue of offloading the CPU while it is occupied performing video decoding
NAS settings:
nas / # ifconfig lan0
lan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000
inet 192.168.0.2 netmask 255.255.255.128 broadcast 192.168.0.127
inet6 fe80::2e0:81ff:fe48:832c prefixlen 64 scopeid 0x20<link>
inet6 2001:470:::1 prefixlen 64 scopeid 0x0<global>
ether 00:e0:81:48:83:2c txqueuelen 4000 (Ethernet)
RX packets 20255 bytes 3114679 (2.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 23113 bytes 15985295 (15.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 28

nas / # ethtool lan0
Settings for lan0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: g
Wake-on: g
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes

for the media player:
frisbee ~ # ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000
inet 192.168.0.22 netmask 255.255.255.128 broadcast 192.168.0.127
inet6 fe80::f66d:4ff:fed8:9755 prefixlen 64 scopeid 0x20<link>
inet6 2001:470::f66d:4ff:fed8:9755 prefixlen 64 scopeid 0x0<global>
ether f4:6d:04:d8:97:55 txqueuelen 1000 (Ethernet)
RX packets 416 bytes 43909 (42.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 349 bytes 41291 (40.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 40 base 0x6000

frisbee ~ # ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes

Any ideas where to start debugging? I have other PC's in here, but none of them supports jumbo frames

*edit: to make the idea even more clear:
nas / # ping -s 1450 192.168.0.22
PING 192.168.0.22 (192.168.0.22) 1450(1478) bytes of data.
1458 bytes from 192.168.0.22: icmp_seq=1 ttl=64 time=0.671 ms
1458 bytes from 192.168.0.22: icmp_seq=2 ttl=64 time=0.623 ms
1458 bytes from 192.168.0.22: icmp_seq=3 ttl=64 time=0.623 ms
1458 bytes from 192.168.0.22: icmp_seq=4 ttl=64 time=0.612 ms
^C
--- 192.168.0.22 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.612/0.632/0.671/0.028 ms
nas / # ping -s 1500 192.168.0.22
PING 192.168.0.22 (192.168.0.22) 1500(1528) bytes of data.
^C
--- 192.168.0.22 ping statistics ---
9 packets transmitted, 0 received, 100% packet loss, time 8003ms

I guess everybody understands the situation ... :s