Commit | Line | Data |
---|---|---|
a2cd4df7 | 1 | /* if_imphost.h 4.2 82/02/12 */ |
81776a4f SL |
2 | |
3 | /* | |
4 | * Host structure used with IMP's. | |
5 | * Used to hold outgoing packets which | |
6 | * would exceed allowed RFNM count. | |
7 | * | |
8 | * These structures are packed into | |
9 | * mbuf's and kept as small as possible. | |
10 | */ | |
11 | struct host { | |
12 | struct mbuf *h_q; /* holding queue */ | |
13 | struct in_addr h_addr; /* host's address */ | |
14 | u_short h_status; /* host status */ | |
15 | u_char h_rfnm; /* # outstanding rfnm's */ | |
16 | u_char h_refcnt; /* reference count */ | |
17 | }; | |
18 | ||
19 | #define HOSTS_DOWN 0 /* host believed down */ | |
20 | #define HOSTS_UP 128 /* host up */ | |
21 | ||
22 | /* | |
23 | * Host structures, as seen inside an mbuf. | |
24 | * Hashing on the host address is used to | |
25 | * select an index into the first mbuf. Collisions | |
26 | * are then resolved by searching successive | |
27 | * mbuf's at the same index. Reclamation is done | |
28 | * automatically at the time a structure is free'd. | |
29 | */ | |
30 | #define HPMBUF ((MLEN - sizeof(int)) / sizeof(struct host)) | |
31 | #define HOSTHASH(a) ((a.s_addr) % HPMBUF) | |
32 | ||
33 | struct hmbuf { | |
34 | int hm_count; /* # of struct's in use */ | |
35 | struct host hm_hosts[HPMBUF]; /* data structures proper */ | |
36 | }; | |
37 | ||
38 | #ifdef KERNEL | |
a2cd4df7 BJ |
39 | struct host *hostlookup(); |
40 | struct host *hostenter(); | |
81776a4f | 41 | #endif |