patch-2.4.19 linux-2.4.19/net/ipv6/sit.c

Next file: linux-2.4.19/net/ipv6/tcp_ipv6.c
Previous file: linux-2.4.19/net/ipv6/raw.c
Back to the patch index
Back to the overall index

diff -urN linux-2.4.18/net/ipv6/sit.c linux-2.4.19/net/ipv6/sit.c
@@ -64,7 +64,8 @@
 static int ipip6_tunnel_init(struct net_device *dev);
 
 static struct net_device ipip6_fb_tunnel_dev = {
-	"sit0", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NULL, ipip6_fb_tunnel_init,
+	name: 		"sit0", 
+	init:		ipip6_fb_tunnel_init,
 };
 
 static struct ip_tunnel ipip6_fb_tunnel = {
@@ -517,7 +518,11 @@
 		goto tx_error;
 	}
 
-	mtu = rt->u.dst.pmtu - sizeof(struct iphdr);
+	if (tiph->frag_off)
+		mtu = rt->u.dst.pmtu - sizeof(struct iphdr);
+	else
+		mtu = skb->dst ? skb->dst->pmtu : dev->mtu;
+
 	if (mtu < 68) {
 		tunnel->stat.collisions++;
 		ip_rt_put(rt);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)