From 3dc706c06dc3aefeb87ed89eb1b47093c442e5ee Mon Sep 17 00:00:00 2001
From: Mark Craig <mark.craig@forgerock.com>
Date: Tue, 24 May 2011 13:27:45 +0000
Subject: [PATCH] Fix OPENDJ-129: Consider adding manual pages for SDK tools, especially xxxrate tooles

---
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-authrate.xml           |  326 +++++++
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-modrate.xml            |  327 ++++++++
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapsearch.xml         |  364 +++++++++
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-searchrate.xml         |  332 ++++++++
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapmodify.xml         |  326 +++++++
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapcompare.xml        |  258 ++++++
 opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml |  245 +++++
 7 files changed, 1,961 insertions(+), 217 deletions(-)

diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-authrate.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-authrate.xml
index 369b1a9..6cff09c 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-authrate.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-authrate.xml
@@ -32,75 +32,339 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>authrate</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>authrate</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>measure bind throughput and response time</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>authrate</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
+   <arg choice="opt">filter format string</arg>
+   <arg choice="opt" rep="repeat">attributes</arg>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to measure bind throughput and response time
+  of a directory service using user-defined bind or search-then-bind
+  operations.</para>
+  <para>Format strings may be used in the bind DN option as well as the authid
+  and authzid SASL bind options. A search operation may be used to retrieve the
+  bind DN by specifying the base DN and a filter. The retrieved entry DN will
+  be appended as the last argument in the argument list when evaluating format
+  strings.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
+     <para>Default value: never</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-b, --baseDN {baseDN}</option></term>
+    <listitem>
+     <para>Base DN format string</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-c, --numConnections {numConnections}</option></term>
+    <listitem>
+     <para>Number of connections</para>
+     <para>Default value: 1</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-e, --percentile {percentile}</option></term>
+    <listitem>
+     <para>Calculate max response time for a percentile of operations</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-f, --keepConnectionsOpen</option></term>
+    <listitem>
+     <para>Keep connections open</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-g, --argument {generator function or static string}</option></term>
+    <listitem>
+     <para>Argument used to evaluate the Java style format strings in program
+     parameters (Base DN, Search Filter). The set of all arguments provided
+     form the the argument list in order. Besides static string arguments, they
+     can be generated per iteration with the following functions:</para>
+    <variablelist>
+     <varlistentry>
+      <term>"inc({filename})"</term>
+      <listitem><para>Consecutive, incremental line from file</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"inc({min},{max})"</term>
+      <listitem><para>Consecutive, incremental number</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"rand({filename})"</term>
+      <listitem><para>Random line from file</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"rand({min},{max})"</term>
+      <listitem><para>Random number</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
+      <listitem><para>Random string of specified length and optionally from
+      characters in the charSet string. A range of character can be specified
+      with [start-end] charSet notation. If no charSet is specified,
+      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
+     </varlistentry>
+    </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-i, --statInterval {statInterval}</option></term>
+    <listitem>
+     <para>Display results each specified number of seconds</para>
+     <para>Default value: 5</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-I, --invalidPassword {invalidPassword}</option></term>
+    <listitem>
+     <para>Percent of bind operations with simulated invalid password</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-m, --maxIterations {maxIterations}</option></term>
+    <listitem>
+     <para>Max iterations, 0 for unlimited</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
+    <listitem>
+     <para>Target average throughput to achieve</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-s, --searchScope {searchScope}</option></term>
+    <listitem>
+     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
+     <para>Default value: sub</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-S, --scriptFriendly</option></term>
+    <listitem>
+     <para>Use script-friendly mode</para>
     </listitem>
    </varlistentry>
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>authrate</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>-V, --version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following example demonstrates measuring simple bind
+  performance.</para>
+  <screen width="80">$ authrate -p 1389 -g "rand(names.txt)" \
+&gt; -D "uid=%s,ou=people,dc=example,dc=com" -w password -c 10 -f
+-----------------------------------------------------------------
+     Throughput                            Response Time         
+   (ops/second)                           (milliseconds)         
+recent  average  recent  average  99.9%  99.99%  99.999%  err/sec
+-----------------------------------------------------------------
+9796.9   9816.6   1.029    1.029  12.413  161.451  161.835      0.0
+14201.1  12028.1   0.704    0.835  9.508  161.456  167.573      0.0
+14450.0  12835.9   0.692    0.782  8.989  161.835  174.518      0.0
+12934.3  12860.6   0.773    0.779  9.253  161.339  174.426      0.0
+14154.5  13121.0   0.706    0.764  9.025  161.451  177.101      0.0
+^C</screen>
+  <para>The <filename>names.txt</filename> contains all the user IDs for the
+  sample suffix, and all user password values have been set to
+  <literal>password</literal> for this example.</para>
  </refsect1>
 </refentry>
diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapcompare.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapcompare.xml
index 11ffc59..94e8fc2 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapcompare.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapcompare.xml
@@ -32,75 +32,271 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>ldapcompare</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>ldapcompare</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>perform LDAP compare operations</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>ldapcompare</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
+   <group><arg>attribute</arg><arg>:</arg><arg>value</arg></group>
+   <arg choice="opt" rep="repeat">DN</arg>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to perform LDAP compare operations in the
+  directory.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>--assertionFilter {filter}</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Use the LDAP assertion control with the provided filter</para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term><option>-c, --continueOnError</option></term>
+    <listitem>
+     <para>Continue processing even if there are errors</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-f, --filename {file}</option></term>
+    <listitem>
+     <para>LDIF file containing one DN per line of entries to compare</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
+    <listitem>
+     <para>Use a request control with the provided information</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-n, --dry-run</option></term>
+    <listitem>
+     <para>Show what would be done but do not perform any operation</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-Y, --proxyAs {authzID}</option></term>
+    <listitem>
+     <para>Use the proxied authorization control with the given authorization
+     ID</para>
+    </listitem>
+   </varlistentry>   
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>ldapcompare</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-V, --ldapVersion {version}</option></term>
+     <listitem>
+      <para>LDAP protocol version number</para>
+      <para>Default value: 3</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>-i, --encoding {encoding}</option></term>
+     <listitem>
+      <para>Use the specified character set for command-line input</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following examples demonstrate comparing Babs Jensen's UID.</para>
+  <para>The following example uses a matching UID value.</para>
+  <screen width="80">$ ldapcompare -p 1389 uid:bjensen uid=bjensen,ou=people,dc=example,dc=com
+Comparing type uid with value bjensen in entry
+uid=bjensen,ou=people,dc=example,dc=com
+Compare operation returned true for entry
+uid=bjensen,ou=people,dc=example,dc=com</screen>
+  <para>The following example uses a UID value that does not match.</para>
+  <screen width="80">$ ldapcompare -p 1389 uid:beavis uid=bjensen,ou=people,dc=example,dc=com
+Comparing type uid with value beavis in entry
+uid=bjensen,ou=people,dc=example,dc=com
+Compare operation returned false for entry
+uid=bjensen,ou=people,dc=example,dc=com</screen>
  </refsect1>
 </refentry>
diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapmodify.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapmodify.xml
index 714009c..a46ca66 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapmodify.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapmodify.xml
@@ -32,75 +32,339 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>ldapmodify</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>ldapmodify</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>perform LDAP modify, add, delete, mod DN operations</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>ldapmodify</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to perform LDAP modify, add, delete, and
+  modify DN operations in the directory.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>-a, --defaultAdd</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Treat records with no changetype as add operations</para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term><option>--assertionFilter {filter}</option></term>
+    <listitem>
+     <para>Use the LDAP assertion control with the provided filter</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-c, --continueOnError</option></term>
+    <listitem>
+     <para>Continue processing even if there are errors</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-f, --filename {file}</option></term>
+    <listitem>
+     <para>LDIF file containing the changes to apply</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
+    <listitem>
+     <para>Use a request control with the provided information</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-n, --dry-run</option></term>
+    <listitem>
+     <para>Show what would be done but do not perform any operation</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>--postReadAttributes {attrList}</option></term>
+    <listitem>
+     <para>Use the LDAP ReadEntry post-read control</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>--preReadAttributes {attrList}</option></term>
+    <listitem>
+     <para>Use the LDAP ReadEntry pre-read control</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-Y, --proxyAs {authzID}</option></term>
+    <listitem>
+     <para>Use the proxied authorization control with the given authorization
+     ID</para>
+    </listitem>
+   </varlistentry>   
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>ldapmodify</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-V, --ldapVersion {version}</option></term>
+     <listitem>
+      <para>LDAP protocol version number</para>
+      <para>Default value: 3</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>-i, --encoding {encoding}</option></term>
+     <listitem>
+      <para>Use the specified character set for command-line input</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following example demonstrates use of the command to add an entry
+  to the directory.</para>
+  <screen width="80">$ cat newuser.ldif 
+dn: uid=newuser,ou=People,dc=example,dc=com
+uid: newuser
+facsimileTelephoneNumber: +1 408 555 1213
+objectClass: person
+objectClass: organizationalPerson
+objectClass: inetOrgPerson
+objectClass: posixAccount
+objectClass: top
+givenName: New
+cn: New User
+cn: Real Name
+telephoneNumber: +1 408 555 1212
+sn: Jensen
+roomNumber: 1234
+homeDirectory: /home/newuser
+uidNumber: 10389
+mail: newuser@example.com
+l: South Pole
+ou: Product Development
+ou: People
+gidNumber: 10636
+
+$ ldapmodify -p 1389 -a -f newuser.ldif \
+&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
+Processing ADD request for uid=newuser,ou=People,dc=example,dc=com
+ADD operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
+
+ <para>The following example demonstrates adding a Description attribute
+ to the new user's entry.</para>
+ <screen width="80">$ cat newdesc.ldif 
+dn: uid=newuser,ou=People,dc=example,dc=com
+changetype: modify
+add: description
+description: A new user's entry
+
+$ ldapmodify -p 1389 -f newdesc.ldif \
+&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
+Processing MODIFY request for uid=newuser,ou=People,dc=example,dc=com
+MODIFY operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
+ 
+ <para>The following example demonstrates changing the Description attribute
+ for the new user's entry.</para>
+ <screen width="80">$ cat moddesc.ldif 
+dn: uid=newuser,ou=People,dc=example,dc=com
+changetype: modify
+replace: description
+description: Another description
+
+$ ldapmodify -p 1389 -f moddesc.ldif \
+&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
+Processing MODIFY request for uid=newuser,ou=People,dc=example,dc=com
+MODIFY operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
+ 
+ <para>The following example demonstrates deleting the new user's entry.</para>
+ <screen width="80">$ cat deluser.ldif 
+dn: uid=newuser,ou=People,dc=example,dc=com
+changetype: delete
+
+$ ldapmodify -p 1389 -f deluser.ldif \
+&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
+Processing DELETE request for uid=newuser,ou=People,dc=example,dc=com
+DELETE operation successful for DN uid=newuser,ou=People,dc=example,dc=com</screen>
  </refsect1>
 </refentry>
diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml
index cfa7c03..7421dd6 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldappasswordmodify.xml
@@ -32,75 +32,258 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>ldappasswordmodify</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>ldappasswordmodify</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>perform LDAP password modifications</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>ldappasswordmodify</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to perform LDAP password modify operations in
+  the directory.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>-a, --authzID {authzID}</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Authorization ID for the user entry whose password should be changed</para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term><option>-c, --currentPassword {currentPassword}</option></term>
+    <listitem>
+     <para>Current password for the target user</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-C, --currentPasswordFile {file}</option></term>
+    <listitem>
+     <para>Path to a file containing the current password for the target user</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-F, --newPasswordFile {file}</option></term>
+    <listitem>
+     <para>Path to a file containing the new password to provide for the target user</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
+    <listitem>
+     <para>Use a request control with the provided information</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-n, --newPassword {newPassword}</option></term>
+    <listitem>
+     <para>New password to provide for the target user</para>
+    </listitem>
+   </varlistentry>   
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>ldappasswordmodify</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-V, --ldapVersion {version}</option></term>
+     <listitem>
+      <para>LDAP protocol version number</para>
+      <para>Default value: 3</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following example demonstrates a user changing the password
+  for her entry.</para>
+  <screen width="80">$ cat /tmp/currpwd.txt /tmp/newpwd.txt 
+bribery
+secret12
+$ ldappasswordmodify -p 1389 -C /tmp/currpwd.txt -F /tmp/newpwd.txt \
+&gt; -a "dn:uid=kvaughan,ou=people,dc=example,dc=com" \
+&gt; -D uid=kvaughan,ou=people,dc=example,dc=com -w bribery
+The LDAP password modify operation was successful</screen>
  </refsect1>
 </refentry>
diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapsearch.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapsearch.xml
index c4189e6..8bc9264 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapsearch.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-ldapsearch.xml
@@ -32,75 +32,377 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>ldapsearch</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>ldapsearch</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>perform LDAP search operations</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>ldapsearch</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
+   <arg choice="opt">filter</arg>
+   <arg choice="opt" rep="repeat">attributes</arg>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to perform LDAP search operations in the
+  directory.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
+     <para>Default value: never</para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term><option>-A, --typesOnly</option></term>
+    <listitem>
+     <para>Only retrieve attribute names but not their values</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>--assertionFilter {filter}</option></term>
+    <listitem>
+     <para>Use the LDAP assertion control with the provided filter</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-b, --baseDN {baseDN}</option></term>
+    <listitem>
+     <para>Base DN format string</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-c, --continueOnError</option></term>
+    <listitem>
+     <para>Continue processing even if there are errors</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-C, --persistentSearch ps[:changetype[:changesonly[:entrychgcontrols]]]</option></term>
+    <listitem>
+     <para>Use the persistent search control</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>--countEntries</option></term>
+    <listitem>
+     <para>Count the number of entries returned by the server</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-e, --getEffectiveRightsAttribute {attribute}</option></term>
+    <listitem>
+     <para>Specifies geteffectiverights control specific attribute list</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-f, --filename {file}</option></term>
+    <listitem>
+     <para>LDIF file containing the changes to apply</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-g, --getEffectiveRightsAuthzid {authzID}</option></term>
+    <listitem>
+     <para>Use geteffectiverights control with the provided authzid</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-G, --virtualListView {before:after:index:count | before:after:value}</option></term>
+    <listitem>
+     <para>Use the virtual list view control to retrieve the specified results page</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-J, --control {controloid[:criticality[:value|::b64value|:&lt;filePath]]}</option></term>
+    <listitem>
+     <para>Use a request control with the provided information</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-l, --timeLimit {timeLimit}</option></term>
+    <listitem>
+     <para>Maximum length of time in seconds to allow for the search</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>--matchedValuesFilter {filter}</option></term>
+    <listitem>
+     <para>Use the LDAP matched values control with the provided filter</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-n, --dry-run</option></term>
+    <listitem>
+     <para>Show what would be done but do not perform any operation</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-s, --searchScope {searchScope}</option></term>
+    <listitem>
+     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
+     <para>Default value: sub</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-S, --sortOrder {sortOrder}</option></term>
+    <listitem>
+     <para>Sort the results using the provided sort order</para>
+    </listitem>
+   </varlistentry>   
+   <varlistentry>
+    <term><option>--simplePageSize {numEntries}</option></term>
+    <listitem>
+     <para>Use the simple paged results control with the given page size</para>
+     <para>Default value: 1000</para>
+    </listitem>
+   </varlistentry>   
+   <varlistentry>
+    <term><option>-Y, --proxyAs {authzID}</option></term>
+    <listitem>
+     <para>Use the proxied authorization control with the given authorization
+     ID</para>
+    </listitem>
+   </varlistentry>   
+   <varlistentry>
+    <term><option>-z, --sizeLimit {sizeLimit}</option></term>
+    <listitem>
+     <para>Maximum number of entries to return from the search</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>   
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>ldapsearch</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-V, --ldapVersion {version}</option></term>
+     <listitem>
+      <para>LDAP protocol version number</para>
+      <para>Default value: 3</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>-i, --encoding {encoding}</option></term>
+     <listitem>
+      <para>Use the specified character set for command-line input</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-t, --dontWrap</option></term>
+     <listitem><para>Do not wrap long lines</para></listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following example searches for entries with UID containing
+  <literal>jensen</literal>, returning only DNs and uid values.</para>
+  <screen width="80">$ ldapsearch -p 1389 -b dc=example,dc=com "(uid=*jensen*)" uid
+dn: uid=ajensen,ou=People,dc=example,dc=com
+uid: ajensen
+
+dn: uid=bjensen,ou=People,dc=example,dc=com
+uid: bjensen
+
+dn: uid=gjensen,ou=People,dc=example,dc=com
+uid: gjensen
+
+dn: uid=jjensen,ou=People,dc=example,dc=com
+uid: jjensen
+
+dn: uid=kjensen,ou=People,dc=example,dc=com
+uid: kjensen
+
+dn: uid=rjensen,ou=People,dc=example,dc=com
+uid: rjensen
+
+dn: uid=tjensen,ou=People,dc=example,dc=com
+uid: tjensen
+
+
+Result Code:  0 (Success)</screen>
  </refsect1>
 </refentry>
diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-modrate.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-modrate.xml
index 31ce7b4..26da551 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-modrate.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-modrate.xml
@@ -32,75 +32,340 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>modrate</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>modrate</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>measure modification throughput and response time</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>modrate</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
+   <group choice="opt" rep="repeat">
+    <arg>attribute</arg>
+    <arg>:</arg>
+    <arg>value format string</arg>
+   </group>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to measure modify throughput and response time
+  of a directory service using user-defined modifications.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>-A, --asynchronous</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Use asynchronous mode and don't wait for results before sending the
+     next request</para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term><option>-b, --baseDN {baseDN}</option></term>
+    <listitem>
+     <para>Base DN format string</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-c, --numConnections {numConnections}</option></term>
+    <listitem>
+     <para>Number of connections</para>
+     <para>Default value: 1</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-e, --percentile {percentile}</option></term>
+    <listitem>
+     <para>Calculate max response time for a percentile of operations</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-f, --keepConnectionsOpen</option></term>
+    <listitem>
+     <para>Keep connections open</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-F, --noRebind</option></term>
+    <listitem>
+     <para>Keep connections open and don't rebind</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-g, --argument {generator function or static string}</option></term>
+    <listitem>
+     <para>Argument used to evaluate the Java style format strings in program
+     parameters (Base DN, Search Filter). The set of all arguments provided
+     form the the argument list in order. Besides static string arguments, they
+     can be generated per iteration with the following functions:</para>
+    <variablelist>
+     <varlistentry>
+      <term>"inc({filename})"</term>
+      <listitem><para>Consecutive, incremental line from file</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"inc({min},{max})"</term>
+      <listitem><para>Consecutive, incremental number</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"rand({filename})"</term>
+      <listitem><para>Random line from file</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"rand({min},{max})"</term>
+      <listitem><para>Random number</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
+      <listitem><para>Random string of specified length and optionally from
+      characters in the charSet string. A range of character can be specified
+      with [start-end] charSet notation. If no charSet is specified,
+      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
+     </varlistentry>
+    </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-i, --statInterval {statInterval}</option></term>
+    <listitem>
+     <para>Display results each specified number of seconds</para>
+     <para>Default value: 5</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-m, --maxIterations {maxIterations}</option></term>
+    <listitem>
+     <para>Max iterations, 0 for unlimited</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
+    <listitem>
+     <para>Target average throughput to achieve</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-S, --scriptFriendly</option></term>
+    <listitem>
+     <para>Use script-friendly mode</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-t, --numConcurrentTasks {numConcurrentTasks}</option></term>
+    <listitem>
+     <para>Number of concurrent tasks per connection</para>
+     <para>Default value: 1</para>
+    </listitem>
+   </varlistentry>   
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>modrate</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>-V, --version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following example demonstrates testing directory performance by
+  using the modrate command to write random 16-character description values
+  to all entries in a sample file.</para>
+  <screen width="80">$ grep ^uid: /path/to/Example.ldif | sed -e "s/uid: //" &gt; names.txt
+$ modrate -p 1389 -D cn=directory\ manager -w secret12 \
+&gt; -b "uid=%s,ou=people,dc=example,dc=com" -g "rand(names.txt)" \
+&gt;"description:%s" -g "randStr(16)" -A -F -c 4 -t 4
+-----------------------------------------------------------------
+     Throughput                            Response Time         
+   (ops/second)                           (milliseconds)         
+recent  average  recent  average  99.9%  99.99%  99.999%  err/sec
+-----------------------------------------------------------------
+ 399.0    399.0   1.546    1.546  8.917  79.764   79.764      0.0
+ 541.6    470.5   1.109    1.294  8.917  181.808 181.808      0.0
+ 755.2    565.4   0.747    1.050  9.828  181.808 181.808      0.0
+ 786.9    620.8   0.718    0.945  10.175 114.424 181.808      0.0
+1209.3    738.3   0.469    0.789  8.917  114.424 181.808      0.0
+1255.8    824.5   0.474    0.709  8.365  79.764  181.808      0.0
+1359.1    900.8   0.430    0.649  7.610  72.218  181.808      0.0
+1294.5    950.0   0.463    0.618  7.589  81.093  181.808      0.0
+1280.0    986.6   0.471    0.596  7.533  81.093  204.701      0.0
+1301.9   1018.2   0.463    0.579  7.506  81.093  204.701      0.0
+^C</screen>
  </refsect1>
 </refentry>
diff --git a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-searchrate.xml b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-searchrate.xml
index d9e9de2..37a7e4b 100644
--- a/opendj-sdk/opendj3/src/docbkx/dev-guide/man-searchrate.xml
+++ b/opendj-sdk/opendj3/src/docbkx/dev-guide/man-searchrate.xml
@@ -32,75 +32,345 @@
  xmlns:xinclude='http://www.w3.org/2001/XInclude'>
  <refmeta>
   <refentrytitle>searchrate</refentrytitle><manvolnum>1</manvolnum>
+  <refmiscinfo class="software">OpenDJ</refmiscinfo>
+  <refmiscinfo class="version"><?eval ${project.version}?></refmiscinfo>
  </refmeta>
  <refnamediv>
   <refname>searchrate</refname>
-  <refpurpose>TODO one-line description</refpurpose>
+  <refpurpose>measure search throughput and response time</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
    <command>searchrate</command>
-   <command><replaceable>subcommand</replaceable></command>
-   <arg choice="opt">--options</arg>
+   <arg choice="req">options</arg>
+   <arg choice="opt">filter format string</arg>
+   <arg choice="opt" rep="repeat">attributes</arg>
   </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
   <title>Description</title>
-  <para>TODO description.</para>
+  <para>This utility can be used to measure search throughput and response time
+  of a directory service using user-defined searches.</para>
  </refsect1>
  <refsect1>
-  <title>Global Options</title>
-  <para>The following global options are supported.</para>
+  <title>Options</title>
+  <para>The following options are supported.</para>
   <variablelist>
    <varlistentry>
-    <term><option>TODO</option></term>
+    <term><option>-a, --dereferencePolicy {dereferencePolicy}</option></term>
     <listitem>
-     <para>TODO Description.</para>
+     <para>Alias dereference policy ('never', 'always', 'search', or 'find')</para>
+     <para>Default value: never</para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term><option>-A, --asynchronous</option></term>
+    <listitem>
+     <para>Use asynchronous mode and don't wait for results before sending the
+     next request</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-b, --baseDN {baseDN}</option></term>
+    <listitem>
+     <para>Base DN format string</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-c, --numConnections {numConnections}</option></term>
+    <listitem>
+     <para>Number of connections</para>
+     <para>Default value: 1</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-e, --percentile {percentile}</option></term>
+    <listitem>
+     <para>Calculate max response time for a percentile of operations</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-f, --keepConnectionsOpen</option></term>
+    <listitem>
+     <para>Keep connections open</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-F, --noRebind</option></term>
+    <listitem>
+     <para>Keep connections open and don't rebind</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-g, --argument {generator function or static string}</option></term>
+    <listitem>
+     <para>Argument used to evaluate the Java style format strings in program
+     parameters (Base DN, Search Filter). The set of all arguments provided
+     form the the argument list in order. Besides static string arguments, they
+     can be generated per iteration with the following functions:</para>
+    <variablelist>
+     <varlistentry>
+      <term>"inc({filename})"</term>
+      <listitem><para>Consecutive, incremental line from file</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"inc({min},{max})"</term>
+      <listitem><para>Consecutive, incremental number</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"rand({filename})"</term>
+      <listitem><para>Random line from file</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"rand({min},{max})"</term>
+      <listitem><para>Random number</para></listitem>
+     </varlistentry>
+     <varlistentry>
+      <term>"randStr({length},<replaceable>charSet</replaceable>)"</term>
+      <listitem><para>Random string of specified length and optionally from
+      characters in the charSet string. A range of character can be specified
+      with [start-end] charSet notation. If no charSet is specified,
+      the default charSet of [A-Z][a-z][0-9] will be used.</para></listitem>
+     </varlistentry>
+    </variablelist>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-i, --statInterval {statInterval}</option></term>
+    <listitem>
+     <para>Display results each specified number of seconds</para>
+     <para>Default value: 5</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-m, --maxIterations {maxIterations}</option></term>
+    <listitem>
+     <para>Max iterations, 0 for unlimited</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-M, --targetThroughput {targetThroughput}</option></term>
+    <listitem>
+     <para>Target average throughput to achieve</para>
+     <para>Default value: 0</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-s, --searchScope {searchScope}</option></term>
+    <listitem>
+     <para>Search scope ('base', 'one', 'sub', or 'subordinate')</para>
+     <para>Default value: sub</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-S, --scriptFriendly</option></term>
+    <listitem>
+     <para>Use script-friendly mode</para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term><option>-t, --numConcurrentTasks {numConcurrentTasks}</option></term>
+    <listitem>
+     <para>Number of concurrent tasks per connection</para>
+     <para>Default value: 1</para>
+    </listitem>
+   </varlistentry>   
   </variablelist>
- </refsect1>
- <refsect1>
-  <title>Subcommands</title>
-  <para>The following subcommands are supported.</para>
   <refsect2>
-   <para>TODO Description.</para>
-   <cmdsynopsis>
-    <command>searchrate</command>
-    <command>TODO</command>
-    <arg choice="opt">--options</arg>
-   </cmdsynopsis>
+   <title>LDAP Connection Options</title>
    <variablelist>
     <varlistentry>
-     <term><option>TODO</option></term>
+     <term><option>-D, --bindDN {bindDN}</option></term>
      <listitem>
-      <para>TODO description.</para>
+      <para>DN to use to bind to the server</para>
+      <para>Default value: cn=Directory Manager</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-E, --reportAuthzID</option></term>
+     <listitem>
+      <para>Use the authorization identity control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-h, --hostname {host}</option></term>
+     <listitem>
+      <para>Directory server hostname or IP address</para>
+      <para>Default value: localhost.localdomain</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-j, --bindPasswordFile {bindPasswordFile}</option></term>
+     <listitem>
+      <para>Bind password file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-K, --keyStorePath {keyStorePath}</option></term>
+     <listitem>
+      <para> Certificate key store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-N, --certNickname {nickname}</option></term>
+     <listitem>
+      <para>Nickname of certificate for SSL client authentication</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-o, --saslOption {name=value}</option></term>
+     <listitem>
+      <para>SASL bind options</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-p, --port {port}</option></term>
+     <listitem>
+      <para>Directory server port number</para>
+      <para>Default value: 389</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-P, --trustStorePath {trustStorePath}</option></term>
+     <listitem>
+      <para>Certificate trust store path</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-q, --useStartTLS</option></term>
+     <listitem>
+      <para>Use StartTLS to secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-T, --trustStorePassword {trustStorePassword}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-u, --keyStorePasswordFile {keyStorePasswordFile}</option></term>
+     <listitem>
+      <para>Certificate key store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-U, --trustStorePasswordFile {path}</option></term>
+     <listitem>
+      <para>Certificate trust store PIN file</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--usePasswordPolicyControl</option></term>
+     <listitem>
+      <para>Use the password policy request control</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-w, --bindPassword {bindPassword}</option></term>
+     <listitem>
+      <para>Password to use to bind to the server</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-W, --keyStorePassword {keyStorePassword}</option></term>
+     <listitem>
+      <para>Certificate key store PIN</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-X, --trustAll</option></term>
+     <listitem>
+      <para>Trust all server SSL certificates</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-Z, --useSSL</option></term>
+     <listitem>
+      <para>Use SSL for secure communication with the server</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>Utility Input/Output Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>--noPropertiesFile</option></term>
+     <listitem>
+      <para>No properties file will be used to get default command line
+      argument values</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>--propertiesFilePath {propertiesFilePath}</option></term>
+     <listitem>
+      <para>Path to the file containing default property values used for
+      command line arguments</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term><option>-v, --verbose</option></term>
+     <listitem>
+      <para>Use verbose mode</para>
+     </listitem>
+    </varlistentry>
+   </variablelist>
+  </refsect2>
+  <refsect2>
+   <title>General Options</title>
+   <variablelist>
+    <varlistentry>
+     <term><option>-V, --version</option></term>
+     <listitem>
+      <para>Display version information</para>
+     </listitem>
+    </varlistentry>
+     <varlistentry>
+     <term><option>-?, -H, --help</option></term>
+     <listitem>
+      <para>Display usage information</para>
      </listitem>
     </varlistentry>
    </variablelist>
   </refsect2>
  </refsect1>
  <refsect1>
-  <title>Files</title>
-  <para>TODO if command has configuration file.</para>
- </refsect1>
- <refsect1>
-  <title>Environment</title>
-  <para>TODO if command reads environment variables.</para>
- </refsect1>
- <refsect1>
   <title>Exit Codes</title>
    <variablelist>
     <varlistentry>
-     <term>TODO exit code</term>
+     <term>0</term>
      <listitem>
-      <para>TODO description.</para>
+      <para>The command completed successfully.</para>
+     </listitem>
+    </varlistentry>
+    <varlistentry>
+     <term>89</term>
+     <listitem>
+      <para>An error occurred while parsing the command-line arguments.</para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
   <title>Examples</title>
-  <para>TODO</para>
+  <para>The following example demonstrates measuring search performance.</para>
+  <screen width="80">$ grep ^uid: /path/to/Example.ldif | sed -e "s/uid: //" &gt; names.txt
+$ searchrate -p 1389 -b dc=example,dc=com \
+&gt; -g "rand(names.txt)" "(uid=%s)" -A -F -c 4 -t 4
+-------------------------------------------------------------------------------
+     Throughput                            Response Time                       
+   (ops/second)                           (milliseconds)                       
+recent  average  recent  average  99.9%  99.99%  99.999%  err/sec  Entries/Srch
+-------------------------------------------------------------------------------
+1475.9   1475.9   0.423    0.423  6.938  126.236 126.236      0.0           1.0
+2596.5   2038.4   0.254    0.315  6.866  12.980  126.236      0.0           1.0
+3210.7   2428.2   0.205    0.267  5.733  11.710  126.236      0.0           1.0
+3080.5   2591.0   0.215    0.252  5.733  10.541  126.236      0.0           1.0
+3236.9   2720.1   0.203    0.240  5.258  10.514  126.236      0.0           1.0
+3181.1   2796.8   0.207    0.234  5.258  10.384  126.236      0.0           1.0
+3202.5   2854.8   0.206    0.229  4.825  10.384  126.236      0.0           1.0
+^C</screen>
  </refsect1>
 </refentry>

--
Gitblit v1.10.0