]> git.ozlabs.org Git - ppp.git/blobdiff - include/net/if_ppp.h
Add support for packet filtering; remove unnecessary prototypes
[ppp.git] / include / net / if_ppp.h
index b538013058df3f78a73cbb0900464408552b3a53..35e00161905ef3b87169ca4928b7caa7ded84308 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: if_ppp.h,v 1.6 1994/09/21 00:28:21 paulus Exp $    */
+/*     $Id: if_ppp.h,v 1.13 1996/04/04 02:46:44 paulus Exp $   */
 
 /*
  * if_ppp.h - Point-to-Point Protocol definitions.
 #define SC_REJ_COMP_TCP        0x00000020      /* reject TCP (VJ) comp. on input */
 #define SC_CCP_OPEN    0x00000040      /* Look at CCP packets */
 #define SC_CCP_UP      0x00000080      /* May send/recv compressed packets */
-#define SC_ENABLE_IP   0x00000100      /* IP packets may be exchanged */
-#define SC_COMP_RUN    0x00001000      /* compressor has been inited */
-#define SC_DECOMP_RUN  0x00002000      /* decompressor has been inited */
 #define SC_DEBUG       0x00010000      /* enable debug messages */
 #define SC_LOG_INPKT   0x00020000      /* log contents of good pkts recvd */
 #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 */
-
-/* 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_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_RCV_ODDP    0x08000000      /* have rcvd char with odd parity */
-#define SC_DC_ERROR    0x00400000      /* non-fatal decomp error detected */
-#define SC_DC_FERROR   0x00800000      /* fatal decomp error detected */
+#define        SC_MASK         0x0fff00ff      /* bits that user can change */
+
+/*
+ * State bits in sc_flags, not changeable by user.
+ */
+#define SC_TIMEOUT     0x00000400      /* timeout is currently pending */
+#define SC_VJ_RESET    0x00000800      /* need to reset VJ decomp */
+#define SC_COMP_RUN    0x00001000      /* compressor has been inited */
+#define SC_DECOMP_RUN  0x00002000      /* decompressor has been inited */
+#define SC_DC_ERROR    0x00004000      /* non-fatal decomp error detected */
+#define SC_DC_FERROR   0x00008000      /* fatal decomp error detected */
+#define SC_TBUSY       0x10000000      /* xmitter doesn't need a packet yet */
+#define SC_PKTLOST     0x20000000      /* have lost or dropped a packet */
+#define        SC_FLUSH        0x40000000      /* flush input until next PPP_FLAG */
+#define        SC_ESCAPED      0x80000000      /* saw a PPP_ESCAPE */
 
 /*
  * Ioctl definitions.
@@ -81,9 +85,15 @@ struct ifpppstatsreq {
     struct ppp_stats stats;
 };
 
+struct ifpppcstatsreq {
+    char ifr_name[IFNAMSIZ];
+    struct ppp_comp_stats stats;
+};
+
 /*
  * Ioctl definitions.
  */
+
 #define        PPPIOCGFLAGS    _IOR('t', 90, int)      /* get configuration flags */
 #define        PPPIOCSFLAGS    _IOW('t', 89, int)      /* set configuration flags */
 #define        PPPIOCGASYNCMAP _IOR('t', 88, int)      /* get async map */
@@ -100,11 +110,30 @@ struct ifpppstatsreq {
 #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 PPPIOCGIDLE    _IOR('t', 74, struct ppp_idle) /* get idle time */
+#define PPPIOCSPASS    _IOW('t', 71, struct bpf_program) /* set pass filter */
+#define PPPIOCSACTIVE  _IOW('t', 70, struct bpf_program) /* set active filt */
+
+/* PPPIOC[GS]MTU are alternatives to SIOC[GS]IFMTU, used under Ultrix */
+#define PPPIOCGMTU     _IOR('t', 73, int)      /* get interface MTU */
+#define PPPIOCSMTU     _IOW('t', 72, int)      /* set interface MTU */
 
+/*
+ * These two are interface ioctls so that pppstats can do them on
+ * a socket without having to open the serial device.
+ */
 #define SIOCGPPPSTATS  _IOWR('i', 123, struct ifpppstatsreq)
+#define SIOCGPPPCSTATS _IOWR('i', 122, struct ifpppcstatsreq)
 
 #if !defined(ifr_mtu)
 #define ifr_mtu        ifr_ifru.ifru_metric
 #endif
 
+#if defined(_KERNEL) || defined(KERNEL)
+void pppattach __P((void));
+int pppsioctl __P((struct ifnet *, u_long, caddr_t));
+int pppoutput __P((struct ifnet *, struct mbuf *, struct sockaddr *,
+                  struct rtentry *));
+void pppintr __P((void));
+#endif
 #endif /* _IF_PPP_H_ */