1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)table.h 5.1 (Berkeley) 6/4/85
7: */
8:
9: /*
10: * Routing table management daemon.
11: */
12:
13: /*
14: * Routing table structure; differs a bit from kernel tables.
15: *
16: * Note: the union below must agree in the first 4 members
17: * so the ioctl's will work.
18: */
19: struct rthash {
20: struct rt_entry *rt_forw;
21: struct rt_entry *rt_back;
22: };
23:
24: struct rt_entry {
25: struct rt_entry *rt_forw;
26: struct rt_entry *rt_back;
27: union {
28: struct rtentry rtu_rt;
29: struct {
30: u_long rtu_hash;
31: struct sockaddr rtu_dst;
32: struct sockaddr rtu_router;
33: short rtu_flags;
34: short rtu_state;
35: int rtu_timer;
36: int rtu_metric;
37: struct interface *rtu_ifp;
38: } rtu_entry;
39: } rt_rtu;
40: };
41:
42: #define rt_rt rt_rtu.rtu_rt /* pass to ioctl */
43: #define rt_hash rt_rtu.rtu_entry.rtu_hash /* for net or host */
44: #define rt_dst rt_rtu.rtu_entry.rtu_dst /* match value */
45: #define rt_router rt_rtu.rtu_entry.rtu_router /* who to forward to */
46: #define rt_flags rt_rtu.rtu_entry.rtu_flags /* kernel flags */
47: #define rt_timer rt_rtu.rtu_entry.rtu_timer /* for invalidation */
48: #define rt_state rt_rtu.rtu_entry.rtu_state /* see below */
49: #define rt_metric rt_rtu.rtu_entry.rtu_metric /* cost of route */
50: #define rt_ifp rt_rtu.rtu_entry.rtu_ifp /* interface to take */
51:
52: #define ROUTEHASHSIZ 32 /* must be a power of 2 */
53: #define ROUTEHASHMASK (ROUTEHASHSIZ - 1)
54:
55: /*
56: * "State" of routing table entry.
57: */
58: #define RTS_CHANGED 0x1 /* route has been altered recently */
59: #define RTS_PASSIVE IFF_PASSIVE /* don't time out route */
60: #define RTS_INTERFACE IFF_INTERFACE /* route is for network interface */
61: #define RTS_REMOTE IFF_REMOTE /* route is for ``remote'' entity */
62:
63: struct rthash nethash[ROUTEHASHSIZ];
64: struct rthash hosthash[ROUTEHASHSIZ];
65: struct rt_entry *rtlookup();
66: struct rt_entry *rtfind();
Defined variables
Defined struct's
rt_entry
defined in line
24; used 52 times
- in line 20-26(6),
65-66(4)
- in /usr/src/etc/XNSrouted/input.c line
42(2)
- in /usr/src/etc/XNSrouted/output.c line
68(2),
81(2)
- in /usr/src/etc/XNSrouted/startup.c line
156(2)
- in /usr/src/etc/XNSrouted/tables.c line
29-33(4),
45(2),
63-67(4),
81(2),
108(2),
124(2),
155(2),
196(2),
215-217(4)
- in /usr/src/etc/XNSrouted/timer.c line
29(2),
40(2),
92(2),
100(2)
- in /usr/src/etc/XNSrouted/trace.c line
122(2)
rthash
defined in line
19; used 24 times
Defined macros
rt_rt
defined in line
42; used 4 times
Usage of this include