How can I specify sub-options, e.g. for the vendor specific OPTION_43?

Usually, a DHCP option is either an IP address or subnetmask or a string. You can specify all kind of options and option data using the custom option feature of the DHCP server.It looks like this:

[General]
OPTION_66=“192.168.5.1“ ; IP address of TFTP server 
OPTION_60="PXEClient" ; string

Some options, especially the vendor specific OPTION_43, are composed of sub-options of different types. It is possible to define OPTION_43 with one sub-option like this:

OPTION_43=08 0E "http://load.me" ;

This defines OPTION_43 with one sub-option 8. Every sub-option consists of a 1 byte tag (08 in this case), 1 byte length (0E in this case, which is 14 dec) and the data with the given length (http://load.me is a 14 byte string). Unfortunatly the length has to be calculated and entered manually as the second byte in hex format.
If there is a second sub-option to be specified, such as an IP address as sub-option 6 then the complete OPTION_43 looks like this:

OPTION_43=08 0E "http://load.me" 06 04 192.168.5.1 ;

The sub-option 6 also consists of a tag (06), length (04) and data, as you can easily see above.

Since V2.4, the error-prone task to manually determine the length of the sub-option is replaced by an auto-len feature. With that the example above reads like this:

OPTION_43=08 ( "http://load.me" ) 06 ( 192.168.5.1 ) ;

Everything inside parentheses is automatically prefixed with the length of that data.