Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ routing(4) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

route(1M)

routed(1M)






       routing(4)                                                routing(4)


       NAME
             routing - system support for packet network routing

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

          Files
             /dev/kmem

          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.

       USAGE
             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 {
                    u_long  rt_hash;   /* to speed lookups */
                    struct  sockaddr rt_dst;/* key */
                    struct  sockaddr rt_gateway;/* value */
                    short   rt_flags;  /* up/down?, host/net */
                    short   rt_refcnt; /* # held references */
                    u_long  rt_use;    /* raw # packets forwarded */
                #ifdef STRNET


                           Copyright 1994 Novell, Inc.               Page 1













      routing(4)                                                routing(4)


                   struct  ip_provider *rt_prov;/* the answer: provider to use */
               #else
                   struct  ifnet *rt_ifp;/* the answer: interface to use */
               #endif /* STRNET */
               };

            with rt_flags defined from:

               #define   RTF_UP        0x1/* route usable */
               #define   RTF_GATEWAY   0x2/* destination is a gateway */
               #define   RTF_HOST      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 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
            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 (rt_refcnt 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.



                          Copyright 1994 Novell, Inc.               Page 2













       routing(4)                                                routing(4)


       REFERENCES
             ioctl(2), route(1M), routed(1M)














































                           Copyright 1994 Novell, Inc.               Page 3








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