1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
/*
* ppp-comp.h - Definitions for doing PPP packet compression.
*
* Copyright 1994-1998 Paul Mackerras.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*/
#ifndef _NET_PPP_COMP_H
#define _NET_PPP_COMP_H
struct module;
#ifndef DO_BSD_COMPRESS
#define DO_BSD_COMPRESS 1
#endif
#ifndef DO_DEFLATE
#define DO_DEFLATE 1
#endif
#define DO_PREDICTOR_1 0
#define DO_PREDICTOR_2 0
struct compressor {
int compress_proto;
void *(*comp_alloc) (unsigned char *options, int opt_len);
void (*comp_free) (void *state);
int (*comp_init) (void *state, unsigned char *options,
int opt_len, int unit, int opthdr, int debug);
void (*comp_reset) (void *state);
int (*compress) (void *state, unsigned char *rptr,
unsigned char *obuf, int isize, int osize);
void (*comp_stat) (void *state, struct compstat *stats);
void *(*decomp_alloc) (unsigned char *options, int opt_len);
void (*decomp_free) (void *state);
int (*decomp_init) (void *state, unsigned char *options,
int opt_len, int unit, int opthdr, int mru,
int debug);
void (*decomp_reset) (void *state);
int (*decompress) (void *state, unsigned char *ibuf, int isize,
unsigned char *obuf, int osize);
void (*incomp) (void *state, unsigned char *ibuf, int icnt);
void (*decomp_stat) (void *state, struct compstat *stats);
struct module *owner;
unsigned int comp_extra;
};
#define DECOMP_ERROR -1
#define DECOMP_FATALERROR -2
#define CCP_CONFREQ 1
#define CCP_CONFACK 2
#define CCP_TERMREQ 5
#define CCP_TERMACK 6
#define CCP_RESETREQ 14
#define CCP_RESETACK 15
#define CCP_MAX_OPTION_LENGTH 32
#define CCP_CODE(dp) ((dp)[0])
#define CCP_ID(dp) ((dp)[1])
#define CCP_LENGTH(dp) (((dp)[2] << 8) + (dp)[3])
#define CCP_HDRLEN 4
#define CCP_OPT_CODE(dp) ((dp)[0])
#define CCP_OPT_LENGTH(dp) ((dp)[1])
#define CCP_OPT_MINLEN 2
#define CI_BSD_COMPRESS 21
#define CILEN_BSD_COMPRESS 3
#define BSD_NBITS(x) ((x) & 0x1F)
#define BSD_VERSION(x) ((x) >> 5)
#define BSD_CURRENT_VERSION 1
#define BSD_MAKE_OPT(v, n) (((v) << 5) | (n))
#define BSD_MIN_BITS 9
#define BSD_MAX_BITS 15
#define CI_DEFLATE 26
#define CI_DEFLATE_DRAFT 24
#define CILEN_DEFLATE 4
#define DEFLATE_MIN_SIZE 9
#define DEFLATE_MAX_SIZE 15
#define DEFLATE_METHOD_VAL 8
#define DEFLATE_SIZE(x) (((x) >> 4) + 8)
#define DEFLATE_METHOD(x) ((x) & 0x0F)
#define DEFLATE_MAKE_OPT(w) ((((w) - 8) << 4) + DEFLATE_METHOD_VAL)
#define DEFLATE_CHK_SEQUENCE 0
#define CI_MPPE 18
#define CILEN_MPPE 6
#define CI_PREDICTOR_1 1
#define CILEN_PREDICTOR_1 2
#define CI_PREDICTOR_2 2
#define CILEN_PREDICTOR_2 2
#ifdef __KERNEL__
extern int ppp_register_compressor(struct compressor *);
extern void ppp_unregister_compressor(struct compressor *);
#endif
#endif
|