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.2 (Berkeley) 4/20/86
   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_int   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_EXTERNAL    0x2     /* extern info, not installed or sent */
  60: #define RTS_INTERNAL    0x4     /* internal route, not installed */
  61: #define RTS_PASSIVE IFF_PASSIVE /* don't time out route */
  62: #define RTS_INTERFACE   IFF_INTERFACE   /* route is for network interface */
  63: #define RTS_REMOTE  IFF_REMOTE  /* route is for ``remote'' entity */
  64: #define RTS_SUBNET  IFF_SUBNET  /* route is for network subnet */
  65: 
  66: /*
  67:  * Flags are same as kernel, with this addition for af_rtflags:
  68:  */
  69: #define RTF_SUBNET  0x8000      /* pseudo: route to subnet */
  70: 
  71: struct  rthash nethash[ROUTEHASHSIZ];
  72: struct  rthash hosthash[ROUTEHASHSIZ];
  73: struct  rt_entry *rtlookup();
  74: struct  rt_entry *rtfind();

Defined variables

Defined struct's

rt_entry defined in line 24; used 56 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
RTF_SUBNET defined in line 69; used 3 times
RTS_REMOTE defined in line 63; used 2 times
rt_hash defined in line 43; used 3 times
rt_ifp defined in line 50; used 11 times
rt_rt defined in line 42; used 5 times

Usage of this include

table.h used 1 times
Last modified: 1988-08-31
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2984
Valid CSS Valid XHTML 1.0 Strict