File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / doc / kernel.texi
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:26:11 2012 UTC (12 years, 4 months ago) by misho
Branches: quagga, MAIN
CVS tags: v1_0_20160315, v0_99_22p0, v0_99_22, v0_99_21, v0_99_20_1, v0_99_20, HEAD
quagga

    1: @node Kernel Interface
    2: @chapter Kernel Interface
    3: 
    4: There are several different methods for reading kernel routing table
    5: information, updating kernel routing tables, and for looking up
    6: interfaces.
    7: 
    8: @table @samp
    9: 
   10: @item ioctl
   11: The @samp{ioctl} method is a very traditional way for reading or writing
   12: kernel information.  @samp{ioctl} can be used for looking up interfaces
   13: and for modifying interface addresses, flags, mtu settings and other
   14: types of information.  Also, @samp{ioctl} can insert and delete kernel
   15: routing table entries.  It will soon be available on almost any platform
   16: which zebra supports, but it is a little bit ugly thus far, so if a
   17: better method is supported by the kernel, zebra will use that.
   18: 
   19: @item sysctl
   20: @samp{sysctl} can lookup kernel information using MIB (Management
   21: Information Base) syntax.  Normally, it only provides a way of getting
   22: information from the kernel.  So one would usually want to change kernel
   23: information using another method such as @samp{ioctl}.
   24: 
   25: @item proc filesystem
   26: @samp{proc filesystem} provides an easy way of getting kernel
   27: information.
   28: 
   29: @item routing socket
   30: 
   31: @item netlink
   32: On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
   33: communication support called @code{netlink}.  It makes asynchronous
   34: communication between kernel and Quagga possible, similar to a routing
   35: socket on BSD systems.
   36: 
   37: Before you use this feature, be sure to select (in kernel configuration) 
   38: the kernel/netlink support option 'Kernel/User network link driver' and 
   39: 'Routing messages'.
   40: 
   41: Today, the /dev/route special device file is obsolete.  Netlink
   42: communication is done by reading/writing over netlink socket.
   43: 
   44: After the kernel configuration, please reconfigure and rebuild Quagga.
   45: You can use netlink as a dynamic routing update channel between Quagga
   46: and the kernel.
   47: @end table

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>