CPU: Wrong CPU Load %.
[tomato.git] / release / src / router / ppp / include / linux / if_pppvar.h
blobb2485cd9d6c4dad915dfe014aed3aba295f109ec
1 /* From: if_pppvar.h,v 1.2 1995/06/12 11:36:51 paulus Exp */
2 /*
3 * if_pppvar.h - private structures and declarations for PPP.
5 * Copyright (c) 1994 The Australian National University.
6 * All rights reserved.
8 * Permission to use, copy, modify, and distribute this software and its
9 * documentation is hereby granted, provided that the above copyright
10 * notice appears in all copies. This software is provided without any
11 * warranty, express or implied. The Australian National University
12 * makes no representations about the suitability of this software for
13 * any purpose.
15 * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
16 * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
17 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
18 * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
19 * OF SUCH DAMAGE.
21 * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
22 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
23 * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
24 * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
25 * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
26 * OR MODIFICATIONS.
28 * Copyright (c) 1989 Carnegie Mellon University.
29 * All rights reserved.
31 * Redistribution and use in source and binary forms are permitted
32 * provided that the above copyright notice and this paragraph are
33 * duplicated in all such forms and that any documentation,
34 * advertising materials, and other materials related to such
35 * distribution and use acknowledge that the software was developed
36 * by Carnegie Mellon University. The name of the
37 * University may not be used to endorse or promote products derived
38 * from this software without specific prior written permission.
39 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
40 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
41 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
45 * ==FILEVERSION 990911==
47 * NOTE TO MAINTAINERS:
48 * If you modify this file at all, please set the above date.
49 * if_pppvar.h is shipped with a PPP distribution as well as with the kernel;
50 * if everyone increases the FILEVERSION number above, then scripts
51 * can do the right thing when deciding whether to install a new if_pppvar.h
52 * file. Don't change the format of that line otherwise, so the
53 * installation script can recognize it.
57 * Supported network protocols. These values are used for
58 * indexing sc_npmode.
61 #define NP_IP 0 /* Internet Protocol */
62 #define NP_IPX 1 /* IPX protocol */
63 #define NP_AT 2 /* Appletalk protocol */
64 #define NP_IPV6 3 /* Internet Protocol */
65 #define NUM_NP 4 /* Number of NPs. */
67 #define OBUFSIZE 256 /* # chars of output buffering */
70 * Structure describing each ppp unit.
73 struct ppp {
74 int magic; /* magic value for structure */
75 struct ppp *next; /* unit with next index */
76 unsigned long inuse; /* are we allocated? */
77 int line; /* network interface unit # */
78 __u32 flags; /* miscellaneous control flags */
79 int mtu; /* maximum xmit frame size */
80 int mru; /* maximum receive frame size */
81 struct slcompress *slcomp; /* for TCP header compression */
82 struct sk_buff_head xmt_q; /* frames to send from pppd */
83 struct sk_buff_head rcv_q; /* frames for pppd to read */
84 unsigned long xmit_busy; /* bit 0 set when xmitter busy */
86 /* Information specific to using ppp on async serial lines. */
87 struct tty_struct *tty; /* ptr to TTY structure */
88 struct tty_struct *backup_tty; /* TTY to use if tty gets closed */
89 __u8 escape; /* 0x20 if prev char was PPP_ESC */
90 __u8 toss; /* toss this frame */
91 volatile __u8 tty_pushing; /* internal state flag */
92 volatile __u8 woke_up; /* internal state flag */
93 __u32 xmit_async_map[8]; /* 1 bit means that given control
94 character is quoted on output*/
95 __u32 recv_async_map; /* 1 bit means that given control
96 character is ignored on input*/
97 __u32 bytes_sent; /* Bytes sent on frame */
98 __u32 bytes_rcvd; /* Bytes recvd on frame */
100 /* Async transmission information */
101 struct sk_buff *tpkt; /* frame currently being sent */
102 int tpkt_pos; /* how much of it we've done */
103 __u16 tfcs; /* FCS so far for it */
104 unsigned char *optr; /* where we're up to in sending */
105 unsigned char *olim; /* points past last valid char */
107 /* Async reception information */
108 struct sk_buff *rpkt; /* frame currently being rcvd */
109 __u16 rfcs; /* FCS so far of rpkt */
111 /* Queues for select() functionality */
112 struct wait_queue *read_wait; /* queue for reading processes */
114 /* info for detecting idle channels */
115 unsigned long last_xmit; /* time of last transmission */
116 unsigned long last_recv; /* time last packet received */
118 /* Statistic information */
119 struct pppstat stats; /* statistic information */
121 /* PPP compression protocol information */
122 struct compressor *sc_xcomp; /* transmit compressor */
123 void *sc_xc_state; /* transmit compressor state */
124 struct compressor *sc_rcomp; /* receive decompressor */
125 void *sc_rc_state; /* receive decompressor state */
127 enum NPmode sc_npmode[NUM_NP]; /* what to do with each NP */
128 int sc_xfer; /* PID of reserved PPP table */
129 char name[8]; /* space for unit name */
130 struct device dev; /* net device structure */
131 struct enet_statistics estats; /* more detailed stats */
133 /* tty output buffer */
134 unsigned char obuf[OBUFSIZE]; /* buffer for characters to send */
137 #define PPP_MAGIC 0x5002
138 #define PPP_VERSION "2.3.11"