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
This is a program that 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`.
*ioctl* - proc filesystem
The ``ioctl`` method is a very traditional way for reading or writing This is a special filesystem mount that provides an easy way of getting
kernel information. ``ioctl`` can be used for looking up interfaces kernel information.
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.
- routing socket / netlink
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 FRR possible, similar to a routing socket on BSD systems.
*sysctl* Before you use this feature, be sure to select (in kernel configuration) the
``sysctl`` can lookup kernel information using MIB (Management kernel/netlink support option 'Kernel/User network link driver' and 'Routing
Information Base) syntax. Normally, it only provides a way of getting messages'.
information from the kernel. So one would usually want to change kernel
information using another method such as ``ioctl``.
Today, the :file:`/dev/route` special device file is obsolete. Netlink
communication is done by reading/writing over netlink socket.
*proc filesystem* After the kernel configuration, please reconfigure and rebuild FRR. You can
``proc filesystem`` provides an easy way of getting kernel use netlink as a dynamic routing update channel between FRR and the kernel.
information.
*routing socket*
*netlink*
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 FRR 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
'Routing messages'.
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 FRR.
You can use netlink as a dynamic routing update channel between FRR
and the kernel.