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