CodeForge.comFree Open Source Codes Forge and Sharing |
/*
* Routines to compress and uncompess tcp packets (for transmission
* over low speed serial lines.
*
* Copyright (c) 1989 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
* Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989:
* - Initial distribution.
*
* Modified June 1993 by Paul Mackerras, paulus@cs.anu.edu.au,
* so that the entire packet being decompressed doesn't have
* to be in contiguous memory (just the compressed header).
*
* Modified March 1998 by Guy Lancaster, glanca@gesn.com,
* for a 16 bit processor.
*/
#include "ppp.h"
#include "vj.h"
#include "pppdebug.h"
#if VJ_SUPPORT > 0
#if LINK_STATS
#define INCR(counter) ++comp->stats.counter
#else
#define INCR(counter)
#endif
#if defined(NO_CHAR_BITFIELDS)
#define getip_hl(base) ((base).ip_hl_v&0xf)
#define getth_off(base) (((base).th_x2_off&0xf0)>>4)
#else
#define getip_hl(base) ((base).ip_hl)
#define getth_off(base) ((base).th_off)
#endif
void vj_compress_init(struct vjcompress *comp)
{
register u_int i;
register struct cstate *tstate = comp->tstate;
#if MAX_SLOTS == 0
memset((char *)comp, 0, sizeof(*comp));
#endif
comp->maxSlotIndex = MAX_SLOTS - 1;
comp->compressSlot = 0; /* Disable slot ID compression by default. */
for (i = MAX_SLOTS - 1; i > 0; --i) {
tstate[i].cs_id = i;
tstate[i].cs_
...
...
... to be continued.
This is a preview. To get the complete source file,
please click here to download the whole source code package.
| Name | Size | Date |
| 116.61 kB | 05-07-04 08:37 | |
| 112.00 kB | 02-07-04 00:33 | |
| 1.41 kB | 02-07-04 00:33 | |
| 248.00 kB | 02-07-04 00:33 | |
| 2.74 kB | 02-07-04 12:03 | |
| 38.28 kB | 03-07-04 00:47 | |
| 715.04 kB | 05-07-04 08:37 | |
| 496.00 B | 05-07-04 08:37 | |
| 776.00 B | 05-07-04 08:37 | |
| 844.00 B | 03-07-04 00:47 | |
| 198.01 kB | 21-01-05 09:23 | |
| 245.59 kB | 03-07-04 00:47 | |
| 2.82 kB | 03-07-04 20:44 | |
| 881.00 B | 14-10-03 21:27 | |
| 86.00 B | 19-10-03 20:17 | |
| 0.00 B | 03-07-04 21:35 | |
| 3.33 kB | 02-07-04 00:23 | |
| 29.27 kB | 23-04-04 17:45 | |
| 5.05 kB | 23-04-04 17:46 | |
| 2.70 kB | 14-11-03 15:56 | |
| 25.39 kB | 23-04-04 18:16 | |
| 3.94 kB | 27-05-03 16:37 | |
| 22.86 kB | 14-11-03 15:56 | |
| 6.33 kB | 27-05-03 16:37 | |
| 10.80 kB | 27-05-03 16:37 | |
| 2.82 kB | 23-04-04 18:16 | |
| 19.74 kB | 27-05-03 16:37 | |
| 7.36 kB | 27-05-03 16:37 | |
| 35.10 kB | 23-04-04 18:16 | |
| 5.09 kB | 27-05-03 16:37 | |
| 49.90 kB | 02-06-03 13:12 | |
| 6.17 kB | 27-05-03 16:37 | |
| 2.99 kB | 27-05-03 16:37 | |
| 3.00 kB | 27-05-03 16:37 | |
| 11.28 kB | 30-05-03 10:49 | |
| 2.95 kB | 27-05-03 16:37 | |
| 14.05 kB | 14-11-03 15:56 | |
| 4.74 kB | 27-05-03 16:37 | |
| 47.24 kB | 28-12-03 03:38 | |
| 14.88 kB | 14-11-03 14:17 | |
| 2.01 kB | 30-05-03 10:49 | |
| 7.89 kB | 14-11-03 15:56 | |
| 3.02 kB | 30-05-03 10:49 | |
| 16.81 kB | 14-11-03 15:56 | |
| 5.88 kB | 23-04-04 18:16 | |
| 0.00 B | 03-07-04 21:35 | |
| 0.00 B | 03-07-04 21:35 | |
| 3.60 kB | 01-07-04 22:01 | |
| 1.84 kB | 23-04-04 17:16 | |
| 2.18 kB | 17-05-03 05:06 | |
| 5.26 kB | 02-07-04 11:45 | |
| 2.05 kB | 23-04-04 17:16 | |
| 19.43 kB | 01-07-04 22:02 | |
| 2.28 kB | 23-04-04 17:16 | |
| 9.32 kB | 23-04-04 17:16 | |
| 2.25 kB | 02-07-04 00:22 | |
| 3.82 kB | 23-04-04 17:16 | |
| 6.14 kB | 23-04-04 17:16 | |
| 16.37 kB | 03-07-04 20:53 | |
| 9.68 kB | 01-07-04 23:10 | |
| 5.23 kB | 01-07-04 22:02 | |
| 3.75 kB | 03-07-04 00:33 | |
| 6.63 kB | 28-12-03 03:38 | |
| 2.92 kB | 23-04-04 17:16 | |
| 2.09 kB | 23-04-04 17:16 | |
| 5.92 kB | 27-04-03 11:52 | |
| 3.86 kB | 23-04-04 17:16 | |
| 2.70 kB | 01-07-04 22:23 | |
| 5.70 kB | 01-07-04 23:19 | |
| 5.57 kB | 26-04-04 15:03 | |
| 1.85 kB | 23-04-04 17:16 | |
| 2.60 kB | 03-07-04 16:09 | |
| 3.22 kB | 03-07-04 20:59 | |
| 2.51 kB | 03-07-04 16:10 | |
| 5.96 kB | 03-07-04 16:31 | |
| 0.00 B | 03-07-04 21:35 | |
| 1.72 kB | 23-04-04 17:17 | |
| 1.93 kB | 10-10-03 10:31 | |
| 3.23 kB | 23-04-04 17:17 | |
| 1.79 kB | 20-02-03 12:51 | |
| 0.00 B | 03-07-04 21:35 | |
| 0.00 B | 03-07-04 21:35 | |
| 4.19 kB | 23-04-04 17:10 | |
| 9.06 kB | 02-07-04 00:24 | |
| 25.28 kB | 01-07-04 23:28 | |
| 29.11 kB | 01-07-04 22:16 | |
| 8.27 kB | 01-07-04 22:12 | |
| 7.01 kB | 23-04-04 17:11 | |
| 7.84 kB | 23-04-04 18:16 | |
| 4.11 kB | 03-07-04 20:57 | |
| 7.56 kB | 23-04-04 18:16 | |
| 34.37 kB | 01-07-04 22:25 | |
| 50.47 kB | 23-04-04 17:36 | |
| 8.21 kB | 01-07-04 22:25 | |
| 39.06 kB | 23-04-04 17:43 | |
| 19.20 kB | 01-07-04 23:38 | |
| 1.79 kB | 23-04-04 17:16 | |
| 15.57 kB | 02-07-04 20:09 | |
| 6.01 kB | 01-07-04 23:32 | |
| 11.12 kB | 02-07-04 00:12 | |
| 0.00 B | 03-07-04 21:35 | |
| 0.00 B | 03-07-04 21:35 | |
| 2.35 kB | 02-07-04 15:58 | |
| 7.57 kB | 03-07-04 19:43 | |
| 2.23 kB | 03-07-04 20:59 | |
| 2.20 kB | 10-10-03 14:11 | |
| 1.91 kB | 17-05-03 05:06 | |
| 1.91 kB | 17-05-03 05:06 | |
| 1.94 kB | 02-07-04 15:59 | |
| 7.94 kB | 02-07-04 18:44 | |
| 1.91 kB | 17-05-03 05:06 | |
| 746.00 B | 02-07-04 00:03 | |
| 15.97 kB | 01-07-04 23:51 | |
| 15.99 kB | 02-07-04 21:41 | |
| 0.00 B | 03-07-04 21:35 | |
| 15.35 kB | 23-04-04 17:08 | |
| 18.86 kB | 23-04-04 17:08 | |
| 2.04 kB | 23-04-04 17:08 | |
| 35.06 kB | 01-07-04 22:47 | |
| 4.29 kB | 23-04-04 17:08 | |
| 0.00 B | 03-07-04 21:35 | |
| 0.00 B | 03-07-04 21:35 | |
| 3.37 kB | 21-01-05 09:23 | |
| 0.00 B | 03-07-04 21:35 | |
| 0.00 B | 21-01-05 09:23 | |
| 0.00 B | 03-07-04 21:35 | |
| 1.68 kB | 02-07-04 00:12 | |
| 431.00 B | 14-03-03 23:01 | |
| 15.28 kB | 20-07-03 19:53 | |
| 2.56 kB | 29-05-04 16:00 | |
| 558.00 B | 24-07-03 23:23 | |
| 1.73 kB | 24-07-03 23:14 | |
| 1.04 kB | 03-07-04 20:39 | |
| 0.00 B | 03-07-04 21:35 | |
| 16.25 kB | 02-07-04 00:12 | |
| 5.83 kB | 02-07-04 18:51 | |
| 19.45 kB | 14-06-04 21:44 | |
| 4.12 kB | 03-07-04 21:01 | |
| 0.00 B | 03-07-04 21:35 | |
| 48.60 kB | 25-01-02 21:40 | |
| 43.49 kB | 13-02-02 19:35 | |
| 23.24 kB | 25-01-02 21:40 | |
| 13.75 kB | 16-02-02 16:49 | |
| 27.26 kB | 25-01-02 21:40 | |
| 33.70 kB | 13-02-02 19:40 | |
| 19.22 kB | 25-01-02 21:40 | |
| 35.47 kB | 02-07-04 18:51 | |
| 9.68 kB | 25-01-02 21:40 | |
| 983.00 B | 12-07-03 15:59 | |
| 7.99 kB | 17-10-03 16:41 | |
| 728.00 B | 19-10-03 16:47 | |
| 9.83 kB | 28-09-03 20:52 | |
| 45.64 kB | 11-10-03 20:57 | |
| 3.68 kB | 15-03-04 09:09 | |
| 9.51 kB | 11-10-03 20:03 | |
| 0.00 B | 03-07-04 21:35 | |
| 0.00 B | 03-07-04 21:35 |