added comp_stat and decomp_stat
[ppp.git] / include / net / ppp-comp.h
index aa158ed16b4b2326d97ede05786443e89ccdca04..7a5246437a7d467cf989c5799c545e40eed5b3d9 100644 (file)
@@ -24,7 +24,7 @@
  * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
  * OR MODIFICATIONS.
  *
- * $Id: ppp-comp.h,v 1.1 1994/08/31 23:55:58 paulus Exp $
+ * $Id: ppp-comp.h,v 1.3 1994/09/19 04:23:58 paulus Exp $
  */
 
 /*
@@ -45,6 +45,8 @@ struct compressor {
        /* Compress a packet */
        int     (*compress) __P((void *state, PACKET **mret,
                                 PACKET *mp, int orig_len, int max_len));
+       /* Return compression statistics */
+       void    (*comp_stat) __P((void *state, struct compstat *stats));
 
        /* Allocate space for a decompressor (receive side) */
        void    *(*decomp_alloc) __P((u_char *options, int opt_len));
@@ -56,12 +58,25 @@ struct compressor {
        /* Reset a decompressor */
        void    (*decomp_reset) __P((void *state));
        /* Decompress a packet. */
-       PACKET  *(*decompress) __P((void *state, PACKET *mp,
-                                        int hdroff));
+       int     (*decompress) __P((void *state, PACKET *mp, PACKET **dmpp));
        /* Update state for an incompressible packet received */
        void    (*incomp) __P((void *state, PACKET *mp));
+       /* Return decompression statistics */
+       void    (*decomp_stat) __P((void *state, struct compstat *stats));
 };
 
+/*
+ * Return values for decompress routine.
+ * We need to make these distinctions so that we can disable certain
+ * useful functionality, namely sending a CCP reset-request as a result
+ * of an error detected after decompression.  This is to avoid infringing
+ * a patent held by Motorola.
+ * Don't you just lurve software patents.
+ */
+#define DECOMP_OK              0       /* everything went OK */
+#define DECOMP_ERROR           1       /* error detected before decomp. */
+#define DECOMP_FATALERROR      2       /* error detected after decomp. */
+
 /*
  * CCP codes.
  */