1.. _hooks-bootp:
2
3BOOTP Support
4=============
5
6.. note::
7
8   This library is still in the experimental phase. Use with care!
9
10
11This hooks library adds support for BOOTP with vendor information extensions
12(`RFC 1497 <https://tools.ietf.org/html/rfc1497>`__). Received BOOTP
13requests are recognized, translated into DHCPREQUEST packets by adding
14a dhcp-message-type option and put into the "BOOTP" client class.
15Members of this class get infinite lifetime leases but the class can
16be used too for instance to guard a pool of addresses.
17
18The DHCP specific options, such as dhcp-message-type, are removed from
19the server's responses and responses shorter than the BOOTP minimum
20size (300 octets) are padded to this size.
21
22The library is available since Kea 1.7.2 and can be loaded in a
23similar way to other hook libraries by the ``kea-dhcp4`` process.
24It takes no parameter.
25
26::
27
28    "Dhcp4": {
29        "hooks-libraries": [
30            {   "library": "/usr/local/lib/libdhcp_bootp.so" },
31            ...
32        ]
33    }
34
35
36.. note::
37
38   This library is only meant to be loaded by the ``kea-dhcp4`` process
39   as there is no BOOTP protocol for IPv6.
40
41.. note::
42
43   A host reservation for a BOOTP client should use the hardware address
44   as the identifier (the client-id option is a DHCP specific option).
45
46.. _hooks-bootp-config:
47
48Incoming BOOTP packets are added to the BOOTP class. This can be used
49to segregate BOOTP clients to separate pools. For example you can do
50the following:
51
52::
53
54   "Dhcp4": {
55       "client-classes": [
56           {
57               // The DHCP class is the complement of the BOOTP class
58               "name": "DHCP",
59               "test": "not member('BOOTP')"
60           }
61       ],
62       "subnet4": [
63           {
64               "subnet": "192.0.2.0/24",
65               "pools": [
66               {
67                   // BOOTP clients will be handled here
68                   "pool": "192.0.2.200 - 192.0.2.254",
69                   "client-class": "BOOTP"
70               },
71               {
72                   // Regular DHCP clients will be handled here
73                   "pool": "192.0.2.1 - 192.0.2.199",
74                   "client-class": "DHCP"
75               }],
76               ...
77           },
78           ...
79       ],
80       ...
81   }
82
83
84.. _hooks-bootp-limitations:
85
86BOOTP Hooks Limitation
87~~~~~~~~~~~~~~~~~~~~~~
88
89Currently the BOOTP library has the following limitation:
90
91- A basic BOOTP as defined in `RFC 951
92  <https://tools.ietf.org/html/rfc951>`__ is not supported. Kea only
93  supports the BOOTP with vendor information extensions. Depending on
94  the demand, this may or may not be implemented in the future.
95