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
rthash defined in line 19; used 24 times

Defined macros

ROUTEHASHMASK defined in line 53; used 6 times
ROUTEHASHSIZ defined in line 52; used 8 times
RTS_PASSIVE defined in line 59; used 3 times
RTS_REMOTE defined in line 61; used 1 times
rt_hash defined in line 43; used 3 times
rt_ifp defined in line 50; used 5 times
rt_rt defined in line 42; used 4 times

Usage of this include

Last modified: 1985-08-17
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 949
Valid CSS Valid XHTML 1.0 Strict