Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ routing(4) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

route(1M)

routed(1M)



routing(4)                FILE FORMATS                 routing(4)



NAME
     routing - system supporting for packet network routing

DESCRIPTION
     The  network  facilities  provide  general  packet  routing.
     Routing table maintenance may be implemented in applications
     processes.

     A simple set of data structures compose a routing table used
     in   selecting   the   appropriate  network  interface  when
     transmitting packets.  This table contains  a  single  entry
     for  each  route to a specific network or host.  The routing
     table was designed to support routing for the Internet  Pro-
     tocol  (IP),  but its implementation is protocol independent
     and thus it may serve other protocols as  well.   User  pro-
     grams  may  manipulate  this  data  base with the aid of two
     ioctl(2) commands, SIOCADDRT and SIOCDELRT.  These  commands
     allow  the  addition  and deletion of a single routing table
     entry, respectively.  Routing table manipulations  may  only
     be carried out by privileged user.

     A routing table entry has the following form, as defined  in
     /usr/include/net/route.h:


          struct rtentry {
              ulong    rthash;             /* to speed lookups */
              struct    sockaddr rtdst;     /* key */
              struct    sockaddr rtgateway; /* value */
              short     rtflags;   /* up/down?, host/net */
              short     rtrefcnt;  /* # held references */
              ulong    rtuse;     /* raw # packets forwarded */
          #ifdef STRNET
              struct    ipprovider *rtprov; /* the answer: provider to use */
          #else
              struct    ifnet *rtifp;        /* the answer: interface to use */
          #endif /* STRNET */
          };
          with rt_flags defined from:


          #define   RTFUP        0x1     /* route usable */
          #define   RTFGATEWAY   0x2     /* destination is a gateway */
          #define   RTFHOST      0x4     /* host entry (net otherwise) */

     Routing table entries come in three flavors: for a  specific
     host,  for all hosts on a specific network, for any destina-
     tion not matched by entries of the first two types (a  wild-
     card  route).   Each  network  interface  installs a routing
     table entry when it it is initialized.  Normally the  inter-
     face  specifies  the route through it is a direct connection
     to the destination host or network.  If the route is direct,



                                                                1





routing(4)                FILE FORMATS                 routing(4)



     the  transport  layer  of a protocol family usually requests
     the packet be sent to the same host specified in the packet.
     Otherwise,  the  interface  may  be requested to address the
     packet to an entity different from  the  eventual  recipient
     (that is, the packet is forwarded).

     Routing table entries installed by a user  process  may  not
     specify the hash, reference count, use, or interface fields;
     these are filled in by the routing routines.  If a route  is
     in  use  when  it  is  deleted  (rtrefcnt is non-zero), the
     resources associated with it will not be reclaimed until all
     references to it are removed.

     User processes read the routing tables through the /dev/kmem
     device.

     The rt_use field contains the number of packets  sent  along
     the  route.   This  value  is  used to select among multiple
     routes to the same destination.  When multiple routes to the
     same destination exist, the least used route is selected.

     A wildcard routing entry is specified with a  zero  destina-
     tion  address value.  Wildcard routes are used only when the
     system fails to find a route to  the  destination  host  and
     network.   The  combination  of  wildcard routes and routing
     redirects can provide an economical  mechanism  for  routing
     traffic.

FILES
     /dev/kmem

SEE ALSO
     ioctl(2), route(1M), routed(1M).

DIAGNOSTICS
     EEXIST              A  request  was  made  to  duplicate  an
                         existing entry.

     ESRCH               A request was  made  to  delete  a  non-
                         existent entry.

     ENOBUFS             Insufficient resources were available to
                         install a new route.












                                                                2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026