-/* $Id: if_pppvar.h,v 1.1 1994/09/21 00:28:59 paulus Exp $ */
+/* $Id: if_pppvar.h,v 1.5 1996/09/26 06:19:03 paulus Exp $ */
/*
* if_pppvar.h - private structures and declarations for PPP.
*
*/
struct ppp_softc {
struct ifnet sc_if; /* network-visible interface */
- u_int sc_flags; /* see below */
+ u_int sc_flags; /* control/status bits; see if_ppp.h */
void *sc_devp; /* pointer to device-dep structure */
- int (*sc_start) __P((struct ppp_softc *)); /* start routine */
+ void (*sc_start) __P((struct ppp_softc *)); /* start output proc */
+ void (*sc_ctlp) __P((struct ppp_softc *)); /* rcvd control pkt */
+ void (*sc_relinq) __P((struct ppp_softc *)); /* relinquish ifunit */
short sc_mru; /* max receive unit */
pid_t sc_xfer; /* used in transferring unit */
- struct ifqueue sc_inq; /* TTY side input queue */
- struct ifqueue sc_fastq; /* IP interactive output packet q */
-#ifdef VJC
- struct slcompress sc_comp; /* vjc control buffer */
-#endif
- u_int sc_bytessent; /* count of octets sent */
- u_int sc_bytesrcvd; /* count of octets received */
+ struct ifqueue sc_rawq; /* received packets */
+ struct ifqueue sc_inq; /* queue of input packets for daemon */
+ struct ifqueue sc_fastq; /* interactive output packet q */
+ struct mbuf *sc_togo; /* output packet ready to go */
+ struct mbuf *sc_npqueue; /* output packets not to be sent yet */
+ struct mbuf **sc_npqtail; /* ptr to last next ptr in npqueue */
+ struct pppstat sc_stats; /* count of bytes/pkts sent/rcvd */
caddr_t sc_bpf; /* hook for BPF */
enum NPmode sc_npmode[NUM_NP]; /* what to do with each NP */
struct compressor *sc_xcomp; /* transmit compressor */
void *sc_xc_state; /* transmit compressor state */
struct compressor *sc_rcomp; /* receive decompressor */
void *sc_rc_state; /* receive decompressor state */
-
+ time_t sc_last_sent; /* time (secs) last NP pkt sent */
+ time_t sc_last_recv; /* time (secs) last NP pkt rcvd */
+#ifdef VJC
+ struct slcompress *sc_comp; /* vjc control buffer */
+#endif
+
/* Device-dependent part for async lines. */
ext_accm sc_asyncmap; /* async control character map */
u_long sc_rasyncmap; /* receive async control char map */
int sc_rawin_count; /* # in sc_rawin */
};
-struct ppp_softc ppp_softc[NPPP];
+struct ppp_softc ppp_softc[NPPP];
-extern int ppppktin __P((struct ppp_softc *sc, struct mbuf *m));
-struct mbuf *ppp_dequeue __P((struct ppp_softc *sc));
+struct ppp_softc *pppalloc(pid_t pid);
+void pppdealloc(struct ppp_softc *sc);
+int pppioctl(struct ppp_softc *sc, int cmd, caddr_t data, int flag);
+void ppp_restart(struct ppp_softc *sc);
+void ppppktin(struct ppp_softc *sc, struct mbuf *m, int lost);
+struct mbuf *ppp_dequeue(struct ppp_softc *sc);