[Kea-users] Vendor Encapsulated options
Marcin Siodelski
marcin at isc.org
Mon Nov 28 17:17:59 UTC 2016
On 08.11.2016 22:00, Sutherland, Rob wrote:
> Mitel phones expect option 43 (vendor encapsulated options) to be
> delivered as a string such as:
>
> id:ipphone.mitel.com;sw_tftp=10.200.107.32;call_srv=10.200.107.32
>
>
>
> The issue I am having is that I can find no way to define these options
> without a sub-option. This leaves two bytes in front of the option that
> confuse the phone. For example, the above string, which is 65 bytes
> long, has two bytes pre-pended: 1 (for the sub-option) and 0x41 (65 byte
> payload). Here is my attempt to configure this:
>
>
>
> "option-def": [
>
> {
>
> "name": "mitel-options",
>
> "code": 1,
>
> "space": "vendor-encapsulated-options-space",
>
> "type": "string",
>
> "array": false,
>
> "encapsulate": ""
>
> }
>
> ],
>
> "option-data": [
>
> {
>
> "name": "vendor-encapsulated-options",
>
> "csv-format": false
>
> },
>
> {
>
> "name": "mitel-options",
>
> "space": "vendor-encapsulated-options-space",
>
> "csv-format": true,
>
> "data":
> "id:ipphone.mitel.com;sw_tftp=10.200.107.32;call_srv=10.200.107.32"
>
> }
>
> ],
>
>
>
> How can I eliminate the sub-code?
>
>
>
> Thanks!
>
>
>
> Rob
>
>
>
Rob,
Thanks for reporting your problem with option 43. I see your issue with
the way that we currently handle this option. I do agree that it needs a
fix on our end to allow specifying values without sub options. I created
Kea ticket to address this problem:
http://kea.isc.org/ticket/5073
I don't have any noninvasive solution for you right now. But I have a
simple code change that could do what you want, in case you're ok with
locally patching Kea. Here is a diff.
diff --git a/src/lib/dhcp/std_option_defs.h b/src/lib/dhcp/std_option_defs.h
index cc0e2fc..eea2ab1 100644
--- a/src/lib/dhcp/std_option_defs.h
+++ b/src/lib/dhcp/std_option_defs.h
@@ -125,7 +125,7 @@ const OptionDefParams
STANDARD_V4_OPTION_DEFINITIONS[] = {
{ "nis-servers", DHO_NIS_SERVERS, OPT_IPV4_ADDRESS_TYPE, true,
NO_RECORD_DEF, "" },
{ "ntp-servers", DHO_NTP_SERVERS, OPT_IPV4_ADDRESS_TYPE, true,
NO_RECORD_DEF, "" },
{ "vendor-encapsulated-options", DHO_VENDOR_ENCAPSULATED_OPTIONS,
- OPT_EMPTY_TYPE, false, NO_RECORD_DEF,
"vendor-encapsulated-options-space" },
+ OPT_STRING_TYPE, false, NO_RECORD_DEF,
"vendor-encapsulated-options-space" },
{ "netbios-name-servers", DHO_NETBIOS_NAME_SERVERS,
OPT_IPV4_ADDRESS_TYPE, true, NO_RECORD_DEF, "" },
{ "netbios-dd-server", DHO_NETBIOS_DD_SERVER,
Your new configuration will look like this:
"option-data": [
{
"name": "vendor-encapsulated-options",
"data":
"id:ipphone.mitel.com;sw_tftp=10.200.107.32;call_srv=10.200.107.32"
}
],
Note, that I also removed option-def section.
Let me know if that works for you.
Marcin Siodelski
ISC
More information about the Kea-users
mailing list