Parcourir la source

[3418] Remaining DHCPv4 sections converted to JSON

Tomek Mrugalski il y a 11 ans
Parent
commit
3aaabf0716
3 fichiers modifiés avec 280 ajouts et 175 suppressions
  1. 3 1
      doc/guide/config.xml
  2. 275 172
      doc/guide/dhcp4-srv.xml
  3. 2 2
      doc/guide/quickstart.xml

+ 3 - 1
doc/guide/config.xml

@@ -107,7 +107,9 @@
         context. For example, when discussing IPv6 subnets configuration in
         context. For example, when discussing IPv6 subnets configuration in
         DHCPv6, only subnet6 parameters will be mentioned. It is implied that
         DHCPv6, only subnet6 parameters will be mentioned. It is implied that
         remaining elements (global that holds Dhcp6, Logging and possibly
         remaining elements (global that holds Dhcp6, Logging and possibly
-        DhcpDdns) are present, but are omitted for clarity. </para>
+        DhcpDdns) are present, but are omitted for clarity. Usually, locations
+        where extra parameters may appear are denoted with ellipsis (triple
+        dot).</para>
     </section>
     </section>
 
 
     <section>
     <section>

+ 275 - 172
doc/guide/dhcp4-srv.xml

@@ -818,13 +818,18 @@ to temporary add asterisk and retain the list of interface names.
       <para>
       <para>
       The values of the option are set as follows:
       The values of the option are set as follows:
 <screen>
 <screen>
-&gt; <userinput>config add Dhcp4/option-data</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/name "bar"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/space "dhcp4"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/code 223</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/csv-format true</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/data "192.0.2.100, 123, true, Hello World"</userinput>
-&gt; <userinput>config commit</userinput></screen>
+"Dhcp4": {
+    "option-data": [
+        {
+            <userinput>"name": "bar",
+            "space": "dhcp4",
+            "code": 223,
+            "csv-format": true,
+            "data": "192.0.2.100, 123, true, Hello World"</userinput>
+        }
+    ],
+    ...
+}</screen>
       "csv-format" is set "true" to indicate that the "data" field comprises a command-separated
       "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
       list of values.  The values in the "data" must correspond to the types set in
       the "record-types" field of the option definition.
       the "record-types" field of the option definition.
@@ -857,37 +862,51 @@ to temporary add asterisk and retain the list of interface names.
       <para>
       <para>
       The first step is to define the format of the option:
       The first step is to define the format of the option:
 <screen>
 <screen>
-&gt; <userinput>config add Dhcp4/option-def</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/name "foo"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/code 1</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/space "vendor-encapsulated-options-space"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/type "record"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/array false</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/record-types "ipv4-address, uint16, string"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/encapsulates ""</userinput>
-&gt; <userinput>config commit</userinput>
-</screen>
+"Dhcp4": {
+    "option-def": [
+        {
+            <userinput>"name": "foo",
+            "code": 1,
+            "space": "vendor-encapsulated-options-space",
+            "type": "record",
+            "array: false,
+            "record-types": "ipv4-address, uint16, string",
+            "encapsulates": ""</userinput>
+        }
+    ],
+    ...
+}</screen>
      (Note that the option space is set to "vendor-encapsulated-options-space".)
      (Note that the option space is set to "vendor-encapsulated-options-space".)
      Once the option format is defined, the next step is to define actual values
      Once the option format is defined, the next step is to define actual values
      for that option:
      for that option:
-     <screen>
-&gt; <userinput>config add Dhcp4/option-data</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/name "foo"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/space "vendor-encapsulated-options-space"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/code 1</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/csv-format true</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/data "192.0.2.3, 123, Hello World"</userinput>
-&gt; <userinput>config commit</userinput></screen>
+<screen>
+"Dhcp4": {
+    "option-data": [
+        {
+            <userinput>"name": "foo"
+            "space": "vendor-encapsulated-options-space",
+            "code": 1,
+            "csv-format": true,
+            "data": "192.0.2.3, 123, Hello World"</userinput>
+        }
+    ],
+    ...
+}</screen>
     We also set up a dummy value for vendor-opts, the option that conveys our sub-option "foo".
     We also set up a dummy value for vendor-opts, the option that conveys our sub-option "foo".
     This is required else the option will not be included in messages sent to the client.
     This is required else the option will not be included in messages sent to the client.
-     <screen>
-&gt; <userinput>config add Dhcp4/option-data</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/name "vendor-encapsulated-options"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/space "dhcp4"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/code 43</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/csv-format false</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/data ""</userinput>
-&gt; <userinput>config commit</userinput></screen>
+<screen>
+"Dhcp4": {
+    "option-data": [
+        {
+            <userinput>"name": "vendor-encapsulated-options"
+            "space": "dhcp4",
+            "code": 43,
+            "csv-format": false,
+            "data: ""</userinput>
+        }
+    ],
+    ...
+}</screen>
       </para>
       </para>
 
 
       <note>
       <note>
@@ -922,26 +941,29 @@ to temporary add asterisk and retain the list of interface names.
       code 222 that conveys two sub-options with codes 1 and 2.
       code 222 that conveys two sub-options with codes 1 and 2.
       First we need to define the new sub-options:
       First we need to define the new sub-options:
 <screen>
 <screen>
-&gt; <userinput>config add Dhcp4/option-def</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/name "subopt1"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/code 1</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/space "isc"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/type "ipv4-address"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/record-types ""</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/array false</userinput>
-&gt; <userinput>config set Dhcp4/option-def[0]/encapsulate ""</userinput>
-&gt; <userinput>config commit</userinput>
-
-&gt; <userinput>config add Dhcp4/option-def</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/name "subopt2"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/code 2</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/space "isc"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/type "string"</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/record-types ""</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/array false</userinput>
-&gt; <userinput>config set Dhcp4/option-def[1]/encapsulate ""</userinput>
-&gt; <userinput>config commit</userinput>
-</screen>
+"Dhcp4": {
+    "option-def": [
+        {
+            <userinput>"name": "subopt1",
+            "code": 1,
+            "space": "isc",
+            "type": "ipv4-address".
+            "record-types": "",
+            "array": false,
+            "encapsulate ""
+        },
+        {
+            "name": "subopt2",
+            "code": 2,
+            "space": "isc",
+            "type": "string",
+            "record-types": "",
+            "array": false
+            "encapsulate": ""</userinput>
+        }
+    ],
+    ...
+}</screen>
     Note that we have defined the options to belong to a new option space
     Note that we have defined the options to belong to a new option space
     (in this case, "isc").
     (in this case, "isc").
     </para>
     </para>
@@ -949,16 +971,21 @@ to temporary add asterisk and retain the list of interface names.
     The next step is to define a regular DHCPv4 option with our desired
     The next step is to define a regular DHCPv4 option with our desired
     code and specify that it should include options from the new option space:
     code and specify that it should include options from the new option space:
 <screen>
 <screen>
-&gt; <userinput>add Dhcp4/option-def</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/name "container"</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/code 222</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/space "dhcp4"</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/type "empty"</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/array false</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/record-types ""</userinput>
-&gt; <userinput>set Dhcp4/option-def[2]/encapsulate "isc"</userinput>
-&gt; <userinput>commit</userinput>
-</screen>
+"Dhcp4": {
+    "option-def": [
+        ...,
+        {
+            <userinput>"name": "container",
+            "code": 222,
+            "space": "dhcp4",
+            "type": "empty",
+            "array": false,
+            "record-types": "",
+            "encapsulate": "isc"</userinput>
+        }
+    ],
+    ...
+}</screen>
     The name of the option space in which the sub-options are defined
     The name of the option space in which the sub-options are defined
     is set in the "encapsulate" field. The "type" field is set to "empty"
     is set in the "encapsulate" field. The "type" field is set to "empty"
     to indicate that this option does not carry any data other than
     to indicate that this option does not carry any data other than
@@ -967,29 +994,32 @@ to temporary add asterisk and retain the list of interface names.
     <para>
     <para>
     Finally, we can set values for the new options:
     Finally, we can set values for the new options:
 <screen>
 <screen>
-&gt; <userinput>config add Dhcp4/option-data</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/name "subopt1"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/space "isc"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/code 1</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/csv-format true</userinput>
-&gt; <userinput>config set Dhcp4/option-data[0]/data "192.0.2.3"</userinput>
-&gt; <userinput>config commit</userinput>
-<userinput></userinput>
-&gt; <userinput>config add Dhcp4/option-data</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/name "subopt2"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/space "isc"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/code 2</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/csv-format true</userinput>
-&gt; <userinput>config set Dhcp4/option-data[1]/data "Hello world"</userinput>
-&gt; <userinput>config commit</userinput>
-<userinput></userinput>
-&gt; <userinput>config add Dhcp4/option-data</userinput>
-&gt; <userinput>config set Dhcp4/option-data[2]/name "container"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[2]/space "dhcp4"</userinput>
-&gt; <userinput>config set Dhcp4/option-data[2]/code 222</userinput>
-&gt; <userinput>config set Dhcp4/option-data[2]/csv-format true</userinput>
-&gt; <userinput>config set Dhcp4/option-data[2]/data ""</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "option-data": [
+        {
+            <userinput>"name": "subopt1",
+            "space": "isc",
+            "code": 1,
+            "csv-format": true,
+            "data": "192.0.2.3"</userinput>
+        },
+        }
+            <userinput>"name": "subopt2",
+            "space": "isc",
+            "code": 2,
+            "csv-format": true,
+            "data": "Hello world"</userinput>
+        },
+        {
+            <userinput>"name": "container",
+            "space": "dhcp4",
+            "code": 222,
+            "csv-format": true,
+            "data": ""</userinput>
+        }
+    ],
+    ...
+}
 </screen>
 </screen>
     Even though the "container" option does not carry any data except
     Even though the "container" option does not carry any data except
     sub-options, the "data" field must be explicitly set to an empty value.
     sub-options, the "data" field must be explicitly set to an empty value.
@@ -1075,11 +1105,16 @@ to temporary add asterisk and retain the list of interface names.
         VENDOR_CLASS_docsis3.0 are allowed to use this subnet. Such a
         VENDOR_CLASS_docsis3.0 are allowed to use this subnet. Such a
         configuration can be achieved in the following way:
         configuration can be achieved in the following way:
         <screen>
         <screen>
-&gt; <userinput>config add Dhcp4/subnet4</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/subnet "192.0.2.0/24"</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/pool [ "192.0.2.10 - 192.0.2.20" ]</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/client-class "VENDOR_CLASS_docsis3.0"</userinput>
-&gt; <userinput>config commit</userinput></screen>
+"Dhcp4": {
+    "subnet4": [
+        {
+            <userinput>subnet: "192.0.2.0/24",
+            "pool": [ "192.0.2.10 - 192.0.2.20" ],
+            "client-class": "VENDOR_CLASS_docsis3.0"</userinput>
+        }
+    ],
+    ...
+}</screen>
       </para>
       </para>
 
 
       <para>
       <para>
@@ -1107,24 +1142,29 @@ to temporary add asterisk and retain the list of interface names.
       </orderedlist>
       </orderedlist>
       The parameters for controlling the generation of NCRs for submission to D2
       The parameters for controlling the generation of NCRs for submission to D2
       are contained in the "dhcp-ddns" section of the b10-dhcp4 server
       are contained in the "dhcp-ddns" section of the b10-dhcp4 server
-      configuration. The default values for this section appears as follows:
+      configuration. The default values for this section appear as follows:
 <screen>
 <screen>
-&gt; <userinput>config show Dhcp4/dhcp-ddns</userinput>
-Dhcp4/dhcp-ddns/enable-updates	true	boolean
-Dhcp4/dhcp-ddns/server-ip	"127.0.0.1"	string
-Dhcp4/dhcp-ddns/server-port	53001	integer
-Dhcp4/dhcp-ddns/sender-ip	""	string
-Dhcp4/dhcp-ddns/sender-port	0	integer
-Dhcp4/dhcp-ddns/max-queue-size	1024	integer
-Dhcp4/dhcp-ddns/ncr-protocol	"UDP"	string
-Dhcp4/dhcp-ddns/ncr-format	"JSON"	string
-Dhcp4/dhcp-ddns/override-no-update	false	boolean
-Dhcp4/dhcp-ddns/override-client-update	false	boolean
-Dhcp4/dhcp-ddns/replace-client-name	false	boolean
-Dhcp4/dhcp-ddns/generated-prefix	"myhost"	string
-Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
+"Dhcp4": {
+    "dhcp-ddns": {
+        <userinput>"enable-updates": true,
+        "server-ip": "127.0.0.1",
+        "server-port": 53001,
+        "sender-ip": "",
+        "sender-port: 0,
+        "max-queue-size": 1024,
+        "ncr-protocol": "UDP",
+        "ncr-format": "JSON",
+        "override-no-update": false,
+        "override-client-update": false,
+        "replace-client-name": false,
+        "generated-prefix": "myhost",
+        "qualifying-suffix": "example.com"</userinput>
+    },
+    ...
+}
 </screen>
 </screen>
       </para>
       </para>
+      <!-- this paragraph no longer applies as we don't have default values
       <para>
       <para>
       The "enable-updates" parameter determines whether or not b10-dhcp4 will
       The "enable-updates" parameter determines whether or not b10-dhcp4 will
       generate NCRs.  By default, this value is false hence DDNS updates are
       generate NCRs.  By default, this value is false hence DDNS updates are
@@ -1133,7 +1173,7 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
 <screen>
 <screen>
 &gt; <userinput>config set Dhcp4/dhcp-ddns/enable-updates true</userinput>
 &gt; <userinput>config set Dhcp4/dhcp-ddns/enable-updates true</userinput>
 &gt; <userinput>config commit</userinput>
 &gt; <userinput>config commit</userinput>
-</screen>
+</screen> -->
       <section id="dhcpv4-d2-io-config">
       <section id="dhcpv4-d2-io-config">
       <title>DHCP-DDNS Server Connectivity</title>
       <title>DHCP-DDNS Server Connectivity</title>
       <para>
       <para>
@@ -1182,12 +1222,17 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       all of the default values mentioned above should be sufficient.
       all of the default values mentioned above should be sufficient.
       If, however, D2 has been configured to listen on a different address or
       If, however, D2 has been configured to listen on a different address or
       port, these values must altered accordingly. For example, if D2 has been
       port, these values must altered accordingly. For example, if D2 has been
-      configured to listen on 198.162.1.10 port 900, the following commands
+      configured to listen on 192.168.1.10 port 900, the following commands
       would be required:
       would be required:
 <screen>
 <screen>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/server-ip "198.162.1.10"</userinput>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/server-port 900</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "dhcp-ddns: {
+        <userinput>"server-ip": "192.168.1.10",
+        "server-port": 900</userinput>,
+        ...
+    },
+    ...
+}
 </screen>
 </screen>
       </para>
       </para>
       </section>
       </section>
@@ -1289,11 +1334,17 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       will be dropped by the b10-dhcp4.)
       will be dropped by the b10-dhcp4.)
       </para>
       </para>
       <para>
       <para>
-      To override client delegation, issue the following commands:
+      To override client delegation, set the following values in your configuration
+      file:
       </para>
       </para>
 <screen>
 <screen>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/override-client-update true</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "dhcp-ddns": {
+        <userinput>"override-client-update": true</userinput>,
+        ...
+    },
+    ...
+}
 </screen>
 </screen>
       <para>
       <para>
       The third row in the table above describes the case in which the client
       The third row in the table above describes the case in which the client
@@ -1307,8 +1358,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       To override client delegation, issue the following commands:
       To override client delegation, issue the following commands:
       </para>
       </para>
 <screen>
 <screen>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/override-no-update true</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "dhcp-ddns": {
+        <userinput>"override-no-update": true</userinput>,
+        ...
+    },
+    ...
+}
 </screen>
 </screen>
       <para>
       <para>
       b10-dhcp4 will always generate DDNS update requests if the client request
       b10-dhcp4 will always generate DDNS update requests if the client request
@@ -1354,8 +1410,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       parameter "replace-client-name" to true as follows:
       parameter "replace-client-name" to true as follows:
       </para>
       </para>
 <screen>
 <screen>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/replace-client-name true</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "dhcp-ddns": {
+        <userinput>"replace-client-name": true</userinput>,
+        ...
+    },
+    ...
+}
 </screen>
 </screen>
       <para>
       <para>
       The prefix used in the generation of a FQDN is specified by the
       The prefix used in the generation of a FQDN is specified by the
@@ -1363,8 +1424,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       its value simply set it to the desired string:
       its value simply set it to the desired string:
       </para>
       </para>
 <screen>
 <screen>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/generated-prefix "another.host"</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "dhcp-ddns": {
+        <userinput>"generated-prefix": "another.host"</userinput>,
+        ...
+    },
+    ...
+}
 </screen>
 </screen>
       <para>
       <para>
       The suffix used when generating a FQDN or when qualifying a partial
       The suffix used when generating a FQDN or when qualifying a partial
@@ -1373,8 +1439,13 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       string:
       string:
       </para>
       </para>
 <screen>
 <screen>
-&gt; <userinput>config set Dhcp4/dhcp-ddns/generated-prefix "our.net"</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    "dhcp-ddns": {
+        <userinput>"generated-prefix": "foo.example.org"</userinput>,
+        ...
+    },
+    ...
+}
 </screen>
 </screen>
       </section>
       </section>
       <para>
       <para>
@@ -1394,26 +1465,6 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       </para>
       </para>
     </section>
     </section>
 
 
-  </section> <!-- end of configuring b10-dhcp4 server section with many subsections -->
-
-    <section id="dhcp4-serverid">
-      <title>Server Identifier in DHCPv4</title>
-      <para>
-        The DHCPv4 protocol uses a "server identifier" for clients to be able
-        to discriminate between several servers present on the same link: this
-        value is an IPv4 address of the server. The server chooses the IPv4 address
-        of the interface on which the message from the client (or relay) has been
-        received. A single server instance will use multiple server identifiers
-        if it is receiving queries on multiple interfaces.
-      </para>
-      <para>
-        Currently there is no mechanism to override the default server identifiers
-        by an administrator. In the future, the configuration mechanism will be used
-        to specify the custom server identifier.
-      </para>
-    </section>
-
-
     <section id="dhcp4-next-server">
     <section id="dhcp4-next-server">
       <title>Next server (siaddr)</title>
       <title>Next server (siaddr)</title>
       <para>In some cases, clients want to obtain configuration from the TFTP server.
       <para>In some cases, clients want to obtain configuration from the TFTP server.
@@ -1427,15 +1478,17 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       </para>
       </para>
 
 
 <screen>
 <screen>
-&gt; <userinput>config add Dhcp4/next-server</userinput>
-&gt; <userinput>config set Dhcp4/next-server "192.0.2.123"</userinput>
-&gt; <userinput>config commit</userinput>
-<userinput></userinput>
-&gt; <userinput>config add Dhcp4/subnet[0]/next-server</userinput>
-&gt; <userinput>config set Dhcp4/subnet[0]/next-server "192.0.2.234"</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    <userinput>"next-server": "192.0.2.123"</userinput>,
+    ...,
+    "subnet4": {
+        [
+            <userinput>"next-server": "192.0.2.234"</userinput>,
+            ...
+        ]
+    }
+}
 </screen>
 </screen>
-
     </section>
     </section>
 
 
     <section id="dhcp4-echo-client-id">
     <section id="dhcp4-echo-client-id">
@@ -1454,15 +1507,37 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
       use the following commands:</para>
       use the following commands:</para>
 
 
 <screen>
 <screen>
-&gt; <userinput>config add Dhcp4/echo-client-id</userinput>
-&gt; <userinput>config set Dhcp4/echo-client-id False</userinput>
-&gt; <userinput>config commit</userinput>
+"Dhcp4": {
+    <userinput>"echo-client-id": false</userinput>,
+    ...
+}
 </screen>
 </screen>
+    </section>
+
+
+  thomson
 
 
+  </section> <!-- end of configuring b10-dhcp4 server section with many subsections -->
+
+    <section id="dhcp4-serverid">
+      <title>Server Identifier in DHCPv4</title>
+      <para>
+        The DHCPv4 protocol uses a "server identifier" for clients to be able
+        to discriminate between several servers present on the same link: this
+        value is an IPv4 address of the server. The server chooses the IPv4 address
+        of the interface on which the message from the client (or relay) has been
+        received. A single server instance will use multiple server identifiers
+        if it is receiving queries on multiple interfaces.
+      </para>
+      <para>
+        Currently there is no mechanism to override the default server identifiers
+        by an administrator. In the future, the configuration mechanism will be used
+        to specify the custom server identifier.
+      </para>
     </section>
     </section>
 
 
     <section id="dhcp4-subnet-selection">
     <section id="dhcp4-subnet-selection">
-      <title>How DHCPv4 server selects subnet for a client</title>
+      <title>How DHCPv4 server selects a subnet for the client</title>
       <para>
       <para>
         The DHCPv4 server differentiates between the directly connected clients,
         The DHCPv4 server differentiates between the directly connected clients,
         clients trying to renew leases and clients sending their messages through
         clients trying to renew leases and clients sending their messages through
@@ -1498,7 +1573,6 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
         mechanism alters the way in which subnet is selected for the client,
         mechanism alters the way in which subnet is selected for the client,
         depending on the classes that the client belongs to.</para>
         depending on the classes that the client belongs to.</para>
       </note>
       </note>
-    </section>
 
 
     <section id="dhcp4-relay-override">
     <section id="dhcp4-relay-override">
       <title>Using specific relay agent for a subnet</title>
       <title>Using specific relay agent for a subnet</title>
@@ -1528,12 +1602,21 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
         The server will be able to select this subnet for any incoming packets
         The server will be able to select this subnet for any incoming packets
         that came from a relay that has an address in 192.0.2.0/24 subnet.
         that came from a relay that has an address in 192.0.2.0/24 subnet.
         It will also select that subnet for a relay with address 10.0.0.1.
         It will also select that subnet for a relay with address 10.0.0.1.
-        <screen>
-&gt; <userinput>config add Dhcp4/subnet4</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/subnet "192.0.2.0/24"</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/pool [ "192.0.2.10 - 192.0.2.20" ]</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/relay/ip-address "10.0.0.1"</userinput>
-&gt; <userinput>config commit</userinput></screen>
+<screen>
+"Dhcp4": {
+    "subnet4: [
+        {
+            "subnet": "192.0.2.0/24",
+            "pool": [ "192.0.2.10 - 192.0.2.20" ],
+            <userinput>"relay": {
+                "ip-address": "10.0.0.1"
+            }</userinput>,
+            ...
+        }
+    ],
+    ...
+}
+</screen>
       </para>
       </para>
 
 
     </section>
     </section>
@@ -1555,20 +1638,34 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
           everything connected behind modems should get addresses from another
           everything connected behind modems should get addresses from another
           subnet (192.0.2.0/24). The CMTS that acts as a relay an uses address
           subnet (192.0.2.0/24). The CMTS that acts as a relay an uses address
           10.1.1.1. The following configuration can serve that configuration:
           10.1.1.1. The following configuration can serve that configuration:
-        <screen>
-&gt; <userinput>config add Dhcp4/subnet4</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/subnet "10.1.1.0/24"</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/pool [ "10.1.1.2 - 10.1.1.20" ]</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/client-class "docsis3.0"</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[0]/relay/ip-address "10.1.1.1"</userinput>
-&gt; <userinput>config add Dhcp4/subnet4</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[1]/subnet "192.0.2.0/24"</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[1]/pool [ "192.0.2.10 - 192.0.2.20" ]</userinput>
-&gt; <userinput>config set Dhcp4/subnet4[1]/relay/ip-address "10.1.1.1"</userinput>
-&gt; <userinput>config commit</userinput></screen>
+<screen>
+"Dhcp4": {
+    "subnet4: [
+        {
+            "subnet": "10.1.1.0/24",
+            "pool":  [ "10.1.1.2 - 10.1.1.20" ],
+            <userinput>"client-class" "docsis3.0",
+            "relay": {
+                "ip-address": "10.1.1.1"
+            }</userinput>
+        },
+        {
+            "subnet": "192.0.2.0/24",
+            "pool": [ "192.0.2.10 - 192.0.2.20" ],
+            <userinput>"relay": {
+                "ip-address": "10.1.1.1"
+            }</userinput>
+        }
+    ],
+    ...
+}
+</screen>
       </para>
       </para>
       </section>
       </section>
 
 
+    </section>
+
+
     <section id="dhcp4-std">
     <section id="dhcp4-std">
       <title>Supported Standards</title>
       <title>Supported Standards</title>
       <para>The following standards and draft standards are currently
       <para>The following standards and draft standards are currently
@@ -1618,6 +1715,12 @@ Dhcp4/dhcp-ddns/qualifying-suffix	"example.com"	string
             </simpara>
             </simpara>
           </listitem>
           </listitem>
           <listitem>
           <listitem>
+            <simpara>Host reservation (statis addresses) is not supported yet.</simpara>
+          </listitem>
+          <listitem>
+            <simpara>Full featured client classification is not supported yet.</simpara>
+          </listitem>
+          <listitem>
             <simpara>
             <simpara>
               BOOTP (<ulink url="http://tools.ietf.org/html/rfc951">RFC 951</ulink>)
               BOOTP (<ulink url="http://tools.ietf.org/html/rfc951">RFC 951</ulink>)
               is not supported.
               is not supported.

+ 2 - 2
doc/guide/quickstart.xml

@@ -49,8 +49,8 @@ $ <userinput>./configure [your extra parameters]</userinput></screen>
         </listitem>
         </listitem>
 
 
         <listitem>
         <listitem>
-          <para>Install it as root (by default to prefix
-          <filename>/usr/local/</filename>):
+          <para>Install it (by default the installation prefix is <filename>/usr/local/</filename>,
+          so you need root privileges for that step):
             <screen>$ <userinput>make install</userinput></screen>
             <screen>$ <userinput>make install</userinput></screen>
           </para>
           </para>
         </listitem>
         </listitem>