# Next we specify the type of lease database
"lease-database": {
"type": "memfile",
- "persist": "true",
+ "persist": true,
"name": "/var/kea/dhcp4.leases"
},
"Dhcp4": {
"lease-database": {
<userinput>"type": "memfile"</userinput>,
- <userinput>"persist": "true"</userinput>,
+ <userinput>"persist": true</userinput>,
<userinput>"name": "/tmp/kea-leases4.csv"</userinput>
}
...
</para>
<para>The "persist" parameter controls whether the leases are written to disk.
- It is strongly recommended that this parameter is set to "true" at all times
- during the normal operation of the server. (Not writing leases to disk will
- mean that if a server is restarted (e.g. after a power failure), it will not
- know what addresses have been assigned. As a result, it may hand out addresses
- to new clients that are already in use.)
- </para>
+ It is strongly recommended that this parameter is set to
+ <command>true</command> at all times during the normal operation of the
+ server. (Not writing leases to disk will mean that if a server is restarted
+ (e.g. after a power failure), it will not know what addresses have been
+ assigned. As a result, it may hand out addresses to new clients that are
+ already in use.)</para>
</section>
<section id="database-configuration4">
<userinput>"name": "domain-name-servers",
"code": 6,
"space": "dhcp4",
- "csv-format": "true",
+ "csv-format": true,
"data": "192.0.2.1, 192.0.2.2"</userinput>
},
...
<userinput>"name": "domain-name-servers",
"code": 6,
"space": "dhcp4",
- "csv-format": "false",
+ "csv-format": false,
"data": "C0 00 03 01 C0 00 03 02"</userinput>
},
...
"name": "domain-name-servers",
"code": 6,
"space: "dhcp4",
- "csv-format": "true",
+ "csv-format": true,
"data": "192.0.2.3"
},
...
<userinput>"name": "foo",
"code": 222,
"type": "uint32",
- "array": "false",
+ "array": false,
"record-types": "",
"space": "dhcp4",
"encapsulate": ""</userinput>
...
}
</screen>
- The "false" value of the <command>array</command> parameter determines that the option
- does NOT comprise an array of "uint32" values but rather a single value.
- Two other parameters have been left blank: <command>record-types</command> and <command>encapsulate</command>.
- The former specifies the comma separated list of option data fields if the
- option comprises a record of data fields. This should
- be non-empty if the <command>type</command> is set to "record". Otherwise it must be left
- blank. The latter parameter specifies the name of the option space being
- encapsulated by the particular option. If the particular option does not
- encapsulate any option space it should be left blank.
- Note that the above set of comments define the format of the new option and do not
- set its values.
+ The <command>false</command> value of the <command>array</command>
+ parameter determines that the option does NOT comprise an array of
+ "uint32" values but rather a single value. Two other parameters have been
+ left blank: <command>record-types</command> and
+ <command>encapsulate</command>. The former specifies the comma separated
+ list of option data fields if the option comprises a record of data
+ fields. This should be non-empty if the <command>type</command> is set to
+ "record". Otherwise it must be left blank. The latter parameter specifies
+ the name of the option space being encapsulated by the particular
+ option. If the particular option does not encapsulate any option space it
+ should be left blank. Note that the above set of comments define the
+ format of the new option and do not set its values.
</para>
<note>
<para>
<userinput>name "foo",
"code": 222,
"space": "dhcp4",
- "csv-format": "true",
+ "csv-format": true,
"data": "12345"</userinput>
}, ...
],
"code": 223,
"space": "dhcp4",
"type": "record",
- "array": "false",
+ "array": false,
"record-types": "ipv4-address, uint16, boolean, string",
"encapsulate": ""</userinput>
}, ...
<userinput>"name": "bar",
"space": "dhcp4",
"code": 223,
- "csv-format": "true",
+ "csv-format": true,
"data": "192.0.2.100, 123, true, Hello World"</userinput>
}
],
...
}</screen>
- <command>csv-format</command> is set "true" to indicate that the <command>data</command> field comprises a command-separated
- list of values. The values in the <command>data</command> must correspond to the types set in
- the <command>record-types</command> field of the option definition.
+ <command>csv-format</command> is set <command>true</command> to indicate
+ that the <command>data</command> field comprises a command-separated list
+ of values. The values in the <command>data</command> must correspond to
+ the types set in the <command>record-types</command> field of the option
+ definition.
</para>
<note>
- <para>
- It is recommended that boolean values are specified using "true" and "false"
- strings. This helps to prevent errors when typing multiple comma separated
- values, as it make it easier to identify the type of the value being typed,
- and compare it with the order of data fields. Nevertheless, it is possible
- to use integer values: "1" and "0", instead of "true" and "false".
- If other integer value are used, the configuration is rejected.
- </para>
+ <para>In general case, boolean values are specified as <command>true</command> or
+ <command>false</command>, without quotes. Some specific boolean parameters may
+ accept also <command>"true"</command>, <command>"false"</command>,
+ <command>0</command>, <command>1</command>, <command>"0"</command> and
+ <command>"1"</command>. Future Kea versions will accept all those values
+ for all boolean parameters.</para>
</note>
</section>
"code": 1,
"space": "vendor-encapsulated-options-space",
"type": "record",
- "array": "false",
+ "array": false,
"record-types": "ipv4-address, uint16, string",
"encapsulates": ""</userinput>
}
<userinput>"name": "foo"
"space": "vendor-encapsulated-options-space",
"code": 1,
- "csv-format": "true",
+ "csv-format": true,
"data": "192.0.2.3, 123, Hello World"</userinput>
}
],
<userinput>"name": "vendor-encapsulated-options"
"space": "dhcp4",
"code": 43,
- "csv-format": "false",
+ "csv-format": false,
"data": ""</userinput>
}
],
"space": "isc",
"type": "ipv4-address".
"record-types": "",
- "array": "false",
+ "array": false,
"encapsulate ""
},
{
"space": "isc",
"type": "string",
"record-types": "",
- "array": "false"
+ "array": false
"encapsulate": ""</userinput>
}
],
"code": 222,
"space": "dhcp4",
"type": "empty",
- "array": "false",
+ "array": false,
"record-types": "",
"encapsulate": "isc"</userinput>
}
<userinput>"name": "subopt1",
"space": "isc",
"code": 1,
- "csv-format": "true",
+ "csv-format": true,
"data": "192.0.2.3"</userinput>
},
}
<userinput>"name": "subopt2",
"space": "isc",
"code": 2,
- "csv-format": "true",
+ "csv-format": true,
"data": "Hello world"</userinput>
},
{
<userinput>"name": "container",
"space": "dhcp4",
"code": 222,
- "csv-format": "true",
+ "csv-format": true,
"data": ""</userinput>
}
],
"name": "domain-name-servers",
"code": 6,
"data": "192.0.2.200,192.0.2.201",
- "csv-format": "true",
+ "csv-format": true,
"space": "dhcp4"
} ]
}
<screen>
"Dhcp4": {
"dhcp-ddns": {
- <userinput>"enable-updates": "true",
+ <userinput>"enable-updates": true,
"server-ip": "127.0.0.1",
"server-port": 53001,
"sender-ip": "",
"max-queue-size": 1024,
"ncr-protocol": "UDP",
"ncr-format": "JSON",
- "override-no-update": "false",
- "override-client-update": "false",
- "replace-client-name": "false",
+ "override-no-update": false,
+ "override-client-update": false,
+ "replace-client-name": false,
"generated-prefix": "myhost",
"qualifying-suffix": "example.com"</userinput>
},
<screen>
"Dhcp4": {
"dhcp-ddns": {
- <userinput>"override-client-update": "true"</userinput>,
+ <userinput>"override-client-update": true</userinput>,
...
},
...
<screen>
"Dhcp4": {
"dhcp-ddns": {
- <userinput>"override-no-update": "true"</userinput>,
+ <userinput>"override-no-update": true</userinput>,
...
},
...
<screen>
"Dhcp4": {
"dhcp-ddns": {
- <userinput>"replace-client-name": "true"</userinput>,
+ <userinput>"replace-client-name": true</userinput>,
...
},
...
<screen>
"Dhcp4": {
- <userinput>"echo-client-id": "false"</userinput>,
+ <userinput>"echo-client-id": false</userinput>,
...
}
</screen>
# Next we specify the type of lease database
"lease-database": {
"type": "memfile",
- "persist": "true",
+ "persist": true,
"name": "/var/kea/dhcp6.leases"
},
"Dhcp6": {
"lease-database": {
<userinput>"type": "memfile"</userinput>,
- <userinput>"persist": "true"</userinput>,
+ <userinput>"persist": true</userinput>,
<userinput>"name": "/tmp/kea-leases6.csv"</userinput>
}
...
</para>
<para>The "persist" parameter controls whether the leases are written to disk.
- It is strongly recommended that this parameter is set to "true" at all times
+ It is strongly recommended that this parameter is set to true at all times
during the normal operation of the server. (Not writing leases to disk will
mean that if a server is restarted (e.g. after a power failure), it will not
know what addresses have been assigned. As a result, it may hand out addresses
<userinput>"name": "dns-servers",
"code": 23,
"space": "dhcp6",
- "csv-format": "true",
+ "csv-format": true,
"data": "2001:db8::cafe, 2001:db8::babe"</userinput>
},
...
<userinput>"name": "dns-servers",
"code": 23,
"space": "dhcp6",
- "csv-format": "false",
+ "csv-format": false,
"data": "2001 0DB8 0001 0000 0000 0000 0000 CAFE
2001 0DB8 0001 0000 0000 0000 0000 BABE"</userinput>
},
"name": "dns-servers",
"code": 23,
"space: "dhcp6",
- "csv-format": "true",
+ "csv-format": true,
"data": "2001:db8:1::3"
},
...
<userinput>"name": "foo",
"code": 100,
"type": "uint32",
- "array": "false",
+ "array": false,
"record-types": "",
"space": "dhcp6",
"encapsulate": ""</userinput>
<userinput>name "foo",
"code": 100,
"space": "dhcp6",
- "csv-format": "true",
+ "csv-format": true,
"data": "12345"</userinput>
}, ...
],
"code": 101,
"space": "dhcp6",
"type": "record",
- "array": "false",
+ "array": false,
"record-types": "ipv4-address, uint16, boolean, string",
"encapsulate": ""</userinput>
}, ...
<userinput>"name": "bar",
"space": "dhcp6",
"code": 101,
- "csv-format": "true",
+ "csv-format": true,
"data": "2001:db8:1::10, 123, false, Hello World"</userinput>
}
],
...
}</screen>
- "csv-format" is set "true" to indicate that the "data" field comprises a command-separated
- list of values. The values in the "data" must correspond to the types set in
+
+ <command>csv-format</command> is set <command>true</command> to indicate
+ that the <command>data</command> field comprises a command-separated list
+ of values. The values in the "data" must correspond to the types set in
the "record-types" field of the option definition.
</para>
+
<note>
- <para>
- It is recommended that boolean values are specified using "true" and "false"
- strings. This helps to prevent errors when typing multiple comma separated
- values, as it make it easier to identify the type of the value being typed,
- and compare it with the order of data fields. Nevertheless, it is possible
- to use integer values: "1" and "0", instead of "true" and "false"
- accordingly. If other integer value is specified, the configuration is
- rejected.
- </para>
+ <para>In general case, boolean values are specified as <command>true</command> or
+ <command>false</command>, without quotes. Some specific boolean parameters may
+ accept also <command>"true"</command>, <command>"false"</command>,
+ <command>0</command>, <command>1</command>, <command>"0"</command> and
+ <command>"1"</command>. Future Kea versions will accept all those values
+ for all boolean parameters.</para>
</note>
+
</section>
<section id="dhcp6-vendor-opts">
"code": 1,
"space": "vendor-encapsulated-options-space",
"type": "record",
- "array": "false",
+ "array": false,
"record-types": "ipv6-address, uint16, string",
"encapsulates": ""</userinput>
}
<userinput>"name": "foo"
"space": "vendor-encapsulated-options-space",
"code": 1,
- "csv-format": "true",
+ "csv-format": true,
"data": "2001:db8:1::10, 123, Hello World"</userinput>
},
...
<userinput>"name": "vendor-encapsulated-options"
"space": "dhcp6",
"code": 17,
- "csv-format": "true",
+ "csv-format": true,
"data": "12345"</userinput>
}
],
"space": "isc",
"type": "ipv6-address".
"record-types": "",
- "array": "false",
+ "array": false,
"encapsulate ""
},
{
"space": "isc",
"type": "string",
"record-types": "",
- "array": "false"
+ "array": false
"encapsulate": ""</userinput>
}
],
"code": 102,
"space": "dhcp6",
"type": "empty",
- "array": "false",
+ "array": false,
"record-types": "",
"encapsulate": "isc"</userinput>
}
<userinput>"name": "subopt1",
"space": "isc",
"code": 1,
- "csv-format": "true",
+ "csv-format": true,
"data": "2001:db8::abcd"</userinput>
},
}
<userinput>"name": "subopt2",
"space": "isc",
"code": 2,
- "csv-format": "true",
+ "csv-format": true,
"data": "Hello world"</userinput>
},
{
<userinput>"name": "container",
"space": "dhcp6",
"code": 102,
- "csv-format": "true",
+ "csv-format": true,
"data": ""</userinput>
}
],
<screen>
"Dhcp6": {
"dhcp-ddns": {
- <userinput>"enable-updates": "true",
+ <userinput>"enable-updates": true,
"server-ip": "127.0.0.1",
"server-port": 53001,
"sender-ip": "",
"max-queue-size": 1024,
"ncr-protocol": "UDP",
"ncr-format": "JSON",
- "override-no-update": "false",
- "override-client-update": "false",
- "replace-client-name": "false",
+ "override-no-update": false,
+ "override-client-update": false,
+ "replace-client-name": false,
"generated-prefix": "myhost",
"qualifying-suffix": "example.com"</userinput>
},
<screen>
"Dhcp6": {
"dhcp-ddns": {
- <userinput>"override-client-update": "true"</userinput>,
+ <userinput>"override-client-update": true</userinput>,
...
},
...
<screen>
"Dhcp6": {
"dhcp-ddns": {
- <userinput>"override-no-update": "true"</userinput>,
+ <userinput>"override-no-update": true</userinput>,
...
},
...
<screen>
"Dhcp6": {
"dhcp-ddns": {
- <userinput>"replace-client-name": "true"</userinput>,
+ <userinput>"replace-client-name": true</userinput>,
...
},
...