Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ routing(4) — Atari System V ue12

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

route(1M)

routed(1M)





   routing(4)                       (TCP/IP)                        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 Protocol (IP), but its implementation is
         protocol independent and thus it may serve other protocols as well.
         User programs 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 destination not matched by
         entries of the first two types (a wildcard route).  Each network
         interface installs a routing table entry when it it is initialized.
         Normally the interface specifies the route through it is a direct
         connection to the destination host or network.  If the route is
         direct, 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


   7/91                                                                 Page 1









   routing(4)                       (TCP/IP)                        routing(4)


         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 destination 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.
















   Page 2                                                                 7/91





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