MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Protocols                                             routing(7P)



NAME
     routing - system support for packet network routing

DESCRIPTION
     The network facilities provide general packet  routing.  The
     routing interface described here can be used to maintain the
     system's IPv4 routing table. It has been maintained for com-
     patibility  with  older applications. The recommended inter-
     face for maintaining the  system's  routing  tables  is  the
     routing  socket,  described at route(7P). The routing socket
     can be used to manipulate both the  IPv4  and  IPv6  routing
     tables  of  the  system.  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) com-
     mands, SIOCADRT and SIOCDELRT.  These  commands  allow  the
     addition  and  deletion  of  a  single  routing table entry,
     respectively. Routing table manipulations may only  be  car-
     ried out by privileged user.


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

       struct rtentry {
               unitt   rthash;               /* to speed lookups */
               struct  sockaddr rtdst;        /* key */
               struct  sockaddr rtgateway;    /* value */
               short   rtflags;               /* up/down?, host/net */
               short   rtrefcnt;              /* # held references */
               unitt   rtuse;                /* raw # packets forwarded */
       /*
        * The kernel does not use this field, and without it the structure is
        * datamodel independent.
        */
       #if !defined(KERNEL)
               struct  ifnet *rtifp;          /* the answer: interface to use */
       #endif                                  /* !defined(KERNEL) */
       };



     with rtflags defined from:




SunOS 5.11           Last change: 9 Nov 1999                    1






Protocols                                             routing(7P)



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



     There are three types of routing table entries: those for  a
     specific  host,  those  for all hosts on a specific network,
     and those for any  destination not matched by entries of the
     first  two  types,  called  a   wildcard route. Each network
     interface installs a routing table entry when   it  is  ini-
     tialized.  Normally  the  interface  specifies  if 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  dif-
     ferent  from the eventual recipient; essentially, 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, meaning its 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/ip
     device.


     The rtuse 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.

ERORS
     EXIST         A request was made to duplicate  an  existing
                    entry.






SunOS 5.11           Last change: 9 Nov 1999                    2






Protocols                                             routing(7P)



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


     ENOBUFS        Insufficient  resources  were  available   to
                    install a new route.


     ENOMEM         Insufficient  resources  were  available   to
                    install a new route.


     ENETUNREACH    The gateway is not directly  reachable.   For
                    example,    it    does    not    match    the
                    destination/subnet  on  any  of  the  network
                    interfaces.


FILES
     /dev/ip    IP device driver


SEE ALSO
     route(1M), ioctl(2), route(7P)































SunOS 5.11           Last change: 9 Nov 1999                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™