Subject: Re: status of PPP compression?
To: Mike Long <mike.long@analog.com>
From: Iain Hibbert <plunky@skate.demon.co.uk>
List: current-users
Date: 04/08/1996 15:58:44
On Fri, 5 Apr 1996, Mike Long wrote:

> You may need to add one or both of the following lines to your kernel
> config:
> 
> 	options PPP_COMPRESS

actually, that should be PPP_BSDCOMP

> 	options PPP_DEFLATE
> 
> PPP (non-VJ) compression is optional because it bloats the kernel by
> ~35K.

  I just looked at this because I was putting it in my kernel config file
(might as well try it out, eh :) and wanted a meaningful comment there too.
It seems to me that the only things that defining these options would do is
to control whether or not the compressions were known about (in
net/if_ppp.c), not reduce kernel bloat at all.. 

#ifdef PPP_COMPRESS
/*
 * List of compressors we know about.
 * We leave some space so maybe we can modload compressors.
 */

extern struct compressor ppp_bsd_compress;
extern struct compressor ppp_deflate;

struct compressor *ppp_compressors[8] = {
#if DO_BSD_COMPRESS && defined(PPP_BSDCOMP)
    &ppp_bsd_compress,
#endif
#if DO_DEFLATE && defined(PPP_DEFLATE)
    &ppp_deflate,
#endif
    NULL
};
#endif /* PPP_COMPRESS */

especially so, since PPP_COMPRESS is explicitly #defined at the start of that
file (and ppp_tty.c for some reason)

the actual compression routines are brought in in bsd-comp.c and
ppp-deflate.c, and are included by default because of the following in 
ppp-comp.h

/*
 * The following symbols control whether we include code for
 * various compression methods.
 */
#ifndef DO_BSD_COMPRESS
#define DO_BSD_COMPRESS 1       /* by default, include BSD-Compress */
#endif
#ifndef DO_DEFLATE
#define DO_DEFLATE      1       /* by default, include Deflate */
#endif

not sure what the fix is; maybe an extra #ifdef around the above two, or 
to make it more closely related to the kernel options..

]ain