]> git.proxmox.com Git - mirror_frr.git/blame - doc/user/kernel.rst
Merge pull request #12531 from opensourcerouting/feature/snmp_tests
[mirror_frr.git] / doc / user / kernel.rst
CommitLineData
0efdf0fe 1.. _kernel-interface:
8fa64b2a 2
42fc5d26
QY
3****************
4Kernel Interface
5****************
6
7There are several different methods for reading kernel routing table
50e75a2b 8information, updating kernel routing tables, and for looking up interfaces.
a927f5bc
JAG
9FRR relies heavily on the Netlink (``man 7 netlink``) interface to
10communicate with the Kernel. However, other interfaces are still used
11in some parts of the code.
50e75a2b
QY
12
13- ioctl
14 This method is a very traditional way for reading or writing kernel
15 information. `ioctl` can be used for looking up interfaces and for
16 modifying interface addresses, flags, mtu settings and other types of
17 information. Also, `ioctl` can insert and delete kernel routing table
18 entries. It will soon be available on almost any platform which zebra
19 supports, but it is a little bit ugly thus far, so if a better method is
20 supported by the kernel, zebra will use that.
21
22- sysctl
23 This is a program that can lookup kernel information using MIB (Management
24 Information Base) syntax. Normally, it only provides a way of getting
25 information from the kernel. So one would usually want to change kernel
26 information using another method such as `ioctl`.
27
28- proc filesystem
29 This is a special filesystem mount that provides an easy way of getting
30 kernel information.
31
d1e7591e 32- routing socket / Netlink
a927f5bc
JAG
33 Netlink first appeard in Linux kernel 2.0. It makes asynchronous
34 communication between the kernel and FRR possible, similar to a routing
35 socket on BSD systems. Netlink communication is done by reading/writing
36 over Netlink socket.