14. Kernel Interface
There are several different methods for reading kernel routing table
information, updating kernel routing tables, and for looking up
- The `ioctl' method is a very traditional way for reading or writing
kernel information. `ioctl' can be used for looking up interfaces
and for modifying interface addresses, flags, mtu settings and other
types of information. Also, `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.
- `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 `ioctl'.
- `proc filesystem'
- `proc filesystem' provides an easy way of getting kernel
- `routing socket'
- On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
communication support called
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
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.
This document was generated
by Jasper Wallace on April, 24 2001