]> git.ozlabs.org Git - ppp.git/blobdiff - include/linux/if_ppp.h
Major restructuring of the ppp driver, leading towards
[ppp.git] / include / linux / if_ppp.h
index 79b1c962b3b7a81581032f21532c66787687af74..bb7a98db3f0e8542981817ce3f3fc36a1fb0053a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: if_ppp.h,v 1.2 1995/04/28 06:27:55 paulus Exp $    */
+/*     $Id: if_ppp.h,v 1.14 1998/07/07 04:27:33 paulus Exp $   */
 
 /*
  * if_ppp.h - Point-to-Point Protocol definitions.
  * 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.
+ *
+ */
+
+/*
+ *  ==FILEVERSION 980704==
+ *
+ *  NOTE TO MAINTAINERS:
+ *     If you modify this file at all, please set the above date.
+ *     if_ppp.h is shipped with a PPP distribution as well as with the kernel;
+ *     if everyone increases the FILEVERSION number above, then scripts
+ *     can do the right thing when deciding whether to install a new if_ppp.h
+ *     file.  Don't change the format of that line otherwise, so the
+ *     installation script can recognize it.
  */
 
 #ifndef _IF_PPP_H_
 #define _IF_PPP_H_
 
+#if defined(__linux__)
+#include <linux/if.h>
+#include <linux/ioctl.h>
+#include <linux/ppp_defs.h>
+#endif
+
 /*
  * Packet sizes
  */
 
 #define        PPP_MTU         1500    /* Default MTU (size of Info field) */
 #define PPP_MAXMRU     65000   /* Largest MRU we allow */
-#define PPP_NRUNIT     4       /* how many PPP units? */
-#define PPP_VERSION    "2.2.0"
+#define PPP_VERSION    "2.3.3"
 #define PPP_MAGIC      0x5002  /* Magic value for the ppp structure */
 #define PROTO_IPX      0x002b  /* protocol numbers */
+#define PROTO_DNA_RT    0x0027  /* DNA Routing */
+
 
 /*
  * Bit definitions for flags.
 #define SC_LOG_OUTPKT  0x00040000      /* log contents of pkts sent */
 #define SC_LOG_RAWIN   0x00080000      /* log all chars received */
 #define SC_LOG_FLUSH   0x00100000      /* log all chars flushed */
-#define        SC_MASK         0x0fffffff      /* bits that user can change */
+#define        SC_MASK         0x0f0000ff      /* bits that user can change */
 
 /* state bits */
-#define        SC_ESCAPED      0x80000000      /* saw a PPP_ESCAPE */
-#define        SC_FLUSH        0x40000000      /* flush input until next PPP_FLAG */
-#define SC_VJ_RESET    0x20000000      /* Need to reset the VJ decompressor */
-#define SC_XMIT_BUSY   0x10000000      /* ppp_write_wakeup is active */
-#define SC_RCV_B7_0    0x01000000      /* have rcvd char with bit 7 = 0 */
-#define SC_RCV_B7_1    0x02000000      /* have rcvd char with bit 7 = 1 */
-#define SC_RCV_EVNP    0x04000000      /* have rcvd char with even parity */
+#define SC_XMIT_BUSY   0x10000000      /* (used by isdn_ppp?) */
 #define SC_RCV_ODDP    0x08000000      /* have rcvd char with odd parity */
-#define SC_DC_ERROR    0x00400000      /* non-fatal decomp error detected */
+#define SC_RCV_EVNP    0x04000000      /* have rcvd char with even parity */
+#define SC_RCV_B7_1    0x02000000      /* have rcvd char with bit 7 = 1 */
+#define SC_RCV_B7_0    0x01000000      /* have rcvd char with bit 7 = 0 */
 #define SC_DC_FERROR   0x00800000      /* fatal decomp error detected */
+#define SC_DC_ERROR    0x00400000      /* non-fatal decomp error detected */
 
 /*
  * Ioctl definitions.
  */
 
 struct npioctl {
-    int                protocol;       /* PPP procotol, e.g. PPP_IP */
-    enum NPmode        mode;
+       int             protocol;       /* PPP protocol, e.g. PPP_IP */
+       enum NPmode     mode;
 };
 
 /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
 struct ppp_option_data {
-       u_char  *ptr;
-       u_int   length;
+       __u8    *ptr;
+       __u32   length;
        int     transmit;
 };
 
 struct ifpppstatsreq {
-    char ifr__name[IFNAMSIZ];          /* Name of the device */
-    struct ppp_stats *stats_ptr;       /* Pointer to stats buffer */
-    struct ppp_stats stats;            /* statistic information */
+       struct ifreq     b;
+       struct ppp_stats stats;                 /* statistic information */
 };
 
-struct ppp_ddinfo {
-  unsigned long                ip_sjiffies;    /* time when last IP frame sent */
-  unsigned long                ip_rjiffies;    /* time when last IP frame recvd*/
-  unsigned long                nip_sjiffies;   /* time when last NON-IP sent   */
-  unsigned long                nip_rjiffies;   /* time when last NON-IP recvd  */
+struct ifpppcstatsreq {
+       struct ifreq          b;
+       struct ppp_comp_stats stats;
 };
 
+#define ifr__name       b.ifr_ifrn.ifrn_name
+#define stats_ptr       b.ifr_ifru.ifru_data
+
 /*
  * Ioctl definitions.
  */
@@ -116,14 +133,13 @@ struct ppp_ddinfo {
 #define PPPIOCSCOMPRESS        _IOW('t', 77, struct ppp_option_data)
 #define PPPIOCGNPMODE  _IOWR('t', 76, struct npioctl) /* get NP mode */
 #define PPPIOCSNPMODE  _IOW('t', 75, struct npioctl)  /* set NP mode */
-
 #define PPPIOCGDEBUG   _IOR('t', 65, int)      /* Read debug level */
 #define PPPIOCSDEBUG   _IOW('t', 64, int)      /* Set debug level */
-#define PPPIOCGTIME    _IOR('t', 63, struct ppp_ddinfo) /* Read time info */
+#define PPPIOCGIDLE    _IOR('t', 63, struct ppp_idle) /* get idle time */
 
 #define SIOCGPPPSTATS   (SIOCDEVPRIVATE + 0)
-#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2)
-#define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)
+#define SIOCGPPPVER     (SIOCDEVPRIVATE + 1)   /* NEVER change this!! */
+#define SIOCGPPPCSTATS  (SIOCDEVPRIVATE + 2)
 
 #if !defined(ifr_mtu)
 #define ifr_mtu        ifr_ifru.ifru_metric