Jonathan Thibault
2009-Apr-03 19:49 UTC
[Bridge] Interesting fragmentation behavior with gretap interface.
I'm trying to bridge a mix of 802.1q tagged and untagged Ethernet frames through the new Ethernet over GRE functionality in kernel 2.6.28 The hosts handling the tunnel (192.168.200.6, 192.168.200.2) are connected together through with a simple cross cable through their eth1 interface. The switches are connected to their respective eth0 interface, which is bridged with their respective gretap interface. The setup works quite well except when it comes to MTU. Oddly enough, 802.1q tagged frames get properly fragmented and defragmented, allowing for a maximum MTU of 1500 (1504 with the tag, I assume). Untagged frames larger than 1462 bytes will not make it through the GRE tunnel setup. 192.168.200.6 192.168.200.2 (802.1q switch1)<->(eth0-br0-gretap)<->(gretap-br0-eth0)<->(802.1q switch2) 10.0.0.0/12 is my 'untagged' subnet. (default vlan 1, untagged) 192.168.7.0/32 is my tagged subnet. (vlan 800, tagged) The host I use to test has a NIC in each subnet and is hooked to switch1, it is pinging hosts on switch2. First, tagged packets: $ ping -c 3 -M do -s 1472 192.168.7.175 PING 192.168.7.175 (192.168.7.175) 1472(1500) bytes of data. 1480 bytes from 192.168.7.175: icmp_seq=1 ttl=250 time=36.9 ms 1480 bytes from 192.168.7.175: icmp_seq=2 ttl=250 time=52.1 ms 1480 bytes from 192.168.7.175: icmp_seq=3 ttl=250 time=44.5 ms --- 192.168.7.175 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 36.994/44.569/52.160/6.191 ms Normal as can be... Now untagged: $ ping -c 3 -M do -s 1472 10.8.1.1 PING 10.8.1.1 (10.8.1.1) 1472(1500) bytes of data. --- 10.8.1.1 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 1999ms Same result all the way down to 1462 bytes, where it actually works: $ ping -c 3 -M do -s 1434 10.8.1.1 PING 10.8.1.1 (10.8.1.1) 1434(1462) bytes of data. 1442 bytes from 10.8.1.1: icmp_seq=1 ttl=30 time=4.02 ms 1442 bytes from 10.8.1.1: icmp_seq=2 ttl=30 time=4.54 ms 1442 bytes from 10.8.1.1: icmp_seq=3 ttl=30 time=4.22 ms --- 10.8.1.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 4.028/4.266/4.547/0.220 ms It looks suspiciously like this bug: http://kerneltrap.org/mailarchive/linux-kernel/2007/5/26/96070/thread Could it be that there now is a special case (as per the suggested patch) to handle vlan tagged frames, but the special case of gre-encapsulated non-vlan frames isn't being handled properly? Hope this makes sense to someone in here... Jonathan
Possibly Parallel Threads
- [Bridge] new gretap, bridging and mtu
- [Bug 592] gretap + bridge fragmentation issue
- [RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
- Re: "scripts are not supported on interfaces of type vhostuser" error
- "scripts are not supported on interfaces of type vhostuser" error