]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
Update dhcp6-srv.xml all lines
authorSuzanne Goldlust <sgoldlust@isc.org>
Thu, 27 Dec 2018 20:37:24 +0000 (15:37 -0500)
committerTomek Mrugalski <tomasz@isc.org>
Thu, 28 Feb 2019 14:52:12 +0000 (15:52 +0100)
doc/guide/dhcp6-srv.xml

index 3cd22f9e21a8da9a779aa1024336c080b170979e..385bbe0ea4fd657fc74002693c6a0bca60517632 100644 (file)
@@ -4148,13 +4148,13 @@ desired outcome if one wishes to provide service only to clients with known prop
 (e.g. only VoIP phones allowed on a given link).</para>
 
     <para>
-      Note that it is possible to achieve similar effect as presented in this
+      Note that it is possible to achieve an effect similar to the one presented in this
       section without the use of shared networks. If the subnets are placed in
       the global subnets scope, rather than in the shared network, the server
       will still use classification rules to pick the right subnet for a given
       class of devices. The major benefit of placing subnets within the
       shared network is that common parameters for the logically grouped
-      subnets can be specified once, in the shared network scope, e.g.
+      subnets can be specified once, in the shared network scope, e.g. the
       "interface" or "relay" parameter. All subnets belonging to this shared
       network will inherit those parameters.
     </para>
@@ -4162,10 +4162,10 @@ desired outcome if one wishes to provide service only to clients with known prop
     </section>
 
     <section>
-      <title>Host reservations in shared networks</title>
+      <title>Host Reservations in Shared Networks</title>
 
 <para>
-  Subnets being part of a shared network allow host reservations, similar to
+  Subnets that are part of a shared network allow host reservations, similar to
   regular subnets:
   <screen>
 {
@@ -4205,9 +4205,9 @@ desired outcome if one wishes to provide service only to clients with known prop
   </screen>
 </para>
 <para>It is worth noting that Kea conducts additional checks when processing a
-packet if shared networks are defined. First, instead of simply checking if
-there's a reservation for a given client in his initially selected subnet, it
-goes through all subnets in a shared network looking for a reservation. This is
+packet if shared networks are defined. First, instead of simply checking whether
+there's a reservation for a given client in its initially selected subnet, it
+looks through all subnets in a shared network for a reservation. This is
 one of the reasons why defining a shared network may impact performance. If
 there is a reservation for a client in any subnet, that particular subnet will
 be picked for the client. Although it's technically not an error, it is
@@ -4216,8 +4216,8 @@ subnets belonging to the same shared network.</para>
 
 <para>While not strictly mandatory, it is strongly recommended to use explicit
 "id" values for subnets if you plan to use database storage for host
-reservations. If ID is not specified, the values for it be autogenerated,
-i.e. it will assign increasing integer values starting from 1. Thus, the
+reservations. If ID is not specified, the values for it are autogenerated,
+i.e. it assigns increasing integer values starting from 1. Thus, the
 autogenerated IDs are not stable across configuration changes.
 </para>
     </section>
@@ -4229,17 +4229,17 @@ autogenerated IDs are not stable across configuration changes.
     <section xml:id="dhcp6-serverid">
       <title>Server Identifier in DHCPv6</title>
       <para>The DHCPv6 protocol uses a "server identifier" (also known
-      as a DUID) for clients to be able to discriminate between several
+      as a DUID) to allow clients to discriminate between several
       servers present on the same link.
       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>
-      defines four DUID types: DUID-LLT, DUID-EN, DUID-LL and DUID-UUID.
-      Future specifications may introduce new DUID types.</para>
+      currently defines four DUID types: DUID-LLT, DUID-EN, DUID-LL, and DUID-UUID.
+      </para>
 
       <para>The Kea DHCPv6 server generates a server identifier once, upon
-      the first startup, and stores it in a file. This identifier isn't
+      the first startup, and stores it in a file. This identifier is not
       modified across restarts of the server and so is a stable identifier.</para>
 
-      <para>Kea follows recommendation from
+      <para>Kea follows the recommendation from
       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>
       to use DUID-LLT as the default server identifier. However, we have
       received reports that some deployments require different DUID
@@ -4263,26 +4263,26 @@ autogenerated IDs are not stable across configuration changes.
       </para>
 
       <para>Currently supported values for <command>type</command>
-      parameter are: "LLT", "EN" and "LL", for DUID-LLT, DUID-EN and
+      parameter are: "LLT", "EN", and "LL", for DUID-LLT, DUID-EN, and
       DUID-LL respectively.</para>
 
-      <para>When a new DUID type is selected the server will generate its
-      value and replace any existing DUID in the file. The server will then
-      use the new server identifier in all future interactions with the
+      <para>When a new DUID type is selected the server generates its
+      value and replaces any existing DUID in the file. The server then
+      uses the new server identifier in all future interactions with the
       clients.</para>
 
       <note><para>If the new server identifier is created after some clients
-      have obtained their leases, the clients using the old identifier will not
-      be able to renew the leases: the server will ignore messages
+      have obtained their leases, the clients using the old identifier are not
+      able to renew the leases; the server will ignore messages
       containing the old server identifier. Clients will continue sending
-      Renew until they transition to the rebinding state. In this state they
-      will start sending Rebind messages to multicast address without
+      Renew until they transition to the rebinding state. In this state, they
+      will start sending Rebind messages to the multicast address without
       a server identifier. The server will respond to the Rebind messages
-      with a new server identifier and the clients will associate the
+      with a new server identifier, and the clients will associate the
       new server identifier with their leases. Although the clients will
       be able to keep their leases and will eventually learn the new server
-      identifier, this will be at the cost of increased number of renewals
-      and multicast traffic due to a need to rebind. Therefore it is
+      identifier, this will be at the cost of an increased number of renewals
+      and multicast traffic due to a need to rebind. Therefore, it is
       recommended that modification of the server identifier type
       and value is avoided if the server has already assigned leases and these
       leases are still valid.</para></note>
@@ -4308,8 +4308,8 @@ autogenerated IDs are not stable across configuration changes.
       <itemizedlist>
         <listitem><simpara><command>htype</command> is a 16-bit unsigned value
         specifying hardware type,</simpara></listitem>
-        <listitem><simpara><command>identifier</command> is a link layer
-        address, specified as a string of hexadecimal digits,</simpara>
+        <listitem><simpara><command>identifier</command> is a link-layer
+        address, specified as a string of hexadecimal digits, and</simpara>
         </listitem>
         <listitem><simpara><command>time</command> is a 32-bit unsigned
         time value.</simpara></listitem>
@@ -4324,10 +4324,10 @@ autogenerated IDs are not stable across configuration changes.
 </screen>
       </para>
 
-      <para>It is allowed to use special value of 0 for "htype" and "time",
+      <para>A special value of 0 for "htype" and "time" is allowed,
       which indicates that the server should use ANY value for these
       components. If the server already uses a DUID-LLT it will use the
-      values from this DUID. If the server uses a DUID of a different type
+      values from this DUID; if the server uses a DUID of a different type
       or doesn't use any DUID yet, it will generate these values.
       Similarly, if the "identifier" is assigned an empty string, the
       value of the identifier will be generated. Omitting any of these
@@ -4347,15 +4347,15 @@ autogenerated IDs are not stable across configuration changes.
 }
 </screen>
 
-      indicates that the server should use ANY link layer address and
-      hardware type. If the server is already using DUID-LLT it will
-      use the link layer address and hardware type from the existing DUID.
-      If the server is not using any DUID yet, it will use link layer
+      indicates that the server should use ANY link-layer address and
+      hardware type. If the server is already using DUID-LLT, it will
+      use the link-layer address and hardware type from the existing DUID.
+      If the server is not using any DUID yet, it will use the link-layer
       address and hardware type from one of the available network
-      interfaces. The server will use an explicit value of time. If it
+      interfaces. The server will use an explicit value of time; if it
       is different than a time value present in the currently used
-      DUID, that value will be replaced, effectively causing
-      modification of the current server identifier.
+      DUID, that value will be replaced, effectively
+      modifying the current server identifier.
       </para>
 
       <para>
@@ -4376,8 +4376,8 @@ autogenerated IDs are not stable across configuration changes.
       where:
       <itemizedlist>
         <listitem><simpara><command>enterprise-id</command> is a 32-bit
-        unsigned value holding enterprise number,</simpara></listitem>
-        <listitem><simpara><command>identifier</command> is a variable
+        unsigned value holding an enterprise number, and </simpara></listitem>
+        <listitem><simpara><command>identifier</command> is a variable-
         length identifier within DUID-EN.</simpara></listitem>
       </itemizedlist>
       </para>
@@ -4392,17 +4392,17 @@ autogenerated IDs are not stable across configuration changes.
       </para>
 
       <para>As in the case of the DUID-LLT, special values can be used for the
-      configuration of the DUID-EN. If <command>enterprise-id</command> is 0, the server
+      configuration of the DUID-EN. If the <command>enterprise-id</command> is 0, the server
       will use a value from the existing DUID-EN. If the server is not using
       any DUID or the existing DUID has a different type, the ISC enterprise
-      id will be used. When an empty string is used for <command>identifier</command>, the
+      id will be used. When an empty string is entered for <command>identifier</command>, the
       identifier from the existing DUID-EN will be used. If the server is
-      not using any DUID-EN the new 6-bytes long identifier will be generated.
+      not using any DUID-EN, a new 6-byte-long identifier will be generated.
       </para>
 
-      <para>DUID-LL is configured in the same way as DUID-LLT with an exception
+      <para>DUID-LL is configured in the same way as DUID-LLT except
       that the <command>time</command> parameter has no effect for DUID-LL,
-      because this DUID type only comprises a hardware type and link layer
+      because this DUID type only comprises a hardware type and link-layer
       address. The following example demonstrates how to configure DUID-LL:
 
 <screen>
@@ -4434,7 +4434,7 @@ autogenerated IDs are not stable across configuration changes.
       <para>In some uncommon deployments where no stable storage is
       available, the server should be configured not to try to
       store the server identifier. This choice is controlled
-      by the value of <command>persist</command> boolean parameter:
+      by the value of the <command>persist</command> boolean parameter:
 <screen>
 "Dhcp6": {
     "server-id": {
@@ -4448,38 +4448,38 @@ autogenerated IDs are not stable across configuration changes.
 </screen>
       </para>
       <para>The default value of the "persist" parameter is
-      <command>true</command> which configures the server to store the
+      <command>true</command>, which configures the server to store the
       server identifier on a disk.</para>
 
-      <para>In the example above, the server is configured to not store
-      the generated server identifier on a disk. But, if the server
-      identifier is not modified in the configuration the same value
-      will be used after server restart, because entire server
+      <para>In the example above, the server is configured not to store
+      the generated server identifier on a disk. But if the server
+      identifier is not modified in the configuration, the same value
+      will be used after server restart, because the entire server
       identifier is explicitly specified in the configuration.</para>
     </section>
 
     <section xml:id="stateless-dhcp6">
       <title>Stateless DHCPv6 (Information-Request Message)</title>
       <para>Typically DHCPv6 is used to assign both addresses and options. These
-      assignments (leases) have state that changes over time, hence
+      assignments (leases) have state that changes over time, hence
       their name, stateful. DHCPv6 also supports a stateless mode,
       where clients request configuration options only. This mode is
-      considered lightweight from the server perspective as it does not require
-      any state tracking; hence its name.</para>
+      considered lightweight from the server perspective, as it does not require
+      any state tracking, and carries the stateless name.</para>
       <para>The Kea server supports stateless mode. Clients can send
-      Information-Request messages and the server will send back
+      Information-Request messages and the server sends back
       answers with the requested options (providing the options are
-      available in the server configuration).  The server will attempt to
+      available in the server configuration).  The server attempts to
       use per-subnet options first. If that fails - for whatever reason - it
-      will then try to provide options defined in the global scope.</para>
+      then tries to provide options defined in the global scope.</para>
 
       <para>Stateless and stateful mode can be used together. No special
-      configuration directives are required to handle this. Simply use the
+      configuration directives are required to handle this; simply use the
       configuration for stateful clients and the stateless clients will get
-      just options they requested.</para>
+      just the options they requested.</para>
 
       <para>This usage of global options allows for an interesting case.
-      It is possible to run a server that provides just options and no
+      It is possible to run a server that provides only options and no
       addresses or prefixes. If the options have the same value in each
       subnet, the configuration can define required options in the global
       scope and skip subnet definitions altogether. Here's a simple example of
@@ -4498,14 +4498,14 @@ autogenerated IDs are not stable across configuration changes.
 </screen>
       This very simple configuration will provide DNS server information
       to all clients in the network, regardless of their location. Note the
-      specification of the memfile lease database: this is needed as
+      specification of the memfile lease database; this is needed as
       Kea requires a lease database to be specified
       even if it is not used.</para>
     </section>
 
     <section xml:id="dhcp6-rfc7550">
-      <title>Support for RFC 7550 (being now part of RFC 8415)</title>
-      <para>The <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc7550">RFC 7550</link>
+      <title>Support for RFC 7550 (now part of RFC 8415)</title>
+      <para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc7550">RFC 7550</link>
       introduced some changes to the previous DHCPv6 specifications,
       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc3315">RFC 3315</link>
       and <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc3633">RFC 3633</link>,
@@ -4525,15 +4525,15 @@ autogenerated IDs are not stable across configuration changes.
       allocated addresses and the IA_PD(s) containing the NoPrefixAvail status code.
       According to the updated specifications, if the client can operate without
       prefixes it should accept allocated addresses and transition to
-      the 'bound' state. When the client subsequently sends Renew/Rebind messages
+      the "bound" state. When the client subsequently sends Renew/Rebind messages
       to the server, according to the T1 and T2 times, to extend the lifetimes of
-      the allocated addresses, if the client is still interested in obtaining
+      the allocated addresses, and if the client is still interested in obtaining
       prefixes from the server, it may also include an IA_PD in the Renew/Rebind
       to request allocation of the prefixes. If the server still cannot
-      allocate the prefixes it will respond with the IA_PD(s) containing
+      allocate the prefixes, it will respond with the IA_PD(s) containing the
       NoPrefixAvail status code. However, if the server can allocate the
       prefixes it will allocate and send them in the IA_PD(s) to the client.
-      Similar situation occurs when the server is unable to allocate addresses
+      A similar situation occurs when the server is unable to allocate addresses
       for the client but can delegate prefixes. The client may request allocation
       of the addresses while renewing the delegated prefixes. Allocating leases for
       other IA types while renewing existing leases is by default supported by
@@ -4541,30 +4541,30 @@ autogenerated IDs are not stable across configuration changes.
       to disable this behavior.</para>
 
       <para>
-        The following are the other behaviors first introduced in the
+        The following are the other behaviors first introduced in
         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc7550">RFC 7550</link>
-        (now being part of the
+        (now part of
         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>)
         and supported by the Kea DHCPv6 server:
         <itemizedlist>
           <listitem><simpara>Set T1/T2 timers to the same value for all
           stateful (IA_NA and IA_PD) options to facilitate renewal of all
-          client's leases at the same time (in a single message exchange),
+          client's leases at the same time (in a single message exchange),
           </simpara></listitem>
-          <listitem><simpara>NoAddrsAvail and NoPrefixAvail status codes
-          are placed in the IA_NA and IA_PD options in the Advertise message,
-          rather than as the top level options.</simpara></listitem>
+          <listitem><simpara>Place NoAddrsAvail and NoPrefixAvail status codes
+          in the IA_NA and IA_PD options in the Advertise message,
+          rather than as the top-level options.</simpara></listitem>
         </itemizedlist>
       </para>
     </section>
 
     <section xml:id="dhcp6-relay-override">
-      <title>Using Specific Relay Agent for a Subnet</title>
+      <title>Using Specific Relay Agent for a Subnet</title>
       <para>
-        The relay has to have an interface connected to the link on which
+        The relay must have an interface connected to the link on which
         the clients are being configured. Typically the relay has a global IPv6
         address configured on the interface that belongs to the subnet from which
-        the server will assign addresses. In the typical case, the
+        the server will assign addresses. Normally, the
         server is able to use the IPv6 address inserted by the relay (in the link-addr
         field in RELAY-FORW message) to select the appropriate subnet.
       </para>
@@ -4572,21 +4572,21 @@ autogenerated IDs are not stable across configuration changes.
         However, that is not always the case. The relay
         address may not match the subnet in certain deployments. This
         usually means that there is more than one subnet allocated for a given
-        link. The two most common examples where this is the case are long lasting
+        link. The two most common examples where this is the case are long-lasting
         network renumbering (where both old and new address space is still being
-        used) and a cable network. In a cable network both cable modems and the
+        used) and a cable network. In a cable network, both cable modems and the
         devices behind them are physically connected to the same link, yet
-        they use distinct addressing. In such case, the DHCPv6 server needs
-        additional information (like the value of interface-id option or IPv6
-        address inserted in the link-addr field in RELAY-FORW message) to
+        they use distinct addressing. In such case, the DHCPv6 server needs
+        additional information (like the value of the interface-id option or the IPv6
+        address inserted in the link-addr field in the RELAY-FORW message) to
         properly select an appropriate subnet.
       </para>
       <para>
         The following example assumes that there is a subnet 2001:db8:1::/64
         that is accessible via a relay that uses 3000::1 as its IPv6 address.
-        The server will be able to select this subnet for any incoming packets
-        that came from a relay with an address in 2001:db8:1::/64 subnet.
-        It will also select that subnet for a relay with address 3000::1.
+        The server is able to select this subnet for any incoming packets
+        that come from a relay with an address in 2001:db8:1::/64 subnet.
+        It also selects that subnet for a relay with address 3000::1.
         <screen>
 "Dhcp6": {
     "subnet6": [
@@ -4611,10 +4611,7 @@ autogenerated IDs are not stable across configuration changes.
 
       <note>
       <para>
-      As of Kea 1.4, the "ip-address" parameter in "relay" has been deprecated
-      in favor of "ip-addresses" which supports specifying a list of addresses.
-      Configuration parsing, will honor the singular form for now but users are
-      encouraged to migrate.
+      The current version of Kea uses the "ip-addresses" parameter, which supports specifying a list of addresses.
       </para>
       </note>
 
@@ -4624,19 +4621,19 @@ autogenerated IDs are not stable across configuration changes.
         <title>Segregating IPv6 Clients in a Cable Network</title>
         <para>
           In certain cases, it is useful to mix relay address information,
-          introduced in <xref linkend="dhcp6-relay-override"/> with client
+          introduced in <xref linkend="dhcp6-relay-override"/>, with client
           classification, explained in <xref linkend="classify"/>.
-          One specific example is a cable network, where typically modems
+          One specific example is in a cable network, where typically modems
           get addresses from a different subnet than all devices connected
           behind them.
         </para>
         <para>
-          Let's assume that there is one CMTS (Cable Modem Termination System)
+          Let us assume that there is one CMTS (Cable Modem Termination System)
           with one CM MAC (a physical link that modems are connected to).
           We want the modems to get addresses from the 3000::/64 subnet,
-          while everything connected behind modems should get addresses from
+          while everything connected behind the modems should get addresses from
           another subnet (2001:db8:1::/64). The CMTS that acts as a relay
-          an uses address 3000::1. The following configuration can serve
+          uses address 3000::1. The following configuration can serve
           that configuration:
         <screen>
 "Dhcp6": {
@@ -4672,25 +4669,25 @@ autogenerated IDs are not stable across configuration changes.
     <section xml:id="mac-in-dhcpv6">
       <title>MAC/Hardware Addresses in DHCPv6</title>
       <para>MAC/hardware addresses are available in DHCPv4 messages
-      from the clients and administrators
-      frequently use that information to perform certain tasks, like per host
-      configuration, address reservation for specific MAC addresses and other.
+      from the clients, and administrators
+      frequently use that information to perform certain tasks like per-host
+      configuration and address reservation for specific MAC addresses.
       Unfortunately, the DHCPv6 protocol does not provide any completely reliable way
-      to retrieve that information. To mitigate that issue a number of mechanisms
-      have been implemented in Kea that attempt to gather it. Each
-      of those mechanisms works in certain cases, but may fail in other cases.
-      Whether the mechanism works or not in the particular deployment is
+      to retrieve that information. To mitigate that issue, a number of mechanisms
+      have been implemented in Kea. Each
+      of these mechanisms works in certain cases, but may fail in others.
+      Whether the mechanism works in a particular deployment is
       somewhat dependent on the network topology and the technologies used.</para>
 
-      <para>Kea allows configuration of which of the supported methods should be
+      <para>Kea allows specification of which of the supported methods should be
       used and in what order. This configuration may be considered a fine tuning
       of the DHCP deployment. In a typical deployment the default
       value of <command>"any"</command> is sufficient and there is no
       need to select specific methods. Changing the value of this parameter
       is the most useful in cases when an administrator wants to disable
-      certain method, e.g. if the administrator trusts the network infrastructure
-      more than the information provided by the clients themselves, the
-      administrator may prefer information provided by the relays over that
+      certain methods; for example, if the administrator trusts the network infrastructure
+      more than the information provided by the clients themselves, they
+      may prefer information provided by the relays over that
       provided by the clients.
       </para>
       <para>
@@ -4707,9 +4704,9 @@ autogenerated IDs are not stable across configuration changes.
 </screen>
 
     When not specified, a special value of "any" is used, which
-    instructs the server to attempt to use all the methods in sequence and use
+    instructs the server to attempt to try all the methods in sequence and use the
     value returned by the first one that succeeds. If specified, it
-    has to have at least one value.</para>
+    must have at least one value.</para>
 
     <para>Supported methods are:
     <itemizedlist>
@@ -4728,8 +4725,8 @@ autogenerated IDs are not stable across configuration changes.
       </listitem>
       <listitem>
         <simpara><command>duid</command> - DHCPv6 uses DUID identifiers instead of
-        MAC addresses. There are currently four DUID types defined, with two of them
-        (DUID-LLT, which is the default one and DUID-LL) convey MAC address information.
+        MAC addresses. There are currently four DUID types defined, and two of them
+        (DUID-LLT, which is the default, and DUID-LL) convey MAC address information.
         Although <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="" utl="http://tools.ietf.org/html/rfc8415">RFC 8415</link> forbids
         it, it is possible to parse those DUIDs and extract
         necessary information from them. This method is not completely reliable, as
@@ -4740,11 +4737,11 @@ autogenerated IDs are not stable across configuration changes.
         <simpara><command>ipv6-link-local</command> - Another possible acquisition
         method comes from the source IPv6 address. In typical usage, clients are
         sending their packets from IPv6 link-local addresses. There is a good chance
-        that those addresses are based on EUI-64, which contains MAC address. This
+        that those addresses are based on EUI-64, which contains MAC address. This
         method is not completely reliable, as clients may use other link-local address
-        types.  In particular, privacy extensions, defined in
+        types. In particular, privacy extensions, defined in
         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc4941">RFC 4941</link>, do not use
-        MAC addresses.  Also note that successful extraction requires that the
+        MAC addresses. Also note that successful extraction requires that the
         address's u-bit must be set to 1 and its g-bit set to 0, indicating that it
         is an interface identifier as per
         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc2373#section-2.5.1">
@@ -4753,9 +4750,9 @@ autogenerated IDs are not stable across configuration changes.
       </listitem>
       <listitem>
         <simpara><command>client-link-addr-option</command> - One extension defined
-        to alleviate missing MAC issues is client link-layer address option, defined
+        to alleviate missing MAC issues is the client link-layer address option, defined
         in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc6939">RFC 6939</link>. This is
-        an option that is inserted by a relay and contains information about client's
+        an option that is inserted by a relay and contains information about client's
         MAC address. This method requires a relay agent that supports the option and
         is configured to insert it. This method is useless for directly connected
         clients. This parameter can also be specified as <command>rfc6939</command>,
@@ -4775,7 +4772,7 @@ autogenerated IDs are not stable across configuration changes.
         <simpara><command>subscriber-id</command> - Another option
         that is somewhat similar to the previous one is subscriber-id,
         defined in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc4580">RFC
-        4580</link>. It is, too, inserted by a relay agent that is
+        4580</link>. It, too, is inserted by a relay agent that is
         configured to insert it. This parameter can also be specified
         as <command>rfc4580</command>, which is an alias for
         <command>subscriber-id</command>. This method is currently not
@@ -4786,16 +4783,16 @@ autogenerated IDs are not stable across configuration changes.
         <simpara><command>docsis-cmts</command> - Yet another possible source of MAC
         address information are the DOCSIS options inserted by a CMTS that acts
         as a DHCPv6 relay agent in cable networks. This method attempts to extract
-        MAC address information from suboption 1026 (cm mac) of the vendor specific option
+        MAC address information from suboption 1026 (cm mac) of the vendor-specific option
         with vendor-id=4491. This vendor option is extracted from the relay-forward message,
         not the original client's message.
         </simpara>
       </listitem>
       <listitem>
-        <simpara><command>docsis-modem</command> - Yet another possible source of MAC
+        <simpara><command>docsis-modem</command> - The final possible source of MAC
         address information are the DOCSIS options inserted by the cable modem itself.
         This method attempts to extract MAC address information from suboption 36 (device id)
-        of the vendor specific option with vendor-id=4491. This vendor option is extracted from
+        of the vendor-specific option with vendor-id=4491. This vendor option is extracted from
         the original client's message, not from any relay options.
         </simpara>
       </listitem>
@@ -4803,7 +4800,7 @@ autogenerated IDs are not stable across configuration changes.
   </para>
 
   <para>Empty mac-sources is not allowed. If you do not want to specify it,
-  either simply omit mac-sources definition or specify it with the "any" value
+  either simply omit the mac-sources definition or specify it with the "any" value
   which is the default.</para>
   </section>
 
@@ -4811,9 +4808,9 @@ autogenerated IDs are not stable across configuration changes.
       <title>Duplicate Addresses (DECLINE Support)</title>
 
       <para>The DHCPv6 server is configured with a certain pool of
-      addresses that it is expected to hand out to the DHCPv6 clients.
+      addresses that it is expected to hand out to DHCPv6 clients.
       It is assumed that the server is authoritative and has complete
-      jurisdiction over those addresses. However, due to various
+      jurisdiction over those addresses. However, for various
       reasons, such as misconfiguration or a faulty client implementation
       that retains its address beyond the valid lifetime, there may be
       devices connected that use those addresses without the server's
@@ -4821,21 +4818,21 @@ autogenerated IDs are not stable across configuration changes.
 
       <para>Such an unwelcome event can be detected
       by legitimate clients (using Duplicate Address Detection) and
-      reported to the DHCPv6 server using a DECLINE message. The server
-      will do a sanity check (if the client declining an address really
-      was supposed to use it), then will conduct a clean up operation
+      reported to the DHCPv6 server using a DHCPDECLINE message. The server
+      will do a sanity check (to see whether the client declining an address really
+      was supposed to use it), and then will conduct a clean-up operation
       and confirm it by sending back a REPLY message. Any DNS entries
-      related to that address will be removed, the fact will be logged
-      and hooks will be triggered. After that is done, the address
+      related to that address will be removed, the fact will be logged,
+      and hooks will be triggered. After that is complete, the address
       will be marked as declined (which indicates that it is used by
-      an unknown entity and thus not available for assignment to
-      anyone) and a probation time will be set on it. Unless otherwise
-      configured, the probation period lasts 24 hours. After that
+      an unknown entity and thus not available for assignment)
+      and a probation time will be set on it. Unless otherwise
+      configured, the probation period lasts 24 hours; after that
       period, the server will recover the lease (i.e. put it back into
       the available state) and the address will be available for assignment
       again. It should be noted that if the underlying issue of a
-      misconfigured device is not resolved, the duplicate address
-      scenario will repeat. On the other hand, it provides an
+      misconfigured device is not resolved, the duplicate-address
+      scenario will repeat. If reconfigured correctly, this mechanism provides an
       opportunity to recover from such an event automatically, without
       any sysadmin intervention.</para>
 
@@ -4849,33 +4846,33 @@ autogenerated IDs are not stable across configuration changes.
 }
 </screen>
       The parameter is expressed in seconds, so the example above will instruct
-      the server to recycle declined leases after an hour.</para>
+      the server to recycle declined leases after one hour.</para>
 
       <para>There are several statistics and hook points associated with the
       Decline handling procedure. The lease6_decline hook is triggered after the
-      incoming Decline message has been sanitized and the server is about to decline
+      incoming DHCPDECLINE message has been sanitized and the server is about to decline
       the lease. The declined-addresses statistic is increased after the
-      hook returns (both global and subnet specific variants). (See
-      <xref linkend="dhcp4-stats"/> and <xref linkend="hooks-libraries"/> for more details
-      on DHCPv4 statistics and Kea hook points.)</para>
+      hook returns (both global and subnet-specific variants). (See
+      <xref linkend="dhcp6-stats"/> and <xref linkend="hooks-libraries"/> for more details
+      on DHCPv6 statistics and Kea hook points.)</para>
 
       <para>Once the probation time elapses, the declined lease is recovered
-      using the standard expired lease reclamation procedure, with several
+      using the standard expired-lease reclamation procedure, with several
       additional steps. In particular, both declined-addresses statistics
-      (global and subnet specific) are decreased. At the same time,
+      (global and subnet-specific) are decreased. At the same time,
       reclaimed-declined-addresses statistics (again in two variants, global and
-      subnet specific) are increased.</para>
+      subnet-specific) are increased.</para>
 
-      <para>Note about statistics: The server does not decrease the
-      assigned-addresses statistics when a DECLINE message is received and
+      <para>A note about statistics: The server does not decrease the
+      assigned-addresses statistics when a DHCPDECLINE message is received and
       processed successfully. While technically a declined address is no longer
       assigned, the primary usage of the assigned-addresses statistic is to
       monitor pool utilization. Most people would forget to include
-      declined-addresses in the calculation, and simply do
-      assigned-addresses/total-addresses. This would have a bias towards
+      declined-addresses in the calculation, and simply use
+      assigned-addresses/total-addresses. This would cause a bias towards
       under-representing pool utilization. As this has a potential for major
-      issues, we decided not to decrease assigned addresses immediately after
-      receiving Decline, but to do it later when we recover the address back to
+      issues, we decided not to decrease assigned-addresses immediately after
+      receiving DHCPDECLINE, but to do it later when Kea recovers the address back to
       the available pool.</para>
     </section>
 
@@ -4908,7 +4905,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>pkt6-received</entry>
               <entry>integer</entry>
               <entry>Number of DHCPv6 packets received. This includes all packets:
-              valid, bogus, corrupted, rejected etc. This statistic is expected
+              valid, bogus, corrupted, rejected, etc. This statistic is expected
               to grow rapidly.</entry>
             </row>
 
@@ -4917,9 +4914,9 @@ autogenerated IDs are not stable across configuration changes.
               <entry>integer</entry>
               <entry>Number of incoming packets that were dropped. The exact reason
               for dropping packets is logged, but the most common reasons may
-              be: an unacceptable or not supported packet type, direct responses
+              be: an unacceptable or not supported packet type is received, direct responses
               are forbidden, the server-id sent by the client does not match the
-              server's server-id or the packet is malformed.</entry>
+              server's server-id, or the packet is malformed.</entry>
             </row>
 
             <row>
@@ -4928,7 +4925,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>Number of incoming packets that could not be parsed.
               A non-zero value of this statistic indicates that the server
               received a malformed or truncated packet. This may indicate problems
-              in your network, faulty clients, faulty relay agents or a bug in the
+              in your network, faulty clients, faulty relay agents, or a bug in the
               server.</entry>
             </row>
 
@@ -4937,9 +4934,9 @@ autogenerated IDs are not stable across configuration changes.
               <entry>integer</entry>
               <entry>
                 Number of SOLICIT packets received. This statistic is expected
-                to grow.  Its increase means that clients that just booted
+                to grow; its increase means that clients that just booted
                 started their configuration process and their initial packets
-                reached your server.
+                reached your Kea server.
               </entry>
             </row>
 
@@ -4951,7 +4948,7 @@ autogenerated IDs are not stable across configuration changes.
                 by the server and the server is never expected to receive them. A non-zero
                 value of this statistic indicates an error occurring in the network.
                 One likely cause would be a misbehaving relay agent that incorrectly
-                forwards ADVERTISE messages towards the server rather back to the
+                forwards ADVERTISE messages towards the server, rather than back to the
                 clients.
               </entry>
             </row>
@@ -4959,10 +4956,10 @@ autogenerated IDs are not stable across configuration changes.
             <row>
               <entry>pkt6-request-received</entry>
               <entry>integer</entry>
-              <entry>Number of REQUEST packets received. This statistic
+              <entry>Number of DHCPREQUEST packets received. This statistic
                 is expected to grow. Its increase means that clients that just booted
-                received the server's response (ADVERTISE), accepted it and are now
-                requesting an address (REQUEST).
+                received the server's response (DHCPADVERTISE) and accepted it, and are now
+                requesting an address (DHCPREQUEST).
               </entry>
             </row>
 
@@ -4974,7 +4971,7 @@ autogenerated IDs are not stable across configuration changes.
               the server and the server is never expected to receive
               them. A non-zero value indicates an error. One likely cause would be
               a misbehaving relay agent that incorrectly forwards REPLY messages
-              towards the server, rather back to the clients.
+              towards the server, rather than back to the clients.
               </entry>
             </row>
 
@@ -4982,7 +4979,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>pkt6-renew-received</entry>
               <entry>integer</entry>
               <entry>Number of RENEW packets received. This statistic
-                is expected to grow. Its increase means that clients received their
+                is expected to grow; its increase means that clients received their
                 addresses and prefixes and are trying to renew them.
               </entry>
             </row>
@@ -4992,8 +4989,8 @@ autogenerated IDs are not stable across configuration changes.
               <entry>integer</entry>
               <entry>Number of REBIND packets received. A non-zero value
               indicates that clients didn't receive responses to their RENEW messages
-              (regular lease renewal mechanism) and are attempting to find any server
-              that is able to take over their leases. It may mean that some server's
+              (through the regular lease-renewal mechanism) and are attempting to find any server
+              that is able to take over their leases. It may mean that some servers'
               REPLY messages never reached the clients.
               </entry>
             </row>
@@ -5002,7 +4999,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>pkt6-release-received</entry>
               <entry>integer</entry>
               <entry>Number of RELEASE packets received. This statistic is expected
-              to grow when a device is being shut down in the network. It
+              to grow when a device is being shut down in the network; it
               indicates that the address or prefix assigned is reported as no longer
               needed. Note that many devices, especially wireless, do not send RELEASE
               packets either because of design choice or due to the client moving out
@@ -5042,7 +5039,7 @@ autogenerated IDs are not stable across configuration changes.
                 Number of DHCPv4-QUERY packets received. This
                 statistic is expected to grow if there are devices
                 that are using DHCPv4-over-DHCPv6. DHCPv4-QUERY
-                messages are used by DHCPv4 clients on an IPv6 only
+                messages are used by DHCPv4 clients on an IPv6-only
                 line which encapsulates the requests over DHCPv6.
               </entry>
             </row>
@@ -5055,9 +5052,9 @@ autogenerated IDs are not stable across configuration changes.
                 statistic is expected to remain zero at all times, as
                 DHCPv4-RESPONSE packets are sent by the server and the
                 server is never expected to receive them. A non-zero
-                value indicates an error.  One likely cause would be a
+                value indicates an error. One likely cause would be a
                 misbehaving relay agent that incorrectly forwards
-                DHCPv4-RESPONSE message towards the server rather
+                DHCPv4-RESPONSE message towards the server rather than
                 back to the clients.
               </entry>
             </row>
@@ -5067,7 +5064,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>integer</entry>
               <entry>Number of packets received of an unknown type. A non-zero
               value of this statistic indicates that the server received a
-              packet that it wasn't able to recognize: either it had an unsupported
+              packet that it wasn't able to recognize; either it had an unsupported
               type or was possibly malformed.</entry>
             </row>
 
@@ -5078,8 +5075,8 @@ autogenerated IDs are not stable across configuration changes.
               to grow every time the server transmits a packet. In general, it
               should roughly match pkt6-received, as most incoming packets cause
               the server to respond. There are exceptions (e.g. server receiving a
-              REQUEST with server-id matching other server), so do not worry, if
-              it is lesser than pkt6-received.</entry>
+              REQUEST with server-id matching other server), so do not worry if
+              it is less than pkt6-received.</entry>
             </row>
 
             <row>
@@ -5087,7 +5084,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>integer</entry>
               <entry>Number of ADVERTISE packets sent. This statistic is
               expected to grow in most cases after a SOLICIT is processed. There
-              are certain uncommon, but valid cases where incoming SOLICIT is
+              are certain uncommon, but valid, cases where incoming SOLICIT packets are
               dropped, but in general this statistic is expected to be close to
               pkt6-solicit-received.</entry>
             </row>
@@ -5097,7 +5094,7 @@ autogenerated IDs are not stable across configuration changes.
               <entry>integer</entry>
               <entry>Number of REPLY packets sent. This statistic is expected to
               grow in most cases after a SOLICIT (with rapid-commit), REQUEST,
-              RENEW, REBIND, RELEASE, DECLINE or INFORMATION-REQUEST is
+              RENEW, REBIND, RELEASE, DECLINE, or INFORMATION-REQUEST is
               processed. There are certain cases where there is no response.
               </entry>
             </row>
@@ -5116,13 +5113,13 @@ autogenerated IDs are not stable across configuration changes.
             <entry>subnet[id].total-nas</entry>
             <entry>integer</entry>
             <entry>
-            This statistic shows the total number of NA addresses available for
-            DHCPv6 management for a given subnet. In other words, this is the sum
+            Total number of NA addresses available for
+            DHCPv6 management for a given subnet; in other words, this is the sum
             of all addresses in all configured pools. This statistic changes only
             during configuration changes. Note that it does not take into account any
             addresses that may be reserved due to host reservation. The
             <emphasis>id</emphasis> is the subnet-id of a given subnet. This
-            statistic is exposed for each subnet separately and is
+            statistic is exposed for each subnet separately, and is
             reset during a reconfiguration event.
             </entry>
             </row>
@@ -5131,12 +5128,12 @@ autogenerated IDs are not stable across configuration changes.
             <entry>subnet[id].assigned-nas</entry>
             <entry>integer</entry>
             <entry>
-            This statistic shows the number of NA addresses in a given subnet that
-            are assigned. This statistic increases every time a new lease is allocated
+            Number of NA addresses in a given subnet that
+            are assigned. It increases every time a new lease is allocated
             (as a result of receiving a REQUEST message) and is decreased every time a
             lease is released (a RELEASE message is received) or expires. The
             <emphasis>id</emphasis> is the subnet-id of a given subnet. This
-            statistic is exposed for each subnet separately and is
+            statistic is exposed for each subnet separately, and is
             reset during a reconfiguration event.
             </entry>
             </row>
@@ -5145,13 +5142,13 @@ autogenerated IDs are not stable across configuration changes.
             <entry>subnet[id].total-pds</entry>
             <entry>integer</entry>
             <entry>
-            This statistic shows the total number of PD prefixes available for
-            DHCPv6 management for a given subnet. In other words, this is the sum
+            Total number of PD prefixes available for
+            DHCPv6 management for a given subnet; in other words, this is the sum
             of all prefixes in all configured pools. This statistic changes only
             during configuration changes. Note it does not take into account any
             prefixes that may be reserved due to host reservation. The
             <emphasis>id</emphasis> is the subnet-id of a given subnet. This
-            statistic is exposed for each subnet separately and is
+            statistic is exposed for each subnet separately, and is
             reset during a reconfiguration event.
             </entry>
             </row>
@@ -5160,12 +5157,12 @@ autogenerated IDs are not stable across configuration changes.
             <entry>subnet[id].assigned-pds</entry>
             <entry>integer</entry>
             <entry>
-            This statistic shows the number of PD prefixes in a given subnet that
-            are assigned. This statistic increases every time a new lease is allocated
+            Number of PD prefixes in a given subnet that
+            are assigned. It increases every time a new lease is allocated
             (as a result of receiving a REQUEST message) and is decreased every time a
             lease is released (a RELEASE message is received) or expires. The
             <emphasis>id</emphasis> is the subnet-id of a given subnet. This statistic
-            is exposed for each subnet separately and is reset during a
+            is exposed for each subnet separately, and is reset during a
             reconfiguration event.
             </entry>
             </row>
@@ -5173,9 +5170,9 @@ autogenerated IDs are not stable across configuration changes.
             <row>
               <entry>reclaimed-leases</entry>
               <entry>integer</entry>
-              <entry> This statistic is the number of expired leases that have been
+              <entry> Number of expired leases that have been
               reclaimed since server startup. It is incremented each time an expired
-              lease is reclaimed (it counts both NA and PD reclamations) and is reset
+              lease is reclaimed (counting both NA and PD reclamations) and is reset
               when the server is reconfigured.
               </entry>
             </row>
@@ -5183,10 +5180,10 @@ autogenerated IDs are not stable across configuration changes.
             <row>
               <entry>subnet[id].reclaimed-leases</entry>
               <entry>integer</entry>
-              <entry>This statistic is the number of expired leases associated with
+              <entry>Number of expired leases associated with
               a given subnet (<emphasis>"id"</emphasis> is the subnet-id) that have
               been reclaimed since server startup. It is incremented each time an expired
-              lease is reclaimed (it counts both NA and PD reclamations) and is reset
+              lease is reclaimed (counting both NA and PD reclamations) and is reset
               when the server is reconfigured.
               </entry>
             </row>
@@ -5195,12 +5192,12 @@ autogenerated IDs are not stable across configuration changes.
             <entry>declined-addresses</entry>
             <entry>integer</entry>
             <entry>
-              This statistic shows the number of IPv6 addresses that are
-              currently declined and so counts the number of leases
+              Number of IPv6 addresses that are
+              currently declined; a count of the number of leases
               currently unavailable. Once a lease is recovered, this
-              statistic will be decreased. Ideally, this statistic should be
-              zero. If this statistic is non-zero (or worse, increasing),
-              the network administrator should investigate if there is
+              statistic will be decreased; ideally, this statistic should be
+              zero. If this statistic is non-zero or increasing,
+              a network administrator should investigate whether there is
               a misbehaving device in the network. This is a global statistic
               that covers all subnets.
             </entry>
@@ -5210,13 +5207,13 @@ autogenerated IDs are not stable across configuration changes.
             <entry>subnet[id].declined-addresses</entry>
             <entry>integer</entry>
             <entry>
-              This statistic shows the number of IPv6 addresses that are
-              currently declined in a given subnet. This statistic counts the
+              Number of IPv6 addresses that are
+              currently declined in a given subnet; a count of the
               number of leases currently unavailable. Once a lease is
-              recovered, this statistic will be decreased. Ideally, this
+              recovered, this statistic will be decreased; ideally, this
               statistic should be zero. If this statistic is
-              non-zero (or worse, increasing), a network administrator should
-              investigate if there is a misbehaving device in the network. The
+              non-zero or increasing, a network administrator should
+              investigate whether there is a misbehaving device in the network. The
               <emphasis>id</emphasis> is the subnet-id of a given subnet. This
               statistic is exposed for each subnet separately.
             </entry>
@@ -5226,10 +5223,10 @@ autogenerated IDs are not stable across configuration changes.
             <entry>reclaimed-declined-addresses</entry>
             <entry>integer</entry>
             <entry>
-              This statistic shows the number of IPv6 addresses that were
+              Number of IPv6 addresses that were
               declined, but have now been recovered. Unlike
               declined-addresses, this statistic never decreases. It can be used
-              as a long term indicator of how many actual valid Declines were
+              as a long-term indicator of how many actual valid Declines were
               processed and recovered from. This is a global statistic that
               covers all subnets.
             </entry>
@@ -5239,10 +5236,10 @@ autogenerated IDs are not stable across configuration changes.
             <entry>subnet[id].reclaimed-declined-addresses</entry>
             <entry>integer</entry>
             <entry>
-              This statistic shows the number of IPv6 addresses that were
+              Number of IPv6 addresses that were
               declined, but have now been recovered. Unlike
               declined-addresses, this statistic never decreases. It can be used
-              as a long term indicator of how many actual valid Declines were
+              as a long-term indicator of how many actual valid Declines were
               processed and recovered from. The
               <emphasis>id</emphasis> is the subnet-id of a given subnet. This
               statistic is exposed for each subnet separately.
@@ -5258,10 +5255,10 @@ autogenerated IDs are not stable across configuration changes.
       <title>Management API for the DHCPv6 Server</title>
       <para>
         The management API allows the issuing of specific
-        management commands, such as statistics retrieval, reconfiguration or shutdown.
-        For more details, see <xref linkend="ctrl-channel"/>. Currently the only
+        management commands, such as statistics retrieval, reconfiguration, or shutdown.
+        For more details, see <xref linkend="ctrl-channel"/>. Currently, the only
         supported communication channel type is UNIX stream socket. By default there
-        are no sockets open. To instruct Kea to open a socket, the following entry
+        are no sockets open; to instruct Kea to open a socket, the following entry
         in the configuration file can be used:
 <screen>
 "Dhcp6": {
@@ -5280,7 +5277,7 @@ autogenerated IDs are not stable across configuration changes.
 
       <para>
         The length of the path specified by the <command>socket-name</command>
-        parameter is restricted by the maximum length for the unix socket name
+        parameter is restricted by the maximum length for the UNIX socket name
         on your operating system, i.e. the size of the <command>sun_path</command>
         field in the <command>sockaddr_un</command> structure, decreased by 1.
         This value varies on different operating systems between 91 and 107
@@ -5288,8 +5285,11 @@ autogenerated IDs are not stable across configuration changes.
       </para>
 
       <para>
-        Communication over control channel is conducted using JSON structures.
-        See the Control Channel section in the Kea Developer's Guide for more details.
+        Communication over the control channel is conducted using JSON structures.
+        See the <uri
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xlink:href="https://jenkins.isc.org/job/Kea_doc/doxygen/d2/d96/ctrlSocket.html">Control Channel section in the Kea Developer's Guide</uri> for more
+        details.
       </para>
 
       <para>The DHCPv6 server supports the following operational commands:
@@ -5307,8 +5307,8 @@ autogenerated IDs are not stable across configuration changes.
             <listitem>shutdown</listitem>
             <listitem>version-get</listitem>
         </itemizedlist>
-         as described in <xref linkend="commands-common"/>.  In addition,
-         it supports the following statistics related commands:
+         as described in <xref linkend="commands-common"/>. In addition,
+         it supports the following statistics-related commands:
         <itemizedlist>
             <listitem>statistic-get</listitem>
             <listitem>statistic-reset</listitem>
@@ -5317,13 +5317,13 @@ autogenerated IDs are not stable across configuration changes.
             <listitem>statistic-reset-all</listitem>
             <listitem>statistic-remove-all</listitem>
         </itemizedlist>
-        as described here <xref linkend="command-stats"/>.
+        as described in <xref linkend="command-stats"/>.
       </para>
 
     </section>
 
       <section id="dhcp6-user-contexts">
-        <title>User contexts in IPv6</title>
+        <title>User Contexts in IPv6</title>
         <para>
           Kea allows loading hook libraries that sometimes could benefit from
           additional parameters. If such a parameter is specific to the whole
@@ -5333,33 +5333,33 @@ autogenerated IDs are not stable across configuration changes.
         </para>
 
         <para>
-          User contexts can store arbitrary data as long as it is valid JSON
+          User contexts can store arbitrary data as long as it has valid JSON
           syntax and its top level element is a map (i.e. the data must be
-          enclosed in curly brackets). Some hook libraries may expect specific
-          formatting, though.  Please consult specific hook library
+          enclosed in curly brackets). However, some hook libraries may expect specific
+          formatting; please consult the specific hook library
           documentation for details.
         </para>
 
         <para>
           User contexts can be specified at either global scope,
-          shared network, subnet, pool, client class, option data or
+          shared network, subnet, pool, client class, option data, or
           definition level, and host reservation. One other useful
           usage is the ability to store comments or descriptions.
         </para>
 
         <para>
           Let's consider a lightweight 4over6 deployment as an example. It is an
-          IPv6 transition technology that allows mapping IPv6 prefix into full
-          or parts of IPv4 addresses. In DHCP context, these are certain
-          parameters that are supposed to be delivered to clients in form of
-          additional options. Values of those options are correlated to
-          delegated prefixes, so it is reasonable to keep those parameters
+          IPv6 transition technology that allows mapping IPv6 prefixes into full
+          or partial IPv4 addresses. In the DHCP context, these are specific
+          parameters that are supposed to be delivered to clients in the form of
+          additional options. Values of these options are correlated to
+          delegated prefixes, so it is reasonable to keep these parameters
           together with the PD pool. On the other hand, lightweight 4over6 is
           not a commonly used feature, so it is not a part of the base Kea
           code. The solution to this problem is to use user context. For each PD
-          pool that is expected to be used for lightweight 4over6, user context
+          pool that is expected to be used for lightweight 4over6, user context
           with extra parameters is defined. Those extra parameters will be used
-          by hook library that would be loaded only when dynamic calculation of
+          by hook library that would be loaded only when dynamic calculation of
           the lightweight 4over6 option is actually needed. An example
           configuration looks as follows:
           <screen>
@@ -5398,12 +5398,12 @@ autogenerated IDs are not stable across configuration changes.
         </para>
 
         <para>
-          Kea does not interpret or use the content of the user context:
-          it just stores it, making it available to the hook
+          Kea does not interpret or use the content of the user context;
+          it simply stores it, making it available to the hook
           libraries. It is up to each hook library to extract the information
-          and make use of it.
-          The parser translates a "comment" entry into a user-context
-          with the entry, this allows to attach a comment inside the
+          and use it.
+          The parser translates a "comment" entry into a user context
+          with the entry, which allows a comment to be attached inside the
           configuration itself.
         </para>
         <para>
@@ -5485,14 +5485,14 @@ autogenerated IDs are not stable across configuration changes.
             <simpara><emphasis>DHCPv6 Options for Configuration of Softwire
             Address and Port-Mapped Clients</emphasis>,
             <ulink url="http://tools.ietf.org/html/rfc7598">RFC
-            7598</ulink>: All options specified in this specification are
+            7598</ulink>: All options indicated in this specification are
             supported by the DHCPv6 server.</simpara>
           </listitem>
           <listitem>
             <simpara><emphasis>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</emphasis>,
             <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>:
             New DHCPv6 protocol specification which obsoletes RFC 3315, RFC 3633, RFC 3736, RFC 4242, RFC 7083,
-            RFC 7283 and RFC 7550</simpara>
+            RFC 7283, and RFC 7550</simpara>
           </listitem>
       </itemizedlist>
     </section>
@@ -5500,13 +5500,13 @@ autogenerated IDs are not stable across configuration changes.
     <section xml:id="dhcp6-limit">
       <title>DHCPv6 Server Limitations</title>
       <para> These are the current limitations of the DHCPv6 server
-      software. Most of them are reflections of the early stage of
+      software. Most of them are reflections of the current stage of
       development and should be treated as <quote>not implemented
       yet</quote>, rather than actual limitations.</para>
       <itemizedlist>
         <listitem>
           <simpara>
-            The server will allocate, renew or rebind a maximum of one lease
+            The server will allocate, renew, or rebind a maximum of one lease
             for a particular IA option (IA_NA or IA_PD) sent by a client.
             <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>
             allows for multiple addresses or prefixes to be allocated for a single IA.
@@ -5529,10 +5529,9 @@ autogenerated IDs are not stable across configuration changes.
       <title>Kea DHCPv6 server examples</title>
 
       <para>
-        A collection of simple to use examples for DHCPv6 component of Kea is
-        available with the sources. It is located in doc/examples/kea6
-        directory. At the time of writing this text there were 18 examples,
-        but the number is growing slowly with each release.
+        A collection of simple-to-use examples for the DHCPv6 component of Kea is
+        available with the source files, located in the doc/examples/kea6
+        directory.
       </para>
 
     </section>