Commit 07e080c8 authored by Tomek Mrugalski's avatar Tomek Mrugalski 🛰
Browse files

[4626] Documentation for fixed fields in classification written.

parent 524830e5
......@@ -1638,9 +1638,7 @@ It is merely echoed by the server
<section id="dhcp4-client-classifier">
<title>Client Classification in DHCPv4</title>
The DHCPv4 server includes support for client classification. At the
current time the capabilities of the classification process are limited
but it is expected they will be expanded in the future. For a deeper
The DHCPv4 server includes support for client classification. For a deeper
discussion of the classification process see <xref linkend="classify"/>.
......@@ -1690,6 +1688,52 @@ It is merely echoed by the server
clients that do not meet class criteria to be denied any service altogether.
<title>Setting fixed fields in Classification</title>
It is possible to specify that clients belonging to a particular class
should receive packets with specific values in certain fixed fields.
In particular, three fixed fields are supported:
<command>next-server</command> (that conveys an IPv4 address, which is
set in the siaddr field), <command>server-hostname</command> (that
conveys a server hostname, can be up to 64 bytes long and will be sent
in the sname field) and <command>boot-file-name</command> (that
conveys the configuration file, can be up to 128 bytes long and will
be sent using file field).
Obviously, there are many ways to assign clients to specific classes,
but for the iPXE clients the client architecture type option (code 93,
defined in RFC4578, Section 2.1) seems to be particularly suited to
make the distinction. The following example checks if the client
identifies itself as PXE device with architecture EFI x86-64, and
sets several fields if it does. See Section 2.1 of the RFC4578 or
documentation of your client for specific values.
"Dhcp4": {
"client-classes": [
"name": "ipxe_efi_x64",
"test": "option[93].hex == 0x0009",
<userinput>"next-server": "",
"server-hostname": "hal9000",
"boot-file-name": "/dev/null"</userinput>
If there are multiple classes defined and incoming packet is matched
to multiple classes, then the classes are processed in the order in
which they're defined. In this case the last matching class
"overwrites" any values that may have been set by earlier matched
<title>Using Vendor Class Information in Classification</title>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment