|
1 /* |
|
2 * Copyright (c) 1995 Danny Gasparovski. |
|
3 * |
|
4 * Please read the file COPYRIGHT for the |
|
5 * terms and conditions of the copyright. |
|
6 */ |
|
7 |
|
8 #ifndef _IF_H_ |
|
9 #define _IF_H_ |
|
10 |
|
11 #define IF_COMPRESS 0x01 /* We want compression */ |
|
12 #define IF_NOCOMPRESS 0x02 /* Do not do compression */ |
|
13 #define IF_AUTOCOMP 0x04 /* Autodetect (default) */ |
|
14 #define IF_NOCIDCOMP 0x08 /* CID compression */ |
|
15 |
|
16 #define IF_MTU 1500 |
|
17 #define IF_MRU 1500 |
|
18 #define IF_COMP IF_AUTOCOMP /* Flags for compression */ |
|
19 |
|
20 #if 0 |
|
21 /* |
|
22 * Set if_maxlinkhdr to 48 because it's 40 bytes for TCP/IP, |
|
23 * and 8 bytes for PPP, but need to have it on an 8byte boundary |
|
24 */ |
|
25 #ifdef USE_PPP |
|
26 #define IF_MAXLINKHDR 48 |
|
27 #else |
|
28 #define IF_MAXLINKHDR 40 |
|
29 #endif |
|
30 #else |
|
31 /* 2 for alignment, 14 for ethernet, 40 for TCP/IP */ |
|
32 #define IF_MAXLINKHDR (2 + 14 + 40) |
|
33 #endif |
|
34 |
|
35 extern int if_queued; /* Number of packets queued so far */ |
|
36 |
|
37 extern struct mbuf if_fastq; /* fast queue (for interactive data) */ |
|
38 extern struct mbuf if_batchq; /* queue for non-interactive data */ |
|
39 extern struct mbuf *next_m; |
|
40 |
|
41 #define ifs_init(ifm) ((ifm)->ifs_next = (ifm)->ifs_prev = (ifm)) |
|
42 |
|
43 #ifdef LOG_ENABLED |
|
44 /* Interface statistics */ |
|
45 struct slirp_ifstats { |
|
46 u_int out_pkts; /* Output packets */ |
|
47 u_int out_bytes; /* Output bytes */ |
|
48 u_int out_errpkts; /* Output Error Packets */ |
|
49 u_int out_errbytes; /* Output Error Bytes */ |
|
50 u_int in_pkts; /* Input packets */ |
|
51 u_int in_bytes; /* Input bytes */ |
|
52 u_int in_errpkts; /* Input Error Packets */ |
|
53 u_int in_errbytes; /* Input Error Bytes */ |
|
54 |
|
55 u_int bytes_saved; /* Number of bytes that compression "saved" */ |
|
56 /* ie: number of bytes that didn't need to be sent over the link |
|
57 * because of compression */ |
|
58 |
|
59 u_int in_mbad; /* Bad incoming packets */ |
|
60 }; |
|
61 #endif |
|
62 |
|
63 #endif |