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