@node Kernel Interface, SNMP Support, IPv6 Support, Top
@comment  node-name,  next,  previous,  up
@chapter Kernel Interface

There are several different methods for reading kernel routing table
information, updating kernel routing tables, and for looking up
interfaces.

@table @samp

@item ioctl
The @samp{ioctl} method is a very traditional way for reading or writing
kernel information.  @samp{ioctl} can be used for looking up interfaces
and for modifying interface addresses, flags, mtu settings and other
types of information.  Also, @samp{ioctl} can insert and delete kernel
routing table entries.  It will soon be available on almost any platform
which zebra supports, but it is a little bit ugly thus far, so if a
better method is supported by the kernel, zebra will use that.

@item sysctl
@samp{sysctl} can lookup kernel information using MIB (Management
Information Base) syntax.  Normally, it only provides a way of getting
information from the kernel.  So one would usually want to change kernel
information using another method such as @samp{ioctl}.

@item proc filesystem
@samp{proc filesystem} provides an easy way of getting kernel
information.

@item routing socket

@item netlink
On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
communication support called @code{netlink}.  It makes asynchronous
communication between kernel and Zebra possible, similar to a routing
socket on BSD systems.

Before you use this feature, be sure to select (in kernel configuration) 
the kernel/netlink support option 'Kernel/User network link driver' and 
'Routing messages'.

Today, the /dev/route special device file is obsolete.  Netlink
communication is done by reading/writing over netlink socket.

After the kernel configuration, please reconfigure and rebuild Zebra.
You can use netlink as a dynamic routing update channel between Zebra
and the kernel.
@end table
