]>
Commit | Line | Data |
---|---|---|
76b89b4a | 1 | @node Kernel Interface |
718e3744 | 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 | |
7190f4ea | 34 | communication between kernel and Quagga possible, similar to a routing |
718e3744 | 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 | ||
7190f4ea | 44 | After the kernel configuration, please reconfigure and rebuild Quagga. |
45 | You can use netlink as a dynamic routing update channel between Quagga | |
718e3744 | 46 | and the kernel. |
47 | @end table |