|
@@ -155,6 +155,36 @@ The default behaviour is constituted by the set of constants defined in the
|
|
|
(upper part of) dhcp4_srv.cc file. Once the configuration is implemented,
|
|
|
these constants will be removed.
|
|
|
|
|
|
+@section dhcpv4Classifier DHCPv4 Client Classification
|
|
|
+
|
|
|
+Kea DHCPv4 server currently supports simplified client classification. It is called
|
|
|
+"simplified", because the incoming packets are classified based on the content
|
|
|
+of the vendor class (60) option. More flexible classification is planned, but there
|
|
|
+are no specific development dates agreed.
|
|
|
+
|
|
|
+For each incoming packet, @ref isc::dhcp::Dhcpv4Srv::classifyPacket() method is called.
|
|
|
+It attempts to extract content of the vendor class option and interpret as a name
|
|
|
+of the class. For now, the code has been tested with two classes used in cable modem
|
|
|
+networks: eRouter1.0 and docsis3.0, but any other content of the vendor class option will
|
|
|
+be interpreted as a class name.
|
|
|
+
|
|
|
+In principle any given packet can belong to zero or more classes. As the current
|
|
|
+classifier is very modest, there's only one way to assign a class (based on vendor class
|
|
|
+option), the ability to assign more than one class to a packet is not yet exercised.
|
|
|
+Neverthless, there is such a possibility and it will be used in a near future. To
|
|
|
+check whether a packet belongs to given class, isc::dhcp::Pkt4::inClass method should
|
|
|
+be used.
|
|
|
+
|
|
|
+Currently there is a short code section that alternates packet processing depending on
|
|
|
+which class it belongs to. It is planned to move that capability to an external hook
|
|
|
+library. See ticket #3275. The class specific behavior is:
|
|
|
+
|
|
|
+- docsis3.0 packets have siaddr (next server) field set
|
|
|
+- docsis3.0 packets have file field set to the content of the boot-file-name option
|
|
|
+- eRouter1.0 packets have siaddr (next server) field cleared
|
|
|
+
|
|
|
+Aforementioned modifications are conducted in @ref isc::dhcp::Dhcpv4Srv::classSpecificProcessing.
|
|
|
+
|
|
|
@section dhcpv4Other Other DHCPv4 topics
|
|
|
|
|
|
For hooks API support in DHCPv4, see @ref dhcpv4Hooks.
|