doc: cleanup kernel.rst

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2018-01-29 10:57:13 -05:00
parent 655cdc3233
commit 50e75a2b82
No known key found for this signature in database
GPG Key ID: DAF48E0F57E0834F

View File

@ -5,49 +5,38 @@ Kernel Interface
**************** ****************
There are several different methods for reading kernel routing table There are several different methods for reading kernel routing table
information, updating kernel routing tables, and for looking up information, updating kernel routing tables, and for looking up interfaces.
interfaces.
- ioctl
This 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
*ioctl* This is a program that can lookup kernel information using MIB (Management
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*
``sysctl`` can lookup kernel information using MIB (Management
Information Base) syntax. Normally, it only provides a way of getting Information Base) syntax. Normally, it only provides a way of getting
information from the kernel. So one would usually want to change kernel information from the kernel. So one would usually want to change kernel
information using another method such as ``ioctl``. information using another method such as `ioctl`.
- proc filesystem
This is a special filesystem mount that provides an easy way of getting
kernel information.
*proc filesystem* - routing socket / netlink
``proc filesystem`` provides an easy way of getting kernel
information.
*routing socket*
*netlink*
On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user On recent Linux kernels (2.0.x and 2.2.x), there is a kernel/user
communication support called `netlink`. It makes asynchronous communication support called `netlink`. It makes asynchronous communication
communication between kernel and FRR possible, similar to a routing between kernel and FRR possible, similar to a routing socket on BSD systems.
socket on BSD systems.
Before you use this feature, be sure to select (in kernel configuration) Before you use this feature, be sure to select (in kernel configuration) the
the kernel/netlink support option 'Kernel/User network link driver' and kernel/netlink support option 'Kernel/User network link driver' and 'Routing
'Routing messages'. messages'.
Today, the /dev/route special device file is obsolete. Netlink Today, the :file:`/dev/route` special device file is obsolete. Netlink
communication is done by reading/writing over netlink socket. communication is done by reading/writing over netlink socket.
After the kernel configuration, please reconfigure and rebuild FRR. After the kernel configuration, please reconfigure and rebuild FRR. You can
You can use netlink as a dynamic routing update channel between FRR use netlink as a dynamic routing update channel between FRR and the kernel.
and the kernel.