server is able to designate its pools and subnets as v6only-preferred and send
back the `v6-only-preferred` option to clients that requested it.
+Known RFC Violations
+--------------------
+
+In principle Kea seeks to be a reference implementation aiming to implement 100% of the RFC standards.
+However, in some cases there are practical aspects that make Kea not adhere completely to the text of the RFC documents.
+
+- `RFC 2131 <https://tools.ietf.org/html/rfc2131>`__ on page 30 says that if the incoming REQUEST packet there is no
+ `requested IP address` option and `ciaddr` is not set, the server is supposed to respond with NAK. However, there
+ are broken clients out there that will always send a REQUEST without those. As such, Kea accepts such REQUESTs,
+ will assign an address and will respond with an ACK.
+
+- `RFC 2131 <https://tools.ietf.org/html/rfc2131>`__ table 5 says that a DECLINE message must have server-id set and
+ should be dropped if that option is missing. However, ISC DHCP does not enforce this, presumably as a compatibility
+ effort for broken clients. Kea team decided to follow suit.
+
.. _dhcp4-limit:
DHCPv4 Server Limitations
However, some of them are implications of the design choices made. Those
are clearly marked as such.
-- BOOTP (`RFC 951 <https://tools.ietf.org/html/rfc951>`__) is not
- supported. This is a design choice; historic BOOTP support is not planned.
-
- On Linux and BSD system families the DHCP messages are sent and
received over the raw sockets (using LPF and BPF) and all packet
headers (including data link layer, IP, and UDP headers) are created