aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2006-10-10 12:28:30 +0000
committerFelix Fietkau <nbd@openwrt.org>2006-10-10 12:28:30 +0000
commit917bb076614355cce9519e890248dfabcb63aacb (patch)
tree7372053a06f404cd7a4789d01ab49e4b36b03db1
parentda71fb405c54827f42138440015daed132df3bd2 (diff)
downloadupstream-917bb076614355cce9519e890248dfabcb63aacb.tar.gz
upstream-917bb076614355cce9519e890248dfabcb63aacb.tar.bz2
upstream-917bb076614355cce9519e890248dfabcb63aacb.zip
pppoe: use the interface mtu as upper limit for ppp packet size + header (based on a patch by Dirk Nehring)
SVN-Revision: 5009
-rw-r--r--openwrt/target/linux/generic-2.4/patches/229-pppoe_mtu_fix.patch12
-rw-r--r--openwrt/target/linux/generic-2.6/patches/206-pppoe_mtu_fix.patch12
2 files changed, 24 insertions, 0 deletions
diff --git a/openwrt/target/linux/generic-2.4/patches/229-pppoe_mtu_fix.patch b/openwrt/target/linux/generic-2.4/patches/229-pppoe_mtu_fix.patch
new file mode 100644
index 0000000000..c2e4f064ca
--- /dev/null
+++ b/openwrt/target/linux/generic-2.4/patches/229-pppoe_mtu_fix.patch
@@ -0,0 +1,12 @@
+--- linux-2.4.30/drivers/net/pppoe.c.old 2006-10-10 13:49:12.000000000 +0200
++++ linux-2.4.30/drivers/net/pppoe.c 2006-10-10 13:50:02.000000000 +0200
+@@ -639,6 +639,9 @@
+ po->chan.hdrlen = (sizeof(struct pppoe_hdr) +
+ dev->hard_header_len);
+
++ if (po->chan.mtu > dev->mtu - sizeof(struct pppoe_hdr))
++ po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr);
++
+ po->chan.private = sk;
+ po->chan.ops = &pppoe_chan_ops;
+
diff --git a/openwrt/target/linux/generic-2.6/patches/206-pppoe_mtu_fix.patch b/openwrt/target/linux/generic-2.6/patches/206-pppoe_mtu_fix.patch
new file mode 100644
index 0000000000..1ad8220f8f
--- /dev/null
+++ b/openwrt/target/linux/generic-2.6/patches/206-pppoe_mtu_fix.patch
@@ -0,0 +1,12 @@
+--- linux-2.6.17/drivers/net/pppoe.c.old 2006-10-10 13:47:56.000000000 +0200
++++ linux-2.6.17/drivers/net/pppoe.c 2006-10-10 13:52:02.000000000 +0200
+@@ -600,6 +600,9 @@
+ po->chan.hdrlen = (sizeof(struct pppoe_hdr) +
+ dev->hard_header_len);
+
++ if (po->chan.mtu > dev->mtu - sizeof(struct pppoe_hdr))
++ po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr);
++
+ po->chan.private = sk;
+ po->chan.ops = &pppoe_chan_ops;
+