|
|
1.1 root 1: /* table.h 4.1 83/01/11 */
2:
3: /*
4: * Routing table management daemon.
5: */
6:
7: /*
8: * Routing table structure; differs a bit from kernel tables.
9: *
10: * Note: the union below must agree in the first 4 members
11: * so the ioctl's will work.
12: */
13: struct rthash {
14: struct rt_entry *rt_forw;
15: struct rt_entry *rt_back;
16: };
17:
18: struct rt_entry {
19: struct rt_entry *rt_forw;
20: struct rt_entry *rt_back;
21: union {
22: struct rtentry rtu_rt;
23: struct {
24: u_long rtu_hash;
25: struct sockaddr rtu_dst;
26: struct sockaddr rtu_router;
27: short rtu_flags;
28: short rtu_state;
29: int rtu_timer;
30: int rtu_metric;
31: struct interface *rtu_ifp;
32: } rtu_entry;
33: } rt_rtu;
34: };
35:
36: #define rt_rt rt_rtu.rtu_rt /* pass to ioctl */
37: #define rt_hash rt_rtu.rtu_entry.rtu_hash /* for net or host */
38: #define rt_dst rt_rtu.rtu_entry.rtu_dst /* match value */
39: #define rt_router rt_rtu.rtu_entry.rtu_router /* who to forward to */
40: #define rt_flags rt_rtu.rtu_entry.rtu_flags /* kernel flags */
41: #define rt_timer rt_rtu.rtu_entry.rtu_timer /* for invalidation */
42: #define rt_state rt_rtu.rtu_entry.rtu_state /* see below */
43: #define rt_metric rt_rtu.rtu_entry.rtu_metric /* cost of route */
44: #define rt_ifp rt_rtu.rtu_entry.rtu_ifp /* interface to take */
45:
46: #define ROUTEHASHSIZ 19
47:
48: /*
49: * "State" of routing table entry.
50: */
51: #define RTS_CHANGED 0x1 /* route has been altered recently */
52: #define RTS_PASSIVE 0x20 /* don't time out route */
53: #define RTS_INTERFACE 0x40 /* route is for network interface */
54: #define RTS_REMOTE 0x80 /* route is for ``remote'' entity */
55:
56: struct rthash nethash[ROUTEHASHSIZ];
57: struct rthash hosthash[ROUTEHASHSIZ];
58: struct rt_entry *rtlookup();
59: struct rt_entry *rtfind();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.