http://www.polbox.com/h/hs001/linux-2.4.29-mppe-mppc-1.3.patch.gz
-Index: linux-2.4.35.4/Documentation/Configure.help
-===================================================================
---- linux-2.4.35.4.orig/Documentation/Configure.help 2007-12-15 05:19:49.287229757 +0100
-+++ linux-2.4.35.4/Documentation/Configure.help 2007-12-15 05:19:51.927380210 +0100
-@@ -9974,6 +9974,28 @@
+--- a/Documentation/Configure.help
++++ b/Documentation/Configure.help
+@@ -9986,6 +9986,28 @@ CONFIG_PPP_BSDCOMP
module; it is called bsd_comp.o and will show up in the directory
modules once you have said "make modules". If unsure, say N.
PPP over Ethernet
CONFIG_PPPOE
Support for PPP over Ethernet.
-Index: linux-2.4.35.4/crypto/Config.in
-===================================================================
---- linux-2.4.35.4.orig/crypto/Config.in 2007-12-15 05:19:42.094819886 +0100
-+++ linux-2.4.35.4/crypto/Config.in 2007-12-15 05:19:51.927380210 +0100
-@@ -11,7 +11,9 @@
+--- a/crypto/Config.in
++++ b/crypto/Config.in
+@@ -11,7 +11,9 @@ if [ "$CONFIG_INET_AH" = "y" -o \
"$CONFIG_INET6_AH" = "y" -o \
"$CONFIG_INET6_AH" = "m" -o \
"$CONFIG_INET6_ESP" = "y" -o \
define_bool CONFIG_CRYPTO y
else
bool 'Cryptographic API' CONFIG_CRYPTO
-@@ -51,11 +53,24 @@
+@@ -51,11 +53,24 @@ if [ "$CONFIG_CRYPTO" = "y" ]; then
"$CONFIG_INET6_AH" = "y" -o \
"$CONFIG_INET6_AH" = "m" -o \
"$CONFIG_INET6_ESP" = "y" -o \
tristate ' SHA256 digest algorithm' CONFIG_CRYPTO_SHA256
tristate ' SHA384 and SHA512 digest algorithms' CONFIG_CRYPTO_SHA512
tristate ' Whirlpool digest algorithms' CONFIG_CRYPTO_WP512
-@@ -76,7 +91,20 @@
+@@ -76,7 +91,20 @@ if [ "$CONFIG_CRYPTO" = "y" ]; then
tristate ' TEA and XTEA cipher algorithms' CONFIG_CRYPTO_TEA
tristate ' Khazad cipher algorithm' CONFIG_CRYPTO_KHAZAD
tristate ' Anubis cipher algorithm' CONFIG_CRYPTO_ANUBIS
if [ "$CONFIG_INET_IPCOMP" = "y" -o \
"$CONFIG_INET_IPCOMP" = "m" -o \
"$CONFIG_INET6_IPCOMP" = "y" -o \
-Index: linux-2.4.35.4/drivers/net/Config.in
-===================================================================
---- linux-2.4.35.4.orig/drivers/net/Config.in 2007-12-15 05:19:42.102820341 +0100
-+++ linux-2.4.35.4/drivers/net/Config.in 2007-12-15 05:19:51.931380439 +0100
-@@ -336,6 +336,7 @@
+--- a/drivers/net/Config.in
++++ b/drivers/net/Config.in
+@@ -336,6 +336,7 @@ if [ ! "$CONFIG_PPP" = "n" ]; then
dep_tristate ' PPP support for sync tty ports' CONFIG_PPP_SYNC_TTY $CONFIG_PPP
dep_tristate ' PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
dep_tristate ' PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP $CONFIG_PPP
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
dep_tristate ' PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP
fi
-Index: linux-2.4.35.4/drivers/net/Makefile
-===================================================================
---- linux-2.4.35.4.orig/drivers/net/Makefile 2007-12-15 05:19:42.110820796 +0100
-+++ linux-2.4.35.4/drivers/net/Makefile 2007-12-15 05:19:51.931380439 +0100
-@@ -166,6 +166,7 @@
+--- a/drivers/net/Makefile
++++ b/drivers/net/Makefile
+@@ -166,6 +166,7 @@ obj-$(CONFIG_PPP_ASYNC) += ppp_async.o
obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o
obj-$(CONFIG_PPP_BSDCOMP) += bsd_comp.o
obj-$(CONFIG_PPPOE) += pppox.o pppoe.o
obj-$(CONFIG_SLIP) += slip.o
-Index: linux-2.4.35.4/drivers/net/ppp_generic.c
-===================================================================
---- linux-2.4.35.4.orig/drivers/net/ppp_generic.c 2007-12-15 05:19:42.114821025 +0100
-+++ linux-2.4.35.4/drivers/net/ppp_generic.c 2007-12-15 05:19:51.931380439 +0100
+--- a/drivers/net/ppp_generic.c
++++ b/drivers/net/ppp_generic.c
@@ -19,7 +19,7 @@
* PPP driver, written by Michael Callahan and Al Longyear, and
* subsequently hacked by Paul Mackerras.
*/
#include <linux/config.h>
-@@ -102,6 +102,7 @@
+@@ -102,6 +102,7 @@ struct ppp {
spinlock_t rlock; /* lock for receive side 58 */
spinlock_t wlock; /* lock for transmit side 5c */
int mru; /* max receive unit 60 */
unsigned int flags; /* control bits 64 */
unsigned int xstate; /* transmit state bits 68 */
unsigned int rstate; /* receive state bits 6c */
-@@ -552,7 +553,9 @@
+@@ -552,7 +553,9 @@ static int ppp_ioctl(struct inode *inode
case PPPIOCSMRU:
if (get_user(val, (int *) arg))
break;
err = 0;
break;
-@@ -1025,14 +1028,37 @@
+@@ -1025,14 +1028,37 @@ ppp_send_frame(struct ppp *ppp, struct s
case PPP_CCP:
/* peek at outbound CCP frames */
ppp_ccp_peek(ppp, skb, 0);
if (new_skb == 0) {
printk(KERN_ERR "PPP: no memory (comp pkt)\n");
goto drop;
-@@ -1050,9 +1076,21 @@
+@@ -1050,9 +1076,21 @@ ppp_send_frame(struct ppp *ppp, struct s
skb = new_skb;
skb_put(skb, len);
skb_pull(skb, 2); /* pull off A/C bytes */
}
}
-@@ -1540,14 +1578,15 @@
+@@ -1540,14 +1578,15 @@ ppp_decompress_frame(struct ppp *ppp, st
int len;
if (proto == PPP_COMP) {
if (len < 0) {
/* Pass the compressed frame to pppd as an
error indication. */
-@@ -1573,7 +1612,14 @@
+@@ -1573,7 +1612,14 @@ ppp_decompress_frame(struct ppp *ppp, st
return skb;
err:
ppp_receive_error(ppp);
return skb;
}
-@@ -2253,6 +2299,7 @@
+@@ -2253,6 +2299,7 @@ ppp_create_interface(int unit, int *retp
/* Initialize the new ppp unit */
ppp->file.index = unit;
ppp->mru = PPP_MRU;
init_ppp_file(&ppp->file, INTERFACE);
ppp->file.hdrlen = PPP_HDRLEN - 2; /* don't count proto bytes */
for (i = 0; i < NUM_NP; ++i)
-Index: linux-2.4.35.4/drivers/net/ppp_mppe_mppc.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.4.35.4/drivers/net/ppp_mppe_mppc.c 2007-12-15 05:19:51.935380668 +0100
+--- /dev/null
++++ b/drivers/net/ppp_mppe_mppc.c
@@ -0,0 +1,1312 @@
+/*
+ * ppp_mppe_mppc.c - MPPC/MPPE "compressor/decompressor" module.
+MODULE_AUTHOR("Jan Dubiec <jdx@slackware.pl>");
+MODULE_DESCRIPTION("MPPE/MPPC encryption/compression module for Linux");
+MODULE_LICENSE("Dual BSD/GPL");
-Index: linux-2.4.35.4/include/linux/ppp-comp.h
-===================================================================
---- linux-2.4.35.4.orig/include/linux/ppp-comp.h 2007-12-15 05:19:42.134822165 +0100
-+++ linux-2.4.35.4/include/linux/ppp-comp.h 2007-12-15 05:19:51.935380668 +0100
+--- a/include/linux/ppp-comp.h
++++ b/include/linux/ppp-comp.h
@@ -28,7 +28,7 @@
*/
*
* NOTE TO MAINTAINERS:
* If you modify this file at all, please set the above date.
-@@ -78,7 +78,7 @@
+@@ -78,7 +78,7 @@ struct compressor {
/* Compress a packet */
int (*compress) (void *state, unsigned char *rptr,
/* Return compression statistics */
void (*comp_stat) (void *state, struct compstat *stats);
-@@ -99,7 +99,7 @@
+@@ -99,7 +99,7 @@ struct compressor {
/* Decompress a packet. */
int (*decompress) (void *state, unsigned char *ibuf, int isize,
/* Update state for an incompressible packet received */
void (*incomp) (void *state, unsigned char *ibuf, int icnt);
-@@ -187,6 +187,42 @@
+@@ -187,6 +187,42 @@ struct compressor {
#define DEFLATE_CHK_SEQUENCE 0
/*