You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gm...@apache.org on 2019/03/29 13:59:04 UTC

[qpid-site] branch asf-site updated: Update site contents for Qpid Dispatch Release 1.6.0

This is an automated email from the ASF dual-hosted git repository.

gmurthy pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/qpid-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6072ba1  Update site contents for Qpid Dispatch Release 1.6.0
6072ba1 is described below

commit 6072ba1561941b4ae6ead7845d2fc0bf7b9b6f43
Author: Ganesh Murthy <gm...@redhat.com>
AuthorDate: Fri Mar 29 09:58:19 2019 -0400

    Update site contents for Qpid Dispatch Release 1.6.0
---
 content/components/dispatch-router/index.html      |   14 +-
 content/dashboard.html                             |    2 +-
 content/documentation.html                         |    2 +-
 content/download.html                              |    6 +-
 content/releases/index.html                        |    3 +-
 content/releases/qpid-dispatch-0.6.0/index.html    |    2 +-
 content/releases/qpid-dispatch-0.6.1/index.html    |    2 +-
 content/releases/qpid-dispatch-0.7.0/index.html    |    2 +-
 content/releases/qpid-dispatch-0.8.0/index.html    |    2 +-
 content/releases/qpid-dispatch-0.8.1/index.html    |    2 +-
 content/releases/qpid-dispatch-1.0.0/index.html    |    2 +-
 content/releases/qpid-dispatch-1.0.1/index.html    |    2 +-
 content/releases/qpid-dispatch-1.1.0/index.html    |    2 +-
 content/releases/qpid-dispatch-1.2.0/index.html    |    2 +-
 content/releases/qpid-dispatch-1.3.0/index.html    |    2 +-
 content/releases/qpid-dispatch-1.4.0/index.html    |    2 +-
 content/releases/qpid-dispatch-1.4.1/index.html    |    2 +-
 content/releases/qpid-dispatch-1.5.0/index.html    |    2 +-
 .../index.html                                     |   20 +-
 .../releases/qpid-dispatch-1.6.0/man/qdmanage.html |  390 +
 .../qpid-dispatch-1.6.0/man/qdrouterd.conf.html    | 1648 ++++
 .../man/qdrouterd.html}                            |   96 +-
 .../releases/qpid-dispatch-1.6.0/man/qdstat.html   |  976 +++
 .../qpid-dispatch-1.6.0/release-notes.html         |  204 +
 .../user-guide/_images/01-peer-to-peer.png         |  Bin 0 -> 20101 bytes
 .../user-guide/_images/balanced-routing.png        |  Bin 0 -> 43261 bytes
 .../user-guide/_images/brokered-messaging.png      |  Bin 0 -> 50206 bytes
 .../user-guide/_images/closest-routing.png         |  Bin 0 -> 39803 bytes
 .../user-guide/_images/console1.png                |  Bin 0 -> 40412 bytes
 .../user-guide/_images/console_charts.png          |  Bin 0 -> 70070 bytes
 .../user-guide/_images/console_entity.png          |  Bin 0 -> 69319 bytes
 .../user-guide/_images/console_login.png           |  Bin 0 -> 39915 bytes
 .../user-guide/_images/console_overview.png        |  Bin 0 -> 87960 bytes
 .../user-guide/_images/console_schema.png          |  Bin 0 -> 68025 bytes
 .../user-guide/_images/console_topology.png        |  Bin 0 -> 67338 bytes
 .../user-guide/_images/link-routing.png            |  Bin 0 -> 46968 bytes
 .../user-guide/_images/message-routing.png         |  Bin 0 -> 35861 bytes
 .../user-guide/_images/multicast-routing.png       |  Bin 0 -> 44923 bytes
 .../user-guide/_images/path-redundancy-01.png      |  Bin 0 -> 47995 bytes
 .../user-guide/_images/path-redundancy-02.png      |  Bin 0 -> 42131 bytes
 .../_images/path-redundancy-temp-decoupling-01.png |  Bin 0 -> 47766 bytes
 .../_images/path-redundancy-temp-decoupling-02.png |  Bin 0 -> 49105 bytes
 .../user-guide/_images/sharded-queue-01.png        |  Bin 0 -> 28383 bytes
 .../user-guide/_images/sharded-queue-02.png        |  Bin 0 -> 62233 bytes
 .../qpid-dispatch-1.6.0/user-guide/index.html      | 8262 ++++++++++++++++++++
 content/releases/qpid-dispatch-master/index.html   |    2 +-
 input/_transom_config.py                           |    2 +-
 input/releases/index.md                            |    3 +-
 input/releases/qpid-dispatch-1.6.0/index.md        |   67 +
 .../qpid-dispatch-1.6.0/man/qdmanage.html.in       |  246 +
 .../qpid-dispatch-1.6.0/man/qdrouterd.conf.html.in | 1504 ++++
 .../qpid-dispatch-1.6.0/man/qdrouterd.html.in      |   57 +
 .../qpid-dispatch-1.6.0/man/qdstat.html.in         |  832 ++
 .../releases/qpid-dispatch-1.6.0/release-notes.md  |   74 +
 .../user-guide/_images/01-peer-to-peer.png         |  Bin 0 -> 20101 bytes
 .../user-guide/_images/balanced-routing.png        |  Bin 0 -> 43261 bytes
 .../user-guide/_images/brokered-messaging.png      |  Bin 0 -> 50206 bytes
 .../user-guide/_images/closest-routing.png         |  Bin 0 -> 39803 bytes
 .../user-guide/_images/console1.png                |  Bin 0 -> 40412 bytes
 .../user-guide/_images/console_charts.png          |  Bin 0 -> 70070 bytes
 .../user-guide/_images/console_entity.png          |  Bin 0 -> 69319 bytes
 .../user-guide/_images/console_login.png           |  Bin 0 -> 39915 bytes
 .../user-guide/_images/console_overview.png        |  Bin 0 -> 87960 bytes
 .../user-guide/_images/console_schema.png          |  Bin 0 -> 68025 bytes
 .../user-guide/_images/console_topology.png        |  Bin 0 -> 67338 bytes
 .../user-guide/_images/link-routing.png            |  Bin 0 -> 46968 bytes
 .../user-guide/_images/message-routing.png         |  Bin 0 -> 35861 bytes
 .../user-guide/_images/multicast-routing.png       |  Bin 0 -> 44923 bytes
 .../user-guide/_images/path-redundancy-01.png      |  Bin 0 -> 47995 bytes
 .../user-guide/_images/path-redundancy-02.png      |  Bin 0 -> 42131 bytes
 .../_images/path-redundancy-temp-decoupling-01.png |  Bin 0 -> 47766 bytes
 .../_images/path-redundancy-temp-decoupling-02.png |  Bin 0 -> 49105 bytes
 .../user-guide/_images/sharded-queue-01.png        |  Bin 0 -> 28383 bytes
 .../user-guide/_images/sharded-queue-02.png        |  Bin 0 -> 62233 bytes
 .../qpid-dispatch-1.6.0/user-guide/index.html.in   | 8119 +++++++++++++++++++
 75 files changed, 22479 insertions(+), 76 deletions(-)

diff --git a/content/components/dispatch-router/index.html b/content/components/dispatch-router/index.html
index 6aa3eab..262a0af 100644
--- a/content/components/dispatch-router/index.html
+++ b/content/components/dispatch-router/index.html
@@ -145,8 +145,8 @@ they be clients, brokers or other AMQP-enabled services.  More about
 <div class="column">
 
 <ul>
-<li><a href="/releases/qpid-dispatch-1.5.0/user-guide/index.html">Dispatch router book</a></li>
-<li><a href="https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;a=blob_plain;f=README;hb=1.5.0">Installing Qpid Dispatch</a></li>
+<li><a href="/releases/qpid-dispatch-1.6.0/user-guide/index.html">Dispatch router book</a></li>
+<li><a href="https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;a=blob_plain;f=README;hb=1.6.0">Installing Qpid Dispatch</a></li>
 </ul>
 
 </div>
@@ -154,10 +154,10 @@ they be clients, brokers or other AMQP-enabled services.  More about
 <div class="column">
 
 <ul>
-<li><a href="/releases/qpid-dispatch-1.5.0/man/qdrouterd.html">qdrouterd</a> - Router daemon</li>
-<li><a href="/releases/qpid-dispatch-1.5.0/man/qdrouterd.conf.html">qdrouterd.conf</a> - Daemon configuration</li>
-<li><a href="/releases/qpid-dispatch-1.5.0/man/qdstat.html">qdstat</a> - Get router statistics</li>
-<li><a href="/releases/qpid-dispatch-1.5.0/man/qdmanage.html">qdmanage</a> - Manage the router</li>
+<li><a href="/releases/qpid-dispatch-1.6.0/man/qdrouterd.html">qdrouterd</a> - Router daemon</li>
+<li><a href="/releases/qpid-dispatch-1.6.0/man/qdrouterd.conf.html">qdrouterd.conf</a> - Daemon configuration</li>
+<li><a href="/releases/qpid-dispatch-1.6.0/man/qdstat.html">qdstat</a> - Get router statistics</li>
+<li><a href="/releases/qpid-dispatch-1.6.0/man/qdmanage.html">qdmanage</a> - Manage the router</li>
 </ul>
 
 </div>
@@ -171,7 +171,7 @@ they be clients, brokers or other AMQP-enabled services.  More about
 <h2 id="releases">Releases</h2>
 
 <ul>
-<li><a href="/releases/qpid-dispatch-1.5.0">Qpid Dispatch 1.5.0</a></li>
+<li><a href="/releases/qpid-dispatch-1.6.0">Qpid Dispatch 1.6.0</a></li>
 <li><a href="/releases/index.html#past-releases">Past releases</a></li>
 <li><a href="/releases/qpid-dispatch-master/index.html">Work in progress</a></li>
 </ul>
diff --git a/content/dashboard.html b/content/dashboard.html
index 02a8d3d..36c47cc 100644
--- a/content/dashboard.html
+++ b/content/dashboard.html
@@ -155,7 +155,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 </tr>
 <tr>
   <td><a href="/components/dispatch-router/index.html">Qpid Dispatch</a></td>
-  <td><a href="/releases/qpid-dispatch-1.5.0">1.5.0</a></td>
+  <td><a href="/releases/qpid-dispatch-1.6.0">1.6.0</a></td>
   <td><a href="https://issues.apache.org/jira/projects/DISPATCH">Summary</a> &#x2022; <a href="https://issues.apache.org/jira/issues/?jql=project+%3D+DISPATCH+and+resolution+is+null">Open issues</a> &#x2022; <a href="https://issues.apache.org/jira/issues/?jql=project+%3D+DISPATCH">All issues</a> &#x2022; <a href="https://issues.apache.org/jira/secure/CreateIssue!default.jspa?pid=12315321">Create issue</a></td>
   <td><a href="https://travis-ci.org/apache/qpid-dispatch"><img src="https://travis-ci.org/apache/qpid-dispatch.svg?branch=master" height="20"/></a></td>
   <td><a href="https://gitbox.apache.org/repos/asf/qpid-dispatch.git">Git</a> &#x2022; <a href="https://github.com/apache/qpid-dispatch">GitHub</a></td>
diff --git a/content/documentation.html b/content/documentation.html
index 9071b36..42349f6 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -203,7 +203,7 @@ You can find older versions with our
 
 <ul>
 <li><a href="/components/dispatch-router/index.html">Overview</a></li>
-<li><a href="/releases/qpid-dispatch-1.5.0/user-guide/index.html">Dispatch router book</a></li>
+<li><a href="/releases/qpid-dispatch-1.6.0/user-guide/index.html">Dispatch router book</a></li>
 </ul>
 
 </section>
diff --git a/content/download.html b/content/download.html
index ca047c7..075720d 100644
--- a/content/download.html
+++ b/content/download.html
@@ -204,9 +204,9 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
 </tr>
 <tr>
   <td><a href="/components/dispatch-router/index.html">Dispatch router</a></td>
-  <td>1.5.0</td>
-  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/dispatch/1.5.0/qpid-dispatch-1.5.0.tar.gz">Source</a> (<a href="https://www.apache.org/dist/qpid/dispatch/1.5.0/qpid-dispatch-1.5.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/dispatch/1.5.0/qpid-dispatch-1.5.0.tar.gz.sha512">SHA512</a>)</td>
-  <td><a href="/releases/qpid-dispatch-1.5.0/index.html">Release Page</a></td>
+  <td>1.6.0</td>
+  <td><a href="http://www.apache.org/dyn/closer.lua/qpid/dispatch/1.6.0/qpid-dispatch-1.6.0.tar.gz">Source</a> (<a href="https://www.apache.org/dist/qpid/dispatch/1.6.0/qpid-dispatch-1.6.0.tar.gz.asc">ASC</a>, <a href="https://www.apache.org/dist/qpid/dispatch/1.6.0/qpid-dispatch-1.6.0.tar.gz.sha512">SHA512</a>)</td>
+  <td><a href="/releases/qpid-dispatch-1.6.0/index.html">Release Page</a></td>
 </tr>
 </tbody>
 </table>
diff --git a/content/releases/index.html b/content/releases/index.html
index 10146a9..c456623 100644
--- a/content/releases/index.html
+++ b/content/releases/index.html
@@ -126,10 +126,10 @@ the
 <div class="two-column">
 
 <ul>
+<li><a href="qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a>, March 2019</li>
 <li><a href="qpid-broker-j-7.1.1/index.html">Qpid Broker-J 7.1.1</a>, March 2019</li>
 <li><a href="qpid-broker-j-7.0.7/index.html">Qpid Broker-J 7.0.7</a>, March 2019</li>
 <li><a href="qpid-proton-0.27.0/index.html">Qpid Proton 0.27.0</a>, February 2019</li>
-<li><a href="qpid-dispatch-1.5.0/index.html">Qpid Dispatch 1.5.0</a>, January 2019</li>
 <li><a href="qpid-jms-0.40.0/index.html">Qpid JMS 0.40.0</a>, December 2018</li>
 <li><a href="qpid-proton-j-0.31.0/index.html">Qpid Proton-J 0.31.0</a>, November 2018</li>
 <li><a href="qpid-cpp-1.39.0/index.html">Qpid C++ 1.39.0</a>, October 2018</li>
@@ -145,6 +145,7 @@ the
 <div class="two-column">
 
 <ul>
+<li><a href="qpid-dispatch-1.5.0/index.html">Qpid Dispatch 1.5.0</a>, January 2019</li>
 <li><a href="qpid-broker-j-7.1.0/index.html">Qpid Broker-J 7.1.0</a>, January 2019</li>
 <li><a href="qpid-jms-0.39.0/index.html">Qpid JMS 0.39.0</a>, December 2018</li>
 <li><a href="qpid-jms-0.38.0/index.html">Qpid JMS 0.38.0</a>, November 2018</li>
diff --git a/content/releases/qpid-dispatch-0.6.0/index.html b/content/releases/qpid-dispatch-0.6.0/index.html
index fb70d2d..e9cec7c 100644
--- a/content/releases/qpid-dispatch-0.6.0/index.html
+++ b/content/releases/qpid-dispatch-0.6.0/index.html
@@ -171,7 +171,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.6.0" === "1.5.0") {
+      if ("0.6.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-0.6.1/index.html b/content/releases/qpid-dispatch-0.6.1/index.html
index a5727d6..4db9d9c 100644
--- a/content/releases/qpid-dispatch-0.6.1/index.html
+++ b/content/releases/qpid-dispatch-0.6.1/index.html
@@ -171,7 +171,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.6.1" === "1.5.0") {
+      if ("0.6.1" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-0.7.0/index.html b/content/releases/qpid-dispatch-0.7.0/index.html
index be12ddf..816d4bc 100644
--- a/content/releases/qpid-dispatch-0.7.0/index.html
+++ b/content/releases/qpid-dispatch-0.7.0/index.html
@@ -171,7 +171,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.7.0" === "1.5.0") {
+      if ("0.7.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-0.8.0/index.html b/content/releases/qpid-dispatch-0.8.0/index.html
index d06cd6a..72790e1 100644
--- a/content/releases/qpid-dispatch-0.8.0/index.html
+++ b/content/releases/qpid-dispatch-0.8.0/index.html
@@ -171,7 +171,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.8.0" === "1.5.0") {
+      if ("0.8.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-0.8.1/index.html b/content/releases/qpid-dispatch-0.8.1/index.html
index ef88d01..f222924 100644
--- a/content/releases/qpid-dispatch-0.8.1/index.html
+++ b/content/releases/qpid-dispatch-0.8.1/index.html
@@ -171,7 +171,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("0.8.1" === "1.5.0") {
+      if ("0.8.1" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.0.0/index.html b/content/releases/qpid-dispatch-1.0.0/index.html
index 77c1801..4420c96 100644
--- a/content/releases/qpid-dispatch-1.0.0/index.html
+++ b/content/releases/qpid-dispatch-1.0.0/index.html
@@ -171,7 +171,7 @@ the files you download.</p>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.0.0" === "1.5.0") {
+      if ("1.0.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.0.1/index.html b/content/releases/qpid-dispatch-1.0.1/index.html
index ec2ca7b..ff0674e 100644
--- a/content/releases/qpid-dispatch-1.0.1/index.html
+++ b/content/releases/qpid-dispatch-1.0.1/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.0.1" === "1.5.0") {
+      if ("1.0.1" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.1.0/index.html b/content/releases/qpid-dispatch-1.1.0/index.html
index 7a64c5e..03b8ca8 100644
--- a/content/releases/qpid-dispatch-1.1.0/index.html
+++ b/content/releases/qpid-dispatch-1.1.0/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.1.0" === "1.5.0") {
+      if ("1.1.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.2.0/index.html b/content/releases/qpid-dispatch-1.2.0/index.html
index 2e374d2..c832b48 100644
--- a/content/releases/qpid-dispatch-1.2.0/index.html
+++ b/content/releases/qpid-dispatch-1.2.0/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.2.0" === "1.5.0") {
+      if ("1.2.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.3.0/index.html b/content/releases/qpid-dispatch-1.3.0/index.html
index 719ae4c..86ad41f 100644
--- a/content/releases/qpid-dispatch-1.3.0/index.html
+++ b/content/releases/qpid-dispatch-1.3.0/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.3.0" === "1.5.0") {
+      if ("1.3.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.4.0/index.html b/content/releases/qpid-dispatch-1.4.0/index.html
index 6d12cf9..e8dcba1 100644
--- a/content/releases/qpid-dispatch-1.4.0/index.html
+++ b/content/releases/qpid-dispatch-1.4.0/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.4.0" === "1.5.0") {
+      if ("1.4.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.4.1/index.html b/content/releases/qpid-dispatch-1.4.1/index.html
index 91acc7b..e984e79 100644
--- a/content/releases/qpid-dispatch-1.4.1/index.html
+++ b/content/releases/qpid-dispatch-1.4.1/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.4.1" === "1.5.0") {
+      if ("1.4.1" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.5.0/index.html b/content/releases/qpid-dispatch-1.5.0/index.html
index 131314f..6d58c75 100644
--- a/content/releases/qpid-dispatch-1.5.0/index.html
+++ b/content/releases/qpid-dispatch-1.5.0/index.html
@@ -172,7 +172,7 @@ source</a></li>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.5.0" === "1.5.0") {
+      if ("1.5.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.1.0/index.html b/content/releases/qpid-dispatch-1.6.0/index.html
similarity index 90%
copy from content/releases/qpid-dispatch-1.1.0/index.html
copy to content/releases/qpid-dispatch-1.6.0/index.html
index 7a64c5e..9ab7a01 100644
--- a/content/releases/qpid-dispatch-1.1.0/index.html
+++ b/content/releases/qpid-dispatch-1.6.0/index.html
@@ -21,7 +21,7 @@
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
-    <title>Qpid Dispatch 1.1.0 - Apache Qpid&#8482;</title>
+    <title>Qpid Dispatch 1.6.0 - Apache Qpid&#8482;</title>
     <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
     <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
@@ -111,10 +111,10 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
       </div>
 
       <div id="-middle" class="panel">
-        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li>Qpid Dispatch 1.1.0</li></ul>
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li>Qpid Dispatch 1.6.0</li></ul>
 
         <div id="-middle-content">
-          <h1 id="qpid-dispatch-110">Qpid Dispatch 1.1.0</h1>
+          <h1 id="qpid-dispatch-160">Qpid Dispatch 1.6.0</h1>
 
 <p>Dispatch is a lightweight AMQP message router library. More about
 <a href="/components/dispatch-router/index.html">Qpid
@@ -140,8 +140,8 @@ the files you download.</p>
 <tbody>
 <tr>
   <td>Dispatch router</td>
-  <td><a href="http://archive.apache.org/dist/qpid/dispatch/1.1.0/qpid-dispatch-1.1.0.tar.gz">qpid-dispatch-1.1.0.tar.gz</a></td>
-  <td><a href="https://archive.apache.org/dist/qpid/dispatch/1.1.0/qpid-dispatch-1.1.0.tar.gz.asc">ASC</a>, <a href="https://archive.apache.org/dist/qpid/dispatch/1.1.0/qpid-dispatch-1.1.0.tar.gz.sha512">SHA512</a></td>
+  <td><a href="http://archive.apache.org/dist/qpid/dispatch/1.6.0/qpid-dispatch-1.6.0.tar.gz">qpid-dispatch-1.6.0.tar.gz</a></td>
+  <td><a href="https://archive.apache.org/dist/qpid/dispatch/1.6.0/qpid-dispatch-1.6.0.tar.gz.asc">ASC</a>, <a href="https://archive.apache.org/dist/qpid/dispatch/1.6.0/qpid-dispatch-1.6.0.tar.gz.sha512">SHA512</a></td>
 </tr>
 </tbody>
 </table>
@@ -152,7 +152,7 @@ the files you download.</p>
 
 <ul>
 <li><a href="user-guide/index.html">Using Qpid Dispatch</a></li>
-<li><a href="https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;a=blob_plain;f=README;hb=1.1.0">Installing Qpid Dispatch from
+<li><a href="https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;a=blob_plain;f=README;hb=1.6.0">Installing Qpid Dispatch from
 source</a></li>
 <li><a href="man/qdrouterd.html">qdrouterd</a> - Router daemon</li>
 <li><a href="man/qdrouterd.conf.html">qdrouterd.conf</a> - Daemon configuration</li>
@@ -165,14 +165,14 @@ source</a></li>
 <h2 id="more-information">More information</h2>
 
 <ul>
-<li><a href="http://archive.apache.org/dist/qpid/dispatch/1.1.0">All release artefacts</a></li>
-<li><a href="https://issues.apache.org/jira/issues/?jql=project+%3D+DISPATCH+AND+fixVersion+%3D+%271.1.0%27+AND+resolution+%3D+%27fixed%27+ORDER+BY+priority+DESC">Resolved issues in JIRA</a></li>
-<li><a href="https://gitbox.apache.org/repos/asf/qpid-dispatch.git/tree/refs/tags/1.1.0">Source repository tag</a></li>
+<li><a href="http://archive.apache.org/dist/qpid/dispatch/1.6.0">All release artefacts</a></li>
+<li><a href="https://issues.apache.org/jira/issues/?jql=project+%3D+DISPATCH+AND+fixVersion+%3D+%271.6.0%27+AND+resolution+%3D+%27fixed%27+ORDER+BY+priority+DESC">Resolved issues in JIRA</a></li>
+<li><a href="https://gitbox.apache.org/repos/asf/qpid-dispatch.git/tree/refs/tags/1.6.0">Source repository tag</a></li>
 </ul>
 
 <script type="text/javascript">
   _deferredFunctions.push(function() {
-      if ("1.1.0" === "1.5.0") {
+      if ("1.6.0" === "1.6.0") {
           _modifyCurrentReleaseLinks();
       }
   });
diff --git a/content/releases/qpid-dispatch-1.6.0/man/qdmanage.html b/content/releases/qpid-dispatch-1.6.0/man/qdmanage.html
new file mode 100644
index 0000000..ce4704f
--- /dev/null
+++ b/content/releases/qpid-dispatch-1.6.0/man/qdmanage.html
@@ -0,0 +1,390 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>SYNOPSIS - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://gitbox.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a></li><li>SYNOPSIS</li></ul>
+
+        <div id="-middle-content">
+          <div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><strong>qdmanage</strong> [<em>OPTIONS</em>] <em>OPERATION</em> [<em>ARGUMENTS</em>]</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An AMQP management client for use with the Dispatch router daemon
+(<em>qdrouterd</em>). Sends AMQP management operations requests and prints
+the response in JSON format. This is a generic AMQP management tool
+and can be used with any standard AMQP managed endpoint, not just
+with <em>qdrouterd</em>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>-h, --help
+:   show this help message and exit</p></div>
+<div class="paragraph"><p>--version
+:   Print version and exit.</p></div>
+<div class="paragraph"><p>--type=TYPE
+:   Type of entity to operate on.</p></div>
+<div class="paragraph"><p>--name=NAME
+:   Name of entity to operate on.</p></div>
+<div class="paragraph"><p>--identity=ID
+:   Identity of entity to operate on.</p></div>
+<div class="paragraph"><p>--indent=INDENT
+:   Pretty-printing indent. -1 means don&#8217;t pretty-print</p></div>
+<div class="paragraph"><p>--stdin
+:   Read attributes as JSON map or list of maps from</p></div>
+<div class="paragraph"><p>--body=BODY
+:   JSON value to use as body of a non-standard operation</p></div>
+<div class="paragraph"><p>--properties=PROPERTIES
+:   JSON map to use as properties for a non-standard operation call.</p></div>
+<div class="sect2">
+<h3 id="_connection_options">Connection Options</h3>
+<div class="paragraph"><p>-b URL, --bus=URL
+:   URL of the messaging bus to connect to (default</p></div>
+<div class="paragraph"><p>-r ROUTER-ID, --router=ROUTER-ID
+:   Router to be queried</p></div>
+<div class="paragraph"><p>-t SECS, --timeout=SECS
+:   Maximum time to wait for connection in seconds (default 5)</p></div>
+<div class="paragraph"><p>--ssl-certificate=CERT
+:   Client SSL certificate (PEM Format)</p></div>
+<div class="paragraph"><p>--ssl-key=KEY
+:   Client SSL private key (PEM Format)</p></div>
+<div class="paragraph"><p>--ssl-trustfile=TRUSTED-CA-DB
+:   Trusted Certificate Authority Database file (PEM Format)</p></div>
+<div class="paragraph"><p>--ssl-password=PASSWORD
+:   Certificate password, will be prompted if not specifed.</p></div>
+<div class="paragraph"><p>--ssl-password-file=SSL-PASSWORD-FILE
+:   Certificate password, will be prompted if not specifed.</p></div>
+<div class="paragraph"><p>--sasl-mechanisms=SASL-MECHANISMS
+:   Allowed sasl mechanisms to be supplied during the sasl handshake.</p></div>
+<div class="paragraph"><p>--sasl-username=SASL-USERNAME
+:   User name for SASL plain authentication</p></div>
+<div class="paragraph"><p>--sasl-password=SASL-PASSWORD
+:   Password for SASL plain authentication</p></div>
+<div class="paragraph"><p>--sasl-password-file=SASL-PASSWORD-FILE
+:   Password for SASL plain authentication</p></div>
+<div class="paragraph"><p>--ssl-disable-peer-name-verify
+:   Disables SSL peer name verification. WARNING - This option is insecure and must not be used in production environments</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_operations">OPERATIONS</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<code>query</code> [<em>ATTR</em>&#8230;]
+</dt>
+<dd>
+<p>
+  Print attributes for multiple entities. Prints all entities by default, use
+  --type, --name or --identity options to restrict which entities are printed.
+  Prints the attributes named in the ATTR list, or all attributes if none are
+  listed.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>create</code> [<em>ATTR=VALUE</em>&#8230;]
+</dt>
+<dd>
+<p>
+  Create a new entity with the specified attributes. With the --stdin
+  option, read attributes from stdin. This can be a JSON map of
+  attributes to create a single entity, or a JSON list of maps to create
+  multiple entities.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>read</code>
+</dt>
+<dd>
+<p>
+  Print all of the attributes of a single entity, specified by the --name or
+  --identity options.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>update</code> [<em>ATTR=VALUE</em>&#8230;]
+</dt>
+<dd>
+<p>
+  Update the attributes of an existing entity. If an ATTR name is listed with
+  no =VALUE, that attribute will be deleted from the entity. With the --stdin
+  option, read attributes from stdin. This can be a JSON map of attributes to
+  update a single entity, or a JSON list of maps to update multiple entities.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>delete</code>
+</dt>
+<dd>
+<p>
+  Delete an entity specified by the --name or --identity options.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-types</code> [<em>TYPE</em>]
+</dt>
+<dd>
+<p>
+  List entity types with their base types. With no arguments, list all
+  types.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-operations</code> [<em>TYPE</em>]
+</dt>
+<dd>
+<p>
+  List entity types with their operations. With no arguments, list all
+  types.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-attributes</code> [<em>TYPE</em>]
+</dt>
+<dd>
+<p>
+  List entity types with their attributes. With no arguments, list all
+  types.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-annotations</code> [<em>TYPE</em>]
+</dt>
+<dd>
+<p>
+  List entity types with their annotations. With no arguments, list all
+  types.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-mgmt-nodes</code>
+</dt>
+<dd>
+<p>
+  List all other known management nodes connected to this one.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-json-schema</code> [<em>INDENT</em>]
+</dt>
+<dd>
+<p>
+  Get the router schema in JSON format. Optional integer indent for
+  formatted output.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>get-log</code> [<em>INDENT</em>]
+</dt>
+<dd>
+<p>
+  Get recent log entries from the router.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_files">FILES</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+/usr/local/share/doc/qpid-dispatch/qdrouter.json
+</dt>
+<dd>
+<p>
+  Management schema for <em>qdrouterd</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+/usr/local/share/doc/qpid-dispatch/qdrouter.json.readme.txt
+</dt>
+<dd>
+<p>
+  Explanation of the management schema.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">EXAMPLES</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="title">Show the logging configuration:</div>
+<div class="content">
+<pre><code>qdmanage query --type=log</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Enable debug and higher log messages by default:</div>
+<div class="content">
+<pre><code>qdmanage update name=log/DEFAULT enable=debug+</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Enable trace log messages only for the MESSAGE module, and direct MESSAGE logs to the file <em>test.log</em>:</div>
+<div class="content">
+<pre><code>qdmanage update name=log/MESSAGE enable=trace output=test.log</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Set MESSAGE logging back to the default:</div>
+<div class="content">
+<pre><code>qdmanage update name=log/MESSAGE enable=default</code></pre>
+</div></div>
+<div class="listingblock">
+<div class="title">Disable MESSAGE logging:</div>
+<div class="content">
+<pre><code>qdmanage update name=log/MESSAGE enable=none</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><em>qdrouterd(8)</em>, <em>qdstat(8)</em>, <em>qdrouterd.conf(5)</em></p></div>
+<div class="paragraph"><p><a href="http://qpid.apache.org/components/dispatch-router">http://qpid.apache.org/components/dispatch-router</a></p></div>
+</div>
+</div>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/content/releases/qpid-dispatch-1.6.0/man/qdrouterd.conf.html b/content/releases/qpid-dispatch-1.6.0/man/qdrouterd.conf.html
new file mode 100644
index 0000000..bd12657
--- /dev/null
+++ b/content/releases/qpid-dispatch-1.6.0/man/qdrouterd.conf.html
@@ -0,0 +1,1648 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>SYNOPSIS - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://gitbox.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a></li><li>SYNOPSIS</li></ul>
+
+        <div id="-middle-content">
+          <div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Provides the initial configuration when <em>qdrouterd(8)</em> starts. The configuration
+of a running router can be modified using <em>qdmanage(8)</em>.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The configuration file is made up of sections with this syntax:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>sectionName {
+    attributeName: attributeValue
+    attributeName: attributeValue
+    ...
+}</code></pre>
+</div></div>
+<div class="paragraph"><p>For example you can define a router using the <em>router</em> section</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>router {
+    mode: standalone
+    id: Router.A
+    ...
+}</code></pre>
+</div></div>
+<div class="paragraph"><p>or define a listener using the <em>listener</em> section</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>listener {
+    host: 0.0.0.0
+    port: 20102
+    saslMechanisms: ANONYMOUS
+    ...
+}</code></pre>
+</div></div>
+<div class="paragraph"><p>or define a connector using the <em>connector</em> section</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>connector {
+    role: inter-router
+    host: 0.0.0.0
+    port: 20003
+    saslMechanisms: ANONYMOUS
+    ...
+}</code></pre>
+</div></div>
+<div class="paragraph"><p>An <em>sslProfile</em> section with SSL credentials can be included in multiple <em>listener</em> or <em>connector</em> entities. Here&#8217;s an example, note
+how the <em>sslProfile</em> attribute of <em>listener</em> sections references the <em>name</em>
+attribute of <em>sslProfile</em> sections.</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>sslProfile {
+    name: my-ssl
+    caCertFile: ca-certificate-1.pem
+    certFile: server-certificate-1.pem
+    privateKeyFile: server-private-key.pem
+}
+
+listener {
+    sslProfile: my-ssl
+    host: 0.0.0.0
+    port: 20102
+    saslMechanisms: ANONYMOUS
+}</code></pre>
+</div></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration_sections">Configuration Sections</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_router">router</h3>
+<div class="paragraph"><p>Tracks peer routers and computes routes to destinations. This entity is mandatory. The router will not start without this entity.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>id</em> (string)
+</dt>
+<dd>
+<p>
+  Router&#8217;s unique identity. If not specified, a random identity will be assigned at startup.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>mode</em> (One of [<em>standalone</em>, <em>interior</em>, <em>edge</em>], default=<em>standalone</em>)
+</dt>
+<dd>
+<p>
+  In standalone mode, the router operates as a single component.  It does not participate in the routing protocol and therefore will not cooperate with other routers. In interior mode, the router operates in cooperation with other interior routers in an interconnected network.  In edge mode, the router can make a connection to an interior router and join a network without causing that network to recompute paths.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>helloIntervalSeconds</em> (integer, default=<em>1</em>)
+</dt>
+<dd>
+<p>
+  Interval in seconds between HELLO messages sent to neighbor routers.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>helloMaxAgeSeconds</em> (integer, default=<em>3</em>)
+</dt>
+<dd>
+<p>
+  Time in seconds after which a neighbor is declared lost if no HELLO is received.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>raIntervalSeconds</em> (integer, default=<em>30</em>)
+</dt>
+<dd>
+<p>
+  Interval in seconds between Router-Advertisements sent to all routers in a stable network.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>raIntervalFluxSeconds</em> (integer, default=<em>4</em>)
+</dt>
+<dd>
+<p>
+  Interval in seconds between Router-Advertisements sent to all routers during topology fluctuations.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>remoteLsMaxAgeSeconds</em> (integer, default=<em>60</em>)
+</dt>
+<dd>
+<p>
+  Time in seconds after which link state is declared stale if no RA is received.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>workerThreads</em> (integer, default=<em>4</em>)
+</dt>
+<dd>
+<p>
+  The number of threads that will be created to process message traffic and other application work (timers, non-amqp file descriptors, etc.) .
+</p>
+</dd>
+<dt class="hdlist1">
+<em>debugDumpFile</em> (path)
+</dt>
+<dd>
+<p>
+  The absolute path to the location for the debug dump file. The router writes debug-level information to this file if the logger is not available.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslConfigDir</em> (path)
+</dt>
+<dd>
+<p>
+  Absolute path to the SASL configuration file.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslConfigName</em> (string, default=<em>qdrouterd</em>)
+</dt>
+<dd>
+<p>
+  Name of the SASL configuration.  This string + <em>.conf</em> is the name of the configuration file.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowResumableLinkRoute</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Whether links can be routed where timeout is non-zero or expiry-policy is not link-detach
+</p>
+</dd>
+<dt class="hdlist1">
+<em>timestampsInUTC</em> (boolean)
+</dt>
+<dd>
+<p>
+  Use UTC time rather than localtime in logs.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>timestampFormat</em> (string)
+</dt>
+<dd>
+<p>
+  Format string to use for timestamps in logs.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowUnsettledMulticast</em> (boolean)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) If true, allow senders to send unsettled deliveries to multicast addresses.  These deliveries shall be settled by the ingress router.  If false, unsettled deliveries to multicast addresses shall be rejected.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>defaultDistribution</em> (One of [<em>multicast</em>, <em>closest</em>, <em>balanced</em>, <em>unavailable</em>], default=<em>balanced</em>)
+</dt>
+<dd>
+<p>
+  Default forwarding treatment for any address without a specified treatment. multicast - one copy of each message delivered to all subscribers; closest - messages delivered to only the closest subscriber; balanced - messages delivered to one subscriber with load balanced across subscribers; unavailable - this address is unavailable, link attaches to an address of unavilable distribution will be rejected.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>helloInterval</em> (integer, default=<em>1</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Interval in seconds between HELLO messages sent to neighbor routers. This attribute has been deprecated. Use helloIntervalSeconds instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>helloMaxAge</em> (integer, default=<em>3</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Time in seconds after which a neighbor is declared lost if no HELLO is received. This attribute has been deprecated. Use helloMaxAgeSeconds instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>raInterval</em> (integer, default=<em>30</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Interval in seconds between Router-Advertisements sent to all routers in a stable network. This attribute has been deprecated. Use raIntervalSeconds instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>raIntervalFlux</em> (integer, default=<em>4</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Interval in seconds between Router-Advertisements sent to all routers during topology fluctuations. This attribute has been deprecated. Use raIntervalFluxSeconds instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>remoteLsMaxAge</em> (integer, default=<em>60</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Time in seconds after which link state is declared stale if no RA is received. This attribute has been deprecated. Use remoteLsMaxAgeSeconds instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>debugDump</em> (path)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The absolute path to the location for the debug dump file. The router writes debug-level information to this file if the logger is not available. This attribute has been deprecated. Use debugDumpFile instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslConfigPath</em> (path)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Absolute path to the SASL configuration file. This attribute has been deprecated. Use saslConfigDir instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_sslprofile">sslProfile</h3>
+<div class="paragraph"><p>Attributes for setting TLS/SSL configuration for connections.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>ciphers</em> (string)
+</dt>
+<dd>
+<p>
+  Specifies the enabled ciphers so the SSL Ciphers can be hardened. In other words, use this field to disable weak ciphers. The ciphers are specified in the format understood by the OpenSSL library. For example, ciphers can be set to ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;&#8201;&#8212;&#8201;The full list of allowed ciphers can be viewed using the openssl ciphers command
+</p>
+</dd>
+<dt class="hdlist1">
+<em>protocols</em> (string)
+</dt>
+<dd>
+<p>
+  The TLS protocols that this sslProfile can use. You can specify a list of one or more of TLSv1, TLSv1.1, or TLSv1.2. To specify multiple protocols, separate the protocols with a space. For example, to permit the sslProfile to use TLS v1.1 and TLS v1.2 only, you would set the value to TLSv1.1 TLSv1.2. If you do not specify a value, the sslProfile uses the TLS protocol specified by the system-wide configuration.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>caCertFile</em> (path)
+</dt>
+<dd>
+<p>
+  The absolute path to the database that contains the public certificates of trusted certificate authorities (CA).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>certFile</em> (path)
+</dt>
+<dd>
+<p>
+  The absolute path to the file containing the PEM-formatted public certificate to be used on the local end of any connections using this profile.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>privateKeyFile</em> (path)
+</dt>
+<dd>
+<p>
+  The absolute path to the file containing the PEM-formatted private key for the above certificate.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>passwordFile</em> (path)
+</dt>
+<dd>
+<p>
+  If the above private key is password protected, this is the absolute path to a file containing the password that unlocks the certificate key. This file should be permission protected to limit access
+</p>
+</dd>
+<dt class="hdlist1">
+<em>password</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) An alternative to storing the password in a file referenced by passwordFile is to supply the password right here in the configuration file.  This takes precedence over the passwordFile if both are specified. This attribute has been deprecated because it is unsafe to store plain text passwords in config files. Use the passwordFile instead
+</p>
+</dd>
+<dt class="hdlist1">
+<em>uidFormat</em> (string)
+</dt>
+<dd>
+<p>
+  A list of x509 client certificate fields that will be used to build a string that will uniquely identify the client certificate owner. For e.g. a value of <em>cou</em> indicates that the uid will consist of c - common name concatenated with o - organization-company name concatenated with u - organization unit; or a value of <em>o2</em> indicates that the uid will consist of o (organization name) concatenated with 2 (the sha256 fingerprint of the entire certificate) . Allowed values can [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>uidNameMappingFile</em> (string)
+</dt>
+<dd>
+<p>
+  The absolute path to the file containing the unique id to display name mapping
+</p>
+</dd>
+<dt class="hdlist1">
+<em>certDb</em> (path)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The absolute path to the database that contains the public certificates of trusted certificate authorities (CA). This attribute has been deprecated. Use caCertFile instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>keyFile</em> (path)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The absolute path to the file containing the PEM-formatted private key for the above certificate. This attribute has been deprecated. Use privateKeyFile instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>displayNameFile</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The absolute path to the file containing the unique id to display name mapping This attribute has been deprecated. Use uidNameMappingFile instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_authserviceplugin">authServicePlugin</h3>
+<div class="paragraph"><p>EXPERIMENTAL. Attributes for setting SASL plugin.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>authService</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Address of a service to delegate authentication to. This attribute has been deprecated. Use the host and port attributes instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>host</em> (string)
+</dt>
+<dd>
+<p>
+  A host name, IPV4 or IPV6 literal, of the service to delegate to.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>port</em> (string, default=<em>amqp</em>)
+</dt>
+<dd>
+<p>
+  Port number of the service delegated host.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>realm</em> (string)
+</dt>
+<dd>
+<p>
+  Value to set for hostname field on sasl-init
+</p>
+</dd>
+<dt class="hdlist1">
+<em>sslProfile</em> (string)
+</dt>
+<dd>
+<p>
+  Name of the sslProfile to use for the authentication service.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslInitHostname</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Value to set for hostname field on sasl-init This attribute has been deprecated. Use realm instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>authSslProfile</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Name of the sslProfile to use for the authentication service. This attribute has been deprecated. Use sslProfile instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_listener">listener</h3>
+<div class="paragraph"><p>Listens for incoming connections to the router.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>host</em> (string)
+</dt>
+<dd>
+<p>
+  A host name, IPV4 or IPV6 literal, or the empty string. The empty string listens on all local addresses. A host name listens on all addresses associated with the name. An IPV6 literal address (or wildcard <em>[::]</em>) listens only for IPV6. An IPV4 literal address (or wildcard <em>0.0.0.0</em>) listens only for IPV4.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>port</em> (string, default=<em>amqp</em>)
+</dt>
+<dd>
+<p>
+  Port number or symbolic service name.  If <em>0</em>, the router shall assign an ephemeral port to the listener and log the port number with a log of the form <em>SERVER (notice) Listening on &lt;host&gt;:&lt;assigned-port&gt; (&lt;listener-name&gt;)</em>
+</p>
+</dd>
+<dt class="hdlist1">
+<em>socketAddressFamily</em> (One of [<em>IPv4</em>, <em>IPv6</em>])
+</dt>
+<dd>
+<p>
+  [<em>IPv4</em>, <em>IPv6</em>] IPv4: Internet Protocol version 4; IPv6: Internet Protocol version 6.  If not specified, the protocol family will be automatically determined from the address.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>role</em> (One of [<em>normal</em>, <em>inter-router</em>, <em>route-container</em>, <em>edge</em>], default=<em>normal</em>)
+</dt>
+<dd>
+<p>
+  The role of an established connection. In the normal role, the connection is assumed to be used for AMQP clients that are doing normal message delivery over the connection.  In the inter-router role, the connection is assumed to be to another router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections. route-container role can be used for router-container connections, for example, a router-broker connection.  In the edge role, the [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>cost</em> (integer, default=<em>1</em>)
+</dt>
+<dd>
+<p>
+  For the <em>inter-router</em> role only.  This value assigns a cost metric to the inter-router connection.  The default (and minimum) value is one.  Higher values represent higher costs.  The cost is used to influence the routing algorithm as it attempts to use the path with the lowest total cost from ingress to egress.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>sslProfile</em> (string)
+</dt>
+<dd>
+<p>
+  Name of the sslProfile.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslMechanisms</em> (string)
+</dt>
+<dd>
+<p>
+  Space separated list of accepted SASL authentication mechanisms.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>authenticatePeer</em> (boolean)
+</dt>
+<dd>
+<p>
+  yes: Require the peer&#8217;s identity to be authenticated; no: Do not require any authentication.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslPlugin</em> (string)
+</dt>
+<dd>
+<p>
+  EXPERIMENTAL. Name of the a sasl plugin configuration section to use for this listener (e.g. authServicePlugin).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>requireEncryption</em> (boolean)
+</dt>
+<dd>
+<p>
+  yes: Require the connection to the peer to be encrypted; no: Permit non-encrypted communication with the peer
+</p>
+</dd>
+<dt class="hdlist1">
+<em>requireSsl</em> (boolean)
+</dt>
+<dd>
+<p>
+  yes: Require the use of SSL or TLS on the connection; no: Allow clients to connect without SSL or TLS.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>trustedCertsFile</em> (path)
+</dt>
+<dd>
+<p>
+  This optional setting can be used to reduce the set of available CAs for client authentication.  If used, this setting must provide the absolute path to a PEM file that contains the trusted certificates.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxFrameSize</em> (integer, default=<em>16384</em>)
+</dt>
+<dd>
+<p>
+  The maximum frame size in octets that will be used in the connection-open negotiation with a connected peer.  The frame size is the largest contiguous set of uninterrupted data that can be sent for a message delivery over the connection. Interleaving of messages on different links is done at frame granularity. Policy settings, if specified, will overwrite this value. Defaults to 16384.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSessions</em> (integer, default=<em>32768</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of sessions that can be simultaneously active on the connection. Setting this value to zero selects the default number of sessions. Policy settings, if specified, will overwrite this value. Defaults to 32768.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSessionFrames</em> (integer)
+</dt>
+<dd>
+<p>
+  Session incoming window measured in transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. Setting this value to zero selects the default session window size. Policy settings, if specified, will overwrite this value. The numerical product of maxFrameSize and maxSessionFrames may not exceed 2<sup>31-1. If (maxFrameSize x maxSessionFrames) exceeds 2</sup>31-1 then maxSessionFrames i [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>idleTimeoutSeconds</em> (integer, default=<em>16</em>)
+</dt>
+<dd>
+<p>
+  The idle timeout, in seconds, for connections through this listener.  If no frames are received on the connection for this time interval, the connection shall be closed.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>initialHandshakeTimeoutSeconds</em> (integer)
+</dt>
+<dd>
+<p>
+  The timeout, in seconds, for the initial handshake for connections coming in through listeners.  If the time interval expires before the peer sends the AMQP OPEN frame, the connection shall be closed.  A value of zero (the default) disables this timeout.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>stripAnnotations</em> (One of [<em>in</em>, <em>out</em>, <em>both</em>, <em>no</em>], default=<em>both</em>)
+</dt>
+<dd>
+<p>
+  [<em>in</em>, <em>out</em>, <em>both</em>, <em>no</em>] in: Strip the dispatch router specific annotations only on ingress; out: Strip the dispatch router specific annotations only on egress; both: Strip the dispatch router specific annotations on both ingress and egress; no - do not strip dispatch router specific annotations
+</p>
+</dd>
+<dt class="hdlist1">
+<em>linkCapacity</em> (integer)
+</dt>
+<dd>
+<p>
+  The capacity of links within this connection, in terms of message deliveries.  The capacity is the number of messages that can be in-flight concurrently for each link.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>multiTenant</em> (boolean)
+</dt>
+<dd>
+<p>
+  If true, apply multi-tenancy to endpoints connected at this listener.  The address space is defined by the virtual host (hostname field in the Open).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>failoverUrls</em> (string)
+</dt>
+<dd>
+<p>
+  A comma-separated list of failover urls to be supplied to connected clients.  Form: [(amqp|amqps|ws|wss)://]host_or_ip[:port]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>healthz</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Provide a simple HTTP based liveness test (using path /healthz). Assumes listener is enabled for http.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>metrics</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Export metrics in prometheus text format for the router (using path /metrics). Assumes listener is enabled for http.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>websockets</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  For an http enabled listener, determines whether websockets access is enabled (true by default).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>http</em> (boolean)
+</dt>
+<dd>
+<p>
+  Accept HTTP connections that can upgrade to AMQP over WebSocket. Plain AMQP connections are not accepted on this listener.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>httpRootDir</em> (path)
+</dt>
+<dd>
+<p>
+  Absolute path to a directory from which to serve static HTML files. For example, /usr/share/qpid-dispatch/console.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>messageLoggingComponents</em> (string, default=<em>none</em>)
+</dt>
+<dd>
+<p>
+  A comma separated list that indicates which components of the message should be logged. Defaults to <em>none</em> (log nothing). If you want all properties and application properties of the message logged use <em>all</em>. Specific components of the message can be logged by indicating the components via a comma separated list. The components are message-id, user-id, to, subject, reply-to, correlation-id, content-type, content-encoding, absolute-expiry-time, creation-time, group-id, gro [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>protocolFamily</em> (One of [<em>IPv4</em>, <em>IPv6</em>])
+</dt>
+<dd>
+<p>
+  (DEPRECATED) [<em>IPv4</em>, <em>IPv6</em>] IPv4: Internet Protocol version 4; IPv6: Internet Protocol version 6.  If not specified, the protocol family will be automatically determined from the address. This attribute has been deprecated. Use socketAddressFamily instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>trustedCerts</em> (path)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) This optional setting can be used to reduce the set of available CAs for client authentication.  If used, this setting must provide the absolute path to a PEM file that contains the trusted certificates. This attribute has been deprecated. Use trustedCertsFile instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>failoverList</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) A comma-separated list of failover urls to be supplied to connected clients.  Form: [(amqp|amqps|ws|wss)://]host_or_ip[:port] This attribute has been deprecated. Use failoverUrls instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>httpRoot</em> (path)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Absolute path to a directory from which to serve static HTML files. For example, /usr/share/qpid-dispatch/console. This attribute has been deprecated. Use httpRootDir instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>logMessage</em> (string, default=<em>none</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) A comma separated list that indicates which components of the message should be logged. Defaults to <em>none</em> (log nothing). If you want all properties and application properties of the message logged use <em>all</em>. Specific components of the message can be logged by indicating the components via a comma separated list. The components are message-id, user-id, to, subject, reply-to, correlation-id, content-type, content-encoding, absolute-expiry-time, creation-time,  [...]
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_connector">connector</h3>
+<div class="paragraph"><p>Establishes an outgoing connection from the router.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>host</em> (string, default=<em>127.0.0.1</em>)
+</dt>
+<dd>
+<p>
+  IP address: ipv4 or ipv6 literal or a host name
+</p>
+</dd>
+<dt class="hdlist1">
+<em>port</em> (string, default=<em>amqp</em>)
+</dt>
+<dd>
+<p>
+  Port number or symbolic service name.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>protocolFamily</em> (One of [<em>IPv4</em>, <em>IPv6</em>])
+</dt>
+<dd>
+<p>
+  [<em>IPv4</em>, <em>IPv6</em>] IPv4: Internet Protocol version 4; IPv6: Internet Protocol version 6.  If not specified, the protocol family will be automatically determined from the address.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>role</em> (One of [<em>normal</em>, <em>inter-router</em>, <em>route-container</em>, <em>edge</em>], default=<em>normal</em>)
+</dt>
+<dd>
+<p>
+  The role of an established connection. In the normal role, the connection is assumed to be used for AMQP clients that are doing normal message delivery over the connection.  In the inter-router role, the connection is assumed to be to another router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections. route-container role can be used for router-container connections, for example, a router-broker connection.  In the edge role, the [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>cost</em> (integer, default=<em>1</em>)
+</dt>
+<dd>
+<p>
+  For the <em>inter-router</em> role only.  This value assigns a cost metric to the inter-router connection.  The default (and minimum) value is one.  Higher values represent higher costs.  The cost is used to influence the routing algorithm as it attempts to use the path with the lowest total cost from ingress to egress.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>sslProfile</em> (string)
+</dt>
+<dd>
+<p>
+  Name of the sslProfile.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslMechanisms</em> (string)
+</dt>
+<dd>
+<p>
+  Space separated list of accepted SASL authentication mechanisms.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowRedirect</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Allow the peer to redirect this connection to another address.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxFrameSize</em> (integer, default=<em>16384</em>)
+</dt>
+<dd>
+<p>
+  The maximum frame size in octets that will be used in the connection-open negotiation with a connected peer.  The frame size is the largest contiguous set of uninterrupted data that can be sent for a message delivery over the connection. Interleaving of messages on different links is done at frame granularity. Policy settings will not overwrite this value. Defaults to 16384.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSessions</em> (integer, default=<em>32768</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of sessions that can be simultaneously active on the connection. Setting this value to zero selects the default number of sessions. Policy settings will not overwrite this value. Defaults to 32768.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSessionFrames</em> (integer)
+</dt>
+<dd>
+<p>
+  Session incoming window measured in transfer frames for sessions created on this connection. This is the number of transfer frames that may simultaneously be in flight for all links in the session. Setting this value to zero selects the default session window size. Policy settings will not overwrite this value. The numerical product of maxFrameSize and maxSessionFrames may not exceed 2<sup>31-1. If (maxFrameSize x maxSessionFrames) exceeds 2</sup>31-1 then maxSessionFrames is reduced t [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>idleTimeoutSeconds</em> (integer, default=<em>16</em>)
+</dt>
+<dd>
+<p>
+  The idle timeout, in seconds, for connections through this connector.  If no frames are received on the connection for this time interval, the connection shall be closed.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>stripAnnotations</em> (One of [<em>in</em>, <em>out</em>, <em>both</em>, <em>no</em>], default=<em>both</em>)
+</dt>
+<dd>
+<p>
+  [<em>in</em>, <em>out</em>, <em>both</em>, <em>no</em>] in: Strip the dispatch router specific annotations only on ingress; out: Strip the dispatch router specific annotations only on egress; both: Strip the dispatch router specific annotations on both ingress and egress; no - do not strip dispatch router specific annotations
+</p>
+</dd>
+<dt class="hdlist1">
+<em>linkCapacity</em> (integer)
+</dt>
+<dd>
+<p>
+  The capacity of links within this connection, in terms of message deliveries.  The capacity is the number of messages that can be in-flight concurrently for each link.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>verifyHostname</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  yes: Ensures that when initiating a connection (as a client) the host name in the URL to which this connector connects to matches the host name in the digital certificate that the peer sends back as part of the SSL connection; no: Does not perform host name verification
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslUsername</em> (string)
+</dt>
+<dd>
+<p>
+  The user name that the connector is using to connect to a peer.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>saslPassword</em> (string)
+</dt>
+<dd>
+<p>
+  The password that the connector is using to connect to a peer.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>messageLoggingComponents</em> (string, default=<em>none</em>)
+</dt>
+<dd>
+<p>
+  A comma separated list that indicates which components of the message should be logged (no spaces allowed between list components). Defaults to <em>none</em> (log nothing). If you want all properties and application properties of the message logged use <em>all</em>. Specific components of the message can be logged by indicating the components via a comma separated list. The components are message-id, user-id, to, subject, reply-to, correlation-id, content-type, content-encoding, absolu [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>policyVhost</em> (string)
+</dt>
+<dd>
+<p>
+  A connector may optionally define a policy to restrict the remote container to access only specific resources. This attribute defines the name of the policy vhost for this connector. Within the vhost the connector will use the vhost policy settings from user group <em>$connector</em>. If the vhost policy is absent or if the user group <em>$connector</em> within that policy is absent then the connector will fail to start.  In policy specified via connector attribute <em>policyVhost</em> [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>verifyHostName</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) yes: Ensures that when initiating a connection (as a client) the host name in the URL to which this connector connects to matches the host name in the digital certificate that the peer sends back as part of the SSL connection; no: Does not perform host name verification This attribute has been deprecated. Use verifyHostname instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>logMessage</em> (string, default=<em>none</em>)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) A comma separated list that indicates which components of the message should be logged (no spaces allowed between list components). Defaults to <em>none</em> (log nothing). If you want all properties and application properties of the message logged use <em>all</em>. Specific components of the message can be logged by indicating the components via a comma separated list. The components are message-id, user-id, to, subject, reply-to, correlation-id, content-type, content-enc [...]
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_log">log</h3>
+<div class="paragraph"><p>Configure logging for a particular module. You can use the <code>UPDATE</code> operation to change log settings while the router is running.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>module</em> (One of [<em>ROUTER</em>, <em>ROUTER_CORE</em>, <em>ROUTER_HELLO</em>, <em>ROUTER_LS</em>, <em>ROUTER_MA</em>, <em>MESSAGE</em>, <em>SERVER</em>, <em>AGENT</em>, <em>AUTHSERVICE</em>, <em>CONTAINER</em>, <em>ERROR</em>, <em>POLICY</em>, <em>HTTP</em>, <em>CONN_MGR</em>, <em>PYTHON</em>, <em>DEFAULT</em>], required)
+</dt>
+<dd>
+<p>
+  Module to configure. The special module <em>DEFAULT</em> specifies defaults for all modules.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>enable</em> (string)
+</dt>
+<dd>
+<p>
+  Levels are: trace, debug, info, notice, warning, error, critical. The enable string is a comma-separated list of levels. A level may have a trailing <em>+</em> to enable that level and above. For example <em>trace,debug,warning+</em> means enable trace, debug, warning, error and critical. The value <em>none</em> means disable logging for the module.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>includeTimestamp</em> (boolean)
+</dt>
+<dd>
+<p>
+  Include timestamp in log messages.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>includeSource</em> (boolean)
+</dt>
+<dd>
+<p>
+  Include source file and line number in log messages.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>outputFile</em> (string)
+</dt>
+<dd>
+<p>
+  Where to send log messages. Can be <em>stderr</em>, <em>stdout</em>, <em>syslog</em> or a file name.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>timestamp</em> (boolean)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Include timestamp in log messages. This attribute has been deprecated. Use includeTimestamp instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>source</em> (boolean)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Include source file and line number in log messages. This attribute has been deprecated. Use includeSource instead.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>output</em> (string)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) Where to send log messages. Can be <em>stderr</em>, <em>stdout</em>, <em>syslog</em> or a file name. This attribute has been deprecated. Use outputFile instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_address">address</h3>
+<div class="paragraph"><p>Entity type for address configuration.  This is used to configure the treatment of message-routed deliveries within a particular address-space.  The configuration controls distribution and address phasing.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>prefix</em> (string)
+</dt>
+<dd>
+<p>
+  The address prefix for the configured settings. Cannot be used with a pattern attribute.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>pattern</em> (string)
+</dt>
+<dd>
+<p>
+  A wildcarded pattern for address matching. Incoming addresses are matched against this pattern. Matching addresses use the configured settings. The pattern consists of one or more tokens separated by a forward slash <em>/</em>. A token can be one of the following: a * character, a # character, or a sequence of characters that do not include /, *, or #.  The * token matches any single token.  The # token matches zero or more tokens. * has higher precedence than #, and exact match has th [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>distribution</em> (One of [<em>multicast</em>, <em>closest</em>, <em>balanced</em>, <em>unavailable</em>], default=<em>balanced</em>)
+</dt>
+<dd>
+<p>
+  Treatment of traffic associated with the address
+</p>
+</dd>
+<dt class="hdlist1">
+<em>waypoint</em> (boolean)
+</dt>
+<dd>
+<p>
+  Designates this address space as being used for waypoints.  This will cause the proper address-phasing to be used.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>ingressPhase</em> (integer)
+</dt>
+<dd>
+<p>
+  Advanced - Override the ingress phase for this address
+</p>
+</dd>
+<dt class="hdlist1">
+<em>egressPhase</em> (integer)
+</dt>
+<dd>
+<p>
+  Advanced - Override the egress phase for this address
+</p>
+</dd>
+<dt class="hdlist1">
+<em>priority</em> (integer)
+</dt>
+<dd>
+<p>
+  All messages sent to this address which lack an intrinsic priority will be assigned this priority.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_linkroute">linkRoute</h3>
+<div class="paragraph"><p>Entity type for link-route configuration.  This is used to identify remote containers that shall be destinations for routed link-attaches.  The link-routing configuration applies to an addressing space defined by a prefix or a pattern.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>prefix</em> (string)
+</dt>
+<dd>
+<p>
+  The address prefix for the configured settings. Cannot be used with the pattern attribute.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>pattern</em> (string)
+</dt>
+<dd>
+<p>
+  A wildcarded pattern for address matching. Link addresses are matched against this pattern. Matching addresses use the configured settings. The pattern consists of one or more tokens separated by a forward slash <em>/</em>. A token can be one of the following: a * character, a # character, or a sequence of characters that do not include /, *, or #.  The * token matches any single token.  The # token matches zero or more tokens. * has higher precedence than #, and exact match has the hi [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>addExternalPrefix</em> (string)
+</dt>
+<dd>
+<p>
+  add the specified prefix to the address of the remote terminus on the route container link
+</p>
+</dd>
+<dt class="hdlist1">
+<em>delExternalPrefix</em> (string)
+</dt>
+<dd>
+<p>
+  remove the specified prefix to the address of the remote terminus on the route container link
+</p>
+</dd>
+<dt class="hdlist1">
+<em>containerId</em> (string)
+</dt>
+<dd>
+<p>
+  ContainerID for the target container. Only one of containerId or connection should be specified for a linkRoute. Specifying both will result in the linkRoute not being created.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>connection</em> (string)
+</dt>
+<dd>
+<p>
+  The name from a connector or listener. Only one of containerId or connection should be specified for a linkRoute. Specifying both will result in the linkRoute not being created.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>distribution</em> (One of [<em>linkBalanced</em>], default=<em>linkBalanced</em>)
+</dt>
+<dd>
+<p>
+  Treatment of traffic associated with the address
+</p>
+</dd>
+<dt class="hdlist1">
+<em>direction</em> (One of [<em>in</em>, <em>out</em>], required)
+</dt>
+<dd>
+<p>
+  The permitted direction of links: <em>in</em> means client senders; <em>out</em> means client receivers
+</p>
+</dd>
+<dt class="hdlist1">
+<em>dir</em> (One of [<em>in</em>, <em>out</em>], required)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The permitted direction of links: <em>in</em> means client senders; <em>out</em> means client receivers This attribute has been deprecated. Use direction instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_autolink">autoLink</h3>
+<div class="paragraph"><p>Entity type for configuring auto-links.  Auto-links are links whose lifecycle is managed by the router.  These are typically used to attach to waypoints on remote containers (brokers, etc.).</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>addr</em> (string, required)
+</dt>
+<dd>
+<p>
+  The address of the provisioned object
+</p>
+</dd>
+<dt class="hdlist1">
+<em>direction</em> (One of [<em>in</em>, <em>out</em>], required)
+</dt>
+<dd>
+<p>
+  The direction of the link to be created.  In means into the router, out means out of the router.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>phase</em> (integer)
+</dt>
+<dd>
+<p>
+  The address phase for this link.  Defaults to <em>0</em> for <em>out</em> links and <em>1</em> for <em>in</em> links.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>containerId</em> (string)
+</dt>
+<dd>
+<p>
+  ContainerID for the target container. Only one of containerId or connection should be specified for an autoLink. Specifying both will result in the autoLink not being created
+</p>
+</dd>
+<dt class="hdlist1">
+<em>connection</em> (string)
+</dt>
+<dd>
+<p>
+  The name from a connector or listener. Only one of containerId or connection should be specified for an autoLink. Specifying both will result in the autoLink not being created
+</p>
+</dd>
+<dt class="hdlist1">
+<em>externalAddr</em> (string)
+</dt>
+<dd>
+<p>
+  If present, an alternate address of the node on the remote container.  This is used if the node has a different address than the address used internally by the router to route deliveries.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>dir</em> (One of [<em>in</em>, <em>out</em>], required)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The direction of the link to be created.  In means into the router, out means out of the router. This attribute has been deprecated. Use direction instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_exchange">exchange</h3>
+<div class="paragraph"><p>[EXPERIMENTAL] Defines a topic exchange.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>address</em> (string, required)
+</dt>
+<dd>
+<p>
+  The address of the exchange. Used by the message publisher as the target for sending messages.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>phase</em> (integer)
+</dt>
+<dd>
+<p>
+  The address phase for the exchange.  Defaults to <em>0</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>alternateAddress</em> (string)
+</dt>
+<dd>
+<p>
+  The address to forward the message to if no bindings are matched.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>alternatePhase</em> (integer)
+</dt>
+<dd>
+<p>
+  The address phase for the alternateAddress.  Defaults to <em>0</em>.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>matchMethod</em> (One of [<em>amqp</em>, <em>mqtt</em>], default=<em>amqp</em>)
+</dt>
+<dd>
+<p>
+  Key matching algorithm used. <em>amqp</em> uses the legacy AMQP topic exchange wildcard match method as described in the pre-1.0 drafts. <em>mqtt</em> uses the MQTT topic filter wildcard match method.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_binding">binding</h3>
+<div class="paragraph"><p>[EXPERIMENTAL] Defines a keyed next hop binding for a topic exchange. The subject field of the messages arriving at the exchange is compared against the binding&#8217;s key value using the exchange&#8217;s matchMethod.  If the subject matches the key the message is forwarded to the nextHopAddress. The nextHopAddress overrides the message&#8217;s original destination.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>exchangeName</em> (string, required)
+</dt>
+<dd>
+<p>
+  The name of the exchange to bind.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>bindingKey</em> (string)
+</dt>
+<dd>
+<p>
+  Pattern to compare against incoming message&#8217;s subject.  The key is a string of zero or more tokens and wildcards. The format depends on the matchMethod configured for the exchange. For AMQP each token is delimited by the <em>.</em> character and wild-card tokens <em>*</em> matches a single token and <em></em> matches zero or more tokens. For MQTT each token is delimited by the <em>/</em> character and wildcard tokens <em>+</em> matches a single token and <em></em> matches zero or [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>nextHopAddress</em> (string, required)
+</dt>
+<dd>
+<p>
+  The address to forward the message to when the message&#8217;s topic string matches the binding key pattern.  This address is used by message consumers as the source of incoming messages.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>nextHopPhase</em> (integer)
+</dt>
+<dd>
+<p>
+  The address phase used when forwarding messages that match this binding.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_console">console</h3>
+<div class="paragraph"><p>(DEPRECATED) Start a websocket/tcp proxy and http file server to serve the web console</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>listener</em> (string)
+</dt>
+<dd>
+<p>
+  The name of the listener to send the proxied tcp traffic to.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>wsport</em> (integer, default=<em>5673</em>)
+</dt>
+<dd>
+<p>
+  port on which to listen for websocket traffic
+</p>
+</dd>
+<dt class="hdlist1">
+<em>proxy</em> (string, required)
+</dt>
+<dd>
+<p>
+  The full path to the proxy program to run.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>home</em> (string, required)
+</dt>
+<dd>
+<p>
+  The full path to the html/css/js files for the console.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>args</em> (string)
+</dt>
+<dd>
+<p>
+  Optional args to pass the proxy program for logging, authentication, etc.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_policy">policy</h3>
+<div class="paragraph"><p>Defines global connection limit</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>maxConnections</em> (integer, default=<em>65535</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of concurrent client connections allowed for this router. This limit is always enforced, even if no other policy settings have been defined. The limit is applied to all incoming connections regardless of remote host, authenticated user, or targeted vhost.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>enableVhostPolicy</em> (boolean)
+</dt>
+<dd>
+<p>
+  Enables the router to enforce the connection denials and resource limits defined in the configured vhost policies.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>enableVhostNamePatterns</em> (boolean)
+</dt>
+<dd>
+<p>
+  Enable vhost name patterns. When false vhost hostnames are treated as literal strings. When true vhost hostnames are treated as match patterns.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>policyDir</em> (path)
+</dt>
+<dd>
+<p>
+  The absolute path to a directory that holds vhost policy definition files in JSON format (*.json). The router processes all of the vhost policies in each JSON file that is in this directory.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>defaultVhost</em> (string)
+</dt>
+<dd>
+<p>
+  The name of the default vhost policy. This policy rule set is applied to a connection for which a vhost policy has not otherwise been configured. Processing for the default vhost is enabled by default and set to select vhost <em>$default</em>. To disable default vhost processing set defaultVhost to blank or do not define a vhost named <em>$default</em>.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_vhost">vhost</h3>
+<div class="paragraph"><p>AMQP virtual host policy definition of users, user groups, allowed remote hosts, and AMQP restrictions.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>hostname</em> (string, required)
+</dt>
+<dd>
+<p>
+  The hostname of the vhost. This vhost policy will be applied to any client connection that is directed to this hostname.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxConnections</em> (integer, default=<em>65535</em>)
+</dt>
+<dd>
+<p>
+  The global maximum number of concurrent client connections allowed for this vhost.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxConnectionsPerUser</em> (integer, default=<em>65535</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of concurrent client connections allowed for any user.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxConnectionsPerHost</em> (integer, default=<em>65535</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of concurrent client connections allowed for any remote host (the host from which the client is connecting).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowUnknownUser</em> (boolean)
+</dt>
+<dd>
+<p>
+  Whether unknown users (users who are not members of a defined user group) are allowed to connect to the vhost. Unknown users are assigned to the <em>$default</em> user group and receive <em>$default</em> settings.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>groups</em> (map)
+</dt>
+<dd>
+<p>
+  A map where each key is a vhost name and each value is a map of the settings for users of that vhost.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>id</em> (string, required)
+</dt>
+<dd>
+<p>
+  (DEPRECATED) The hostname of the vhost. This vhost policy will be applied to any client connection that is directed to this hostname. This attribute has been deprecated. Use hostname instead.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_vhostusergroupsettings">vhostUserGroupSettings</h3>
+<div class="paragraph"><p>Policy settings for users connecting to a vhost. Configuration files including this section must use .json format.</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<em>maxFrameSize</em> (integer, default=<em>16384</em>)
+</dt>
+<dd>
+<p>
+  The largest frame, in bytes, that may be sent on this connection. Non-zero policy values overwrite values specified for a listener object (AMQP Open, max-frame-size).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSessionWindow</em> (integer, default=<em>1638400</em>)
+</dt>
+<dd>
+<p>
+  The incoming capacity for new AMQP sessions, measured in octets. Non-zero policy values overwrite values specified for a listener object (AMQP Begin, incoming-window).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSessions</em> (integer, default=<em>32768</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of sessions that may be created on this connection. Non-zero policy values overwrite values specified for a listener object (AMQP Open, channel-max).
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxSenders</em> (integer, default=<em>2147483647</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of sending links that may be created on this connection. A value of <em>0</em> disables all sender links.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>maxReceivers</em> (integer, default=<em>2147483647</em>)
+</dt>
+<dd>
+<p>
+  The maximum number of receiving links that may be created on this connection. A value of <em>0</em> disables all receiver links.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowDynamicSource</em> (boolean)
+</dt>
+<dd>
+<p>
+  Whether this connection is allowed to create dynamic receiving links (links to resources that do not exist on the peer). A value of <em>true</em> means that users are able to automatically create resources on the peer system.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowAnonymousSender</em> (boolean)
+</dt>
+<dd>
+<p>
+  Whether this connection is allowed to create sending links if the sender does not provide a target address. By prohibiting anonymous senders, the router only needs to verify once, when the link is created, that the sender is permitted to send messages to the target address. The router does not need to verify each message that is sent on the link. A value of <em>true</em> means that users may send messages to any address. Allowing anonymous senders can also decrease performance: if the  [...]
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowUserIdProxy</em> (boolean)
+</dt>
+<dd>
+<p>
+  Whether this connection is allowed to send messages with a user ID that is different than the connection&#8217;s authenticated user name.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowWaypointLinks</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Whether this connection is allowed to claim <em>waypoint.N</em> capability for attached links.  This allows endpoints to act as waypoints without needing auto-links.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowDynamicLinkRoutes</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Whether this connection is allowed to dynamically create connection-scoped link route destinations.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>allowAdminStatusUpdate</em> (boolean, default=<em>True</em>)
+</dt>
+<dd>
+<p>
+  Whether this connection is allowed to update the admin status of other connections. Note: Inter-router connections cannot be deleted at any time.
+</p>
+</dd>
+<dt class="hdlist1">
+<em>sources</em> (string)
+</dt>
+<dd>
+<p>
+</p>
+</dd>
+<dt class="hdlist1">
+<em>targets</em> (string)
+</dt>
+<dd>
+<p>
+</p>
+</dd>
+<dt class="hdlist1">
+<em>sourcePattern</em> (string)
+</dt>
+<dd>
+<p>
+</p>
+</dd>
+<dt class="hdlist1">
+<em>targetPattern</em> (string)
+</dt>
+<dd>
+<p>
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><strong>qdrouterd(8)</strong>, <strong>qdmanage(8)</strong></p></div>
+<div class="paragraph"><p><a href="http://qpid.apache.org/components/dispatch-router">http://qpid.apache.org/components/dispatch-router</a></p></div>
+</div>
+</div>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/content/releases/qpid-dispatch-master/index.html b/content/releases/qpid-dispatch-1.6.0/man/qdrouterd.html
similarity index 73%
copy from content/releases/qpid-dispatch-master/index.html
copy to content/releases/qpid-dispatch-1.6.0/man/qdrouterd.html
index b9d5389..7a539a6 100644
--- a/content/releases/qpid-dispatch-master/index.html
+++ b/content/releases/qpid-dispatch-1.6.0/man/qdrouterd.html
@@ -21,7 +21,7 @@
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
-    <title>Qpid Dispatch documentation snapshot - Apache Qpid&#8482;</title>
+    <title>SYNOPSIS - Apache Qpid&#8482;</title>
     <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
     <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
     <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
@@ -111,44 +111,66 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
       </div>
 
       <div id="-middle" class="panel">
-        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li>Qpid Dispatch documentation snapshot</li></ul>
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a></li><li>SYNOPSIS</li></ul>
 
         <div id="-middle-content">
-          <h1 id="qpid-dispatch-documentation-snapshot">Qpid Dispatch documentation snapshot</h1>
-
-<div class="feature">
-
-<h2 id="warning-this-is-a-snapshot-of-work-in-progress">Warning! This is a snapshot of work in progress</h2>
-
-<p>Documentation found here may be incorrect or incomplete.  For a
-smoother experience, see the <a href="/releases/qpid-dispatch-1.5.0/index.html">current stable
-release</a>.</p>
-
-<p>This content was generated at 07:00  on Saturday, 28 April 2018.</p>
-
-</div>
-
-<h2 id="documentation">Documentation</h2>
-
-<div class="two-column">
-
-<ul>
-<li><a href="user-guide/index.html">Using Qpid Dispatch</a></li>
-<li><a href="https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;a=blob_plain;f=README;hb=master">Installing Qpid Dispatch from
-source</a></li>
-<li><a href="man/qdrouterd.html">qdrouterd</a> - Router daemon</li>
-<li><a href="man/qdrouterd.conf.html">qdrouterd.conf</a> - Daemon configuration</li>
-<li><a href="man/qdstat.html">qdstat</a> - Get router statistics</li>
-<li><a href="man/qdmanage.html">qdmanage</a> - Manage the router</li>
-</ul>
-
-</div>
-
-<h2 id="more-information">More information</h2>
-
-<ul>
-<li><a href="https://gitbox.apache.org/repos/asf/qpid-dispatch.git">Source repository</a></li>
-</ul>
+          <div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><strong>qdrouterd</strong> [<em>OPTIONS</em>]</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>The Qpid Dispatch router (<em>qdrouterd</em>) is a network daemon that directs
+AMQP 1.0 messages between endpoints, such as messaging clients and
+servers.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>-c, --config=PATH (/usr/local/etc/qpid-dispatch/qdrouterd.conf)
+:   Load configuration from file at PATH</p></div>
+<div class="paragraph"><p>-I, --include=PATH (/usr/local/lib/qpid-dispatch/python)
+:   Location of Dispatch&#8217;s Python library</p></div>
+<div class="paragraph"><p>-d, --daemon
+:   Run process as a SysV-style daemon</p></div>
+<div class="paragraph"><p>-P, --pidfile
+:   If daemon, the file for the stored daemon pid</p></div>
+<div class="paragraph"><p>-U, --user
+:   If daemon, the username to run as</p></div>
+<div class="paragraph"><p>-T, --test-hooks
+:   Enable internal system testing features</p></div>
+<div class="paragraph"><p>-v, --version
+:   Print the version of Qpid Dispatch Router</p></div>
+<div class="paragraph"><p>-h, --help
+:   Print this help</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_files">FILES</h2>
+<div class="sectionbody">
+<div class="dlist"><dl>
+<dt class="hdlist1">
+/usr/local/etc/qdrouterd.conf
+</dt>
+<dd>
+<p>
+  Configuration file.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><em>qdrouterd.conf(5)</em>, <em>qdstat(8)</em>, <em>qdmanage(8)</em></p></div>
+<div class="paragraph"><p><a href="http://qpid.apache.org/components/dispatch-router">http://qpid.apache.org/components/dispatch-router</a></p></div>
+</div>
+</div>
 
 
           <hr/>
diff --git a/content/releases/qpid-dispatch-1.6.0/man/qdstat.html b/content/releases/qpid-dispatch-1.6.0/man/qdstat.html
new file mode 100644
index 0000000..a020078
--- /dev/null
+++ b/content/releases/qpid-dispatch-1.6.0/man/qdstat.html
@@ -0,0 +1,976 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>SYNOPSIS - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://gitbox.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a></li><li>SYNOPSIS</li></ul>
+
+        <div id="-middle-content">
+          <div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><strong>qdstat</strong> [<em>OPTIONS</em>]</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>An AMQP monitoring tool that shows status information about networks of Dispatch routers. It can display connections, network nodes and links, and router stats such as memory use.</p></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>-h, --help
+:   show this help message and exit</p></div>
+<div class="paragraph"><p>--version
+:   Print version and exit.</p></div>
+<div class="paragraph"><p>-g, --general
+:   Show General Router Stats</p></div>
+<div class="paragraph"><p>-c, --connections
+:   Show Connections</p></div>
+<div class="paragraph"><p>-l, --links
+:   Show Router Links</p></div>
+<div class="paragraph"><p>-n, --nodes
+:   Show Router Nodes</p></div>
+<div class="paragraph"><p>-e, --edge
+:   Show edge connections</p></div>
+<div class="paragraph"><p>-a, --address
+:   Show Router Addresses</p></div>
+<div class="paragraph"><p>-m, --memory
+:   Show Router Memory Stats</p></div>
+<div class="paragraph"><p>--autolinks
+:   Show Auto Links</p></div>
+<div class="paragraph"><p>--linkroutes
+:   Show Link Routes</p></div>
+<div class="paragraph"><p>-v, --verbose
+:   Show maximum detail</p></div>
+<div class="paragraph"><p>--log
+:   Show recent log entries</p></div>
+<div class="paragraph"><p>--limit=LIMIT
+:   Limit number of output rows</p></div>
+<div class="sect2">
+<h3 id="_connection_options">Connection Options</h3>
+<div class="paragraph"><p>-b URL, --bus=URL
+:   URL of the messaging bus to connect to (default</p></div>
+<div class="paragraph"><p>-r ROUTER-ID, --router=ROUTER-ID
+:   Router to be queried</p></div>
+<div class="paragraph"><p>-t SECS, --timeout=SECS
+:   Maximum time to wait for connection in seconds (default 5)</p></div>
+<div class="paragraph"><p>--ssl-certificate=CERT
+:   Client SSL certificate (PEM Format)</p></div>
+<div class="paragraph"><p>--ssl-key=KEY
+:   Client SSL private key (PEM Format)</p></div>
+<div class="paragraph"><p>--ssl-trustfile=TRUSTED-CA-DB
+:   Trusted Certificate Authority Database file (PEM Format)</p></div>
+<div class="paragraph"><p>--ssl-password=PASSWORD
+:   Certificate password, will be prompted if not specifed.</p></div>
+<div class="paragraph"><p>--ssl-password-file=SSL-PASSWORD-FILE
+:   Certificate password, will be prompted if not specifed.</p></div>
+<div class="paragraph"><p>--sasl-mechanisms=SASL-MECHANISMS
+:   Allowed sasl mechanisms to be supplied during the sasl handshake.</p></div>
+<div class="paragraph"><p>--sasl-username=SASL-USERNAME
+:   User name for SASL plain authentication</p></div>
+<div class="paragraph"><p>--sasl-password=SASL-PASSWORD
+:   Password for SASL plain authentication</p></div>
+<div class="paragraph"><p>--sasl-password-file=SASL-PASSWORD-FILE
+:   Password for SASL plain authentication</p></div>
+<div class="paragraph"><p>--ssl-disable-peer-name-verify
+:   Disables SSL peer name verification. WARNING - This option is insecure and must not be used in production environments</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_output_columns">OUTPUT COLUMNS</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_qdstat_c">qdstat -c</h3>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+id
+</dt>
+<dd>
+<p>
+The connection&#8217;s unique identifier.
+</p>
+</dd>
+<dt class="hdlist1">
+host
+</dt>
+<dd>
+<p>
+The hostname or internet address of the remotely-connected AMQP container.
+</p>
+</dd>
+<dt class="hdlist1">
+container
+</dt>
+<dd>
+<p>
+The container name of the remotely-connected AMQP container.
+</p>
+</dd>
+<dt class="hdlist1">
+role
+</dt>
+<dd>
+<p>
+The connection&#8217;s role:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>normal</em> - The normal connection from a client to a router.
+</p>
+</li>
+<li>
+<p>
+<em>inter-router</em> - The connection between routers to form a network.
+</p>
+</li>
+<li>
+<p>
+<em>route-container</em> - The connection to or from a broker or other host to receive link routes and waypoints.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+dir
+</dt>
+<dd>
+<p>
+The direction in which the connection was established:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>in</em> - The connection was initiated by the remote container.
+</p>
+</li>
+<li>
+<p>
+<em>out</em> - The connection was initiated by this router.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+security
+</dt>
+<dd>
+<p>
+The security or encryption method, if any, used for this connection.
+</p>
+</dd>
+<dt class="hdlist1">
+authentication
+</dt>
+<dd>
+<p>
+The authentication method and user ID of the connection&#8217;s authenticated user.
+</p>
+</dd>
+<dt class="hdlist1">
+tenant
+</dt>
+<dd>
+<p>
+If the connection is to a listener using multi-tenancy, this column displays the tenant namespace for the connection.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_qdstat_l">qdstat -l</h3>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+type
+</dt>
+<dd>
+<p>
+The type of link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>router-control</em> - An inter-router link that is reserved for control messages exchanged between routers.
+</p>
+</li>
+<li>
+<p>
+<em>inter-router</em> - An inter-router link that is used for normal message-routed deliveries.
+</p>
+</li>
+<li>
+<p>
+<em>endpoint</em> - A normal link to an external endpoint container.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+dir
+</dt>
+<dd>
+<p>
+The direction that messages flow on the link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>in</em> - Deliveries flow inbound to the router.
+</p>
+</li>
+<li>
+<p>
+<em>out</em> - Deliveries flow outbound from the router.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+conn id
+</dt>
+<dd>
+<p>
+The unique identifier of the connection over which this link is
+attached.
+</p>
+</dd>
+<dt class="hdlist1">
+id
+</dt>
+<dd>
+<p>
+The unique identifier of this link.
+</p>
+</dd>
+<dt class="hdlist1">
+peer
+</dt>
+<dd>
+<p>
+For link-routed links, the unique identifier of the peer link. In
+link routing, an inbound link is paired with an outbound link.
+</p>
+</dd>
+<dt class="hdlist1">
+class
+</dt>
+<dd>
+<p>
+The class of the address bound to the link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>local</em> - The address that is local to this router (temporary).
+</p>
+</li>
+<li>
+<p>
+<em>topo</em> - A topological address used for router control messages.
+</p>
+</li>
+<li>
+<p>
+<em>router</em> - A summary router address used to route messages to a remote router’s local addresses.
+</p>
+</li>
+<li>
+<p>
+<em>mobile</em> - A mobile address for an attached consumer or producer.
+</p>
+</li>
+<li>
+<p>
+<em>link-in</em> - The address match for incoming routed links.
+</p>
+</li>
+<li>
+<p>
+<em>link-out</em> - The address match for outgoing routed links.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+addr
+</dt>
+<dd>
+<p>
+The address bound to the link.
+</p>
+</dd>
+<dt class="hdlist1">
+phs
+</dt>
+<dd>
+<p>
+The phase of the address bound to the link.
+</p>
+</dd>
+<dt class="hdlist1">
+cap
+</dt>
+<dd>
+<p>
+The capacity, in deliveries, of the link.
+</p>
+</dd>
+<dt class="hdlist1">
+pri
+</dt>
+<dd>
+<p>
+The priority of the link.  Priority influences the order in which links are processed within a connection.
+Higher numbers represent higher priorities.
+</p>
+</dd>
+<dt class="hdlist1">
+undel
+</dt>
+<dd>
+<p>
+The number of undelivered messages stored on the link&#8217;s FIFO.
+</p>
+</dd>
+<dt class="hdlist1">
+unsett
+</dt>
+<dd>
+<p>
+The number of unsettled deliveries being tracked by the link.
+</p>
+</dd>
+<dt class="hdlist1">
+del
+</dt>
+<dd>
+<p>
+The total number of deliveries that have transited this link.
+</p>
+</dd>
+<dt class="hdlist1">
+presett
+</dt>
+<dd>
+<p>
+The number of pre-settled deliveries that transited this link.
+</p>
+</dd>
+<dt class="hdlist1">
+psdrop
+</dt>
+<dd>
+<p>
+The number of pre-settled deliveries that were dropped due to congestion.
+</p>
+</dd>
+<dt class="hdlist1">
+acc
+</dt>
+<dd>
+<p>
+The number of deliveries on this link that were accepted.
+</p>
+</dd>
+<dt class="hdlist1">
+rej
+</dt>
+<dd>
+<p>
+The number of deliveries on this link that were rejected.
+</p>
+</dd>
+<dt class="hdlist1">
+rel
+</dt>
+<dd>
+<p>
+The number of deliveries on this link that were released.
+</p>
+</dd>
+<dt class="hdlist1">
+mod
+</dt>
+<dd>
+<p>
+The number of deliveries on this link that were modified.
+</p>
+</dd>
+<dt class="hdlist1">
+delay
+</dt>
+<dd>
+<p>
+The number of settled deliveries on this link that were unsettled for more than one second.
+</p>
+</dd>
+<dt class="hdlist1">
+rate
+</dt>
+<dd>
+<p>
+The average rate (over a period of five seconds) at which deliveries have been settled on this link.
+</p>
+</dd>
+<dt class="hdlist1">
+admin
+</dt>
+<dd>
+<p>
+The administrative status of the link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>enabled</em> - The link is enabled for normal operation.
+</p>
+</li>
+<li>
+<p>
+<em>disabled</em> - The link is disabled and should be quiescing or stopped (not yet supported).
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+oper
+</dt>
+<dd>
+<p>
+The operational status of the link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>up</em> - The link is operational.
+</p>
+</li>
+<li>
+<p>
+<em>down</em> - The link is not attached.
+</p>
+</li>
+<li>
+<p>
+<em>quiescing</em> - The link is in the process of quiescing (not yet supported).
+</p>
+</li>
+<li>
+<p>
+<em>idle</em> - The link has completed quiescing and is idle (not yet supported).
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+name
+</dt>
+<dd>
+<p>
+The link name (only shown if the -v option is provided).
+</p>
+</dd>
+</dl></div>
+<div class="sect3">
+<h4 id="_qdstat_n">qdstat -n</h4>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+router-id
+</dt>
+<dd>
+<p>
+The router&#8217;s ID.
+</p>
+</dd>
+<dt class="hdlist1">
+next-hop
+</dt>
+<dd>
+<p>
+If this router is not a neighbor, this field identifies the next-hop neighbor used to reach this router.
+</p>
+</dd>
+<dt class="hdlist1">
+link
+</dt>
+<dd>
+<p>
+The ID of the link to the neighbor router.
+</p>
+</dd>
+<dt class="hdlist1">
+cost
+</dt>
+<dd>
+<p>
+The topology cost to this remote router (with -v option only).
+</p>
+</dd>
+<dt class="hdlist1">
+neighbors
+</dt>
+<dd>
+<p>
+The list of neighbor routers (the router&#8217;s link-state). This field is available only if you specify the -v option.
+</p>
+</dd>
+<dt class="hdlist1">
+valid-origins
+</dt>
+<dd>
+<p>
+The list of origin routers for which the best path to the listed router passes through this router (available only with the -v option).
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_qdstat_a">qdstat -a</h3>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+class
+</dt>
+<dd>
+<p>
+The class of the address:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>local</em> - The address that is local to this router.
+</p>
+</li>
+<li>
+<p>
+<em>topo</em> - The topological address used for router control messages.
+</p>
+</li>
+<li>
+<p>
+<em>router</em> - A summary router address used to route messages to a remote router&#8217;s local addresses.
+</p>
+</li>
+<li>
+<p>
+<em>mobile</em> - A mobile address for an attached consumer or producer.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+addr
+</dt>
+<dd>
+<p>
+The address text.
+</p>
+</dd>
+<dt class="hdlist1">
+phs
+</dt>
+<dd>
+<p>
+For mobile addresses only, the phase of the address. Direct addresses have only a phase 0. Waypoint addresses have multiple phases, normally 0 and 1.
+</p>
+</dd>
+<dt class="hdlist1">
+distrib
+</dt>
+<dd>
+<p>
+One of the following distribution methods used for this address:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>multicast</em> - A copy of each message is delivered once to each consumer for the address.
+</p>
+</li>
+<li>
+<p>
+<em>closest</em> - Each message is delivered to only one consumer for the address. The closest (lowest cost) consumer will be chosen. If there are multiple lowest-cost consumers, deliveries will be spread across those consumers.
+</p>
+</li>
+<li>
+<p>
+<em>balanced</em> - Each message is delivered to only one consumer for the address. The consumer with the fewest outstanding (unsettled) deliveries will be chosen. The cost of the route to the consumer is a threshold for delivery (that is, higher cost consumers will only receive deliveries if closer consumers are backed up).
+</p>
+</li>
+<li>
+<p>
+<em>flood</em> - Used only for router-control traffic. This is multicast without the prevention of duplicate deliveries.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+pri
+</dt>
+<dd>
+<p>
+The priority of the address.  If the address prefix/pattern is configured with a priority, that priority will appear
+in this column.  Messages for addresses configured with a priority will be forwarded according to the address&#8217;s priority.
+</p>
+</dd>
+<dt class="hdlist1">
+in-proc
+</dt>
+<dd>
+<p>
+The number of in-process consumers for this address.
+</p>
+</dd>
+<dt class="hdlist1">
+local
+</dt>
+<dd>
+<p>
+For this router, the number of local consumers for this address, or for link-routed addresses, the number of locally-attached containers that are destinations for this address.
+</p>
+</dd>
+<dt class="hdlist1">
+remote
+</dt>
+<dd>
+<p>
+The number of remote routers that have at least one consumer for this address.
+</p>
+</dd>
+<dt class="hdlist1">
+in
+</dt>
+<dd>
+<p>
+The number of deliveries for this address that entered the network on this router.
+</p>
+</dd>
+<dt class="hdlist1">
+out
+</dt>
+<dd>
+<p>
+The number of deliveries for this address that exited the network on this router.
+</p>
+</dd>
+<dt class="hdlist1">
+thru
+</dt>
+<dd>
+<p>
+The number of deliveries for this address that were forwarded to other routers.
+</p>
+</dd>
+<dt class="hdlist1">
+to-proc
+</dt>
+<dd>
+<p>
+The number of deliveries for this address that were delivered to an in-process consumer.
+</p>
+</dd>
+<dt class="hdlist1">
+from-proc
+</dt>
+<dd>
+<p>
+The number of deliveries for this address that were received from an in-process producer.
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_qdstat_linkroutes">qdstat --linkroutes</h3>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+prefix
+</dt>
+<dd>
+<p>
+The address prefix of the link route.
+</p>
+</dd>
+<dt class="hdlist1">
+dir
+</dt>
+<dd>
+<p>
+The direction of matching links (from this router&#8217;s perspective).
+</p>
+</dd>
+<dt class="hdlist1">
+distrib
+</dt>
+<dd>
+<p>
+The distribution method used for routed links. This value should always be <em>linkBalanced</em>, which is the only supported distribution for routed links.
+</p>
+</dd>
+<dt class="hdlist1">
+status
+</dt>
+<dd>
+<p>
+The operational status of the link route:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>active</em> - The route is actively routing attaches (it is ready for use).
+</p>
+</li>
+<li>
+<p>
+<em>inactive</em> - The route is inactive, because no local destination is connected.
+</p>
+</li>
+</ul></div>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_qstat_autolinks">qstat --autolinks</h3>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+addr
+</dt>
+<dd>
+<p>
+The auto link&#8217;s address.
+</p>
+</dd>
+<dt class="hdlist1">
+dir
+</dt>
+<dd>
+<p>
+The direction that messages flow over the auto link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>in</em> - Messages flow in from the route-container to the router network.
+</p>
+</li>
+<li>
+<p>
+<em>out</em> - Messages flow out to the route-container from the router network.
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+phs
+</dt>
+<dd>
+<p>
+The address phase for this auto link.
+</p>
+</dd>
+<dt class="hdlist1">
+link
+</dt>
+<dd>
+<p>
+The ID of the link managed by this auto link.
+</p>
+</dd>
+<dt class="hdlist1">
+status
+</dt>
+<dd>
+<p>
+The operational status of this auto link:
+</p>
+<div class="ulist"><ul>
+<li>
+<p>
+<em>inactive</em> - There is no connected container for this auto link.
+</p>
+</li>
+<li>
+<p>
+<em>attaching</em> - The link is attaching to the container.
+</p>
+</li>
+<li>
+<p>
+<em>failed</em> - The link-attach failed.
+</p>
+</li>
+<li>
+<p>
+<em>active</em> - The link is operational.
+</p>
+</li>
+<li>
+<p>
+<em>quiescing</em> - The link is quiescing (not yet supported).
+</p>
+</li>
+<li>
+<p>
+<em>idle</em> - The link is idle (not yet supported).
+</p>
+</li>
+</ul></div>
+</dd>
+<dt class="hdlist1">
+lastErr
+</dt>
+<dd>
+<p>
+The description of the last attach failure that occurred on this auto link.
+</p>
+</dd>
+</dl></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph"><p><em>qdrouterd(8)</em>, <em>qdmanage(8)</em>, <em>qdrouterd.conf(5)</em></p></div>
+<div class="paragraph"><p><a href="http://qpid.apache.org/components/dispatch-router">http://qpid.apache.org/components/dispatch-router</a></p></div>
+</div>
+</div>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/content/releases/qpid-dispatch-1.6.0/release-notes.html b/content/releases/qpid-dispatch-1.6.0/release-notes.html
new file mode 100644
index 0000000..0838a3e
--- /dev/null
+++ b/content/releases/qpid-dispatch-1.6.0/release-notes.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>Qpid Dispatch 1.6.0 Release Notes - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://gitbox.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a></li><li>Qpid Dispatch 1.6.0 Release Notes</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="qpid-dispatch-160-release-notes">Qpid Dispatch 1.6.0 Release Notes</h1>
+
+<p>Dispatch is a lightweight AMQP message router library. More about
+<a href="/components/dispatch-router/index.html">Qpid
+Dispatch</a>.</p>
+
+<p>For more information about this release, including download links and
+documentation, see the <a href="index.html">release overview</a>.</p>
+
+<h2 id="new-features-and-improvements">New features and improvements</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1243">DISPATCH-1243</a> - Change Valgrind configuration to run only qdrouterd under valgrind</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1251">DISPATCH-1251</a> - Allow traffic animations to run simultaneaously on console's topology page. </li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1255">DISPATCH-1255</a> - Test execution with python3 modifies files in source directory</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1269">DISPATCH-1269</a> - Improve error handling for remote_sasl.c plugin</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1278">DISPATCH-1278</a> - Add support for prometheus metrics export</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1281">DISPATCH-1281</a> - Performance - Batch the freeing of messages from the core thread</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1289">DISPATCH-1289</a> - Logging and Management Enhancements</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1290">DISPATCH-1290</a> - expose simple http base health check</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1291">DISPATCH-1291</a> - Update console to use router-generated link settlement rates</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1296">DISPATCH-1296</a> - Change use of pn_ssl_domain_allow_unsecured_client() to pn_transport_require_encryption()</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1299">DISPATCH-1299</a> - Provide API access to the already existing safe-reference capability in alloc-pool</li>
+</ul>
+
+<h2 id="bugs-fixed">Bugs fixed</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1242">DISPATCH-1242</a> - [tools] Scraper does not highlight incomplete transfers</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1244">DISPATCH-1244</a> - New senders/receivers/edge routers first appear too close to router in console </li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1245">DISPATCH-1245</a> - Console build generates new warnings about potential vulnerabilities </li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1247">DISPATCH-1247</a> - Leak of bitmask during message annotation</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1248">DISPATCH-1248</a> - leak of core timers on shutdown</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1252">DISPATCH-1252</a> - Display connect page if console is disconnected</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1254">DISPATCH-1254</a> - qdstat sometimes raises "TypeError: 'NoneType' object is not iterable"</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1257">DISPATCH-1257</a> - qdstat &amp; qdmanage send bad initial response for EXTERNAL if --sasl-mechanisms is specified</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1260">DISPATCH-1260</a> - Closing traffic animation doesn't always work</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1261">DISPATCH-1261</a> - Builds failing on CentOS7</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1262">DISPATCH-1262</a> - GCC 8.2 format-truncation error in router/src/main.c</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1263">DISPATCH-1263</a> - Symbol for sender/receiver is incorrect on console's topology page</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1267">DISPATCH-1267</a> - Bad_configuration test fails intermittently</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1272">DISPATCH-1272</a> - Router crashes when detach from receiver and detach from broker arrive at the same time on a link route</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1273">DISPATCH-1273</a> - 'to' field not authorized against valid targets for anonymous sender</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1275">DISPATCH-1275</a> - Enable deletion of connections based on connection id</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1276">DISPATCH-1276</a> - Spontaneous drop of client connection causes crash on edge router</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1277">DISPATCH-1277</a> - max-frame-size defaults to 2147483647 if it is not specified in the policy</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1285">DISPATCH-1285</a> - Router crashes occasionally on system_tests_delivery_abort</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1287">DISPATCH-1287</a> - router gets confused by clients response to drain and subsequently issue too little credit</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1288">DISPATCH-1288</a> - Optionally enforce access policy on connections established by the router</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1292">DISPATCH-1292</a> - Coverity issues on master branch</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1293">DISPATCH-1293</a> - Show traffic for stand-alone router</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1297">DISPATCH-1297</a> - Fix buffer reference counting for multiframe fanout messages</li>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1301">DISPATCH-1301</a> - Management messages lost</li>
+</ul>
+
+<h2 id="tasks">Tasks</h2>
+
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/DISPATCH-1115">DISPATCH-1115</a> - Configure Travis to run Dispatch tests agianst the latest Proton release and Proton master branch</li>
+</ul>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/01-peer-to-peer.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/01-peer-to-peer.png
new file mode 100755
index 0000000..5c834aa
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/01-peer-to-peer.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/balanced-routing.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/balanced-routing.png
new file mode 100755
index 0000000..fedcdbf
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/balanced-routing.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/brokered-messaging.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/brokered-messaging.png
new file mode 100755
index 0000000..ae129d4
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/brokered-messaging.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/closest-routing.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/closest-routing.png
new file mode 100755
index 0000000..ba3f0a5
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/closest-routing.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console1.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console1.png
new file mode 100755
index 0000000..f131884
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console1.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_charts.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_charts.png
new file mode 100755
index 0000000..169c2ca
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_charts.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_entity.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_entity.png
new file mode 100755
index 0000000..130c7e7
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_entity.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_login.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_login.png
new file mode 100755
index 0000000..63e22c6
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_login.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_overview.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_overview.png
new file mode 100755
index 0000000..af25f36
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_overview.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_schema.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_schema.png
new file mode 100755
index 0000000..ba56c7b
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_schema.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_topology.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_topology.png
new file mode 100755
index 0000000..ae4b22a
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/console_topology.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/link-routing.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/link-routing.png
new file mode 100755
index 0000000..0c1b9e4
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/link-routing.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/message-routing.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/message-routing.png
new file mode 100755
index 0000000..42f4638
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/message-routing.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/multicast-routing.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/multicast-routing.png
new file mode 100755
index 0000000..d4548a6
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/multicast-routing.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-01.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-01.png
new file mode 100755
index 0000000..ba8f10d
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-01.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-02.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-02.png
new file mode 100755
index 0000000..6d4a1f5
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-02.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-temp-decoupling-01.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-temp-decoupling-01.png
new file mode 100755
index 0000000..c3c6631
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-temp-decoupling-01.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-temp-decoupling-02.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-temp-decoupling-02.png
new file mode 100755
index 0000000..ecab8b1
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/path-redundancy-temp-decoupling-02.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/sharded-queue-01.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/sharded-queue-01.png
new file mode 100755
index 0000000..ab25be0
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/sharded-queue-01.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/_images/sharded-queue-02.png b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/sharded-queue-02.png
new file mode 100755
index 0000000..7e73e6d
Binary files /dev/null and b/content/releases/qpid-dispatch-1.6.0/user-guide/_images/sharded-queue-02.png differ
diff --git a/content/releases/qpid-dispatch-1.6.0/user-guide/index.html b/content/releases/qpid-dispatch-1.6.0/user-guide/index.html
new file mode 100644
index 0000000..5de1e4e
--- /dev/null
+++ b/content/releases/qpid-dispatch-1.6.0/user-guide/index.html
@@ -0,0 +1,8262 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>Using Qpid Dispatch - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://gitbox.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-dispatch-1.6.0/index.html">Qpid Dispatch 1.6.0</a></li><li>Using Qpid Dispatch</li></ul>
+
+        <div id="-middle-content">
+          <h1>Using Qpid Dispatch</h1>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#overview-router">1. Overview</a>
+<ul class="sectlevel2">
+<li><a href="#key-features-router">1.1. Key features</a></li>
+<li><a href="#supported-standards-protocols-router">1.2. Supported standards and protocols</a></li>
+<li><a href="#important-terms-concepts-router">1.3. Important terms and concepts</a>
+<ul class="sectlevel3">
+<li><a href="#overview-of-amqp-router">1.3.1. Overview of AMQP</a></li>
+<li><a href="#what-routers-are-router">1.3.2. What routers are</a></li>
+<li><a href="#how-routers-route-messages-router">1.3.3. How routers route messages</a></li>
+<li><a href="#router-security-router">1.3.4. Router security</a></li>
+<li><a href="#router-management-router">1.3.5. Router management</a></li>
+</ul>
+</li>
+<li><a href="#document-conventions-router">1.4. Document conventions</a></li>
+</ul>
+</li>
+<li><a href="#getting-started-router">2. Getting started</a>
+<ul class="sectlevel2">
+<li><a href="#installing-router-router">2.1. Installing Dispatch Router</a></li>
+<li><a href="#viewing-default-router-configuration-file-router">2.2. Viewing the default router configuration file</a></li>
+<li><a href="#starting-router-router">2.3. Starting the router</a></li>
+<li><a href="#sending-test-messages-router">2.4. Sending test messages</a></li>
+<li><a href="#next-steps-router">2.5. Next steps</a></li>
+</ul>
+</li>
+<li><a href="#router-configuration">3. Configuration</a>
+<ul class="sectlevel2">
+<li><a href="#accessing_the_router_configuration_file">3.1. Accessing the Router Configuration File</a></li>
+<li><a href="#how_the_router_configuration_file_is_structured">3.2. How the Router Configuration File is Structured</a></li>
+<li><a href="#methods-for-using-pattern-matching">3.3. Methods for Using Pattern Matching and Wildcards</a>
+<ul class="sectlevel3">
+<li><a href="#router-address-pattern-matching">3.3.1. Pattern Matching for Addresses</a></li>
+<li><a href="#pattern-matching-vhost-policy-hostnames">3.3.2. Pattern Matching for Vhost Policy Hostnames</a></li>
+</ul>
+</li>
+<li><a href="#methods-for-changing-router-configuration">3.4. Changing a Router&#8217;s Configuration</a>
+<ul class="sectlevel3">
+<li><a href="#making-permanent-change-to-router-configuration">3.4.1. Making a Permanent Change to the Router&#8217;s Configuration</a></li>
+<li><a href="#changing-configuration-for-running-router">3.4.2. Changing the Configuration for a Running Router</a></li>
+</ul>
+</li>
+<li><a href="#default_configuration_settings">3.5. Default Configuration Settings</a></li>
+<li><a href="#setting_essential_configuration_properties">3.6. Setting Essential Configuration Properties</a></li>
+</ul>
+</li>
+<li><a href="#router-network-connections">4. Network Connections</a>
+<ul class="sectlevel2">
+<li><a href="#adding-incoming-connections">4.1. Listening for Incoming Connections</a></li>
+<li><a href="#adding-outgoing-connections">4.2. Adding Outgoing Connections</a></li>
+<li><a href="#connection-failover-router">4.3. Connection Failover</a></li>
+</ul>
+</li>
+<li><a href="#security-config">5. Security</a>
+<ul class="sectlevel2">
+<li><a href="#authenticating-remote-peers">5.1. Authenticating Remote Peers</a>
+<ul class="sectlevel3">
+<li><a href="#setting-up-ssl-for-encryption-and-authentication">5.1.1. Setting Up SSL/TLS for Encryption and Authentication</a></li>
+<li><a href="#setting-up-sasl-for-authentication-and-payload-encryption">5.1.2. Setting Up SASL for Authentication and Payload Encryption</a></li>
+<li><a href="#securing-incoming-connections">5.1.3. Securing Incoming Connections</a></li>
+<li><a href="#securing-outgoing-connections">5.1.4. Securing Outgoing Connections</a></li>
+<li><a href="#integrating-with-kerberos">5.1.5. Integrating with Kerberos</a></li>
+</ul>
+</li>
+<li><a href="#authorizing-access-to-messaging-resources">5.2. Authorizing Access to Messaging Resources</a>
+<ul class="sectlevel3">
+<li><a href="#how_dispatch_router_enforces_connection_and_resource_limits">5.2.1. How Dispatch Router Enforces Connection and Resource Limits</a></li>
+<li><a href="#setting_global_connection_limits">5.2.2. Setting Global Connection Limits</a></li>
+<li><a href="#setting_connection_and_resource_limits_for_messaging_endpoints">5.2.3. Setting Connection and Resource Limits for Messaging Endpoints</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#routing">6. Routing</a>
+<ul class="sectlevel2">
+<li><a href="#comparison_of_message_routing_and_link_routing">6.1. Comparison of Message Routing and Link Routing</a>
+<ul class="sectlevel3">
+<li><a href="#when_to_use_message_routing">6.1.1. When to Use Message Routing</a></li>
+<li><a href="#when_to_use_link_routing">6.1.2. When to Use Link Routing</a></li>
+</ul>
+</li>
+<li><a href="#configuring-message-routing">6.2. Configuring Message Routing</a>
+<ul class="sectlevel3">
+<li><a href="#addresses">6.2.1. Addresses</a></li>
+<li><a href="#routing-patterns-overview">6.2.2. Routing Patterns</a></li>
+<li><a href="#message_settlement">6.2.3. Message Settlement</a></li>
+<li><a href="#routing_pattern_reliability">6.2.4. Routing Pattern Reliability</a></li>
+<li><a href="#routing-messages-between-clients">6.2.5. Routing Messages Between Clients</a></li>
+<li><a href="#routing-messages-through-broker">6.2.6. Routing Messages Through a Broker Queue</a></li>
+<li><a href="#example_routing_messages_through_broker_queues">6.2.7. Example: Routing Messages Through Broker Queues</a></li>
+</ul>
+</li>
+<li><a href="#configuring-link-routing">6.3. Configuring Link Routing</a>
+<ul class="sectlevel3">
+<li><a href="#link_route_addresses">6.3.1. Link Route Addresses</a></li>
+<li><a href="#link_route_routing_patterns">6.3.2. Link Route Routing Patterns</a></li>
+<li><a href="#link_route_flow_control">6.3.3. Link Route Flow Control</a></li>
+<li><a href="#creating-link-route">6.3.4. Creating a Link Route</a></li>
+<li><a href="#example_using_a_link_route_to_provide_client_isolation">6.3.5. Example: Using a Link Route to Provide Client Isolation</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#network-topologies-router">7. Building Networks of Routers</a>
+<ul class="sectlevel2">
+<li><a href="#network-topologies-modes-router">7.1. Router Operating Modes</a></li>
+<li><a href="#network-topologies-security-router">7.2. A Word About Security</a></li>
+<li><a href="#network-topologies-connection-notes-router">7.3. General Notes About Connections Between Routers</a></li>
+</ul>
+</li>
+<li><a href="#logging">8. Logging</a>
+<ul class="sectlevel2">
+<li><a href="#logging-modules-you-can-configure">8.1. Logging Modules</a>
+<ul class="sectlevel3">
+<li><a href="#the_code_default_code_logging_module">8.1.1. The <code>DEFAULT</code> Logging Module</a></li>
+<li><a href="#the_code_router_code_logging_module">8.1.2. The <code>ROUTER</code> Logging Module</a></li>
+<li><a href="#the_code_router_hello_code_logging_module">8.1.3. The <code>ROUTER_HELLO</code> Logging Module</a></li>
+<li><a href="#the_code_router_ls_code_logging_module">8.1.4. The <code>ROUTER_LS</code> Logging Module</a></li>
+<li><a href="#the_code_router_ma_code_logging_module">8.1.5. The <code>ROUTER_MA</code> Logging Module</a></li>
+<li><a href="#the_code_message_code_logging_module">8.1.6. The <code>MESSAGE</code> Logging Module</a></li>
+<li><a href="#the_code_server_code_logging_module">8.1.7. The <code>SERVER</code> Logging Module</a></li>
+<li><a href="#the_code_agent_code_logging_module">8.1.8. The <code>AGENT</code> Logging Module</a></li>
+<li><a href="#the_code_container_code_logging_module">8.1.9. The <code>CONTAINER</code> Logging Module</a></li>
+<li><a href="#the_code_error_code_logging_module">8.1.10. The <code>ERROR</code> Logging Module</a></li>
+<li><a href="#the_code_policy_code_logging_module">8.1.11. The <code>POLICY</code> Logging Module</a></li>
+</ul>
+</li>
+<li><a href="#configure-default-logging">8.2. Configuring Logging</a></li>
+<li><a href="#viewing_log_entries">8.3. Viewing Log Entries</a>
+<ul class="sectlevel3">
+<li><a href="#viewing_log_entries_on_the_console">8.3.1. Viewing Log Entries on the Console</a></li>
+<li><a href="#viewing_log_entries_on_the_cli">8.3.2. Viewing Log Entries on the CLI</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#management">9. Management</a>
+<ul class="sectlevel2">
+<li><a href="#using_apache_qpid_dispatch_router_console">9.1. Using Apache Qpid Dispatch Router Console</a>
+<ul class="sectlevel3">
+<li><a href="#console-overview">9.1.1. Console Overview</a></li>
+<li><a href="#console-installation">9.1.2. Console Installation</a></li>
+<li><a href="#console-operation">9.1.3. Console Operation</a></li>
+</ul>
+</li>
+<li><a href="#monitoring-using-qdstat">9.2. Monitoring Dispatch Router Using <code>qdstat</code></a>
+<ul class="sectlevel3">
+<li><a href="#syntax_for_using_code_qdstat_code">9.2.1. Syntax for Using <code>qdstat</code></a></li>
+<li><a href="#viewing_general_statistics_for_a_router">9.2.2. Viewing General Statistics for a Router</a></li>
+<li><a href="#viewing_a_list_of_connections_to_a_router">9.2.3. Viewing a List of Connections to a Router</a></li>
+<li><a href="#viewing_amqp_links_attached_to_a_router">9.2.4. Viewing AMQP Links Attached to a Router</a></li>
+<li><a href="#viewing_known_routers_on_a_network">9.2.5. Viewing Known Routers on a Network</a></li>
+<li><a href="#viewing_addresses_known_to_a_router">9.2.6. Viewing Addresses Known to a Router</a></li>
+<li><a href="#viewing_a_router_s_autolinks">9.2.7. Viewing a Router&#8217;s Autolinks</a></li>
+<li><a href="#viewing_the_status_of_a_router_s_link_routes">9.2.8. Viewing the Status of a Router&#8217;s Link Routes</a></li>
+<li><a href="#viewing_memory_consumption_information">9.2.9. Viewing Memory Consumption Information</a></li>
+</ul>
+</li>
+<li><a href="#managing-router">9.3. Managing Dispatch Router Using <code>qdmanage</code></a>
+<ul class="sectlevel3">
+<li><a href="#syntax_for_using_code_qdmanage_code">9.3.1. Syntax for Using <code>qdmanage</code></a></li>
+<li><a href="#managing_network_connections">9.3.2. Managing Network Connections</a></li>
+<li><a href="#managing_security">9.3.3. Managing Security</a></li>
+<li><a href="#managing_routing">9.3.4. Managing Routing</a></li>
+<li><a href="#managing_logging">9.3.5. Managing Logging</a></li>
+</ul>
+</li>
+<li><a href="#management_entities">9.4. Management Entities</a></li>
+</ul>
+</li>
+<li><a href="#reliability">10. Reliability</a>
+<ul class="sectlevel2">
+<li><a href="#path_redundancy">10.1. Path Redundancy</a></li>
+<li><a href="#path_redundancy_and_temporal_decoupling">10.2. Path Redundancy and Temporal Decoupling</a></li>
+<li><a href="#sharded_queue">10.3. Sharded Queue</a></li>
+</ul>
+</li>
+<li><a href="#technical-details-specifications">11. Technical Details and Specifications</a>
+<ul class="sectlevel2">
+<li><a href="#client-compatibility">11.1. Client Compatibility</a></li>
+<li><a href="#amqp-mapping">11.2. AMQP Mapping</a>
+<ul class="sectlevel3">
+<li><a href="#message-annotations">11.2.1. Message Annotations</a></li>
+<li><a href="#sourcetarget-capabilities">11.2.2. Source/Target Capabilities</a></li>
+<li><a href="#dynamic-node-properties">11.2.3. Dynamic-Node-Properties</a></li>
+<li><a href="#addresses-and-address-formats">11.2.4. Addresses and Address Formats</a></li>
+<li><a href="#implementation-of-the-amqp-management-specification">11.2.5. Implementation of the AMQP Management Specification</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#cyrus-sasl">Appendix A: Using Cyrus SASL to Provide Authentication</a>
+<ul class="sectlevel2">
+<li><a href="#generating-sasl-database">A.1. Generating a SASL Database</a></li>
+<li><a href="#viewing_users_in_a_sasl_database">A.2. Viewing Users in a SASL Database</a></li>
+<li><a href="#configuring-sasl-database">A.3. Configuring a SASL Database</a></li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="sect1">
+<h2 id="overview-router">1. Overview</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Dispatch Router is a lightweight AMQP message router for building scalable, available, and performant messaging networks.</p>
+</div>
+<div class="sect2">
+<h3 id="key-features-router">1.1. Key features</h3>
+<div class="paragraph">
+<p>You can use Dispatch Router to flexibly route messages between any AMQP-enabled endpoints, including clients, servers, and message brokers. Dispatch Router provides the following benefits:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Connects clients and message brokers into an internet-scale messaging network with uniform addressing</p>
+</li>
+<li>
+<p>Supports high-performance direct messaging</p>
+</li>
+<li>
+<p>Uses redundant network paths to route around failures</p>
+</li>
+<li>
+<p>Streamlines the management of large deployments</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="supported-standards-protocols-router">1.2. Supported standards and protocols</h3>
+<div class="paragraph">
+<p>Dispatch Router supports the following industry-recognized standards and network protocols:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Version 1.0 of the Advanced Message Queueing Protocol (AMQP)</p>
+</li>
+<li>
+<p>Modern TCP with IPv6</p>
+</li>
+</ul>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The details of distributed transactions (XA) within AMQP are not provided in the 1.0 version of the specification. AMQ Interconnect does not support XA transactions.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p><a href="http://www.amqp.org/resources/download">OASIS AMQP 1.0 Specification</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="important-terms-concepts-router">1.3. Important terms and concepts</h3>
+<div class="paragraph">
+<p>Before using Dispatch Router, you should be familiar with AMQP and understand some key concepts about Dispatch Router.</p>
+</div>
+<div class="sect3">
+<h4 id="overview-of-amqp-router">1.3.1. Overview of AMQP</h4>
+<div class="paragraph">
+<p>Dispatch Router implements version 1.0 of the Advanced Message Queueing Protocol (AMQP) specification. Therefore, you should understand several key AMQP terms and concepts before deploying or configuring Dispatch Router.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Containers</dt>
+<dd>
+<p>AMQP is a wire-level messaging protocol for transferring messages between applications called <em>containers</em>. In AMQP, a container is any application that sends or receives messages, such as a client application or message broker.</p>
+<div class="paragraph">
+<p>Containers connect to each other over <em>connections</em>, which are channels for communication.</p>
+</div>
+</dd>
+<dt class="hdlist1">Nodes</dt>
+<dd>
+<p>Containers contain addressable entities called <em>nodes</em> that are responsible for storing or delivering messages. For example, a queue on a message broker is a node.</p>
+</dd>
+<dt class="hdlist1">Links</dt>
+<dd>
+<p>Messages are transferred between connected containers over <em>links</em>. A link is a unidirectional route between nodes. Essentially, a link is a channel for sending or receiving messages.</p>
+<div class="paragraph">
+<p>Links are established over <em>sesssions</em>, which are contexts for sending and receiving messages. Sessions are established over connections.</p>
+</div>
+</dd>
+</dl>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p><a href="http://www.amqp.org/resources/download">OASIS AMQP 1.0 Specification</a></p>
+</li>
+<li>
+<p><a href="https://dzone.com/refcardz/amqp-essentials?chapter=1">AMQP Essentials Refcard</a></p>
+</li>
+<li>
+<p><a href="https://channel9.msdn.com/Blogs/Subscribe/The-AMQP-10-Protocol-16-Overview">Video series introducing AMQP 1.0</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="what-routers-are-router">1.3.2. What routers are</h4>
+<div class="paragraph">
+<p>Dispatch Router is an application layer program running as a normal user program or as a daemon. A running instance of Dispatch Router is called a <em>router</em>.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Routers do not take responsibility for messages</dt>
+<dd>
+<p>Routers transfer messages between producers and consumers, but unlike message brokers, they do not take responsibility for messages. Instead, routers propagate message settlement and disposition across a network such that delivery guarantees are met. That is, the router network will deliver the message &ndash; possibly through several intermediate routers &ndash; and then route the consumer&#8217;s acknowledgement of that message back across the same path. The responsibility for the m [...]
+</dd>
+<dt class="hdlist1">Routers are combined to form router networks</dt>
+<dd>
+<p>Routers are often deployed in topologies of multiple routers called a router network. Routers use link-state routing protocols and algorithms similar to the Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (IS-IS) protocols to calculate the best path from every message source to every message destination, and to recover quickly from failures. A router network relies on redundant network paths to provide continued connectivity in case of system or network  [...]
+</dd>
+<dt class="hdlist1">Routers enhance both direct and indirect messaging patterns</dt>
+<dd>
+<p>A messaging client can make a single AMQP connection into a router network and, over that connection, exchange messages with one or more message brokers connected to any router in the network. At the same time, the client can exchange messages directly with other endpoints without involving a broker at all.</p>
+<div class="exampleblock">
+<div class="title">Example 1. Enhancing the use of message brokers</div>
+<div class="content">
+<div class="paragraph">
+<p>Routers can enhance a cluster of message brokers that provide a scalable, distributed work queue.</p>
+</div>
+<div class="paragraph">
+<p>The router network makes the broker cluster appear as a single queue, with producers publishing to a single address, and consumers subscribing to a single address. The router network can distribute work to any broker in the cluster, and collect work from any broker for any consumer.</p>
+</div>
+<div class="paragraph">
+<p>The routers improve the scalability of the broker cluster, because brokers can be added or removed from the cluster without affecting the clients.</p>
+</div>
+<div class="paragraph">
+<p>The routers also solve the common difficulty of "stuck messages". Without the router network, if a consumer is connected to a broker that does not have any messages (but other brokers in the cluster do have messages), you must either transfer the messages or leave them "stuck". The routers solve this issue, however, because all of the consumers are connected to all of the brokers through the router network. A message on any broker can be delivered to any of the consumers.</p>
+</div>
+</div>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect3">
+<h4 id="how-routers-route-messages-router">1.3.3. How routers route messages</h4>
+<div class="paragraph">
+<p>In a router network, <em>routing</em> is the process by which messages are delivered to their destinations. To accomplish this, Dispatch Router offers two different routing mechanisms:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Message routing</dt>
+<dd>
+<p>Message routing enables you to distribute messages in anycast and multicast patterns. These patterns can be used for both direct routing, in which the router distributes messages between clients without a message broker, and indirect routing, in which the router enables clients to exchange messages through a message broker.</p>
+<div class="paragraph">
+<p>Message routing is useful for the following types of requirements:</p>
+</div>
+<div class="openblock">
+<div class="content">
+<div class="ulist">
+<ul>
+<li>
+<p>Default, basic message routing</p>
+<div class="paragraph">
+<p>Dispatch Router automatically routes messages by default, so manual configuration is only required if you want routing behavior that is different than the default.</p>
+</div>
+</li>
+<li>
+<p>Message-based routing patterns</p>
+<div class="paragraph">
+<p>Message routing supports both anycast and multicast routing patterns. You can load-balance individual messages across multiple consumers, and multicast (or fan-out) messages to multiple subscribers.</p>
+</div>
+</li>
+<li>
+<p>Sharding messages across multiple message brokers when message delivery order is not important</p>
+<div class="paragraph">
+<p>Sharding messages from one producer might cause that producer’s messages to be received in a different order than the order in which they were sent.</p>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</dd>
+<dt class="hdlist1">Link routing</dt>
+<dd>
+<p>Link routing enables you to establish a dedicated, virtual "path" between a sender and receiver that travels through the router network. Link routes are typically used to connect clients to message brokers in scenarios in which a direct connection is unfeasible. Therefore, link routes enable messaging capabilities that are not possible with message routing, such as:</p>
+<div class="openblock">
+<div class="content">
+<div class="ulist">
+<ul>
+<li>
+<p>Transactional messaging</p>
+<div class="paragraph">
+<p>Link routing supports local transactions to a single broker. Distributed transactions are not supported.</p>
+</div>
+</li>
+<li>
+<p>Guaranteed message delivery order</p>
+<div class="paragraph">
+<p>Link routing to a sharded queue preserves the delivery order of the producer’s messages by causing all messages on that link to go to the same broker instance.</p>
+</div>
+</li>
+<li>
+<p>End-to-end flow control</p>
+<div class="paragraph">
+<p>Flow control is "real" in that credits flow across the link route from the receiver to the sender.</p>
+</div>
+</li>
+<li>
+<p>Server-side selectors</p>
+<div class="paragraph">
+<p>With a link route, consumers can provide server-side selectors for broker subscriptions.</p>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</dd>
+</dl>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p><a href="#configuring-message-routing">Configuring Message Routing</a></p>
+</li>
+<li>
+<p><a href="#configuring-link-routing">Configuring Link Routing</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="router-security-router">1.3.4. Router security</h4>
+<div class="paragraph">
+<p>Dispatch Router provides authentication and authorization mechanisms so that you can control who can access the router network, and what they can do with the messaging resources.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Authentication</dt>
+<dd>
+<p>Dispatch Router supports both SSL/TLS and SASL for encrypting and authenticating remote peers. Using these mechanisms, you can secure the router network in the following ways:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Authenticate incoming connections from remote peers (such as clients and message brokers)</p>
+</li>
+<li>
+<p>Provide authentication credentials for outgoing connections to remote peers (such as clients and message brokers)</p>
+</li>
+<li>
+<p>Secure the inter-router connections between the routers in the router network</p>
+</li>
+</ul>
+</div>
+</dd>
+<dt class="hdlist1">Authorization</dt>
+<dd>
+<p>Dispatch Router provides a <code>policy</code> mechanism that you can use to enforce user connection restrictions and AMQP resource access control.</p>
+</dd>
+</dl>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p><a href="#authenticating-remote-peers">Authenticating Remote Peers</a></p>
+</li>
+<li>
+<p><a href="#authorizing-access-to-messaging-resources">Authorizing Access to Messaging Resources</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="router-management-router">1.3.5. Router management</h4>
+<div class="paragraph">
+<p>Dispatch Router provides both graphical and CLI tools for monitoring and managing a router network.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Apache Qpid Dispatch Router Console</dt>
+<dd>
+<p>A web console for monitoring the layout and health of the router network.</p>
+</dd>
+<dt class="hdlist1">qdstat</dt>
+<dd>
+<p>A command-line tool for monitoring the status of a router in the router network. Using this tool, you can view the following information about a router:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Incoming and outgoing connections</p>
+</li>
+<li>
+<p>Incoming and outgoing links</p>
+</li>
+<li>
+<p>Router network topology from the perspective of this router</p>
+</li>
+<li>
+<p>Addresses known to this router</p>
+</li>
+<li>
+<p>Link routes and autolinks</p>
+</li>
+<li>
+<p>Memory consumption information</p>
+</li>
+</ul>
+</div>
+</dd>
+<dt class="hdlist1">qdmanage</dt>
+<dd>
+<p>A command-line tool for viewing and updating the configuration of a router at runtime.</p>
+</dd>
+</dl>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p><a href="#console-overview">Console Overview</a></p>
+</li>
+<li>
+<p><a href="#monitoring-using-qdstat">Monitoring Dispatch Router Using <code>qdstat</code></a></p>
+</li>
+<li>
+<p><a href="#managing-router">Managing Dispatch Router Using <code>qdmanage</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="document-conventions-router">1.4. Document conventions</h3>
+<div class="paragraph">
+<p>In this document, <code>sudo</code> is used for any command that requires root privileges. You should always exercise caution when using <code>sudo</code>, as any changes can affect the entire system.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="getting-started-router">2. Getting started</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section shows you how to install Dispatch Router on a single host, start the router with the default configuration settings, and distribute messages between two clients.</p>
+</div>
+<div class="sect2">
+<h3 id="installing-router-router">2.1. Installing Dispatch Router</h3>
+<div class="paragraph">
+<p>Dispatch Router is distributed as a set of RPM packages, which are available for <code>yum</code>/<code>dnf</code>-based Linux distributions. Alternatively, you can build the Dispatch Router from source.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Dispatch Router will not build on Windows.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Do one of the following:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Download and build the Dispatch Router source.</p>
+<div class="paragraph">
+<p>To download the source, see <a href="https://qpid.apache.org/download.html" target="_blank" rel="noopener">Download page</a>. For instructions on building the source, see the <a href="https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;a=blob_plain;f=README;hb=1.0.1" target="_blank" rel="noopener">Qpid Dispatch README</a>.</p>
+</div>
+</li>
+<li>
+<p>Install the Dispatch Router packages.</p>
+<div class="paragraph">
+<p>Packages are available for <code>yum</code>/<code>dnf</code>-based Linux distributions. For more information, see the <a href="https://qpid.apache.org/packages.html" target="_blank" rel="noopener">Packages page</a>.</p>
+</div>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="viewing-default-router-configuration-file-router">2.2. Viewing the default router configuration file</h3>
+<div class="paragraph">
+<p>The router&#8217;s configuration file (<code>qdrouterd.conf</code>) controls the way in which the router functions. The default configuration file contains the minimum number of settings required for the router to run. As you become more familiar with the router, you can add to or change these settings, or create your own configuration files.</p>
+</div>
+<div class="paragraph">
+<p>By default, the router configuration file defines the following settings for the router:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Operating mode</p>
+</li>
+<li>
+<p>How it listens for incoming connections</p>
+</li>
+<li>
+<p>Routing patterns for the message routing mechanism</p>
+</li>
+</ul>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>Open the following file: <code>/etc/qpid-dispatch/qdrouterd.conf</code>.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>When Dispatch Router is installed, <code>qdrouterd.conf</code> is installed in this directory. When the router is started, it runs with the settings defined in this file.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Review the default settings in <code>qdrouterd.conf</code>.</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="title">Default Configuration File</div>
+<div class="content">
+<pre class="nowrap">router {
+    mode: standalone <b class="conum">(1)</b>
+    id: Router.A <b class="conum">(2)</b>
+}
+
+listener { <b class="conum">(3)</b>
+    host: 0.0.0.0
+    port: amqp
+    authenticatePeer: no
+}
+
+address { <b class="conum">(4)</b>
+    prefix: closest
+    distribution: closest
+}
+
+address {
+    prefix: multicast
+    distribution: multicast
+}
+
+address {
+    prefix: unicast
+    distribution: closest
+}
+
+address {
+    prefix: exclusive
+    distribution: closest
+}
+
+address {
+    prefix: broadcast
+    distribution: multicast
+}</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>By default, the router operates in <em>standalone</em> mode. This means that it can only communicate with endpoints that are directly connected to it. It cannot connect to other routers, or participate in a router network.</p>
+</li>
+<li>
+<p>The unique identifier of the router. This ID is used as the <code>container-id</code> (container name) at the AMQP protocol level. If it is not specified, the router shall generate a random identifier at startup.</p>
+</li>
+<li>
+<p>The <code>listener</code> entity handles incoming connections from client endpoints. By default, the router listens on all network interfaces on the default AMQP port (5672).</p>
+</li>
+<li>
+<p>By default, the router is configured to use the message routing mechanism. Each <code>address</code> entity defines how messages that are received with a particular address <code>prefix</code> should be distributed. For example, all messages with addresses that start with <code>closest</code> will be distributed using the <code>closest</code> distribution pattern.</p>
+</li>
+</ol>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If a client requests a message with an address that is not defined in the router&#8217;s configuration file, the <code>balanced</code> distribution pattern will be used automatically.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p>For more information about the router configuration file (including available entities and attributes), see the <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.html" target="_blank" rel="noopener">qdrouterd man page</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="starting-router-router">2.3. Starting the router</h3>
+<div class="paragraph">
+<p>After installing Dispatch Router, you start the router by using the <code>qdrouterd</code> command.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>To start the router, use the <strong><code>qdrouterd</code></strong> command.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>This example uses the default configuration to start the router as a daemon:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">$ qdrouterd -d</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>The router starts, using the default configuration file stored at <code>/etc/qpid-dispatch/qdrouterd.conf</code>.</p>
+</div>
+</li>
+<li>
+<p>View the log to verify the router status:</p>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">$ qdstat --log</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows that the router was correctly installed, is running, and is ready to route traffic between clients:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --log
+Fri May 20 09:38:03 2017 SERVER (info) Container Name: Router.A
+Fri May 20 09:38:03 2017 ROUTER (info) Router started in Standalone mode
+Fri May 20 09:38:03 2017 ROUTER (info) Router Core thread running. 0/Router.A
+Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription M/$management
+Fri May 20 09:38:03 2017 AGENT (info) Activating management agent on $_management_internal
+Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription L/$management
+Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription L/$_management_internal
+Fri May 20 09:38:03 2017 DISPLAYNAME (info) Activating DisplayNameService on $displayname
+Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription L/$displayname
+Fri May 20 09:38:03 2017 CONN_MGR (info) Configured Listener: 0.0.0.0:amqp proto=any role=normal
+Fri May 20 09:38:03 2017 POLICY (info) Policy configured maximumConnections: 0, policyFolder: '', access rules enabled: 'false'
+Fri May 20 09:38:03 2017 POLICY (info) Policy fallback defaultApplication is disabled
+Fri May 20 09:38:03 2017 SERVER (info) Operational, 4 Threads Running</pre>
+</div>
+</div>
+</li>
+</ol>
+</div>
+<div class="ulist">
+<div class="title">Additional resources</div>
+<ul>
+<li>
+<p>The <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.html" target="_blank" rel="noopener">qdrouterd man page</a>.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="sending-test-messages-router">2.4. Sending test messages</h3>
+<div class="paragraph">
+<p>After starting the router, send some test messages to see how the router can connect two endpoints by distributing messages between them.</p>
+</div>
+<div class="paragraph">
+<p>This procedure demonstrates a simple configuration consisting of a single router with two clients connected to it: a sender and a receiver. The receiver wants to receive messages on a specific address, and the sender sends
+messages to that address.</p>
+</div>
+<div class="paragraph">
+<p>A broker is not used in this procedure, so there is no <em>"store and forward"</em> mechanism in the middle. Instead, the messages flow from the sender, through the router, to the receiver only if the receiver is online, and the sender can confirm that the messages have arrived at their destination.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>Apache Qpid Proton Python must be installed. For more information, see <a href="https://qpid.apache.org/proton/" class="bare">https://qpid.apache.org/proton/</a>.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>Navigate to the Apache Qpid Proton Python Python examples directory.</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">$ cd <em>&lt;install-dir&gt;</em>/examples/python/</code></pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">&lt;install-dir&gt;</dt>
+<dd>
+<p>The directory where you installed Apache Qpid Proton Python.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Start the <code>simple_recv.py</code> receiver client.</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">$ python simple_recv.py -a 127.0.0.1:5672/examples -m 5</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This command starts the receiver and listens on the <code>examples</code> address (<code>127.0.0.1:5672/examples</code>). The receiver is also set to receive a maximum of five messages.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>In practice, the order in which you start senders and receivers does not matter. In both cases, messages will be sent as soon as the receiver comes online.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>In a new terminal window, navigate to the Python examples directory and run the <code>simple_send.py</code> example:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">$ cd <em>&lt;install-dir&gt;</em>/examples/python/
+$ python simple_send.py -a 127.0.0.1:5672/examples -m 5</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This command sends five auto-generated messages to the <code>examples</code> address (<code>127.0.0.1:5672/examples</code>) and then confirms that they were delivered and acknowledged by the receiver:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">all messages confirmed</code></pre>
+</div>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Verify that the receiver client received the messages.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>The receiver client should display the contents of the five messages:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-bash hljs" data-lang="bash">{u'sequence': 1L}
+{u'sequence': 2L}
+{u'sequence': 3L}
+{u'sequence': 4L}
+{u'sequence': 5L}</code></pre>
+</div>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect2">
+<h3 id="next-steps-router">2.5. Next steps</h3>
+<div class="paragraph">
+<p>After you successfully install a standalone router and use it to distribute messages between two clients, you can configure the router to make it production-ready, and add additional routers to form a router network.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Configure the router</dt>
+<dd>
+<p>You can configure the router to meet the requirements of your production environment.</p>
+<div class="openblock">
+<div class="content">
+<div class="ulist">
+<ul>
+<li>
+<p>Secure the router:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Add authentication to control which users can connect to the router</p>
+</li>
+<li>
+<p>Add authorization to control what messaging resources those users can access</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Configure addresses to specify routing patterns for direct-routed (brokerless) messaging</p>
+</li>
+<li>
+<p>Connect the router to a message broker to enable clients to exchange messages with a broker queue.</p>
+</li>
+<li>
+<p>Create link routes to define private messaging paths between endpoints.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</dd>
+<dt class="hdlist1">Deploy a router network</dt>
+<dd>
+<p>After deploying a single router, you can deploy additional routers and connect them together to form a router network. Router networks can be any arbitrary topology.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="router-configuration">3. Configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Before starting Dispatch Router, you should understand where the router&#8217;s configuration file is stored, how the file is structured, and the methods you can use to modify it.</p>
+</div>
+<div class="sect2">
+<h3 id="accessing_the_router_configuration_file">3.1. Accessing the Router Configuration File</h3>
+<div class="paragraph">
+<p>The router&#8217;s configuration is defined in the router configuration file. You can access this file to view and modify that configuration.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Open the following file: <code>/etc/qpid-dispatch/qdrouterd.conf</code>.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>When Dispatch Router is installed, <code>qdrouterd.conf</code> is installed in this directory by default. When the router is started, it runs with the settings defined in this file.</p>
+</div>
+<div class="paragraph">
+<p>For more information about the router configuration file (including available entities and attributes), see the <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.html" target="_blank" rel="noopener">qdrouterd man page</a>.</p>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="how_the_router_configuration_file_is_structured">3.2. How the Router Configuration File is Structured</h3>
+<div class="paragraph">
+<p>Before you can make changes to a router configuration file, you should understand how the file is structured.</p>
+</div>
+<div class="paragraph">
+<p>The configuration file contains sections. A section is a configurable entity, and it contains a set of attribute name-value pairs that define the settings for that entity. The syntax is as follows:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">sectionName {
+    attributeName: attributeValue
+    attributeName: attributeValue
+    ...
+}</pre>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="methods-for-using-pattern-matching">3.3. Methods for Using Pattern Matching and Wildcards</h3>
+<div class="paragraph">
+<p>The router configuration file supports pattern matching and wildcards to enable you to match multiple values for certain attributes. However, the syntax varies based on the type of entity that you are configuring.</p>
+</div>
+<div class="sect3">
+<h4 id="router-address-pattern-matching">3.3.1. Pattern Matching for Addresses</h4>
+<div class="paragraph">
+<p>In some router configuration scenarios, you might need to use pattern matching to match a range of addresses rather than a single, literal address. Address patterns match any address that corresponds to the pattern.</p>
+</div>
+<div class="paragraph">
+<p>An address pattern is a sequence of tokens (typically words) that are delimited by either <code>.</code> or <code>/</code> characters. They also can contain special wildcard characters that represent words:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>*</code> represents exactly one word</p>
+</li>
+<li>
+<p><code>#</code> represents zero or more words</p>
+</li>
+</ul>
+</div>
+<div class="exampleblock">
+<div class="title">Example 2. Address Pattern</div>
+<div class="content">
+<div class="paragraph">
+<p>This address contains two tokens, separated by the <code>/</code> delimiter:</p>
+</div>
+<div class="paragraph">
+<p><code>my/address</code></p>
+</div>
+</div>
+</div>
+<div class="exampleblock">
+<div class="title">Example 3. Address Pattern with Wildcard</div>
+<div class="content">
+<div class="paragraph">
+<p>This address contains three tokens. The <code>*</code> is a wildcard, representing any single word that might be between <code>my</code> and <code>address</code>:</p>
+</div>
+<div class="paragraph">
+<p><code>my/*/address</code></p>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>The following table shows some address patterns and examples of the addresses that would match them:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">This pattern&#8230;&#8203;</th>
+<th class="tableblock halign-left valign-top">Matches&#8230;&#8203;</th>
+<th class="tableblock halign-left valign-top">But not&#8230;&#8203;</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/*</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/europe</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/usa</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/usa/sports</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/#</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/europe</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/usa/sports</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>europe</code></p>
+</div>
+<div class="paragraph">
+<p><code>usa</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/europe/#</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/europe</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/europe/sports</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/europe/politics/fr</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/usa</code></p>
+</div>
+<div class="paragraph">
+<p><code>europe</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/*/sports</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news/europe/sports</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/usa/sports</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>news</code></p>
+</div>
+<div class="paragraph">
+<p><code>news/europe/fr/sports</code></p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="pattern-matching-vhost-policy-hostnames">3.3.2. Pattern Matching for Vhost Policy Hostnames</h4>
+<div class="paragraph">
+<p>In a vhost policy, vhost hostnames can be either literal hostnames or patterns that cover a range of hostnames.</p>
+</div>
+<div class="paragraph">
+<p>A hostname pattern is a sequence of words with one or more of the following wildcard characters:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>*</code> represents exactly one word</p>
+</li>
+<li>
+<p><code>#</code> represents zero or more words</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The following table shows some examples of hostname patterns:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">This pattern&#8230;&#8203;</th>
+<th class="tableblock halign-left valign-top">Matches&#8230;&#8203;</th>
+<th class="tableblock halign-left valign-top">But not&#8230;&#8203;</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>*.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>www.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>example.com</code>
+<code>srv2.www.example.com</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>#.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>example.com</code>
+<code>www.example.com</code>
+<code>a.b.c.d.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>myhost.com</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>www.*.test.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>www.a.test.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>www.test.example.com</code>
+<code>www.a.b.c.test.example.com</code></p>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>www.#.test.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>www.test.example.com</code>
+<code>www.a.test.example.com</code>
+<code>www.a.b.c.test.example.com</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p><code>test.example.com</code></p>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Vhost hostname pattern matching applies the following precedence rules:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Policy pattern</th>
+<th class="tableblock halign-left valign-top">Precedence</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Exact match</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">High</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">*</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Medium</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">#</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Low</p></td>
+</tr>
+</tbody>
+</table>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Dispatch Router does not permit you to create vhost hostname patterns that conflict with existing patterns. This includes patterns that can be reduced to be the same as an existing pattern. For example, you would not be able to create the <code>#.#.#.#.com</code> pattern if <code>#.com</code> already exists.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="methods-for-changing-router-configuration">3.4. Changing a Router&#8217;s Configuration</h3>
+<div class="paragraph">
+<p>You can use different methods for changing a router&#8217;s configuration based on whether the router is currently running, and whether you want the change to take effect immediately.</p>
+</div>
+<div class="ulist">
+<div class="title">Choices</div>
+<ul>
+<li>
+<p><a href="#making-permanent-change-to-router-configuration">Make a permanent change to the router&#8217;s configuration</a>.</p>
+</li>
+<li>
+<p><a href="#changing-configuration-for-running-router">Change the configuration for a running router.</a></p>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="making-permanent-change-to-router-configuration">3.4.1. Making a Permanent Change to the Router&#8217;s Configuration</h4>
+<div class="paragraph">
+<p>You can make a permanent change to the router&#8217;s configuration by editing the router&#8217;s configuration file directly. You must restart the router for the changes to take effect, but the changes will be saved even if the router is stopped.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>Do one of the following:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Edit the default configuration file (<code>/etc/qpid-dispatch/qdrouterd.conf</code>).</p>
+</li>
+<li>
+<p>Create a new configuration file.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Start (or restart) the router.</p>
+<div class="paragraph">
+<p>If you created a new configuration file, you must specify the path using the <code>--conf</code> parameter. For example, the following command starts the router with a non-default configuration file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ sudo qdrouterd -d --conf /etc/qpid-dispatch/new-configuration-file.conf</pre>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="changing-configuration-for-running-router">3.4.2. Changing the Configuration for a Running Router</h4>
+<div class="paragraph">
+<p>If the router is running, you can change its configuration on the fly. The changes you make take effect immediately, but are lost if the router is stopped.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use <code>qdmanage</code> to change the configuration.</p>
+<div class="paragraph">
+<p>For more information about using <code>qdmanage</code>, see <a href="#managing-router">Managing Dispatch Router Using <em>qdmanage</em></a>.</p>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="default_configuration_settings">3.5. Default Configuration Settings</h3>
+<div class="paragraph">
+<p>The router&#8217;s configuration file controls the way in which the router functions. The default configuration file contains the minimum number of settings required for the router to run. As you become more familiar with the router, you can add to or change these settings, or create your own configuration files.</p>
+</div>
+<div class="paragraph">
+<p>When you installed Dispatch Router, the default configuration file was added at the following path: <code>/etc/qpid-dispatch/qdrouterd.conf</code>. It includes some basic configuration settings that define the router&#8217;s operating mode, how it listens for incoming connections, and routing patterns for the message routing mechanism.</p>
+</div>
+<div class="listingblock">
+<div class="title">Default Configuration File</div>
+<div class="content">
+<pre class="nowrap">router {
+    mode: standalone <b class="conum">(1)</b>
+    id: Router.A <b class="conum">(2)</b>
+}
+
+listener { <b class="conum">(3)</b>
+    host: 0.0.0.0 <b class="conum">(4)</b>
+    port: amqp <b class="conum">(5)</b>
+    authenticatePeer: no <b class="conum">(6)</b>
+}
+
+address { <b class="conum">(7)</b>
+    prefix: closest
+    distribution: closest
+}
+
+address {
+    prefix: multicast
+    distribution: multicast
+}
+
+address {
+    prefix: unicast
+    distribution: closest
+}
+
+address {
+    prefix: exclusive
+    distribution: closest
+}
+
+address {
+    prefix: broadcast
+    distribution: multicast
+}</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>By default, the router operates in <em>standalone</em> mode. This means that it can only communicate with endpoints that are directly connected to it. It cannot connect to other routers, or participate in a router network.</p>
+</li>
+<li>
+<p>The unique identifier of the router. This ID is used as the <code>container-id</code> (container name) at the AMQP protocol level. It is required, and the router will not start if this attribute is not defined.</p>
+</li>
+<li>
+<p>The <code>listener</code> entity handles incoming connections from client endpoints.</p>
+</li>
+<li>
+<p>The IP address on which the router will listen for incoming connections. By default, the router is configured to listen on all network interfaces.</p>
+</li>
+<li>
+<p>The port on which the router will listen for incoming connections. By default, the default AMQP port (5672) is specified with a symbolic service name.</p>
+</li>
+<li>
+<p>Specifies whether the router should authenticate peers before they can connect to the router. By default, peer authentication is not required.</p>
+</li>
+<li>
+<p>By default, the router is configured to use the message routing mechanism. Each <code>address</code> entity defines how messages that are received with a particular address <code>prefix</code> should be distributed. For example, all messages with addresses that start with <code>closest</code> will be distributed using the <code>closest</code> distribution pattern.</p>
+</li>
+</ol>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If a client requests a message with an address that is not defined in the router&#8217;s configuration file, the <code>balanced</code> distribution pattern will be used automatically.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="setting_essential_configuration_properties">3.6. Setting Essential Configuration Properties</h3>
+<div class="paragraph">
+<p>The router&#8217;s default configuration settings enable the router to run with minimal configuration. However, you may need to change some of these settings for the router to run properly in your environment.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>Open the router&#8217;s configuration file.</p>
+<div class="paragraph">
+<p>If you are changing the router&#8217;s default configuration file, the file is located at <code>/etc/qpid-dispatch/qdrouterd.conf</code>.</p>
+</div>
+</li>
+<li>
+<p>To define essential router information, change the following attributes as needed in the <code>router</code> section:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">router {
+    mode: <em>STANDALONE/INTERIOR/EDGE</em>
+    id: <em>ROUTER_ID</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>mode</code></dt>
+<dd>
+<p>Specify one of the following modes:</p>
+<div class="ulist">
+<ul>
+<li>
+<p><code>standalone</code> - Use this mode if the router does not communicate with
+other routers and is not part of a router network. When operating in
+this mode, the router only routes messages between directly connected
+endpoints.</p>
+</li>
+<li>
+<p><code>interior</code> - Use this mode if the router is part of a router network
+and needs to collaborate with other routers.</p>
+</li>
+<li>
+<p><code>edge</code> - Use this mode if the router is an edge router that will
+connect to a network of interior routers.</p>
+</li>
+</ul>
+</div>
+</dd>
+<dt class="hdlist1"><code>id</code></dt>
+<dd>
+<p>The unique
+identifier for the router. This ID will also be the container name at
+the AMQP protocol level.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_router">router</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If necessary for your environment, secure the router.</p>
+<div class="openblock">
+<div class="content">
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#setting-up-ssl-for-encryption-and-authentication">Set up SSL/TLS for encryption, authentication, or both</a></p>
+</li>
+<li>
+<p><a href="#setting-up-sasl-for-authentication-and-payload-encryption">Set up SASL for authentication and payload encryption</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Connect the router to other routers, clients, and brokers.</p>
+<div class="openblock">
+<div class="content">
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#adding-incoming-connections">Add incoming connections</a></p>
+</li>
+<li>
+<p><a href="#adding-outgoing-connections">Add outgoing connections</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Set up routing for your environment:</p>
+<div class="openblock">
+<div class="content">
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#routing-messages-between-clients">Configure the router to route messages between clients directly</a></p>
+</li>
+<li>
+<p><a href="#routing-messages-through-broker">Configure the router to route messages through a broker queue</a></p>
+</li>
+<li>
+<p><a href="#creating-link-route">Create a link route to define a private messaging path between endpoints</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p><a href="#logging">Set up logging</a>.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="router-network-connections">4. Network Connections</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Connections define how the router communicates with clients, other routers, and brokers. You can configure <em>incoming connections</em> to define how the router listens for data from clients and other routers, and you can configure <em>outgoing connections</em> to define how the router sends data to other routers and brokers.</p>
+</div>
+<div class="sect2">
+<h3 id="adding-incoming-connections">4.1. Listening for Incoming Connections</h3>
+<div class="paragraph">
+<p>Dispatch Router provides <em>listeners</em> that accept client connections.
+A client connecting to a router listener uses the
+same methods that it would use to connect to a broker. From the
+client&#8217;s perspective, the router connection and link establishment are
+identical to broker connection and link establishment.</p>
+</div>
+<div class="paragraph">
+<p>Several types of listeners are defined by their role.</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 80%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Role</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">normal</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is used for AMQP clients using normal message delivery.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">inter-router</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is assumed to be to another interior router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">route-container</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is a broker or other resource that holds known addresses. The router will use this connection to create links as necessary. The addresses are available for routing only after the remote resource has created a connection.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">edge</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is between an edge router and an interior router.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>In the router&#8217;s configuration file, add a <code>listener</code>:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">listener {
+    host: <em>HOST_NAME/ADDRESS</em>
+    port: <em>PORT_NUMBER/NAME</em>
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>host</code></dt>
+<dd>
+<p>Either an IP address (IPv4 or IPv6) or hostname on which the router should listen for incoming connections.</p>
+</dd>
+<dt class="hdlist1"><code>port</code></dt>
+<dd>
+<p>The port number or symbolic service name on which the router should listen for incoming connections.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_listener">listener</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If necessary, <a href="#securing-incoming-connections">secure the connection</a>.</p>
+<div class="paragraph">
+<p>If you have set up SSL/TLS or SASL in your environment, you can configure the router to only accept encrypted or authenticated communication on this connection.</p>
+</div>
+</li>
+<li>
+<p>If you want the router to listen for incoming connections on additional hosts or ports, configure an additional <code>listener</code> entity for each host and port.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect2">
+<h3 id="adding-outgoing-connections">4.2. Adding Outgoing Connections</h3>
+<div class="paragraph">
+<p>You can configure Dispatch Router to create outbound connections to
+messaging brokers or other AMQP entities using <em>connectors</em>. A
+connector is defined with the network address of the broker and the
+name or names of the resources that are available in that broker. When
+a router connects to a broker through a connector, it uses the same
+methods a normal messaging client would use when connecting to the
+broker.</p>
+</div>
+<div class="paragraph">
+<p>Several types of connectors are defined by their role.</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 20%;">
+<col style="width: 80%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Role</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">normal</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is used for AMQP clients using normal message delivery. On this connector the router will initiate the connection but it will never create any links. Links are to be created by the peer that accepts the connection.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">inter-router</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is assumed to be to another interior router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">route-container</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is to a broker or other resource that holds known addresses. The router will use this connection to create links as necessary. The addresses are available for routing only after the router has created a connection to the remote resource.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">edge</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">The connection is between an edge router and an interior router.</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>When a router connects to a broker, the broker might provide backup connection data that the router can use if the primary connection fails. If the primary connection fails, the router attempts to reconnect by using a combination of the primary and&#8201;&#8212;&#8201;if provided&#8201;&#8212;&#8201;backup connections in round-robin fashion until the connection is successful. For more information about viewing the backup connection data provided by the broker, see <a href="#managing-c [...]
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>In the router&#8217;s configuration file, add a <code>connector</code>:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {
+    name: <em>NAME</em>
+    host: <em>HOST_NAME/ADDRESS</em>
+    port: <em>PORT_NUMBER/NAME</em>
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>name</code></dt>
+<dd>
+<p>The name of the <code>connector</code>. You should specify a name that describes the entity to which the connector connects. This name is used by configured addresses (for example, a <code>linkRoute</code> entity) in order to specify which connection should be used for them.</p>
+</dd>
+<dt class="hdlist1"><code>host</code></dt>
+<dd>
+<p>Either an IP address (IPv4 or IPv6) or hostname on which the router should connect.</p>
+</dd>
+<dt class="hdlist1"><code>port</code></dt>
+<dd>
+<p>The port number or symbolic service name on which the router should connect.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_connector">connector</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If necessary, <a href="#securing-outgoing-connections">secure the connection</a>.</p>
+<div class="paragraph">
+<p>If you have set up SSL/TLS or SASL in your environment, you can configure the router to only send encrypted or authenticated communication on this connection.</p>
+</div>
+</li>
+<li>
+<p>For each remaining router or broker to which this router should connect, configure an additional <code>connector</code> entity.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect2">
+<h3 id="connection-failover-router">4.3. Connection Failover</h3>
+<div class="paragraph">
+<p>In Dispatch Router, a connector attempts to maintain an open network transport
+connection to the configured remote host and port.  If the connection cannot be
+established, the connector will continually retry until the connection is
+established.  If an established connection is lost, the connector shall
+immediately attempt to re-establish the connection.</p>
+</div>
+<div class="paragraph">
+<p>Connection Failover is a mechanism by which the remote host can provide
+alternate connection information for the connector to use in the event the
+established connection is lost.  In this case, rather than attempting to
+re-establish the connection to the same host, the connector shall try the
+alternate hosts as well.  This is useful in the case where the remote host is
+formed by a cluster or array of servers providing the same service.</p>
+</div>
+<div class="paragraph">
+<p>Dispatch Router can participate in Connection Failover as both a client (initiator
+of transport connections) and a server (recipient of transport connections).  In
+the client role, connectors shall always honor the failover lists provided by
+connected servers.  As a server, a listener may be configured to provide a
+failover list to the clients that connect to it.</p>
+</div>
+<div class="paragraph">
+<p>Listener attribute failoverUrls is an optional component that contains a
+comma-separated list of URLs to be used as backups for this listener.  Each URL
+is of the form:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>[(amqp|amqps|ws|wss)://]host_or_ip[:port]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>When a client establishes a connection to this listener, it will be provided
+with this list of backup URLs to be used in the event that this connection is
+lost.</p>
+</div>
+<div class="paragraph">
+<p>As an example, a listener may be configured like this:</p>
+</div>
+<div class="literalblock">
+<div class="content">
+<pre>listener {
+    host: primary.domain.com
+    port: amqp
+    failoverUrls: secondary.domain.com:20000, tertiary.domain.com
+    .
+    .
+    .
+}</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="security-config">5. Security</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Securing your router network involves configuring authentication and authorization. You can authenticate and encrypt the router&#8217;s connections using SSL/TLS or SASL. Additionally, you can authorize access to messaging resources by setting user connection restrictions and defining AMQP resource access control.</p>
+</div>
+<div class="sect2">
+<h3 id="authenticating-remote-peers">5.1. Authenticating Remote Peers</h3>
+<div class="paragraph">
+<p>You can configure Dispatch Router to communicate with clients, routers, and brokers in a secure way by authenticating and encrypting the router&#8217;s connections. Dispatch Router supports the following security protocols:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><em>SSL/TLS</em> for certificate-based encryption and mutual authentication</p>
+</li>
+<li>
+<p><em>SASL</em> for authentication and payload encryption</p>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="setting-up-ssl-for-encryption-and-authentication">5.1.1. Setting Up SSL/TLS for Encryption and Authentication</h4>
+<div class="paragraph">
+<p>Before you can secure incoming and outgoing connections using SSL/TLS encryption and authentication, you must first set up the SSL/TLS profile in the router&#8217;s configuration file.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>You must have the following files in PEM format:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>An X.509 CA certificate (used for signing the router certificate for the SSL/TLS server authentication feature).</p>
+</li>
+<li>
+<p>A private key (with or without password protection) for the router.</p>
+</li>
+<li>
+<p>An X.509 router certificate signed by the X.509 CA certificate.</p>
+</li>
+</ul>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add an <code>sslProfile</code> section:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">sslProfile {
+    name: <em>NAME</em>
+    ciphers: <em>CIPHERS</em>
+    protocols: <em>PROTOCOL</em>
+    caCertFile: <em>PATH</em>.pem
+    certFile: <em>PATH</em>.pem
+    privateKeyFile: <em>PATH</em>.pem
+    password: <em>PASSWORD/PATH_TO_PASSWORD_FILE</em>
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>name</code></dt>
+<dd>
+<p>A name for the SSL/TLS profile. You can use this name to refer to the profile from the incoming and outgoing connections.</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">name: router-ssl-profile</pre>
+</div>
+</div>
+</dd>
+<dt class="hdlist1"><code>ciphers</code></dt>
+<dd>
+<p>The SSL cipher suites that can be used by this SSL/TLS profile. If certain ciphers are unsuitable for your environment, you can use this attribute to restrict them from being used.</p>
+<div class="paragraph">
+<p>To enable a cipher list, enter one or more cipher strings separated by colons (<code>:</code>).</p>
+</div>
+<div class="exampleblock">
+<div class="title">Example 4. Enabling a Cipher List</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">ciphers: ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>To see the full list of available ciphers, use the <code>openssl ciphers</code> command. For more information about each cipher, see the <a href="https://www.openssl.org/docs/manmaster/man1/ciphers.html" target="_blank" rel="noopener">ciphers man page</a>.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>protocols</code></dt>
+<dd>
+<p>The SSL/TLS protocols that this router can use. You can specify a list of one or more of the following values: TLSv1, TLSv1.1, or TLSv1.2.</p>
+<div class="paragraph">
+<p>To specify multiple protocols, separate the protocols with a space.</p>
+</div>
+<div class="exampleblock">
+<div class="title">Example 5. Specifying Multiple Protocols</div>
+<div class="content">
+<div class="paragraph">
+<p>This example permits the SSL/TLS profile to use TLS v1.1 and TLS v1.2 only:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">protocols: TLSv1.1 TLSv1.2</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>If you do not specify a value, the router will use the TLS protocol specified by the system-wide configuration.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>When setting the TLS protocol versions for the router, you should also consider the TLS protocol version (or versions) used by your client applications. If a subset of TLS protocol versions does not exist between a client and the router, the client will not be able to connect to the router.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>caCertFile</code></dt>
+<dd>
+<p>The absolute path to the file that contains the public certificates of trusted certificate authorities (CA).</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">caCertFile: /qdrouterd/ssl_certs/ca-cert.pem</pre>
+</div>
+</div>
+</dd>
+<dt class="hdlist1"><code>certFile</code></dt>
+<dd>
+<p>The absolute path to the file containing the PEM-formatted public certificate to be used on the local end of any connections using this profile.</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">certFile: /qdrouterd/ssl_certs/router-cert-pwd.pem</pre>
+</div>
+</div>
+</dd>
+<dt class="hdlist1"><code>privateKeyFile</code></dt>
+<dd>
+<p>The absolute path to the file containing the PEM-formatted private key for the above certificate.</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">privateKeyFile: /qdrouterd/ssl_certs/router-key-pwd.pem</pre>
+</div>
+</div>
+</dd>
+<dt class="hdlist1"><code>passwordFile</code> or <code>password</code></dt>
+<dd>
+<p>If the private key is password-protected, you must provide the password by either specifying the absolute path to a file containing the password that unlocks the certificate key, or entering the password directly in the configuration file.</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">password: routerKeyPassword</pre>
+</div>
+</div>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional <code>sslProfile</code> attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_sslprofile">sslProfile</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="setting-up-sasl-for-authentication-and-payload-encryption">5.1.2. Setting Up SASL for Authentication and Payload Encryption</h4>
+<div class="paragraph">
+<p>If you plan to use SASL to authenticate connections, you must first add the SASL attributes to the <code>router</code> entity in the router&#8217;s configuration file. These attributes define a set of SASL parameters that can be used by the router&#8217;s incoming and outgoing connections.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>Before you can set up SASL, you must have the following:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#generating-sasl-database">The SASL database is generated.</a></p>
+</li>
+<li>
+<p><a href="#configuring-sasl-database">The SASL configuration file is configured.</a></p>
+</li>
+<li>
+<p>The Cyrus SASL plugin is installed for each SASL mechanism you plan to use.</p>
+<div class="paragraph">
+<p>Cyrus SASL uses plugins to support specific SASL mechanisms. Before you can use a particular SASL mechanism, the relevant plugin must be installed. For example, you need the <code>cyrus-sasl-plain</code> plugin to use SASL PLAIN authentication.</p>
+</div>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>To see a list of Cyrus SASL plugins in a <code>dnf</code>-based Linux system, use the <code>dnf search cyrus-sasl</code> command. To install a Cyrus SASL plugin, use the <code>dnf install <em>PLUGIN</em></code> command.</p>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add the following attributes to the <code>router</code> section:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">router {
+    ...
+    saslConfigDir: <em>PATH</em>
+    saslConfigName: <em>FILE_NAME</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>saslConfigDir</code></dt>
+<dd>
+<p>The absolute path to the SASL configuration file.</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">saslConfigDir: /qdrouterd/security</pre>
+</div>
+</div>
+</dd>
+<dt class="hdlist1"><code>saslConfigName</code></dt>
+<dd>
+<p>The name of the SASL configuration file. This name should <em>not</em> include the <code>.conf</code> file extension.</p>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">saslConfigName: qdrouterd_sasl</pre>
+</div>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="securing-incoming-connections">5.1.3. Securing Incoming Connections</h4>
+<div class="paragraph">
+<p>You can secure incoming connections by configuring each connection&#8217;s <code>listener</code> entity for encryption, authentication, or both.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>Before securing incoming connections, the security protocols you plan to use should be set up.</p>
+</div>
+<div class="ulist">
+<div class="title">Choices</div>
+<ul>
+<li>
+<p><a href="#adding-ssl-encryption-to-incoming-connection">Add SSL/TLS encryption</a></p>
+</li>
+<li>
+<p><a href="#adding-sasl-authentication-to-incoming-connection">Add SASL authentication</a></p>
+</li>
+<li>
+<p><a href="#adding-ssl-client-authentication-to-incoming-connection">Add SSL/TLS client authentication</a></p>
+</li>
+<li>
+<p><a href="#adding-sasl-payload-encryption-to-incoming-connection">Add SASL payload encryption</a></p>
+</li>
+</ul>
+</div>
+<div class="sect4">
+<h5 id="adding-ssl-encryption-to-incoming-connection">Adding SSL/TLS Encryption to an Incoming Connection</h5>
+<div class="paragraph">
+<p>You can configure an incoming connection to accept encrypted connections only. By adding SSL/TLS encryption, to connect to this router, a remote peer must first start an SSL/TLS handshake with the router and be able to validate the server certificate received by the router during the handshake.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add the following attributes to the connection&#8217;s <code>listener</code> entity:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">listener {
+    ...
+    sslProfile: <em>SSL_PROFILE_NAME</em>
+    requireSsl: yes
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sslProfile</code></dt>
+<dd>
+<p>The name of the SSL/TLS profile you set up.</p>
+</dd>
+<dt class="hdlist1"><code>requireSsl</code></dt>
+<dd>
+<p>Enter <code>yes</code> to require all clients connecting to the router on this connection to use encryption.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="adding-sasl-authentication-to-incoming-connection">Adding SASL Authentication to an Incoming Connection</h5>
+<div class="paragraph">
+<p>You can configure an incoming connection to authenticate the client using SASL. You can use SASL authentication with or without SSL/TLS encryption.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add the following attributes to the connection&#8217;s <code>listener</code> section:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">listener {
+    ...
+    authenticatePeer: yes
+    saslMechanisms: <em>MECHANISMS</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>authenticatePeer</code></dt>
+<dd>
+<p>Set this attribute to <code>yes</code> to require the router to authenticate the identity of a remote peer before it can use this incoming connection.</p>
+</dd>
+<dt class="hdlist1"><code>saslMechanisms</code></dt>
+<dd>
+<p>The SASL authentication mechanism (or mechanisms) to use for peer authentication. You can choose any of the Cyrus SASL authentication mechanisms <em>except</em> for <code>ANONYMOUS</code>. To specify multiple authentication mechanisms, separate each mechanism with a space.</p>
+<div class="paragraph">
+<p>For a full list of supported Cyrus SASL authentication mechanisms, see <a href="https://www.cyrusimap.org/sasl/sasl/authentication_mechanisms.html" target="_blank" rel="noopener">Authentication Mechanisms</a>.</p>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="adding-ssl-client-authentication-to-incoming-connection">Adding SSL/TLS Client Authentication to an Incoming Connection</h5>
+<div class="paragraph">
+<p>You can configure an incoming connection to authenticate the client using SSL/TLS.</p>
+</div>
+<div class="paragraph">
+<p>The base SSL/TLS configuration provides content encryption and server authentication, which means that remote peers can verify the router&#8217;s identity, but the router cannot verify a peer&#8217;s identity.</p>
+</div>
+<div class="paragraph">
+<p>However, you can require an incoming connection to use SSL/TLS client authentication, which means that remote peers must provide an additional certificate to the router during the SSL/TLS handshake. By using this certificate, the router can verify the client&#8217;s identity without using a username and password.</p>
+</div>
+<div class="paragraph">
+<p>You can use SSL/TLS client authentication with or without SASL authentication.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration, file, add the following attribute to the connection&#8217;s <code>listener</code> entity:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">listener {
+    ...
+    authenticatePeer: yes
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>authenticatePeer</code></dt>
+<dd>
+<p>Set this attribute to <code>yes</code> to require the router to authenticate the identity of a remote peer before it can use this incoming connection.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="adding-sasl-payload-encryption-to-incoming-connection">Adding SASL Payload Encryption to an Incoming Connection</h5>
+<div class="paragraph">
+<p>If you do not use SSL/TLS, you can still encrypt the incoming connection by using SASL payload encryption.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add the following attributes to the connection&#8217;s <code>listener</code> section:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">listener {
+    ...
+    requireEncryption: yes
+    saslMechanisms: <em>MECHANISMS</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>requireEncryption</code></dt>
+<dd>
+<p>Set this attribute to <code>yes</code> to require the router to use SASL payload encryption for the connection.</p>
+</dd>
+<dt class="hdlist1"><code>saslMechanisms</code></dt>
+<dd>
+<p>The SASL mechanism to use. You can choose any of the Cyrus SASL authentication mechanisms. To specify multiple authentication mechanisms, separate each mechanism with a space.</p>
+<div class="paragraph">
+<p>For a full list of supported Cyrus SASL authentication mechanisms, see <a href="https://www.cyrusimap.org/sasl/sasl/authentication_mechanisms.html" target="_blank" rel="noopener">Authentication Mechanisms</a>.</p>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="securing-outgoing-connections">5.1.4. Securing Outgoing Connections</h4>
+<div class="paragraph">
+<p>You can secure outgoing connections by configuring each connection&#8217;s <code>connector</code> entity for encryption, authentication, or both.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>Before securing outgoing connections, the security protocols you plan to use should be set up.</p>
+</div>
+<div class="ulist">
+<div class="title">Choices</div>
+<ul>
+<li>
+<p><a href="#adding-ssl-authentication-to-outgoing-connection">Add SSL/TLS authentication</a></p>
+</li>
+<li>
+<p><a href="#adding-sasl-authentication-to-outgoing-connection">Add SASL authentication</a></p>
+</li>
+</ul>
+</div>
+<div class="sect4">
+<h5 id="adding-ssl-authentication-to-outgoing-connection">Adding SSL/TLS Client Authentication to an Outgoing Connection</h5>
+<div class="paragraph">
+<p>If an outgoing connection connects to an external client configured with mutual authentication, you should ensure that the outgoing connection is configured to provide the external client with a valid security certificate during the SSL/TLS handshake.</p>
+</div>
+<div class="paragraph">
+<p>You can use SSL/TLS client authentication with or without SASL authentication.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add the <code>sslProfile</code> attribute to the connection&#8217;s <code>connector</code> entity:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {
+    ...
+    sslProfile: <em>SSL_PROFILE_NAME</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sslProfile</code></dt>
+<dd>
+<p>The name of the SSL/TLS profile you set up.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="adding-sasl-authentication-to-outgoing-connection">Adding SASL Authentication to an Outgoing Connection</h5>
+<div class="paragraph">
+<p>You can configure an outgoing connection to provide authentication credentials to the external container. You can use SASL authentication with or without SSL/TLS encryption.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router&#8217;s configuration file, add the <code>saslMechanisms</code> attribute to the connection&#8217;s <code>connector</code> entity:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {
+    ...
+    saslMechanisms: <em>MECHANISMS</em>
+    saslUsername: <em>USERNAME</em>
+    saslPassword: <em>PASSWORD</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>saslMechanisms</code></dt>
+<dd>
+<p>One or more SASL mechanisms to use to authenticate the router to the external container. You can choose any of the Cyrus SASL authentication mechanisms. To specify multiple authentication mechanisms, separate each mechanism with a space.</p>
+<div class="paragraph">
+<p>For a full list of supported Cyrus SASL authentication mechanisms, see <a href="https://www.cyrusimap.org/sasl/sasl/authentication_mechanisms.html" target="_blank" rel="noopener">Authentication Mechanisms</a>.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>saslUsername</code></dt>
+<dd>
+<p>If any of the SASL mechanisms uses username/password authentication, then provide the username to connect to the external container.</p>
+</dd>
+<dt class="hdlist1"><code>saslPassword</code></dt>
+<dd>
+<p>If any of the SASL mechanisms uses username/password authentication, then provide the password to connect to the external container.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="integrating-with-kerberos">5.1.5. Integrating with Kerberos</h4>
+<div class="paragraph">
+<p>By using the <code>GSSAPI</code> SASL mechanism, you can configure Dispatch Router to authenticate incoming connections using Kerberos.</p>
+</div>
+<div class="ulist">
+<div class="title">Prerequisites</div>
+<ul>
+<li>
+<p>A Kerberos infrastructure must be deployed in your environment.</p>
+</li>
+<li>
+<p>In the Kerberos environment, a service principal of <code>amqp/<em>HOSTNAME</em>@<em>REALM</em></code> must be configured.</p>
+<div class="paragraph">
+<p>This is the service principal that Dispatch Router uses.</p>
+</div>
+</li>
+<li>
+<p>The <code>cyrus-sasl-gssapi</code> package must be installed on each client and router host machine.</p>
+</li>
+<li>
+<p><a href="#setting-up-sasl-for-authentication-and-payload-encryption">SASL must be set up for Dispatch Router</a>.</p>
+</li>
+</ul>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>On the router&#8217;s host machine, open the <code>/etc/sasl2/qdrouterd.conf</code> configuration file.</p>
+<div class="openblock">
+<div class="content">
+<div class="exampleblock">
+<div class="title">Example 6. An <code>/etc/sasl2/qdrouterd.conf</code> Configuration File</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">pwcheck_method: auxprop
+auxprop_plugin: sasldb
+sasldb_path: qdrouterd.sasldb
+keytab: /etc/krb5.keytab
+mech_list: ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN GSSAPI</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Verify the following:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>The <code>mech_list</code> attribute contains the <code>GSSAPI</code> mechanism.</p>
+</li>
+<li>
+<p>The <code>keytab</code> attribute points to the location of the keytab file.</p>
+</li>
+</ul>
+</div>
+</li>
+<li>
+<p>Open the router&#8217;s configuration file.</p>
+</li>
+<li>
+<p>For each incoming connection that should use Kerberos for authentication, set the router&#8217;s <code>listener</code> to use the <code>GSSAPI</code> mechanism.</p>
+<div class="openblock">
+<div class="content">
+<div class="exampleblock">
+<div class="title">Example 7. A <code>listener</code> in the Router Configuration File</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">listener {
+    ...
+    authenticatePeer: yes
+    saslMechanisms: GSSAPI
+}</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about these attributes, see <a href="#adding-sasl-authentication-to-incoming-connection">Adding SASL Authentication to an Incoming Connection</a>.</p>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="authorizing-access-to-messaging-resources">5.2. Authorizing Access to Messaging Resources</h3>
+<div class="paragraph">
+<p>You can configure <em>policies</em> to secure messaging resources in your messaging environment. Policies ensure that only authorized users can access messaging endpoints through the router network, and that the resources on those endpoints are used in an authorized way.</p>
+</div>
+<div class="paragraph">
+<p>Dispatch Router provides the following types of policies:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Global policies</dt>
+<dd>
+<p>Settings for the router. A global policy defines the maximum number of incoming user connections for the router (across all messaging endpoints), and defines how the router should use vhost policies.</p>
+</dd>
+<dt class="hdlist1">Vhost policies</dt>
+<dd>
+<p>Connection and AMQP resource limits for a messaging endpoint (called an AMQP virtual host, or vhost). A vhost policy defines what a client can access on a messaging endpoint over a particular connection.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The resource limits defined in global and vhost policies are applied to user connections only. The limits do not affect inter-router connections or router connections that are outbound to waypoints.</p>
+</div>
+<div class="sect3">
+<h4 id="how_dispatch_router_enforces_connection_and_resource_limits">5.2.1. How Dispatch Router Enforces Connection and Resource Limits</h4>
+<div class="paragraph">
+<p>Dispatch Router uses policies to determine whether to permit a connection, and if it is permitted, to apply the appropriate resource limits.</p>
+</div>
+<div class="paragraph">
+<p>When a client creates a connection to the router, the router first determines whether to allow or deny the connection. This decision is based on the following criteria:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Whether the connection will exceed the router’s global connection limit (defined in the global policy)</p>
+</li>
+<li>
+<p>Whether the connection will exceed the vhost’s connection limits (defined in the vhost policy that matches the host to which the connection is directed)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>If the connection is allowed, the router assigns the user (the authenticated user name from the connection) to a user group, and enforces the user group’s resource limits for the lifetime of the connection.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="setting_global_connection_limits">5.2.2. Setting Global Connection Limits</h4>
+<div class="paragraph">
+<p>You can set the incoming connection limit for the router. This limit defines the total number of concurrent client connections that can be open for this router.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router configuration file, add a <code>policy</code> section and set the <code>maxConnections</code>.</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">policy {
+    maxConnections: 10000
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>maxConnections</code></dt>
+<dd>
+<p>This limit is always enforced, even if no other policy settings have been defined. The limit is applied to all incoming connections regardless of remote host, authenticated user, or targeted vhost. The default (and the maximum) value is <code>65535</code>.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="setting_connection_and_resource_limits_for_messaging_endpoints">5.2.3. Setting Connection and Resource Limits for Messaging Endpoints</h4>
+<div class="paragraph">
+<p>You can define the connection limit and AMQP resource limits for a messaging endpoint by configuring a <em>vhost policy</em>. Vhost policies define what resources clients are permitted to access on a messaging endpoint over a particular connection.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>A vhost is typically the name of the host to which the client connection is directed. For example, if a client application opens a connection to the <code>amqp://mybroker.example.com:5672/queue01</code> URL, the vhost would be <code>mybroker.example.com</code>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>You can create vhost policies using either of the following methods:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#configuring-vhost-policies-router">Configure vhost policies directly in the router configuration file</a></p>
+</li>
+<li>
+<p><a href="#configuring-vhost-policies-json">Configure vhost policies as JSON files</a></p>
+</li>
+</ul>
+</div>
+<div class="sect4">
+<h5 id="enabling-vhost-policies">Enabling Vhost Policies</h5>
+<div class="paragraph">
+<p>You must enable the router to use vhost policies before you can create the policies.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>In the router configuration file, add a <code>policy</code> section if one does not exist, and enable vhost policies for the router.</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">policy {
+    ...
+    enableVhostPolicy: true
+    enableVhostNamePatterns: true | false
+    defaultVhost: $default
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>enableVhostPolicy</code></dt>
+<dd>
+<p>Enables the router to enforce the connection denials and resource limits defined in the configured vhost policies. The default is <code>false</code>, which means that the router will not enforce any vhost policies.</p>
+</dd>
+<dt class="hdlist1"><code>enableVhostNamePatterns</code></dt>
+<dd>
+<p>Enables pattern matching for vhost hostnames. If set to <code>true</code>, you can use wildcards to specify a range of hostnames for a vhost. If set to <code>false</code>, vhost hostnames are treated as literal strings. This means that you must specify the exact hostname for each vhost. The default is <code>false</code>.</p>
+</dd>
+<dt class="hdlist1"><code>defaultVhost</code></dt>
+<dd>
+<p>The name of the default vhost policy, which is applied to any connection for which a vhost policy has not been configured. The default is <code>$default</code>. If <code>defaultVhost</code> is not defined, then default vhost processing is disabled.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="configuring-vhost-policies-router">Configuring Vhost Policies in the Router Configuration File</h5>
+<div class="paragraph">
+<p>You can configure vhost policies in the router configuration file by configuring <code>vhost</code> entities. However, if multiple routers in your router network should be configured with the same vhost configuration, you will need to add the vhost configuration to each router’s configuration file.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>Vhost policies must be enabled for the router. For more information, see <a href="#enabling-vhost-policies">Enabling Vhost Policies</a>.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>Add a <code>vhost</code> section and define the connection limits for the messaging endpoint.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>The connection limits apply to all users that are connected to the vhost. These limits control the number of users that can be connected simultaneously to the vhost.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">vhost {
+    hostname: example.com
+    maxConnections: 10000
+    maxConnectionsPerUser: 100
+    maxConnectionsPerHost: 100
+    allowUnknownUser: true
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>hostname</code></dt>
+<dd>
+<p>The literal hostname of the vhost (the messaging endpoint) or a pattern that matches the vhost hostname. This vhost policy will be applied to any client connection that is directed to the hostname that you specify. This name must be unique; you can only have one vhost policy per hostname.</p>
+<div class="paragraph">
+<p>If <code>enableVhostNamePatterns</code> is set to <code>true</code>, you can use wildcards to specify a pattern that matches a range of hostnames. For more information, see <a href="#pattern-matching-vhost-policy-hostnames">Pattern Matching for Vhost Policy Hostnames</a>.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>maxConnections</code></dt>
+<dd>
+<p>The global maximum number of concurrent client connections allowed for this vhost. The default is 65535.</p>
+</dd>
+<dt class="hdlist1"><code>maxConnectionsPerUser</code></dt>
+<dd>
+<p>The maximum number of concurrent client connections allowed for any user. The default is 65535.</p>
+</dd>
+<dt class="hdlist1"><code>maxConnectionsPerHost</code></dt>
+<dd>
+<p>The maximum number of concurrent client connections allowed for any remote host (the host from which the client is connecting). The default is 65535.</p>
+</dd>
+<dt class="hdlist1"><code>allowUnknownUser</code></dt>
+<dd>
+<p>Whether unknown users (users who are not members of a defined user group) are allowed to connect to the vhost. Unknown users are assigned to the $default user group and receive $default settings. The default is false, which means that unknown users are not allowed.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>In the <code>vhost</code> section, beneath the connection settings that you added, add a <code>groups</code> entity to define the resource limits.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>You define resource limits by user group. A user group specifies the messaging resources the members of the group are allowed to access.</p>
+</div>
+<div class="exampleblock">
+<div class="title">Example 8. User Groups in a Vhost Policy</div>
+<div class="content">
+<div class="paragraph">
+<p>This example shows three user groups: admin, developers, and $default:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">vhost {
+    ...
+    groups: {
+        admin: {
+            users: admin1, admin2
+            remoteHosts: 127.0.0.1, ::1
+            sources: *
+            targets: *
+        }
+        developers: {
+            users: dev1, dev2, dev3
+            remoteHosts: *
+            sources: myqueue1, myqueue2
+            targets: myqueue1, myqueue2
+        }
+        $default: {
+            remoteHosts: *
+            allowDynamicSource: true,
+            allowAdminStatusUpdate: true,
+            sources: myqueue1, myqueue2
+            targets: myqueue1, myqueue2
+        }
+    }
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>users</code></dt>
+<dd>
+<p>A list of authenticated users for this user group. Use commas to separate multiple users. A user may belong to only one vhost user group.</p>
+</dd>
+<dt class="hdlist1"><code>remoteHosts</code></dt>
+<dd>
+<p>A list of remote hosts from which the users may connect. A host can be a hostname, IP address, or IP address range. Use commas to separate multiple hosts. To allow access from all remote hosts, specify a wildcard <code>*</code>. To deny access from all remote hosts, leave this attribute blank.</p>
+</dd>
+<dt class="hdlist1"><code>allowDynamicSource</code></dt>
+<dd>
+<p>If true, connections from users in this group are permitted to attach receivers to dynamic sources.  This permits creation of listners to temporary addresses or termporary queues.  If false, use of dynamic sources is forbidden.</p>
+</dd>
+<dt class="hdlist1"><code>allowAdminStatusUpdate</code></dt>
+<dd>
+<p>If true, connections from users in this group are permitted to modify the adminStatus of connections.  This permits termination of sender or receiver connections.  If false, the users of this group are prohibited from terminating any connections. Inter-router connections can never be terminated by any user under any circumstance. Defaults to true, no policy required.</p>
+</dd>
+<dt class="hdlist1"><code>allowWaypointLinks</code></dt>
+<dd>
+<p>If true, connections from users in this group are permitted to attach links using waypoint capabilities.  This allows endpoints to act as waypoints (i.e. brokers) without the need for configuring auto-links.  If false, use of waypoint capabilities is forbidden.</p>
+</dd>
+<dt class="hdlist1"><code>allowDynamicLinkRoutes</code></dt>
+<dd>
+<p>If true, connections from users in this group may dynamically create connection-scoped link route destinations.  This allows endpoints to act as link route destinations (i.e. brokers) without the need for configuring link-routes.  If false, creation of dynamic link route destintations is forbidden.</p>
+</dd>
+<dt class="hdlist1"><code>sources</code> | <code>sourcePattern</code></dt>
+<dd>
+<p>A list of AMQP source addresses from which users in this group may receive messages.</p>
+<div class="paragraph">
+<p>Use <code>sources</code> to specify one or more literal addresses. To specify multiple addresses, use a comma-separated list. To prevent users in this group from receiving messages from any addresses, leave this attribute blank. To allow access to an address specific to a particular user, specify the <code>${user}</code> token. For more information, see <a href="#methods-for-specifying-vhost-policy-source-target-addresses">Methods for Specifying Vhost Policy Source and Target Addresse [...]
+</div>
+<div class="paragraph">
+<p>Alternatively, you can use <code>sourcePattern</code> to match one or more addresses that correspond to a pattern. A pattern is a sequence of words delimited by either a <code>.</code> or <code>/</code> character. You can use wildcard characters to represent a word. The  <code>*</code> character matches exactly one word, and the <code>#</code> character matches any sequence of zero or more words.</p>
+</div>
+<div class="paragraph">
+<p>To specify multiple address ranges, use a comma-separated list of address patterns. For more information, see <a href="#router-address-pattern-matching">Router Address Pattern Matching</a>. To allow access to address ranges that are specific to a particular user, specify the <code>${user}</code> token. For more information, see <a href="#methods-for-specifying-vhost-policy-source-target-addresses">Methods for Specifying Vhost Policy Source and Target Addresses</a>.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>targets</code> | <code>targetPattern</code></dt>
+<dd>
+<p>A list of AMQP target addresses from which users in this group may send messages. You can specify multiple AMQP addresses and use user name substitution and address patterns the same way as with source addresses.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If necessary, add any advanced user group settings to the vhost user groups.</p>
+<div class="paragraph">
+<p>The advanced user group settings enable you to define resource limits based on the AMQP connection open, session begin, and link attach phases of the connection. For more information, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_vhost" target="_blank" rel="noopener">vhost</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect4">
+<h5 id="configuring-vhost-policies-json">Configuring Vhost Policies as JSON Files</h5>
+<div class="paragraph">
+<p>As an alternative to using the router configuration file, you can configure vhost policies in JSON files. If you have multiple routers that need to share the same vhost configuration, you can put the vhost configuration JSON files in a location accessible to each router, and then configure the routers to apply the vhost policies defined in these JSON files.</p>
+</div>
+<div class="ulist">
+<div class="title">Prerequisites</div>
+<ul>
+<li>
+<p>Vhost policies must be enabled for the router. For more information, see <a href="#enabling-vhost-policies">Enabling Vhost Policies</a>.</p>
+</li>
+</ul>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>In the router configuration file, specify the directory where you want to store the vhost policy definition JSON files.</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">policy {
+    ...
+    policyDir: <em>DIRECTORY_PATH</em>
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>policyDir</code></dt>
+<dd>
+<p>The absolute path to the directory that holds vhost policy definition files in JSON format. The router processes all of the vhost policies in each JSON file that is in this directory.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>In the vhost policy definition directory, create a JSON file for each vhost policy.</p>
+<div class="openblock">
+<div class="content">
+<div class="exampleblock">
+<div class="title">Example 9. Vhost Policy Definition JSON File</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-json hljs" data-lang="json">[
+    ["vhost", {
+        "hostname": "example.com",
+        "maxConnections": 10000,
+        "maxConnectionsPerUser": 100,
+        "maxConnectionsPerHost": 100,
+        "allowUnknownUser": true,
+        "groups": {
+            "admin": {
+                "users": ["admin1", "admin2"],
+                "remoteHosts": ["127.0.0.1", "::1"],
+                "sources": "*",
+                "targets": "*"
+            },
+            "developers": {
+                "users": ["dev1", "dev2", "dev3"],
+                "remoteHosts": "*",
+                "sources": ["myqueue1", "myqueue2"],
+                "targets": ["myqueue1", "myqueue2"]
+            },
+            "$default": {
+                "remoteHosts": "*",
+                "allowDynamicSource": true,
+                "sources": ["myqueue1", "myqueue2"],
+                "targets": ["myqueue1", "myqueue2"]
+            }
+        }
+    }]
+]</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about these attributes, see <a href="#configuring-vhost-policies-router">Configuring Vhost Policies in the Router Configuration File</a>.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect4">
+<h5 id="methods-for-specifying-vhost-policy-source-target-addresses">Methods for Specifying Vhost Policy Source and Target Addresses</h5>
+<div class="paragraph">
+<p>If you want to allow or deny access to multiple addresses on a vhost, there are several methods you can use to match multiple addresses without having to specify each address individually.</p>
+</div>
+<div class="paragraph">
+<p>The following table describes the methods you can use to specify multiple source and target addresses for a vhost:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 33%;">
+<col style="width: 67%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">To&#8230;&#8203;</th>
+<th class="tableblock halign-left valign-top">Do this&#8230;&#8203;</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allow all users in the user group to access all source or target addresses on the vhost</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Use a <code>*</code> wildcard character.</p>
+</div>
+<div class="exampleblock">
+<div class="title">Example 10. Receive from Any Address</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code>sources: *</code></pre>
+</div>
+</div>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Prevent all users in the user group from accessing all source or target addresses on the vhost</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Do not specify a value.</p>
+</div>
+<div class="exampleblock">
+<div class="title">Example 11. Prohibit Message Transfers to All Addresses</div>
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code>targets:</code></pre>
+</div>
+</div>
+</div>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Allow access to some resources specific to each user</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Use the <code>${user}</code> username substitution token. You can use this token with <code>source</code>, <code>target</code>, <code>sourcePattern</code>, and <code>targetPattern</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can only specify the <code>${user}</code> token once in an AMQP address name or pattern. If there are multiple tokens in an address, only the leftmost token will be substituted.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="exampleblock">
+<div class="title">Example 12. Receive from a User-Specific Address</div>
+<div class="content">
+<div class="paragraph">
+<p>This definition allows the users in the user group to receive messages from any address that meets any of the following rules:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Starts with the prefix <code>tmp_</code> and ends with the user name</p>
+</li>
+<li>
+<p>Starts with the prefix <code>temp</code> followed by any additional characters</p>
+</li>
+<li>
+<p>Starts with the user name, is followed by <code>-home-</code>, and ends with any additional characters</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sources: tmp_${user}, temp*, ${user}-home-*</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="exampleblock">
+<div class="title">Example 13. User-Specific Address Patterns</div>
+<div class="content">
+<div class="paragraph">
+<p>This definition allows the users in the user group to receive messages from any address that meets any of the following rules:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Starts with the prefix <code>tmp</code> and ends with the user name</p>
+</li>
+<li>
+<p>Starts with the prefix <code>temp</code> followed by zero or more additional characters</p>
+</li>
+<li>
+<p>Starts with the user name, is followed by <code>home</code>, and ends with one or more additional characters</p>
+</li>
+</ul>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sourcePattern: tmp.${user}, temp/#, ${user}.home/*</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>In an address pattern (<code>sourcePattern</code> or <code>targetPattern</code>), the username substitution token must be either the first or last token in the pattern. The token must also be alone within its delimited field, which means that it cannot be concatenated with literal text prefixes or suffixes.</p>
+</div>
+</td>
+</tr>
+</table>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect4">
+<h5 id="vhost_policy_examples">Vhost Policy Examples</h5>
+<div class="paragraph">
+<p>These examples demonstrate how to use vhost policies to authorize access to messaging resources.</p>
+</div>
+<div class="exampleblock">
+<div class="title">Example 14. Defining Basic Resource Limits for a Messaging Endpoint</div>
+<div class="content">
+<div class="paragraph">
+<p>In this example, a vhost policy defines resource limits for clients connecting to the <code>example.com</code> host.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-json hljs" data-lang="json">[
+    ["vhost", {
+        "hostname": "example.com",  <b class="conum">(1)</b>
+        "maxConnectionsPerUser": 10,  <b class="conum">(2)</b>
+        "allowUnknownUser": true,  <b class="conum">(3)</b>
+        "groups": {
+            "admin": {
+                "users": ["admin1", "admin2"],  <b class="conum">(4)</b>
+                "remoteHosts": ["127.0.0.1", "::1"],  <b class="conum">(5)</b>
+                "sources": "*",  <b class="conum">(6)</b>
+                "targets": "*"  <b class="conum">(7)</b>
+            },
+            "$default": {
+                "remoteHosts": "*",  <b class="conum">(8)</b>
+                "sources": ["news*", "sports*" "chat*"],  <b class="conum">(9)</b>
+                "targets": "chat*"  <b class="conum">(10)</b>
+            }
+        }
+    }]
+]</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The rules defined in this vhost policy will be applied to any user connecting to <code>example.com</code>.</p>
+</li>
+<li>
+<p>Each user can open up to 10 connections to the vhost.</p>
+</li>
+<li>
+<p>Any user can connect to this vhost. Users that are not part of the <code>admin</code> group are assigned to the <code>$default</code> group.</p>
+</li>
+<li>
+<p>If the <code>admin1</code> or <code>admin2</code> user connects to the vhost, they are assigned to the <code>admin</code> user group.</p>
+</li>
+<li>
+<p>Users in the <code>admin</code> user group must connect from localhost. If the admin user attempts to connect from any other host, the connection will be denied.</p>
+</li>
+<li>
+<p>Users in the admin user group can receive from any address offered by the vhost.</p>
+</li>
+<li>
+<p>Users in the admin user group can send to any address offered by the vhost.</p>
+</li>
+<li>
+<p>Any non-admin user is permitted to connect from any host.</p>
+</li>
+<li>
+<p>Non-admin users are permitted to receive messages from any addresses that start with the <code>news</code>, <code>sports</code>, or <code>chat</code> prefixes.</p>
+</li>
+<li>
+<p>Non-admin users are permitted to send messages to any addresses that start with the <code>chat</code> prefix.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="exampleblock">
+<div class="title">Example 15. Limiting Memory Consumption</div>
+<div class="content">
+<div class="paragraph">
+<p>By using the advanced vhost policy attributes, you can control how much system buffer memory a user connection can potentially consume.</p>
+</div>
+<div class="paragraph">
+<p>In this example, a stock trading site provides services for stock traders. However, the site must also accept high-capacity, automated data feeds from stock exchanges. To prevent trading activity from consuming memory needed for the feeds, a larger amount of system buffer memory is allotted to the feeds than to the traders.</p>
+</div>
+<div class="paragraph">
+<p>This example uses the <code>maxSessions</code> and <code>maxSessionWindow</code> attributes to set the buffer memory consumption limits for each AMQP session. These settings are passed directly to the AMQP connection and session negotiations, and do not require any processing cycles on the router.</p>
+</div>
+<div class="paragraph">
+<p>This example does not show the vhost policy settings that are unrelated to buffer allocation.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight nowrap"><code class="language-json hljs" data-lang="json">[
+    ["vhost", {
+        "hostname": "traders.com",  <b class="conum">(1)</b>
+        "groups": {
+            "traders": {
+                "users": ["trader1", "trader2"],  <b class="conum">(2)</b>
+                "maxFrameSize": 10000,
+                "maxSessionWindow": 5000000,  <b class="conum">(3)</b>
+                "maxSessions": 1  <b class="conum">(4)</b>
+            },
+            "feeds": {
+                "users": ["nyse-feed", "nasdaq-feed"],  <b class="conum">(5)</b>
+                "maxFrameSize": 60000,
+                "maxSessionWindow": 1200000000,  <b class="conum">(6)</b>
+                "maxSessions": 3  <b class="conum">(7)</b>
+            }
+        }
+    }]
+]</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The rules defined in this vhost policy will be applied to any user connecting to <code>traders.com</code>.</p>
+</li>
+<li>
+<p>The <code>traders</code> group includes <code>trader1</code>, <code>trader2</code>, and any other user defined in the list.</p>
+</li>
+<li>
+<p>At most, 5,000,000 bytes of data can be in flight on each session.</p>
+</li>
+<li>
+<p>Only one session per connection is allowed.</p>
+</li>
+<li>
+<p>The <code>feeds</code> group includes two users.</p>
+</li>
+<li>
+<p>At most, 1,200,000,000 bytes of data can be in flight on each session.</p>
+</li>
+<li>
+<p>Up to three sessions per connection are allowed.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="routing">6. Routing</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Routing is the process by which messages are delivered to their destinations. To accomplish this, Dispatch Router provides two routing mechanisms: <em>message routing</em> and <em>link routing</em>.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Message routing</dt>
+<dd>
+<p>Routing is performed on messages as producers send them to a router. When a message arrives on a router, the router routes the message and its <em>settlement</em> based on the message&#8217;s <em>address</em> and <em>routing pattern</em>.</p>
+<div class="openblock">
+<div class="content">
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/message-routing.png" alt="Message Routing">
+</div>
+<div class="title">Figure 1. Message Routing</div>
+</div>
+<div class="paragraph">
+<p>In this diagram, the message producer attaches a link to the router, and then sends a message over the link. When the router receives the message, it identifies the message&#8217;s destination based on the message&#8217;s address, and then uses its routing table to determine the best route to deliver the message either to its destination or to the next hop in the route. All dispositions (including settlement) are propagated along the same path that the original message transfer took.  [...]
+</div>
+</div>
+</div>
+</dd>
+<dt class="hdlist1">Link routing</dt>
+<dd>
+<p>Routing is performed on link-attach frames, which are chained together to form a virtual messaging path that directly connects a sender and receiver. Once a link route is established, the transfer of message deliveries, flow frames, and dispositions is performed across the link route.</p>
+<div class="openblock">
+<div class="content">
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/link-routing.png" alt="Link Routing">
+</div>
+<div class="title">Figure 2. Link Routing</div>
+</div>
+<div class="paragraph">
+<p>In this diagram, a router is connected to clients and to a broker, and it provides a link route to a queue on the broker (my_queue). The sender connects to the router, and the router propagates the link-attaches to the broker to form a direct link between the sender and the broker. The sender can begin sending messages to the queue, and the router passes the deliveries along the link route directly to the broker queue.</p>
+</div>
+</div>
+</div>
+</dd>
+</dl>
+</div>
+<div class="sect2">
+<h3 id="comparison_of_message_routing_and_link_routing">6.1. Comparison of Message Routing and Link Routing</h3>
+<div class="paragraph">
+<p>While you can use either message routing or link routing to deliver messages to a destination, they differ in several important ways. Understanding these differences will enable you to choose the proper routing approach for any particular use case.</p>
+</div>
+<div class="sect3">
+<h4 id="when_to_use_message_routing">6.1.1. When to Use Message Routing</h4>
+<div class="paragraph">
+<p>Message routing is the default routing mechanism. You can use it to route messages on a per-message basis between clients directly (direct-routed messaging), or to and from broker queues (brokered messaging).</p>
+</div>
+<div class="paragraph">
+<p>Message routing is best suited to the following requirements:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Default, basic message routing.</p>
+<div class="paragraph">
+<p>Dispatch Router automatically routes messages by default, so manual configuration is only required if you want routing behavior that is different than the default.</p>
+</div>
+</li>
+<li>
+<p>Message-based routing patterns.</p>
+<div class="paragraph">
+<p>Message routing supports both anycast and multicast routing patterns. You can load-balance individual messages across multiple consumers, and multicast (or fan-out) messages to multiple subscribers.</p>
+</div>
+</li>
+<li>
+<p>Sharding messages across multiple broker instances when message delivery order is not important.</p>
+<div class="paragraph">
+<p>Sharding messages from one producer might cause that producer&#8217;s messages to be received in a different order than the order in which they were sent.</p>
+</div>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Message routing is not suitable for any of the following requirements:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Dedicated path through the router network.</p>
+<div class="paragraph">
+<p>For inter-router transfers, all message deliveries are placed on the same inter-router link. This means that the traffic for one address might affect the delivery of the traffic for another address.</p>
+</div>
+</li>
+<li>
+<p>Granular, end-to-end flow control.</p>
+<div class="paragraph">
+<p>With message routing, end-to-end flow control is based on the settlement of deliveries and therefore might not be optimal in every case.</p>
+</div>
+</li>
+<li>
+<p>Transaction support.</p>
+</li>
+<li>
+<p>Server-side selectors.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="when_to_use_link_routing">6.1.2. When to Use Link Routing</h4>
+<div class="paragraph">
+<p>Link routing requires more detailed configuration than message routing as well as an AMQP container that can accept incoming link-attaches (typically a broker). However, link routing enables you to satisfy more advanced use cases than message routing.</p>
+</div>
+<div class="paragraph">
+<p>You can use link routing if you need to meet any of the following requirements:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Dedicated path through the router network.</p>
+<div class="paragraph">
+<p>With link routing, each link route has dedicated inter-router links through the network. Each link has its own dedicated message buffers, which means that the address will not have "head-of-line" blocking issues with other addresses.</p>
+</div>
+</li>
+<li>
+<p>Sharding messages across multiple broker instances with guaranteed delivery order.</p>
+<div class="paragraph">
+<p>Link routing to a sharded queue preserves the delivery order of the producer&#8217;s messages by causing all messages on that link to go to the same broker instance.</p>
+</div>
+</li>
+<li>
+<p>End-to-end flow control.</p>
+<div class="paragraph">
+<p>Flow control is "real" in that credits flow across the link route from the receiver to the sender.</p>
+</div>
+</li>
+<li>
+<p>Transaction support.</p>
+<div class="paragraph">
+<p>Link routing supports local transactions to a single broker. Distributed transactions are not supported.</p>
+</div>
+</li>
+<li>
+<p>Server-side selectors.</p>
+<div class="paragraph">
+<p>With a link route, consumers can provide server-side selectors for broker subscriptions.</p>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="configuring-message-routing">6.2. Configuring Message Routing</h3>
+<div class="paragraph">
+<p>With message routing, routing is performed on messages as producers send them to a router. When a message arrives on a router, the router routes the message and its <em>settlement</em> based on the message&#8217;s <em>address</em> and <em>routing pattern</em>.</p>
+</div>
+<div class="paragraph">
+<p>With message routing, you can do the following:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Route messages between clients (direct-routed, or brokerless messaging)</p>
+<div class="paragraph">
+<p>This involves configuring an address with a routing pattern. All messages sent to the address will be routed based on the routing pattern.</p>
+</div>
+</li>
+<li>
+<p>Route messages through a broker queue (brokered messaging)</p>
+<div class="paragraph">
+<p>This involves configuring a waypoint address to identify the broker queue and then connecting the router to the broker. All messages sent to the waypoint address will be routed to the broker queue.</p>
+</div>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="addresses">6.2.1. Addresses</h4>
+<div class="paragraph">
+<p>Addresses determine how messages flow through your router network. An address designates an endpoint in your messaging network, such as:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Endpoint processes that consume data or offer a service</p>
+</li>
+<li>
+<p>Topics that match multiple consumers to multiple producers</p>
+</li>
+<li>
+<p>Entities within a messaging broker:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>Queues</p>
+</li>
+<li>
+<p>Durable Topics</p>
+</li>
+<li>
+<p>Exchanges</p>
+</li>
+</ul>
+</div>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>When a router receives a message, it uses the message&#8217;s address to determine where to send the message (either its destination or one step closer to its destination).</p>
+</div>
+<div class="sect4">
+<h5 id="mobile_addresses">Mobile Addresses</h5>
+<div class="paragraph">
+<p>Routers consider addresses to be mobile such that any users of an
+address may be directly connected to any router in a network and may
+move around the topology. In cases where messages are broadcast to or
+balanced across multiple consumers, the address users may be connected
+to multiple routers in the network.</p>
+</div>
+<div class="paragraph">
+<p>Mobile addresses are rendezvous points for senders and receivers.
+Messages arrive at the mobile address and are dispatched to their
+destinations according to the routing defined for the mobile address.
+The details of these routing patterns are discussed later.</p>
+</div>
+<div class="paragraph">
+<p>Mobile addresses may be discovered during normal router operation or
+configured through management settings.</p>
+</div>
+<div class="sect5">
+<h6 id="discovered_mobile_addresses">Discovered Mobile Addresses</h6>
+<div class="paragraph">
+<p>Mobile addresses are created when a client creates a link to a source
+or destination address that is unknown to the router network.</p>
+</div>
+<div class="paragraph">
+<p>Suppose a service provider wants to offer <em>my-service</em> that clients
+may use. The service provider must open a receiver link with source
+address <em>my-service</em>.  The router creates a mobile address
+<em>my-service</em> and propagates the address so that it is known to every
+router in the network.</p>
+</div>
+<div class="paragraph">
+<p>Later a client wants to use the service and creates a sending link
+with target address <em>my-service</em>. The router matches the service
+provider&#8217;s receiver having source address <em>my-service</em> to the client&#8217;s
+sender having target address <em>my-service</em> and routes messages between
+the two.</p>
+</div>
+<div class="paragraph">
+<p>Any number of other clients can create links to the service as
+well. The clients do not have to know where in the router network the
+service provider is physically located nor are the clients required to
+connect to a specific router to use the service. Regardless of how
+many clients are using the service the service provider needs only a
+single connection and link into the router network.</p>
+</div>
+<div class="paragraph">
+<p>Another view of this same scenario is when a client tries to use the
+service before service provider has connected to the network. In this
+case the router network creates the mobile address <em>my-service</em> as
+before. However, since the mobile address has only client sender links
+and no receiver links the router stalls the clients and prevents them
+from sending any messages.  Later, after the service provider connects
+and creates the receiver link, the router will issue credits to the
+clients and the messages will begin to flow between the clients and
+the service.</p>
+</div>
+<div class="paragraph">
+<p>The service provider can connect, disconnect, and reconnect from a
+different location without having to change any of the clients or
+their connections.  Imagine having the service running on a
+laptop. One day the connection is from corporate headquarters and the
+next day the connection is from some remote location. In this case the
+service provider&#8217;s computer will typically have different host IP
+addresses for each connection. Using the router network the service
+provider connects to the router network and offers the named service
+and the clients connect to the router network and consume from the
+named service. The router network routes messages between the mobile
+addresses effectively masking host IP addresses of the service
+provider and the client systems.</p>
+</div>
+</div>
+<div class="sect5">
+<h6 id="configured_mobile_addresses">Configured Mobile Addresses</h6>
+<div class="paragraph">
+<p>Mobile addresses may be configured using the router <em>autoLink</em>
+object. An address created via an <em>autoLink</em> represents a queue,
+topic, or other service in an external broker. Logically the
+<em>autoLink</em> addresses are treated by the router network as if the
+broker had connected to the router and offered the services itself.</p>
+</div>
+<div class="paragraph">
+<p>For each configured mobile address the router will create a single
+link to the external resource. Messages flow between sender links and
+receiver links the same regardless if the mobile address was
+discovered or configured.</p>
+</div>
+<div class="paragraph">
+<p>Multiple <em>autoLink</em> objects may define the same address on multiple
+brokers.  In this case the router network creates a sharded resource
+split between the brokers. Any client can seamlessly send and receive
+messages from either broker.</p>
+</div>
+<div class="paragraph">
+<p>Note that the brokers do not need to be clustered or federated to
+receive this treatment. The brokers may even be from different vendors
+or be different versions of the same broker yet still work together to
+provide a larger service platform.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="routing-patterns-overview">6.2.2. Routing Patterns</h4>
+<div class="paragraph">
+<p>Routing patterns define the paths that a message with a mobile address
+can take across a network. These routing patterns can be used for both
+direct routing, in which the router distributes messages between
+clients without a broker, and indirect routing, in which the router
+enables clients to exchange messages through a broker.</p>
+</div>
+<div class="paragraph">
+<p>Routing patterns fall into two categories: Anycast
+(Balanced and Closest) and Multicast. There is no concept of
+"unicast" in which there is only one consumer for an address.</p>
+</div>
+<div class="paragraph">
+<p>Anycast distribution delivers each message to one consumer whereas
+multicast distribution delivers each message to all consumers.</p>
+</div>
+<div class="paragraph">
+<p>Each address has one of the following routing patterns, which define the path that a message with the address can take across the messaging network:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Balanced</dt>
+<dd>
+<p>An anycast method that allows multiple consumers to use the same address. Each message is delivered to a single consumer only, and Dispatch Router attempts to balance the traffic load across the router network.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>If multiple consumers are attached to the same address, each router determines which outbound path should receive a message by considering each path&#8217;s current number of unsettled deliveries. This means that more messages will be delivered along paths where deliveries are settled at higher rates.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Dispatch Router neither measures nor uses message settlement time to determine which outbound path to use.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>In this scenario, the messages are spread across both receivers regardless of path length:</p>
+</div>
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/balanced-routing.png" alt="Balanced Message Routing">
+</div>
+<div class="title">Figure 3. Balanced Message Routing</div>
+</div>
+</div>
+</div>
+</dd>
+<dt class="hdlist1">Closest</dt>
+<dd>
+<p>An anycast method in which every message is sent along the shortest path to reach the destination, even if there are other consumers for the same address.</p>
+<div class="paragraph">
+<p>Dispatch Router determines the shortest path based on the topology cost to reach each of the consumers. If there are multiple consumers with the same lowest cost, messages will be spread evenly among those consumers.</p>
+</div>
+<div class="paragraph">
+<p>In this scenario, all messages sent by <code>Sender</code> will be delivered to <code>Receiver 1</code>:</p>
+</div>
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/closest-routing.png" alt="Closest Message Routing">
+</div>
+<div class="title">Figure 4. Closest Message Routing</div>
+</div>
+</dd>
+<dt class="hdlist1">Multicast</dt>
+<dd>
+<p>Messages are sent to all consumers attached to the address. Each consumer will receive one copy of the message.</p>
+<div class="paragraph">
+<p>In this scenario, all messages are sent to all receivers:</p>
+</div>
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/multicast-routing.png" alt="Multicast Message Routing">
+</div>
+<div class="title">Figure 5. Multicast Message Routing</div>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect3">
+<h4 id="message_settlement">6.2.3. Message Settlement</h4>
+<div class="paragraph">
+<p>Message settlement is negotiated between the producer and the router when the producer establishes a link to the router. Depending on the settlement pattern, messages might be delivered with any of the following degrees of reliability:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>At most once</p>
+</li>
+<li>
+<p>At least once</p>
+</li>
+<li>
+<p>Exactly once</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Dispatch Router treats all messages as either <em>pre-settled</em> or <em>unsettled</em>, and it is responsible for propagating the settlement of each message it routes.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Pre-settled</dt>
+<dd>
+<p>Sometimes called <em>fire and forget</em>, the router settles the incoming and outgoing deliveries and propagates the settlement to the message&#8217;s destination. However, it does not guarantee delivery.</p>
+</dd>
+<dt class="hdlist1">Unsettled</dt>
+<dd>
+<p>The router propagates the settlement between the sender and receiver, and guarantees one of the following outcomes:</p>
+<div class="ulist">
+<ul>
+<li>
+<p>The message is delivered and settled, with the consumer&#8217;s disposition indicated.</p>
+</li>
+<li>
+<p>The delivery is settled with a disposition of <code>RELEASED</code>.</p>
+<div class="paragraph">
+<p>This means that the message did not reach its destination.</p>
+</div>
+</li>
+<li>
+<p>The delivery is settled with a disposition of <code>MODIFIED</code>.</p>
+<div class="paragraph">
+<p>This means that the message might or might not have reached its destination. The delivery is considered to be "in-doubt" and should be re-sent if "at least once" delivery is required.</p>
+</div>
+</li>
+<li>
+<p>The link, session, or connection to Dispatch Router was dropped, and all deliveries are "in-doubt".</p>
+</li>
+</ul>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect3">
+<h4 id="routing_pattern_reliability">6.2.4. Routing Pattern Reliability</h4>
+<div class="paragraph">
+<p>The following table describes the levels of reliability provided by each routing pattern:</p>
+</div>
+<table class="tableblock frame-all grid-all spread">
+<colgroup>
+<col style="width: 30%;">
+<col style="width: 70%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Routing pattern</th>
+<th class="tableblock halign-left valign-top">Reliable?</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Anycast (Balanced or Closest)</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>Yes, when the message deliveries are unsettled.</p>
+</div>
+<div class="paragraph">
+<p>There is a reliability contract that the router network abides by when delivering unsettled messages to anycast addresses. For every such delivery sent by a producer, the router network guarantees that one of the following outcomes will occur:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>The delivery shall be settled with ACCEPTED or REJECTED disposition where the disposition is supplied by the consumer.</p>
+</li>
+<li>
+<p>The delivery shall be settled with RELEASED disposition, meaning that the message was not delivered to any consumer.</p>
+</li>
+<li>
+<p>The delivery shall be settled with MODIFIED disposition, meaning that the message may have been delivered to a consumer but should be considered in-doubt and re-sent.</p>
+</li>
+<li>
+<p>The connection to the producer shall be dropped, signifying that all unsettled deliveries should now be considered in-doubt by the producer and later re-sent.</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Multicast</p></td>
+<td class="tableblock halign-left valign-top"><div><div class="paragraph">
+<p>No.</p>
+</div>
+<div class="paragraph">
+<p>If a producer sends an unsettled delivery, the disposition may be ACCEPTED or RELEASED.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>If ACCEPTED, there is no guarantee that the message was delivered to any consumer.</p>
+</li>
+<li>
+<p>If RELEASED, the message was definitely not delivered to any consumer.</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="routing-messages-between-clients">6.2.5. Routing Messages Between Clients</h4>
+<div class="paragraph">
+<p>You can route messages between clients without using a broker. In a brokerless scenario (sometimes called <em>direct-routed messaging</em>), Dispatch Router routes messages between clients directly.</p>
+</div>
+<div class="paragraph">
+<p>To route messages between clients, you configure an address with a routing distribution pattern. When a router receives a message with this address, the message is routed to its destination or destinations based on the address&#8217;s routing distribution pattern.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>In the router&#8217;s configuration file, add an <code>address</code> section:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">address {
+    prefix: <em>ADDRESS_PREFIX</em>
+    distribution: balanced|closest|multicast
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>prefix</code> | <code>pattern</code></dt>
+<dd>
+<p>The address or group of addresses to which the address settings should be applied. You can specify a prefix to match an exact address or beginning segment of an address. Alternatively, you can specify a pattern to match an address using wildcards.</p>
+<div class="paragraph">
+<p>A <em>prefix</em> matches either an exact address or the beginning segment within an address that is delimited by either a <code>.</code> or <code>/</code> character. For example, the prefix <code>my_address</code> would match the address <code>my_address</code> as well as <code>my_address.1</code> and <code>my_address/1</code>. However, it would not match <code>my_address1</code>.</p>
+</div>
+<div class="paragraph">
+<p>A <em>pattern</em> matches an address that corresponds to a pattern. A pattern is a sequence of words delimited by either a <code>.</code> or <code>/</code> character. You can use wildcard characters to represent a word. The  <code>*</code> character matches exactly one word, and the <code>#</code> character matches any sequence of zero or more words.</p>
+</div>
+<div class="paragraph">
+<p>The <code>*</code> and <code>#</code> characters are reserved as wildcards. Therefore, you should not use them in the message address.</p>
+</div>
+<div class="paragraph">
+<p>For more information about creating address patterns, see <a href="#router-address-pattern-matching">Pattern Matching for Addresses</a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can convert a <code>prefix</code> value to a <code>pattern</code> by appending <code>/#</code> to it. For example, the prefix <code>a/b/c</code> is equivalent to the pattern <code>a/b/c/#</code>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>distribution</code></dt>
+<dd>
+<p>The message distribution pattern. The default is <code>balanced</code>, but you can specify any of the following options:</p>
+<div class="ulist">
+<ul>
+<li>
+<p><code>balanced</code> - Messages sent to the address will be routed to one of the receivers, and the routing network will attempt to balance the traffic load based on the rate of settlement.</p>
+</li>
+<li>
+<p><code>closest</code> - Messages sent to the address are sent on the shortest path to reach the destination. It means that if there are multiple receivers for the same address, only the closest one will receive the message.</p>
+</li>
+<li>
+<p><code>multicast</code> - Messages are sent to all receivers that are attached to the address in a <em>publish/subscribe</em> model.</p>
+<div class="paragraph">
+<p>For more information about message distribution patterns, see <a href="#routing-patterns-overview">Routing Patterns</a>.</p>
+</div>
+</li>
+</ul>
+</div>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_address">address</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Add the same <code>address</code> section to any other routers that need to use the address.</p>
+<div class="paragraph">
+<p>The <code>address</code> that you added to this router configuration file only controls how this router distributes messages sent to the address. If you have additional routers in your router network that should distribute messages for this address, then you must add the same <code>address</code> section to each of their configuration files.</p>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="routing-messages-through-broker">6.2.6. Routing Messages Through a Broker Queue</h4>
+<div class="paragraph">
+<p>You can route messages to and from a broker queue to provide clients with access to the queue through a router. In this scenario, clients connect to a router to send and receive messages, and the router routes the messages to or from the broker queue.</p>
+</div>
+<div class="paragraph">
+<p>You can route messages to a queue hosted on a single broker, or route messages to a <em>sharded queue</em> distributed across multiple brokers.</p>
+</div>
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/brokered-messaging.png" alt="Brokered Messaging">
+</div>
+<div class="title">Figure 6. Brokered Messaging</div>
+</div>
+<div class="paragraph">
+<p>In this diagram, the sender connects to the router and sends messages to my_queue. The router attaches an outgoing link to the broker, and then sends the messages to my_queue. Later, the receiver connects to the router and requests messages from my_queue. The router attaches an incoming link to the broker to receive the messages from my_queue, and then delivers them to the receiver.</p>
+</div>
+<div class="paragraph">
+<p>You can also route messages to a <em>sharded queue</em>, which is a single, logical queue comprised of multiple, underlying physical queues. Using queue sharding, it is possible to distribute a single queue over multiple brokers. Clients can connect to any of the brokers that hold a shard to send and receive messages.</p>
+</div>
+<div class="imageblock" style="text-align: center">
+<div class="content">
+<img src="_images/sharded-queue-02.png" alt="Brokered Messaging with Sharded Queue">
+</div>
+<div class="title">Figure 7. Brokered Messaging with Sharded Queue</div>
+</div>
+<div class="paragraph">
+<p>In this diagram, a sharded queue (my_queue) is distributed across two brokers. The router is connected to the clients and to both brokers. The sender connects to the router and sends messages to my_queue. The router attaches an outgoing link to each broker, and then sends messages to each shard (by default, the routing distribution is <code>balanced</code>). Later, the receiver connects to the router and requests all of the messages from my_queue. The router attaches an incoming link  [...]
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p><a href="#configure-waypoint-address">Add a waypoint address</a>.</p>
+<div class="paragraph">
+<p>This address identifies the queue to which you want to route messages.</p>
+</div>
+</li>
+<li>
+<p><a href="#connect-router-to-broker">Add autolinks to connect the router to the broker</a>.</p>
+<div class="paragraph">
+<p>Autolinks connect the router to the broker queue identified by the waypoint address.</p>
+</div>
+</li>
+<li>
+<p><a href="#connect-router-to-broker">If the queue is sharded, add autolinks for each additional broker that hosts a shard</a>.</p>
+</li>
+</ol>
+</div>
+<div class="sect4">
+<h5 id="configure-waypoint-address">Configuring Waypoint Addresses</h5>
+<div class="paragraph">
+<p>A waypoint address identifies a queue on a broker to which you want to route messages. You need to configure the waypoint address on each router that needs to use the address. For example, if a client is connected to <em>Router A</em> to send messages to the broker queue, and another client is connected to <em>Router B</em> to receive those messages, then you would need to configure the waypoint address on both <em>Router A</em> and <em>Router B</em>.</p>
+</div>
+<div class="paragraph">
+<div class="title">Prerequisites</div>
+<p>An incoming connection (<code>listener</code>) to which the clients can connect should be configured. This connection defines how the producers and consumers connect to the router to send and receive messages. For more information, see <a href="#adding-incoming-connections">Adding Incoming Connections</a>.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Create waypoint addresses on each router that needs to use the address:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">address {
+    prefix: <em>ADDRESS_PREFIX</em>
+    waypoint: yes
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>prefix</code> | <code>pattern</code></dt>
+<dd>
+<p>The address prefix or pattern that matches the broker queue to which you want to send messages. You can specify a prefix to match an exact address or beginning segment of an address. Alternatively, you can specify a pattern to match an address using wildcards.</p>
+<div class="paragraph">
+<p>A <em>prefix</em> matches either an exact address or the beginning segment within an address that is delimited by either a <code>.</code> or <code>/</code> character. For example, the prefix <code>my_address</code> would match the address <code>my_address</code> as well as <code>my_address.1</code> and <code>my_address/1</code>. However, it would not match <code>my_address1</code>.</p>
+</div>
+<div class="paragraph">
+<p>A <em>pattern</em> matches an address that corresponds to a pattern. A pattern is a sequence of words delimited by either a <code>.</code> or <code>/</code> character. You can use wildcard characters to represent a word. The  <code>*</code> character matches exactly one word, and the <code>#</code> character matches any sequence of zero or more words.</p>
+</div>
+<div class="paragraph">
+<p>The <code>*</code> and <code>#</code> characters are reserved as wildcards. Therefore, you should not use them in the message address.</p>
+</div>
+<div class="paragraph">
+<p>For more information about creating address patterns, see <a href="#router-address-pattern-matching">Pattern Matching for Addresses</a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can convert a <code>prefix</code> value to a <code>pattern</code> by appending <code>/#</code> to it. For example, the prefix <code>a/b/c</code> is equivalent to the pattern <code>a/b/c/#</code>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>waypoint</code></dt>
+<dd>
+<p>Set this attribute to <code>yes</code> so that the router handles messages sent to this address as a waypoint.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect4">
+<h5 id="connect-router-to-broker">Connecting a Router to the Broker</h5>
+<div class="paragraph">
+<p>After you add waypoint addresses to identify the broker queue, you must connect a router to the broker using autolinks.</p>
+</div>
+<div class="paragraph">
+<p>With autolinks, client traffic is handled on the router, not the broker. Clients attach their links to the router, and then the router uses internal autolinks to connect to the queue on the broker. Therefore, the queue will always have a single producer and a single consumer regardless of how many clients are attached to the router.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If the connection to the broker fails, Dispatch Router automatically attempts to reestablish the connection and reroute message deliveries to any available alternate destinations. However, some deliveries could be returned to the sender with a <code>RELEASED</code> or <code>MODIFIED</code> disposition. Therefore, you should ensure that your clients can handle these deliveries appropriately (generally by resending them).</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>If this router is different than the router that is connected to the clients, then add the waypoint address.</p>
+</li>
+<li>
+<p>Add an outgoing connection to the broker:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {
+    name: <em>NAME</em>
+    host: <em>HOST_NAME/ADDRESS</em>
+    port: <em>PORT_NUMBER/NAME</em>
+    role: route-container
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>name</code></dt>
+<dd>
+<p>The name of the <code>connector</code>. Specify a name that describes the broker.</p>
+</dd>
+<dt class="hdlist1"><code>host</code></dt>
+<dd>
+<p>Either an IP address (IPv4 or IPv6) or hostname on which the router should connect to the broker.</p>
+</dd>
+<dt class="hdlist1"><code>port</code></dt>
+<dd>
+<p>The port number or symbolic service name on which the router should connect to the broker.</p>
+</dd>
+<dt class="hdlist1"><code>role</code></dt>
+<dd>
+<p>Specify <code>route-container</code> to indicate that this connection is for an external container (broker).</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_connector">connector</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If you want to send messages to the broker queue, create an outgoing autolink to the broker queue:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">autoLink {
+    addr: <em>ADDRESS</em>
+    connection: <em>CONNECTOR_NAME</em>
+    direction: out
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>addr</code></dt>
+<dd>
+<p>The address of the broker queue. When the autolink is created, it will be attached to this address.</p>
+</dd>
+<dt class="hdlist1"><code>externalAddr</code></dt>
+<dd>
+<p>An optional alternate address for the broker queue. You use an external address if the broker queue should have a different address than that which the sender uses. In this scenario, senders send messages to the <code>addr</code> address, and then the router routes them to the broker queue represented by the <code>externalAddr</code> address.</p>
+</dd>
+<dt class="hdlist1"><code>connection</code> | <code>containerID</code></dt>
+<dd>
+<p>How the router should connect to the broker. You can specify either an outgoing connection (<code>connection</code>) or the container ID of the broker (<code>containerID</code>).</p>
+</dd>
+<dt class="hdlist1"><code>direction</code></dt>
+<dd>
+<p>Set this attribute to <code>out</code> to specify that this autolink can send messages from the router to the broker.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_autolink">autoLink</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If you want to receive messages from the broker queue, create an incoming autolink from the broker queue:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">autoLink {
+    addr: <em>ADDRESS</em>
+    connection: <em>CONNECTOR_NAME</em>
+    direction: in
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>addr</code></dt>
+<dd>
+<p>The address of the broker queue. When the autolink is created, it will be attached to this address.</p>
+</dd>
+<dt class="hdlist1"><code>externalAddr</code></dt>
+<dd>
+<p>An optional alternate address for the broker queue. You use an external address if the broker queue should have a different address than that which the receiver uses. In this scenario, receivers receive messages from the <code>addr</code> address, and the router retrieves them from the broker queue represented by the <code>externalAddr</code> address.</p>
+</dd>
+<dt class="hdlist1"><code>connection</code> | <code>containerID</code></dt>
+<dd>
+<p>How the router should connect to the broker. You can specify either an outgoing connection (<code>connection</code>) or the container ID of the broker (<code>containerID</code>).</p>
+</dd>
+<dt class="hdlist1"><code>direction</code></dt>
+<dd>
+<p>Set this attribute to <code>in</code> to specify that this autolink can receive messages from the broker to the router.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_autolink">autoLink</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="example_routing_messages_through_broker_queues">6.2.7. Example: Routing Messages Through Broker Queues</h4>
+<div class="paragraph">
+<p>This example shows how waypoints and autolinks can route messages through a pair of queues on a broker.</p>
+</div>
+<div class="sect4">
+<h5 id="router_configuration">Router Configuration</h5>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {  <b class="conum">(1)</b>
+    name: broker
+    role: route-container
+    host: 198.51.100.1
+    port: 61617
+    saslMechanisms: ANONYMOUS
+}
+
+address {  <b class="conum">(2)</b>
+    prefix: queue
+    waypoint: yes
+}
+
+autoLink {  <b class="conum">(3)</b>
+    addr: queue.first
+    direction: in
+    connection: broker
+}
+
+autoLink {  <b class="conum">(4)</b>
+    addr: queue.first
+    direction: out
+    connection: broker
+}
+
+autoLink {  <b class="conum">(5)</b>
+    addr: queue.second
+    direction: in
+    connection: broker
+}
+
+autoLink {  <b class="conum">(6)</b>
+    addr: queue.second
+    direction: out
+    connection: broker
+}</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The outgoing connection from the router to the broker. The <code>route-container</code> role enables the router to connect to an external AMQP container (in this case, a broker).</p>
+</li>
+<li>
+<p>The namespace queue on the broker to which the router should route messages. All addresses that start with <code>queue</code> will be routed to a queue on the broker.</p>
+</li>
+<li>
+<p>The incoming autolink from <code>queue.first</code> on the broker to the router.</p>
+</li>
+<li>
+<p>The outgoing autolink from the router to <code>queue.first</code> on the broker.</p>
+</li>
+<li>
+<p>The incoming autolink from <code>queue.second</code> on the broker to the router.</p>
+</li>
+<li>
+<p>The outgoing autolink from the router to <code>queue.second</code> on the broker.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect4">
+<h5 id="how_the_messages_are_routed">How the Messages are Routed</h5>
+<div class="paragraph">
+<p>Initially, when the broker is offline, the autolinks are inactive.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --autolinks
+AutoLinks
+  addr          dir  phs  extAddr  link  status    lastErr
+  ========================================================
+  queue.first   in   1                   inactive
+  queue.first   out  0                   inactive
+  queue.second  in   1                   inactive
+  queue.second  out  0                   inactive</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Once the broker is online, the autolinks attempt to activate. In this case, the broker starts with the <code>queue.first</code> queue only, and the <code>queue.first</code> autolinks become active. The <code>queue.second</code> autolinks are in a failed state, because the <code>queue.second</code> queue does not exist on the broker.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --autolinks
+AutoLinks
+  addr          dir  phs  extAddr  link  status  lastErr
+  ===========================================================================
+  queue.first   in   1             6     active
+  queue.first   out  0             7     active
+  queue.second  in   1                   failed  Node not found: queue.second
+  queue.second  out  0                   failed  Node not found: queue.second</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The producer now connects to the router and sends three messages to <code>queue.first</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ python simple_send.py -a 127.0.0.1/queue.first -m3
+all messages confirmed</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The router&#8217;s address statistics show that the messages were delivered to the queue.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -a
+Router Addresses
+  class   addr           phs  distrib   in-proc  local  remote  cntnr  in  out  thru  to-proc  from-proc
+  ========================================================================================================
+  mobile  queue.first    1    balanced  0        0      0       0      0   0    0     0        0
+  mobile  queue.first    0    balanced  0        1      0       0      3   3    0     0        0</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>queue.first</code> address appears twice in the output: once for each phase of the address. Phase 0 is for routing messages from producers to the outgoing autolink. Phase 1 is for routing messages from the incoming autolink to the subscribed consumers. In this case, Phase 0 of the address has counted three messages in the <code>in</code> column (the messages that arrived on the router from the producer), and three messages in the <code>out</code> column (the messages that we [...]
+</div>
+<div class="paragraph">
+<p>The consumer now connects to the router and receives the three messages from <code>queue.first</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ python simple_recv.py -a 127.0.0.1:5672/queue.first -m3
+{u'sequence': int32(1)}
+{u'sequence': int32(2)}
+{u'sequence': int32(3)}</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The router&#8217;s address statistics now show that all three messages were received by the consumer from the broker queue.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -a
+Router Addresses
+  class   addr           phs  distrib   in-proc  local  remote  cntnr  in  out  thru  to-proc  from-proc
+  ========================================================================================================
+  mobile  queue.first    1    balanced  0        0      0       0      3   3    0     0        0
+  mobile  queue.first    0    balanced  0        1      0       0      3   3    0     0        0</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The command output shows that Phase 1 of the address was used to deliver all three messages from the queue to the consumer.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Even in a multi-router network, and with multiple producers and consumers for <code>queue.first</code>, all deliveries are routed through the queue on the connected broker.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="configuring-link-routing">6.3. Configuring Link Routing</h3>
+<div class="paragraph">
+<p>Link routing provides an alternative strategy for brokered messaging. A link route represents a private messaging path between a sender and a receiver in which the router passes the messages between end points. You can think of a link route as a "virtual connection" or "tunnel" that travels from a sender, through the router network, to a receiver.</p>
+</div>
+<div class="paragraph">
+<p>With link routing, routing is performed on link-attach frames, which are chained together to form a virtual messaging path that directly connects a sender and receiver. Once a link route is established, the transfer of message deliveries, flow frames, and dispositions is performed across the link route.</p>
+</div>
+<div class="sect3">
+<h4 id="link_route_addresses">6.3.1. Link Route Addresses</h4>
+<div class="paragraph">
+<p>A link route address represents a broker queue, topic, or other service. When a client attaches a link route address to a router, the router propagates a link attachment to the broker resource identified by the address.</p>
+</div>
+<div class="paragraph">
+<p>Using link route addresses, the router network does not participate in
+aggregated message distribution. The router simply passes message
+delivery and settlement between the two end points.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="link_route_routing_patterns">6.3.2. Link Route Routing Patterns</h4>
+<div class="paragraph">
+<p>Routing patterns are not used with link routing, because there is a direct link between the sender and receiver. The router only makes a routing decision when it receives the initial link-attach request frame. Once the link is established, the router passes the messages along the link in a balanced distribution.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="link_route_flow_control">6.3.3. Link Route Flow Control</h4>
+<div class="paragraph">
+<p>Unlike message routing, with link routing, the sender and receiver handle flow control directly: the receiver grants link credits, which is the number of messages it is able to receive. The router sends them directly to the sender, and then the sender sends the messages based on the credits that the receiver granted.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="creating-link-route">6.3.4. Creating a Link Route</h4>
+<div class="paragraph">
+<p>Link routes establish a link between a sender and a receiver that travels through a router. You can configure inward and outward link routes to enable the router to receive link-attaches from clients and to send them to a particular destination.</p>
+</div>
+<div class="paragraph">
+<p>With link routing, client traffic is handled on the broker, not the router. Clients have a direct link through the router to a broker&#8217;s queue. Therefore, each client is a separate producer or consumer.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If the connection to the broker fails, the routed links are detached, and the router will attempt to reconnect to the broker (or its backup). Once the connection is reestablished, the link route to the broker will become reachable again.</p>
+</div>
+<div class="paragraph">
+<p>From the client&#8217;s perspective, the client will see the detached links (that is, the senders or receivers), but not the failed connection. Therefore, if you want the client to reattach dropped links in the event of a broker connection failure, you must configure this functionality on the client. Alternatively, you can use message routing with autolinks instead of link routing. For more information, see <a href="#routing-messages-through-broker">Routing Messages through a Broker Q [...]
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>In the router configuration file, add an outgoing connection to the broker:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {
+    name: <em>NAME</em>
+    host: <em>HOST_NAME/ADDRESS</em>
+    port: <em>PORT_NUMBER/NAME</em>
+    role: route-container
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>name</code></dt>
+<dd>
+<p>The name of the <code>connector</code>. You should specify a name that describes the broker.</p>
+</dd>
+<dt class="hdlist1"><code>host</code></dt>
+<dd>
+<p>Either an IP address (IPv4 or IPv6) or hostname on which the router should connect to the broker.</p>
+</dd>
+<dt class="hdlist1"><code>port</code></dt>
+<dd>
+<p>The port number or symbolic service name on which the router should connect to the broker.</p>
+</dd>
+<dt class="hdlist1"><code>role</code></dt>
+<dd>
+<p>Specify <code>route-container</code> to indicate that this connection is for an external container (broker).</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_connector">connector</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If you want clients to send local transactions to the broker, create a link route for the transaction coordinator:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">linkRoute {
+    prefix: $coordinator  <b class="conum">(1)</b>
+    connection: <em>CONNECTOR_NAME</em>
+    direction: in
+}</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The <code>$coordinator</code> prefix designates this link route as a transaction coordinator. When the client opens a transacted session, the requests to start and end the transaction are propagated along this link route to the broker.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>Dispatch Router does not support routing transactions to multiple brokers. If you have multiple brokers in your environment, choose a single broker and route all transactions to it.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If you want clients to send messages on this link route, create an incoming link route:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">linkRoute {
+    prefix: <em>ADDRESS_PREFIX</em>
+    connection: <em>CONNECTOR_NAME</em>
+    direction: in
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>prefix</code> | <code>pattern</code></dt>
+<dd>
+<p>The address prefix or pattern that matches the broker queue that should be the destination for routed link-attaches. All messages that match this prefix or pattern will be distributed along the link route. You can specify a prefix to match an exact address or beginning segment of an address. Alternatively, you can specify a pattern to match an address using wildcards.</p>
+<div class="paragraph">
+<p>A <em>prefix</em> matches either an exact address or the beginning segment within an address that is delimited by either a <code>.</code> or <code>/</code> character. For example, the prefix <code>my_address</code> would match the address <code>my_address</code> as well as <code>my_address.1</code> and <code>my_address/1</code>. However, it would not match <code>my_address1</code>.</p>
+</div>
+<div class="paragraph">
+<p>A <em>pattern</em> matches an address that corresponds to a pattern. A pattern is a sequence of words delimited by either a <code>.</code> or <code>/</code> character. You can use wildcard characters to represent a word. The  <code>*</code> character matches exactly one word, and the <code>#</code> character matches any sequence of zero or more words.</p>
+</div>
+<div class="paragraph">
+<p>The <code>*</code> and <code>#</code> characters are reserved as wildcards. Therefore, you should not use them in the message address.</p>
+</div>
+<div class="paragraph">
+<p>For more information about creating address patterns, see <a href="#router-address-pattern-matching">Pattern Matching for Addresses</a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can convert a <code>prefix</code> value to a <code>pattern</code> by appending <code>/#</code> to it. For example, the prefix <code>a/b/c</code> is equivalent to the pattern <code>a/b/c/#</code>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>connection</code> | <code>containerID</code></dt>
+<dd>
+<p>How the router should connect to the broker. You can specify either an outgoing connection (<code>connection</code>) or the container ID of the broker (<code>containerID</code>).</p>
+<div class="paragraph">
+<p>If multiple brokers are connected to the router through this connection, requests for addresses matching the link route&#8217;s prefix or pattern are balanced across the brokers. Alternatively, if you want to specify a particular broker, use <code>containerID</code> and add the broker&#8217;s container ID.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>direction</code></dt>
+<dd>
+<p>Set this attribute to <code>in</code> to specify that clients can send messages into the router network on this link route.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_linkroute">linkRoute</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>If you want clients to receive messages on this link route, create an outgoing link route:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">linkRoute {
+    prefix: <em>ADDRESS_PREFIX</em>
+    connection: <em>CONNECTOR_NAME</em>
+    direction: out
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>prefix</code> | <code>pattern</code></dt>
+<dd>
+<p>The address prefix or pattern that matches the broker queue from which you want to receive routed link-attaches. All messages that match this prefix or pattern will be distributed along the link route. You can specify a prefix to match an exact address or beginning segment of an address. Alternatively, you can specify a pattern to match an address using wildcards.</p>
+<div class="paragraph">
+<p>A <em>prefix</em> matches either an exact address or the beginning segment within an address that is delimited by either a <code>.</code> or <code>/</code> character. For example, the prefix <code>my_address</code> would match the address <code>my_address</code> as well as <code>my_address.1</code> and <code>my_address/1</code>. However, it would not match <code>my_address1</code>.</p>
+</div>
+<div class="paragraph">
+<p>A <em>pattern</em> matches an address that corresponds to a pattern. A pattern is a sequence of words delimited by either a <code>.</code> or <code>/</code> character. You can use wildcard characters to represent a word. The  <code>*</code> character matches exactly one word, and the <code>#</code> character matches any sequence of zero or more words.</p>
+</div>
+<div class="paragraph">
+<p>The <code>*</code> and <code>#</code> characters are reserved as wildcards. Therefore, you should not use them in the message address.</p>
+</div>
+<div class="paragraph">
+<p>For more information about creating address patterns, see <a href="#router-address-pattern-matching">Pattern Matching for Addresses</a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can convert a <code>prefix</code> value to a <code>pattern</code> by appending <code>/#</code> to it. For example, the prefix <code>a/b/c</code> is equivalent to the pattern <code>a/b/c/#</code>.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>connection</code> | <code>containerID</code></dt>
+<dd>
+<p>How the router should connect to the broker. You can specify either an outgoing connection (<code>connection</code>) or the container ID of the broker (<code>containerID</code>).</p>
+<div class="paragraph">
+<p>If multiple brokers are connected to the router through this connection, requests for addresses matching the link route&#8217;s prefix or pattern are balanced across the brokers. Alternatively, if you want to specify a particular broker, use <code>containerID</code> and add the broker&#8217;s container ID.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>direction</code></dt>
+<dd>
+<p>Set this attribute to <code>out</code> to specify that this link route is for receivers.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_linkroute">linkRoute</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="example_using_a_link_route_to_provide_client_isolation">6.3.5. Example: Using a Link Route to Provide Client Isolation</h4>
+<div class="paragraph">
+<p>This example shows how a link route can connect a client to a message broker that is on a different private network.</p>
+</div>
+<div class="listingblock">
+<div class="title">Router Network with Isolated Clients</div>
+<div class="content">
+<pre>                        Public Network
+                       +-----------------+
+                       |      +-----+    |
+                       | B1   | Rp  |    |
+                       |      +/--\-+    |
+                       |      /    \     |
+                       |     /      \    |
+                       +----/--------\---+
+                           /          \
+                          /            \
+                         /              \
+         Private Net A  /                \ Private Net B
+        +--------------/--+           +---\-------------+
+        |         +---/-+ |           | +--\--+         |
+        |  B2     | Ra  | |           | | Rb  |   C1    |
+        |         +-----+ |           | +-----+         |
+        |                 |           |                 |
+        |                 |           |                 |
+        +-----------------+           +-----------------+</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Client <code>C1</code> is constrained by firewall policy to connect to the router in its own network (<code>Rb</code>). However, it can use a link route to access queues, topics, and any other AMQP services that are provided on message brokers <code>B1</code> and <code>B2</code>&#8201;&#8212;&#8201;even though they are on different networks.</p>
+</div>
+<div class="paragraph">
+<p>In this example, client <code>C1</code> needs to receive messages from <code>b2.event-queue</code>, which is hosted on broker <code>B2</code> in <code>Private Net A</code>. A link route connects the client and broker even though neither of them is aware that there is a router network between them.</p>
+</div>
+<div class="sect4">
+<h5 id="router_configuration_2">Router Configuration</h5>
+<div class="paragraph">
+<p>To enable client <code>C1</code> to receive messages from <code>b2.event-queue</code> on broker <code>B2</code>, router <code>Ra</code> must be able to do the following:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Connect to broker <code>B2</code></p>
+</li>
+<li>
+<p>Route links to and from broker <code>B2</code></p>
+</li>
+<li>
+<p>Advertise itself to the router network as a valid destination for links that have a <code>b2.event-queue</code> address.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The relevant part of the configuration file for router <code>Ra</code> shows the following:</p>
+</div>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">connector {  <b class="conum">(1)</b>
+    name: broker
+    role: route-container
+    host: 198.51.100.1
+    port: 61617
+    saslMechanisms: ANONYMOUS
+}
+
+linkRoute {  <b class="conum">(2)</b>
+    prefix: b2
+    direction: in
+    connection: broker
+}
+
+linkRoute {  <b class="conum">(3)</b>
+    prefix: b2
+    direction: out
+    connection: broker
+}</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The outgoing connection from the router to broker <code>B2</code>. The <code>route-container</code> role enables the router to connect to an external AMQP container (in this case, a broker).</p>
+</li>
+<li>
+<p>The incoming link route for receiving links from client senders. Any sender with a target whose address begins with <code>b2</code> will be routed to broker <code>B2</code> using the <code>broker</code> connector.</p>
+</li>
+<li>
+<p>The outgoing link route for sending links to client receivers. Any receivers whose source address begins with <code>b2</code> will be routed to broker <code>B2</code> using the <code>broker</code> connector.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>This configuration enables router <code>Ra</code> to advertise itself as a valid destination for targets and sources starting with <code>b2</code>. It also enables the router to connect to broker <code>B2</code>, and to route links to and from queues starting with the <code>b2</code> prefix.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>While not required, routers <code>Rp</code> and <code>Rb</code> should also have the same configuration.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect4">
+<h5 id="how_the_client_receives_messages">How the Client Receives Messages</h5>
+<div class="paragraph">
+<p>By using the configured link route, client <code>C1</code> can receive messages from broker <code>B2</code> even though they are on different networks.</p>
+</div>
+<div class="paragraph">
+<p>Router <code>Ra</code> establishes a connection to broker <code>B2</code>. Once the connection is open, <code>Ra</code> tells the other routers (<code>Rp</code> and <code>Rb</code>) that it is a valid destination for link routes to the <code>b2</code> prefix. This means that sender and receiver links attached to <code>Rb</code> or <code>Rp</code> will be routed along the shortest path to <code>Ra</code>, which then routes them to broker <code>B2</code>.</p>
+</div>
+<div class="paragraph">
+<p>To receive messages from the <code>b2.event-queue</code> on broker <code>B2</code>, client <code>C1</code> attaches a receiver link with a source address of <code>b2.event-queue</code> to its local router, <code>Rb</code>. Because the address matches the <code>b2</code> prefix, <code>Rb</code> routes the link to <code>Rp</code>, which is the next hop in the route to its destination. <code>Rp</code> routes the link to <code>Ra</code>, which routes it to broker <code>B2</code>. Client < [...]
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>If broker <code>B2</code> is unavailable for any reason, router <code>Ra</code> will not advertise itself as a destination for <code>b2</code> addresses. In this case, routers <code>Rb</code> and <code>Rp</code> will reject link attaches that should be routed to broker <code>B2</code> with an error message indicating that there is no route available to the destination.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="network-topologies-router">7. Building Networks of Routers</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Dispatch Router can be deployed as a single router or as many routers deployed in
+a network of arbitrary topology.  Regardless of how routers are deployed, the
+message routing behavior experienced by connected clients is always the same.
+Even in a multi-site or hybrid-cloud network of routers, the connected
+endpoints appear to be connected to the same logical router with the same
+behavior that would be experienced on a single router running on a laptop.</p>
+</div>
+<div class="paragraph">
+<p>Because of this independence of messaging behavior and underlying network
+topology, the true power of Dispatch Router is realized when it is deployed in
+networks.</p>
+</div>
+<div class="paragraph">
+<p>This section will describe the various router modes and how they are used to
+create different kinds of networks.</p>
+</div>
+<div class="sect2">
+<h3 id="network-topologies-modes-router">7.1. Router Operating Modes</h3>
+<div class="paragraph">
+<p>There are three router operating modes, as specified in the <code>router</code> section
+of the configuration:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>standalone</code> - This mode is used when there is exactly one router deployed.
+A standalone router will not attempt to establish connectivity to another
+router and will always operate as the sole network node.  This mode is not
+particularly interesting and will not be discussed further.</p>
+</li>
+<li>
+<p><code>interior</code> - This mode is used for each router in the interior of a network
+of routers.  Interior routers are connected to each other using <code>connector</code>
+and <code>listener</code> configurations in the <code>inter-router</code> role.  There is an upper
+limit of 128 total interior routers in a network.  Interior routers that are
+connected together in an arbitrary topology automatically compute the lowest
+cost paths across the network.</p>
+</li>
+<li>
+<p><code>edge</code> - Edge routers can join a network by establishing an <code>edge</code>
+connection to an interior router.  There is no limit to the number of edge
+routers that may be deployed in a network.  Edge routers are connected to
+interior routers using <code>connector</code> and <code>listener</code> configurations in the
+<code>edge</code> role.  An edge router may be connected to more than one interior
+router but only one of the edge connections shall be active at one time.
+Edge routers may not establish connections to other edge routers.  They are
+pure leaves in the overall network topology.  Because there are no limits to
+the number of edge routers deployed, they may be proliferated in high
+numbers as sidecars in a container environment or one-per-host or
+one-per-virtual-machine in a data center.</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="network-topologies-security-router">7.2. A Word About Security</h3>
+<div class="paragraph">
+<p>When deploying a Dispatch Router network, it is very important that the security
+and integrity of that network be considered.  This is particularly true of the
+interior portion of the network.  The integrity, security, and availability of
+a network will be severely compromised if unauthorized routers are permitted
+to join the interior network, or worse, unauthorized endpoints assuming the
+role of a router by establishing an inter-router connection into the network.
+For this reason, it is recommended that the interior routers of a network use
+a strong authentication mechanism to identify themselves to each other.</p>
+</div>
+<div class="paragraph">
+<p>A good way to establish solid interior router security is to create an x.509
+certificate authority that oversees the network with individual certificates
+generated for each interior router in the network.  The inter-router listeners
+are then configured to use the certificate authority as the authenticator for
+each incoming inter-router connection (using SASL mechanism <code>EXTERNAL</code> to
+enable x.509 client certificate authentication).  Edge connections and direct
+endpoint connections can use different levels of security, depending on the
+needs of the deployment.</p>
+</div>
+<div class="paragraph">
+<p>Using this method, a new router cannot join the network until the owner of the
+certificate authority issues a new certificate for the new router.  And an
+intruder wishing to spoof an interior router cannot do so unless it has a
+valid x.509 certificate issued by the network&#8217;s certificate authority.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="network-topologies-connection-notes-router">7.3. General Notes About Connections Between Routers</h3>
+<div class="paragraph">
+<p>When a connection is established between routers, message traffic flows in
+both directions across that connection.  Each connection has a client side
+(connector) and a server side (listener) for the purposes of connection
+establishment, but once the connection is established, the two sides become
+equal participants in a bi-directional connection.  For the purposes of
+routing AMQP traffic across the network, the direction of connection
+establishment is not relevant.</p>
+</div>
+<div class="paragraph">
+<p>When establishing inter-router connections, the deployer must choose which
+router will be the listener and which will be the connector.  There should be
+only one connection between any pair of routers.  There is no need, and it is
+in fact undesirable, to create two connections in opposite directions between
+two routers.  Don&#8217;t do it.</p>
+</div>
+<div class="paragraph">
+<p>The selection of connector vs. listener is sometimes arbitrary because it
+doesn&#8217;t matter.  In other cases, the direction may be important because of IP
+network boundaries and firewalls.  For example, to connect a router in a
+private IP network to another router in a public location (i.e. a public cloud
+provider), the router in the private network must have the connector and the
+router in the public location must have the listener.  This is because the
+public location cannot reach the private location via TCP/IP without the use
+of VPNs or other firewall features designed to allow public-to-private access.</p>
+</div>
+<div class="paragraph">
+<p>Sometimes the choice of connector vs. listener is dictated by the shape of the
+topology.  For example, a star-topology that has a series of routers connected
+to one or two central "hub" routers would most easily be set up with listeners
+on the hub and connectors on the spokes.  This way, new spoke routers may be
+added without changing the configuration of the hub.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="logging">8. Logging</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Logging enables you to diagnose error and performance issues with Dispatch Router.</p>
+</div>
+<div class="paragraph">
+<p>Dispatch Router consists of internal modules that provide important information about the router. For each module, you can specify logging levels, the format of the log file, and the location to which the logs should be written.</p>
+</div>
+<div class="sect2">
+<h3 id="logging-modules-you-can-configure">8.1. Logging Modules</h3>
+<div class="paragraph">
+<p>Dispatch Router logs are broken into different categories called <em>logging modules</em>. Each module provides important information about a particular aspect of Dispatch Router.</p>
+</div>
+<div class="sect3">
+<h4 id="the_code_default_code_logging_module">8.1.1. The <code>DEFAULT</code> Logging Module</h4>
+<div class="paragraph">
+<p>The default module. This module applies defaults to all of the other logging modules.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_router_code_logging_module">8.1.2. The <code>ROUTER</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information and statistics about the local router. This includes how the router connects to other routers in the network, and information about the remote destinations that are directly reachable from the router (link routes, waypoints, autolinks, and so on).</p>
+</div>
+<div class="paragraph">
+<p>In this example, on <code>Router.A</code>, the <code>ROUTER</code> log shows that <code>Router.B</code> is the next hop. It also shows the cost for <code>Router.A</code> to reach the other routers on the network:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 13:28:27 2016 ROUTER (trace) Node Router.C next hop set: Router.B
+Tue Jun  7 13:28:27 2016 ROUTER (trace) Node Router.C valid origins: []
+Tue Jun  7 13:28:27 2016 ROUTER (trace) Node Router.C cost: 2
+Tue Jun  7 13:28:27 2016 ROUTER (trace) Node Router.B valid origins: []
+Tue Jun  7 13:28:27 2016 ROUTER (trace) Node Router.B cost: 1</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>On <code>Router.B</code>, the <code>ROUTER</code> log provides more information about valid origins:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 13:28:25 2016 ROUTER (trace) Node Router.C cost: 1
+Tue Jun  7 13:28:26 2016 ROUTER (trace) Node Router.A created: maskbit=2
+Tue Jun  7 13:28:26 2016 ROUTER (trace) Node Router.A link set: link_id=1
+Tue Jun  7 13:28:26 2016 ROUTER (trace) Node Router.A valid origins: ['Router.C']
+Tue Jun  7 13:28:26 2016 ROUTER (trace) Node Router.A cost: 1
+Tue Jun  7 13:28:27 2016 ROUTER (trace) Node Router.C valid origins: ['Router.A']</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_router_hello_code_logging_module">8.1.3. The <code>ROUTER_HELLO</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about the <em>Hello</em> protocol used by interior routers to exchange Hello messages, which include information about the router&#8217;s ID and a list of its reachable neighbors (the other routers with which this router has bidirectional connectivity).</p>
+</div>
+<div class="paragraph">
+<p>The logs for this module are helpful for monitoring or resolving issues in the network topology, and for determining to which other routers a router is connected, and the hop-cost for each of those connections.</p>
+</div>
+<div class="paragraph">
+<p>In this example, on <code>Router.A</code>, the <code>ROUTER_HELLO</code> log shows that it is connected to <code>Router.B</code>, and that <code>Router.B</code> is connected to <code>Router.A</code> and <code>Router.C</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 13:50:21 2016 ROUTER_HELLO (trace) RCVD: HELLO(id=Router.B area=0 inst=1465307413 seen=['Router.A', 'Router.C']) <b class="conum">(1)</b>
+Tue Jun  7 13:50:21 2016 ROUTER_HELLO (trace) SENT: HELLO(id=Router.A area=0 inst=1465307416 seen=['Router.B']) <b class="conum">(2)</b>
+Tue Jun  7 13:50:22 2016 ROUTER_HELLO (trace) RCVD: HELLO(id=Router.B area=0 inst=1465307413 seen=['Router.A', 'Router.C'])
+Tue Jun  7 13:50:22 2016 ROUTER_HELLO (trace) SENT: HELLO(id=Router.A area=0 inst=1465307416 seen=['Router.B'])</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p><code>Router.A</code> received a Hello message from <code>Router.B</code>, which can see <code>Router.A</code> and <code>Router.C</code>.</p>
+</li>
+<li>
+<p><code>Router.A</code> sent a Hello message to <code>Router.B</code>, which is the only router it can see.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>On <code>Router.B</code>, the <code>ROUTER_HELLO</code> log shows the same router topology from a different perspective:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 13:50:18 2016 ROUTER_HELLO (trace) SENT: HELLO(id=Router.B area=0 inst=1465307413 seen=['Router.A', 'Router.C']) <b class="conum">(1)</b>
+Tue Jun  7 13:50:18 2016 ROUTER_HELLO (trace) RCVD: HELLO(id=Router.A area=0 inst=1465307416 seen=['Router.B']) <b class="conum">(2)</b>
+Tue Jun  7 13:50:19 2016 ROUTER_HELLO (trace) RCVD: HELLO(id=Router.C area=0 inst=1465307411 seen=['Router.B']) <b class="conum">(3)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p><code>Router.B</code> sent a Hello message to <code>Router.A</code> and <code>Router.C</code>.</p>
+</li>
+<li>
+<p><code>Router.B</code> received a Hello message from <code>Router.A</code>, which can only see <code>Router.B</code>.</p>
+</li>
+<li>
+<p><code>Router.B</code> received a Hello message from <code>Router.C</code>, which can only see <code>Router.B</code>.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_router_ls_code_logging_module">8.1.4. The <code>ROUTER_LS</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about link-state data between routers, including Router Advertisement (RA), Link State Request (LSR), and Link State Update (LSU) messages.</p>
+</div>
+<div class="paragraph">
+<p>Periodically, each router sends an LSR to the other routers and receives an LSU with the requested information. Exchanging the above information, each router can compute the next hops in the topology, and the related costs.</p>
+</div>
+<div class="paragraph">
+<p>This example shows the RA, LSR, and LSU messages sent between three routers:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) SENT: LSR(id=Router.A area=0) to: Router.C //
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) SENT: LSR(id=Router.A area=0) to: Router.B //
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) SENT: RA(id=Router.A area=0 inst=1465308600 ls_seq=1 mobile_seq=1) <b class="conum">(1)</b>
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) RCVD: LSU(id=Router.B area=0 inst=1465308595 ls_seq=2 ls=LS(id=Router.B area=0 ls_seq=2 peers={'Router.A': 1L, 'Router.C': 1L})) <b class="conum">(2)</b>
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) RCVD: LSR(id=Router.B area=0)
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) SENT: LSU(id=Router.A area=0 inst=1465308600 ls_seq=1 ls=LS(id=Router.A area=0 ls_seq=1 peers={'Router.B': 1}))
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) RCVD: RA(id=Router.C area=0 inst=1465308592 ls_seq=1 mobile_seq=0)
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) SENT: LSR(id=Router.A area=0) to: Router.C
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) RCVD: LSR(id=Router.C area=0) <b class="conum">(3)</b>
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) SENT: LSU(id=Router.A area=0 // inst=1465308600 ls_seq=1 ls=LS(id=Router.A area=0 ls_seq=1 peers={'Router.B': 1}))
+Tue Jun  7 14:10:02 2016 ROUTER_LS (trace) RCVD: LSU(id=Router.C area=0 inst=1465308592 ls_seq=1 ls=LS(id=Router.C area=0 ls_seq=1 peers={'Router.B': 1L})) <b class="conum">(4)</b>
+Tue Jun  7 14:10:03 2016 ROUTER_LS (trace) Computed next hops: {'Router.C': 'Router.B', 'Router.B': 'Router.B'} <b class="conum">(5)</b>
+Tue Jun  7 14:10:03 2016 ROUTER_LS (trace) Computed costs: {'Router.C': 2L, 'Router.B': 1}
+Tue Jun  7 14:10:03 2016 ROUTER_LS (trace) Computed valid origins: {'Router.C': [], 'Router.B': []}</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p><code>Router.A</code> sent LSR requests and an RA advertisement to the other routers on the network.</p>
+</li>
+<li>
+<p><code>Router.A</code> received an LSU from <code>Router.B</code>, which has two peers: <code>Router.A</code>, and <code>Router.C</code> (with a cost of <code>1</code>).</p>
+</li>
+<li>
+<p><code>Router.A</code> received an LSR from both <code>Router.B</code> and <code>Router.C</code>, and  replied with an LSU.</p>
+</li>
+<li>
+<p><code>Router.A</code> received an LSU from <code>Router.C</code>, which only has one peer: <code>Router.B</code> (with a cost of <code>1</code>).</p>
+</li>
+<li>
+<p>After the LSR and LSU messages are exchanged, <code>Router.A</code> computed the router topology with the related costs.</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_router_ma_code_logging_module">8.1.5. The <code>ROUTER_MA</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about the exchange of mobile address information between routers, including Mobile Address Request (MAR) and Mobile Address Update (MAU) messages exchanged between routers. You can use this log to monitor the state of mobile addresses attached to each router.</p>
+</div>
+<div class="paragraph">
+<p>This example shows the MAR and MAU messages sent between three routers:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 14:27:20 2016 ROUTER_MA (trace) SENT: MAU(id=Router.A area=0 mobile_seq=1 add=['Cmy_queue', 'Dmy_queue', 'M0my_queue_wp'] del=[]) <b class="conum">(1)</b>
+Tue Jun  7 14:27:21 2016 ROUTER_MA (trace) RCVD: MAR(id=Router.C area=0 have_seq=0) <b class="conum">(2)</b>
+Tue Jun  7 14:27:21 2016 ROUTER_MA (trace) SENT: MAU(id=Router.A area=0 mobile_seq=1 add=['Cmy_queue', 'Dmy_queue', 'M0my_queue_wp'] del=[])
+Tue Jun  7 14:27:22 2016 ROUTER_MA (trace) RCVD: MAR(id=Router.B area=0 have_seq=0) <b class="conum">(3)</b>
+Tue Jun  7 14:27:22 2016 ROUTER_MA (trace) SENT: MAU(id=Router.A area=0 mobile_seq=1 add=['Cmy_queue', 'Dmy_queue', 'M0my_queue_wp'] del=[])
+Tue Jun  7 14:27:39 2016 ROUTER_MA (trace) RCVD: MAU(id=Router.C area=0 mobile_seq=1 add=['M0my_test'] del=[]) <b class="conum">(4)</b>
+Tue Jun  7 14:27:51 2016 ROUTER_MA (trace) RCVD: MAU(id=Router.C area=0 mobile_seq=2 add=[] del=['M0my_test']) <b class="conum">(5)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p><code>Router.A</code> sent MAU messages to the other routers in the network to notify them about the addresses added for <code>my_queue</code> and <code>my_queue_wp</code>.</p>
+</li>
+<li>
+<p><code>Router.A</code> received a MAR message in response from <code>Router.C</code>.</p>
+</li>
+<li>
+<p><code>Router.A</code> received another MAR message in response from <code>Router.B</code>.</p>
+</li>
+<li>
+<p><code>Router.C</code> sent a MAU message to notify the other routers that it added and address for <code>my_test</code>.</p>
+</li>
+<li>
+<p><code>Router.C</code> sent another MAU message to notify the other routers that it deleted the address for <code>my_test</code> (because the receiver is detached).</p>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_message_code_logging_module">8.1.6. The <code>MESSAGE</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about AMQP messages sent and received by the router, including information about the address, body, and link. You can use this log to find high-level information about messages on a particular router.</p>
+</div>
+<div class="paragraph">
+<p>In this example, <code>Router.A</code> has sent and received some messages related to the Hello protocol, and sent and received some other messages on a link for a mobile address:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 14:36:54 2016 MESSAGE (trace) Sending Message{to='amqp:/_topo/0/Router.B/qdrouter' body='\d1\00\00\00\1b\00\00\00\04\a1\02id\a1\08R'} on link qdlink.p9XmBm19uDqx50R
+Tue Jun  7 14:36:54 2016 MESSAGE (trace) Received Message{to='amqp:/_topo/0/Router.A/qdrouter' body='\d1\00\00\00\8e\00\00\00
+\a1\06ls_se'} on link qdlink.phMsJOq7YaFsGAG
+Tue Jun  7 14:36:54 2016 MESSAGE (trace) Received Message{ body='\d1\00\00\00\10\00\00\00\02\a1\08seque'} on link qdlink.FYHqBX+TtwXZHfV
+Tue Jun  7 14:36:54 2016 MESSAGE (trace) Sending Message{ body='\d1\00\00\00\10\00\00\00\02\a1\08seque'} on link qdlink.yU1tnPs5KbMlieM
+Tue Jun  7 14:36:54 2016 MESSAGE (trace) Sending Message{to='amqp:/_local/qdhello' body='\d1\00\00\00G\00\00\00\08\a1\04seen\d0'} on link qdlink.p9XmBm19uDqx50R
+Tue Jun  7 14:36:54 2016 MESSAGE (trace) Sending Message{to='amqp:/_topo/0/Router.C/qdrouter' body='\d1\00\00\00\1b\00\00\00\04\a1\02id\a1\08R'} on link qdlink.p9XmBm19uDqx50R</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_server_code_logging_module">8.1.7. The <code>SERVER</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about how the router is listening for and connecting to other containers in the network (such as clients, routers, and brokers). This includes the state of AMQP messages sent and received by the broker (open, begin, attach, transfer, flow, and so on), and the related content of those messages.</p>
+</div>
+<div class="paragraph">
+<p>For example, this log shows details about how the router handled a link attachment:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 14:39:52 2016 SERVER (trace) [2]:  &lt;- AMQP
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:  &lt;- AMQP
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:0 &lt;- @open(16) [container-id="Router.B", max-frame-size=16384, channel-max=32767, idle-time-out=8000, offered-capabilities=:"ANONYMOUS-RELAY", properties={:product="qpid-dispatch-router", :version="0.6.0"}]
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:0 -&gt; @begin(17) [next-outgoing-id=0, incoming-window=15, outgoing-window=2147483647]
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:RAW: "\x00\x00\x00\x1e\x02\x00\x00\x00\x00S\x11\xd0\x00\x00\x00\x0e\x00\x00\x00\x04@R\x00R\x0fp\x7f\xff\xff\xff"
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:1 -&gt; @begin(17) [next-outgoing-id=0, incoming-window=15, outgoing-window=2147483647]
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:RAW: "\x00\x00\x00\x1e\x02\x00\x00\x01\x00S\x11\xd0\x00\x00\x00\x0e\x00\x00\x00\x04@R\x00R\x0fp\x7f\xff\xff\xff"
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:0 -&gt; @attach(18) [name="qdlink.uSSeXPSfTHhxo8d", handle=0, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) [durable=0, expiry-policy=:"link-detach", timeout=0, dynamic=false, capabilities=:"qd.router"], target=@target(41) [durable=0, expiry-policy=:"link-detach", timeout=0, dynamic=false, capabilities=:"qd.router"], initial-delivery-count=0]
+Tue Jun  7 14:39:52 2016 SERVER (trace) [1]:RAW: "\x00\x00\x00\x91\x02\x00\x00\x00\x00S\x12\xd0\x00\x00\x00\x81\x00\x00\x00\x0a\xa1\x16qdlink.uSSeXPSfTHhxo8dR\x00AP\x02P\x00\x00S(\xd0\x00\x00\x00'\x00\x00\x00\x0b@R\x00\xa3\x0blink-detachR\x00B@@@@@\xa3\x09qd.router\x00S)\xd0\x00\x00\x00#\x00\x00\x00\x07@R\x00\xa3\x0blink-detachR\x00B@\xa3\x09qd.router@@R\x00"</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_agent_code_logging_module">8.1.8. The <code>AGENT</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about configuration changes made to the router from either editing the router&#8217;s configuration file or using <code>qdmanage</code>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, on <code>Router.A</code>, <code>address</code>, <code>linkRoute</code>, and <code>autoLink</code> entities were added to the router&#8217;s configuration file. When the router was started, the <code>AGENT</code> module applied these changes, and they are now viewable in the log:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: ConnectorEntity(addr=127.0.0.1, allowRedirect=True, cost=1, host=127.0.0.1, identity=connector/127.0.0.1:5672:BROKER, idleTimeoutSeconds=16, maxFrameSize=65536, name=BROKER, port=5672, role=route-container, stripAnnotations=both, type=org.apache.qpid.dispatch.connector, verifyHostname=True)
+Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: RouterConfigAddressEntity(distribution=closest, identity=router.config.address/0, name=router.config.address/0, prefix=my_address, type=org.apache.qpid.dispatch.router.config.address, waypoint=False)
+Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: RouterConfigAddressEntity(distribution=balanced, identity=router.config.address/1, name=router.config.address/1, prefix=my_queue_wp, type=org.apache.qpid.dispatch.router.config.address, waypoint=True)
+Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: RouterConfigLinkrouteEntity(connection=BROKER, direction=in, distribution=linkBalanced, identity=router.config.linkRoute/0, name=router.config.linkRoute/0, prefix=my_queue, type=org.apache.qpid.dispatch.router.config.linkRoute)
+Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: RouterConfigLinkrouteEntity(connection=BROKER, direction=out, distribution=linkBalanced, identity=router.config.linkRoute/1, name=router.config.linkRoute/1, prefix=my_queue, type=org.apache.qpid.dispatch.router.config.linkRoute)
+Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: RouterConfigAutolinkEntity(addr=my_queue_wp, connection=BROKER, direction=in, identity=router.config.autoLink/0, name=router.config.autoLink/0, type=org.apache.qpid.dispatch.router.config.autoLink)
+Tue Jun  7 15:07:32 2016 AGENT (debug) Add entity: RouterConfigAutolinkEntity(addr=my_queue_wp, connection=BROKER, direction=out, identity=router.config.autoLink/1, name=router.config.autoLink/1, type=org.apache.qpid.dispatch.router.config.autoLink)</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_container_code_logging_module">8.1.9. The <code>CONTAINER</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about the nodes related to the router. This includes only the AMQP relay node.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 14:46:18 2016 CONTAINER (trace) Container Initialized
+Tue Jun  7 14:46:18 2016 CONTAINER (trace) Node Type Registered - router
+Tue Jun  7 14:46:18 2016 CONTAINER (trace) Node of type 'router' installed as default node</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_error_code_logging_module">8.1.10. The <code>ERROR</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides detailed information about error conditions encountered during execution.</p>
+</div>
+<div class="paragraph">
+<p>In this example, <code>Router.A</code> failed to start when an incorrect path was specified for the router&#8217;s configuration file:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ sudo qdrouterd --conf xxx
+Wed Jun 15 09:53:28 2016 ERROR (error) Python: Exception: Cannot load configuration file xxx: [Errno 2] No such file or directory: 'xxx'
+Wed Jun 15 09:53:28 2016 ERROR (error) Traceback (most recent call last):
+  File "/usr/lib/qpid-dispatch/python/qpid_dispatch_internal/management/config.py", line 155, in configure_dispatch
+    config = Config(filename)
+  File "/usr/lib/qpid-dispatch/python/qpid_dispatch_internal/management/config.py", line 41, in __init__
+    self.load(filename, raw_json)
+  File "/usr/lib/qpid-dispatch/python/qpid_dispatch_internal/management/config.py", line 123, in load
+    with open(source) as f:
+Exception: Cannot load configuration file xxx: [Errno 2] No such file or directory: 'xxx'
+
+Wed Jun 15 09:53:28 2016 MAIN (critical) Router start-up failed: Python: Exception: Cannot load configuration file xxx: [Errno 2] No such file or directory: 'xxx'
+qdrouterd: Python: Exception: Cannot load configuration file xxx: [Errno 2] No such file or directory: 'xxx'</pre>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="the_code_policy_code_logging_module">8.1.11. The <code>POLICY</code> Logging Module</h4>
+<div class="paragraph">
+<p>This module provides information about policies that have been configured for the router.</p>
+</div>
+<div class="paragraph">
+<p>In this example, <code>Router.A</code> has no limits on maximum connections, and the default application policy is disabled:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">Tue Jun  7 15:07:32 2016 POLICY (info) Policy configured maximumConnections: 0, policyFolder: '', access rules enabled: 'false'
+Tue Jun  7 15:07:32 2016 POLICY (info) Policy fallback defaultApplication is disabled</pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="configure-default-logging">8.2. Configuring Logging</h3>
+<div class="paragraph">
+<p>You can specify the types of events that should be logged, the format of the log entries, and where those entries should be sent.</p>
+</div>
+<div class="olist arabic">
+<div class="title">Procedure</div>
+<ol class="arabic">
+<li>
+<p>In the router&#8217;s configuration file, add a <code>log</code> section to set the default logging properties:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">log {
+    module: DEFAULT
+    enable: <em>LOGGING_LEVEL</em>
+    includeTimestamp: yes
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>module</code></dt>
+<dd>
+<p>Specify <code>DEFAULT</code>.</p>
+</dd>
+<dt class="hdlist1"><code>enable</code></dt>
+<dd>
+<p>The logging level. You can specify any of the following levels (from lowest to highest):</p>
+<div class="ulist">
+<ul>
+<li>
+<p><code>trace</code> - provides the most information, but significantly affects system performance</p>
+</li>
+<li>
+<p><code>debug</code> - useful for debugging, but affects system performance</p>
+</li>
+<li>
+<p><code>info</code> - provides general information without affecting system performance</p>
+</li>
+<li>
+<p><code>notice</code> - provides general information, but is less verbose than <code>info</code></p>
+</li>
+<li>
+<p><code>warning</code> - provides information about issues you should be aware of, but which are not errors</p>
+</li>
+<li>
+<p><code>error</code> - error conditions that you should address</p>
+</li>
+<li>
+<p><code>critical</code> - critical system issues that you must address immediately</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>To specify multiple levels, use a comma-separated list. You can also use <code>+</code> to specify a level and all levels above it. For example, <code>trace,debug,warning+</code> enables trace, debug, warning, error, and critical levels. For default logging, you should typically use the <code>info+</code> or <code>notice+</code> level. These levels will provide general information, warnings, and errors for all modules without affecting the performance of Dispatch Router.</p>
+</div>
+</dd>
+<dt class="hdlist1"><code>includeTimestamp</code></dt>
+<dd>
+<p>Set this to <code>yes</code> to include the timestamp in all logs.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional log attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_log">log</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+<li>
+<p>Add an additional <code>log</code> section for each logging module that should not follow the default logging configuration:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">log {
+    module: <em>MODULE_NAME</em>
+    enable: <em>LOGGING_LEVEL</em>
+    ...
+}</pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>module</code></dt>
+<dd>
+<p>The name of the module for which you are configuring logging. For a list of valid modules, see <a href="#logging-modules-you-can-configure">Logging Modules</a>.</p>
+</dd>
+<dt class="hdlist1"><code>enable</code></dt>
+<dd>
+<p>The logging level. You can specify any of the following levels (from lowest to highest):</p>
+<div class="ulist">
+<ul>
+<li>
+<p><code>trace</code> - provides the most information, but significantly affects system performance</p>
+</li>
+<li>
+<p><code>debug</code> - useful for debugging, but affects system performance</p>
+</li>
+<li>
+<p><code>info</code> - provides general information without affecting system performance</p>
+</li>
+<li>
+<p><code>notice</code> - provides general information, but is less verbose than <code>info</code></p>
+</li>
+<li>
+<p><code>warning</code> - provides information about issues you should be aware of, but which are not errors</p>
+</li>
+<li>
+<p><code>error</code> - error conditions that you should address</p>
+</li>
+<li>
+<p><code>critical</code> - critical system issues that you must address immediately</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>To specify multiple levels, use a comma-separated list. You can also use <code>+</code> to specify a level and all levels above it. For example, <code>trace,debug,warning+</code> enables trace, debug, warning, error, and critical levels. For default logging, you should typically use the <code>info+</code> or <code>notice+</code> level. These levels will provide general information, warnings, and errors for all modules without affecting the performance of Dispatch Router.</p>
+</div>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For information about additional log attributes, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdrouterd.conf.html#_log">log</a> in the <code>qdrouterd.conf</code> man page.</p>
+</div>
+</div>
+</div>
+</li>
+</ol>
+</div>
+</div>
+<div class="sect2">
+<h3 id="viewing_log_entries">8.3. Viewing Log Entries</h3>
+<div class="paragraph">
+<p>You may need to view log entries to diagnose errors, performance problems, and other important issues. A log entry consists of an optional timestamp, the logging module, the logging level, and the log message.</p>
+</div>
+<div class="sect3">
+<h4 id="viewing_log_entries_on_the_console">8.3.1. Viewing Log Entries on the Console</h4>
+<div class="paragraph">
+<p>By default, log entries are logged to the console, and you can view them there. However, if the <code>output</code> attribute is set for a particular logging module, then you can find those log entries in the specified location (<code>stderr</code>, <code>syslog</code>, or a file).</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_log_entries_on_the_cli">8.3.2. Viewing Log Entries on the CLI</h4>
+<div class="paragraph">
+<p>You can use the <code>qdstat</code> tool to view a list of recent log entries.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use the <strong><code>qdstat --log</code></strong> command to view recent log entries.</p>
+<div class="openblock">
+<div class="content">
+<div class="paragraph">
+<p>You can use the <code>--limit</code> parameter to limit the number of log entries that are displayed. For more information about <code>qdstat</code>, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html" target="_blank" rel="noopener">qdstat man page</a>.</p>
+</div>
+<div class="paragraph">
+<p>This example displays the last three log entries for <code>Router.A</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --log --limit=3 -r ROUTER.A
+Wed Jun  7 17:49:32 2017 ROUTER (none) Core action 'link_deliver'
+Wed Jun  7 17:49:32 2017 ROUTER (none) Core action 'send_to'
+Wed Jun  7 17:49:32 2017 SERVER (none) [2]:0 -&gt; @flow(19) [next-incoming-id=1, incoming-window=61, next-outgoing-id=0, outgoing-window=2147483647, handle=0, delivery-count=1, link-credit=250, drain=false]</pre>
+</div>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="management">9. Management</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can manage Dispatch Router using both graphical and command-line tools.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Apache Qpid Dispatch Router Console</dt>
+<dd>
+<p>A graphical tool for monitoring and managing Dispatch Router routers.</p>
+</dd>
+<dt class="hdlist1"><code>qdstat</code></dt>
+<dd>
+<p>A command-line tool for monitoring the status of Dispatch Router routers.</p>
+</dd>
+<dt class="hdlist1"><code>qdmanage</code></dt>
+<dd>
+<p>A command-line tool for viewing and updating the configuration of Dispatch Router routers.</p>
+</dd>
+</dl>
+</div>
+<div class="sect2">
+<h3 id="using_apache_qpid_dispatch_router_console">9.1. Using Apache Qpid Dispatch Router Console</h3>
+<div class="sect3">
+<h4 id="console-overview">9.1.1. Console Overview</h4>
+<div class="paragraph">
+<p>The console is an HTML based web site that displays information about a qpid dispatch router network.</p>
+</div>
+<div class="paragraph">
+<p>The console requires an HTML web server that can serve static html, javascript, style sheets, and images.</p>
+</div>
+<div class="paragraph">
+<p>The console only provides limited information about the clients that are attached to the router network and is therfore more appropriate for administrators needing to know the layout and health of the router network.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="console-installation">9.1.2. Console Installation</h4>
+<h5 id="prerequisites" class="discrete">Prerequisites</h5>
+<div class="paragraph">
+<p>The following need to be installed before running a console:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>One or more dispatch routers. See the documentation for the dispatch
+router for help in starting a router network.</p>
+</li>
+<li>
+<p>A websockets to tcp proxy.</p>
+</li>
+<li>
+<p>A web server. This can be any server capable of serving static
+html/js/css/image files.</p>
+</li>
+</ul>
+</div>
+<h5 id="procedure" class="discrete">Procedure</h5>
+<div class="paragraph">
+<p>To install a websockets to tcp proxy:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>sudo dnf install python-websockify
+websockify localhost:5673 localhost:5672</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This will start the proxy listening to ws traffic on port 5673 and
+translating it to tcp on port 5672. One of the routers in the network
+needs to have a listener configured on port 5672. That listener&#8217;s role
+should be 'normal'. For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>listener {
+   host: 0.0.0.0
+   role: normal
+   port: amqp
+   saslMechanisms: ANONYMOUS
+}</pre>
+</div>
+</div>
+<div class="sect4">
+<h5 id="the-console-files">The Console Files</h5>
+<div class="paragraph">
+<p>The files for the console are located under the console/stand-alone
+directory in the source tree
+*  'index.html'
+*  'plugin/'</p>
+</div>
+<div class="paragraph">
+<p>Copy these files to a directory under the the html or webapps directory
+of your web server. For example, for apache tomcat the files should be
+under webapps/dispatch. Then the console is available as 'http://localhost:8080/dispatch'</p>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="console-operation">9.1.3. Console Operation</h4>
+<div class="sect4">
+<h5 id="logging-in-to-a-router-network">Logging into a Router Network</h5>
+<div class="paragraph">
+<p><span class="image"><img src="_images/console_login.png" alt="image"></span></p>
+</div>
+<div class="paragraph">
+<p>Enter the address of the websockets to tcp proxy that is connected to a router in the network.</p>
+</div>
+<div class="paragraph">
+<p>The Autostart checkbox, when checked, will automatically log in with the previous host:port the next time you start the console.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="overview-page">Overview Page</h5>
+<div class="paragraph">
+<p><span class="image"><img src="_images/console_overview.png" alt="image"></span></p>
+</div>
+<div class="paragraph">
+<p>On the overview page, aggregate information about routers, addresses, and connections is displayed.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="topology-page">Topology Page</h5>
+<div class="paragraph">
+<p><span class="image"><img src="_images/console_topology.png" alt="image"></span></p>
+</div>
+<div class="paragraph">
+<p>This page displays the router network in a graphical form showing how the routers are connected and information about the individual routers and links.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="list-page">List Page</h5>
+<div class="paragraph">
+<p><span class="image"><img src="_images/console_entity.png" alt="image"></span></p>
+</div>
+<div class="paragraph">
+<p>Displays detailed information about entities such as routers, links, addresses, memory.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="charts-page">Charts Page</h5>
+<div class="paragraph">
+<p><span class="image"><img src="_images/console_charts.png" alt="image"></span></p>
+</div>
+<div class="paragraph">
+<p>This page displays graphs of numeric values that are on the list page.</p>
+</div>
+</div>
+<div class="sect4">
+<h5 id="schema-page">Schema Page</h5>
+<div class="paragraph">
+<p><span class="image"><img src="_images/console_schema.png" alt="image"></span></p>
+</div>
+<div class="paragraph">
+<p>This page displays the json schema that is used to manage the router network.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="monitoring-using-qdstat">9.2. Monitoring Dispatch Router Using <code>qdstat</code></h3>
+<div class="paragraph">
+<p>You can use <code>qdstat</code> to view the status of routers on your router network. For example, you can view information about the attached links and configured addresses, available connections, and nodes in the router network.</p>
+</div>
+<div class="sect3">
+<h4 id="syntax_for_using_code_qdstat_code">9.2.1. Syntax for Using <code>qdstat</code></h4>
+<div class="paragraph">
+<p>You can use <code>qdstat</code> with the following syntax:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat <em>OPTION</em> [<em>CONNECTION_OPTIONS</em>] [<em>SECURE_CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This specifies:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>An <code>option</code> for the type of information to view.</p>
+</li>
+<li>
+<p>One or more optional <code>connection_options</code> to specify a router for which to view the information.</p>
+<div class="paragraph">
+<p>If you do not specify a connection option, <code>qdstat</code> connects to the router listening on localhost and the default AMQP port (5672).</p>
+</div>
+</li>
+<li>
+<p>The <code>secure_connection_options</code> if the router for which you want to view information only accepts secure connections.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>For more information about <code>qdstat</code>, see the <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html" target="_blank" rel="noopener">qdstat man page</a>.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_general_statistics_for_a_router">9.2.2. Viewing General Statistics for a Router</h4>
+<div class="paragraph">
+<p>You can view information about a router in the router network, such as its working mode and ID.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use the following command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -g [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This example shows general statistics for the local router:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -g
+Router Statistics
+  attr                             value
+  =============================================
+  Version                          1.2.0
+  Mode                             standalone
+  Router Id                        Router.A
+  Link Routes                      0
+  Auto Links                       0
+  Links                            2
+  Nodes                            0
+  Addresses                        4
+  Connections                      1
+  Presettled Count                 0
+  Dropped Presettled Count         0
+  Accepted Count                   2
+  Rejected Count                   0
+  Released Count                   0
+  Modified Count                   0
+  Ingress Count                    2
+  Egress Count                     1
+  Transit Count                    0
+  Deliveries from Route Container  0
+  Deliveries to Route Container    0</pre>
+</div>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_a_list_of_connections_to_a_router">9.2.3. Viewing a List of Connections to a Router</h4>
+<div class="paragraph">
+<p>You can view:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Connections from clients (sender/receiver)</p>
+</li>
+<li>
+<p>Connections from and to other routers in the network</p>
+</li>
+<li>
+<p>Connections to other containers (such as brokers)</p>
+</li>
+<li>
+<p>Connections from the tool itself</p>
+</li>
+</ul>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use this command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -c [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about the fields displayed by this command, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html#_qdstat_c" target="_blank" rel="noopener">the qdstat -c output columns</a>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, two clients are connected to <code>Router.A</code>. <code>Router.A</code> is connected to <code>Router.B</code> and a broker.</p>
+</div>
+<div class="paragraph">
+<p>Viewing the connections on Router.A displays the following:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -c -r Router.A
+Connections
+id    host                        container                              role             dir  security     authentication  tenant
+==================================================================================================================================
+  2   127.0.0.1:5672                                                     route-container  out  no-security  anonymous-user   <b class="conum">(1)</b>
+  10  127.0.0.1:5001               Router.B                              inter-router     out  no-security  anonymous-user   <b class="conum">(2)</b>
+  12  localhost.localdomain:42972  161211fe-ba9e-4726-9996-52d6962d1276  normal           in   no-security  anonymous-user   <b class="conum">(3)</b>
+  14  localhost.localdomain:42980  a35fcc78-63d9-4bed-b57c-053969c38fda  normal           in   no-security  anonymous-user   <b class="conum">(3)</b>
+  15  localhost.localdomain:42982  0a03aa5b-7c45-4500-8b38-db81d01ce651  normal           in   no-security  anonymous-user   <b class="conum">(4)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>This connection shows that <code>Router.A</code> is connected to a broker, because the <code>role</code> is <code>route-container</code>, and the <code>dir</code> is <code>out</code>.</p>
+</li>
+<li>
+<p><code>Router.A</code> is also connected to another router on the network (the <code>role</code> is <code>inter-router</code>), establishing an output connection (the <code>dir</code> is <code>out</code>).</p>
+</li>
+<li>
+<p>These connections show that two clients are connected to <code>Router.A</code>, because the <code>role</code> is <code>normal</code>, and the <code>dir</code> is <code>in</code>.</p>
+</li>
+<li>
+<p>The connection from <code>qdstat</code> to <code>Router.A</code>. This is the connection that <code>qdstat</code> uses to query <code>Router.A</code> and display the command output.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p><code>Router.A</code> is connected to <code>Router.B</code>. Viewing the connections on <code>Router.B</code> displays the following:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -c -r Router.B
+Connections
+id    host                         container  role          dir  security     authentication  tenant
+====================================================================================================
+  1   localhost.localdomain:51848  Router.A   inter-router  in   no-security  anonymous-user    <b class="conum">(1)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>This connection shows that <code>Router.B</code> is connected to <code>Router.A</code> through an incoming connection (the <code>role</code> is <code>inter-router</code> and the <code>dir</code> is <code>in</code>). There is not a connection from <code>qdstat</code> to <code>Router.B</code>, because the command was run from <code>Router.A</code> and forwarded to <code>Router.B</code>.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_amqp_links_attached_to_a_router">9.2.4. Viewing AMQP Links Attached to a Router</h4>
+<div class="paragraph">
+<p>You can view a list of AMQP links attached to the router from clients (sender/receiver), from or to other routers into the network, to other containers (for example, brokers), and from the tool itself.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use this command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -l [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about the fields displayed by this command, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html#_qdstat_l" target="_blank" rel="noopener">the qdstat -l output columns</a>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, <code>Router.A</code> is connected to both <code>Router.B</code> and a broker. A link route is configured for the <code>my_queue</code> queue and waypoint (with autolinks), and for the <code>my_queue_wp</code> queue on the broker. In addition, there is a receiver connected to <code>my_address</code> (message routing based), another to <code>my_queue</code>, and the a third one to <code>my_queue_wp</code>.</p>
+</div>
+<div class="paragraph">
+<p>In this configuration, the router uses only one connection to the broker for both the waypoints (related to <code>my_queue_wp</code>) and the link route (related to <code>my_queue</code>).</p>
+</div>
+<div class="paragraph">
+<p>Viewing the links displays the following:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -l
+Router Links
+  type            dir  conn id  id  peer  class   addr                  phs  cap  undel  unsett  del  presett  psdrop  acc  rej  rel  mod  admin    oper
+  ======================================================================================================================================================
+  router-control  in   2        7                                            250  0      0       2876 0        0       0    0    0    0    enabled  up <b class="conum">(1)</b>
+  router-control  out  2        8         local   qdhello                    250  0      0       2716 0        0       0    0    0    0    enabled  up
+  inter-router    in   2        9                                            250  0      0       1    0        0       0    0    0    0    enabled  up
+  inter-router    out  2        10                                           250  0      0       1    0        0       0    0    0    0    enabled  up
+  endpoint        in   1        11        mobile  my_queue_wp           1    250  0      0       3    0        0       0    0    0    0    enabled  up <b class="conum">(2)</b>
+  endpoint        out  1        12        mobile  my_queue_wp           0    250  0      0       3    0        0       0    0    0    0    enabled  up
+  endpoint        out  4        15        mobile  my_address            0    250  0      0       0    0        0       0    0    0    0    enabled  up <b class="conum">(3)</b>
+  endpoint        out  6        18  19                                       250  0      0       1    0        0       0    0    0    0    enabled  up <b class="conum">(4)</b>
+  endpoint        in   1        19  18                                       0    0      0       1    0        0       0    0    0    0    enabled  up <b class="conum">(5)</b>
+  endpoint        out  19       40        mobile  my_queue_wp           1    250  0      0       1    0        0       0    0    0    0    enabled  up <b class="conum">(6)</b>
+  endpoint        in   24       48        mobile  $management           0    250  0      0       1    0        0       0    0    0    0    enabled  up
+  endpoint        out  24       49        local   temp.mx5HxzUe2Eddw_s       250  0      0       0    0        0       0    0    0    0    enabled  up</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The <code>conn id</code> 2 connection has four links (in both directions) for inter-router communications with <code>Router.B</code>, such as control messages and normal message-routed deliveries.</p>
+</li>
+<li>
+<p>There are two autolinks (<code>conn id 1</code>) for the waypoint for <code>my_queue_wp</code>. There is an incoming (<code>id 11</code>) and outgoing (<code>id 12</code>) link to the broker, and another <code>out</code> link (<code>id 40</code>) to the receiver.</p>
+</li>
+<li>
+<p>A <code>mobile</code> link for <code>my_address</code>. The <code>dir</code> is <code>out</code> related to the receiver attached to it.</p>
+</li>
+<li>
+<p>The <code>out</code> link from the router to the receiver for <code>my_queue</code>. This enables the router to deliver messages to the receiver.</p>
+</li>
+<li>
+<p>The <code>in</code> link to the router for <code>my_queue</code>. This enables the router to get messages from <code>my_queue</code> so that they can be sent to the receiver on the <code>out</code> link.</p>
+</li>
+<li>
+<p>The remaining links are related to the <code>$management</code> address and are used by <code>qdstat</code> to receive the information that is displayed by this command.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_known_routers_on_a_network">9.2.5. Viewing Known Routers on a Network</h4>
+<div class="paragraph">
+<p>To see the topology of the router network, you can view known routers on the network.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use this command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -n [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about the fields displayed by this command, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html#_qdstat_n" target="_blank" rel="noopener">the qdstat -n output columns</a>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, <code>Router.A</code> is connected to <code>Router.B</code>, which is connected to <code>Router.C</code>. Viewing the router topology on <code>Router.A</code> shows the following:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -n -r Router.A
+Routers in the Network
+  router-id  next-hop  link  cost  neighbors                 valid-origins
+  ==========================================================================
+  Router.A   (self)    -           ['Router.B']              [] <b class="conum">(1)</b>
+  Router.B   -         0     1     ['Router.A', 'Router.C']  [] <b class="conum">(2)</b>
+  Router.C   Router.B  -     2     ['Router.B']              [] <b class="conum">(3)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p><code>Router.A</code> has one neighbor: <code>Router.B</code>.</p>
+</li>
+<li>
+<p><code>Router.B</code> is connected to <code>Router.A</code> and <code>Router.C</code> over <code>link</code> 0. The <code>cost</code> for <code>Router.A</code> to reach <code>Router.B</code> is 1, because the two routers are connected directly.</p>
+</li>
+<li>
+<p><code>Router.C</code> is connected to <code>Router.B</code>, but not to <code>Router.A</code>. The <code>cost</code> for <code>Router.A</code> to reach <code>Router.C</code> is 2, because messages would have to pass through <code>Router.B</code> as the <code>next-hop</code>.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p><code>Router.B</code> shows a different view of the router topology:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -n -v -r Router.B
+Routers in the Network
+  router-id  next-hop  link  cost  neighbors                 valid-origins
+  ==========================================================================
+  Router.A   -         0     1     ['Router.B']              ['Router.C']
+  Router.B   (self)    -           ['Router.A', 'Router.C']  []
+  Router.C   -         1     1     ['Router.B']              ['Router.A']</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>neighbors</code> list is the same when viewed on <code>Router.B</code>. However, from the perspective of <code>Router.B</code>, the destinations on <code>Router.A</code> and <code>Router.C</code> both have a <code>cost</code> of <code>1</code>. This is because <code>Router.B</code> is connected to <code>Router.A</code> and <code>Router.C</code> through links.</p>
+</div>
+<div class="paragraph">
+<p>The <code>valid-origins</code> column shows that starting from <code>Router.C</code>, <code>Router.B</code> has the best path to reach <code>Router.A</code>. Likewise, starting from <code>Router.A</code>, <code>Router.B</code> has the best path to reach <code>Router.C</code>.</p>
+</div>
+<div class="paragraph">
+<p>Finally, <code>Router.C</code> shows the following details about the router topology:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -n -v -r Router.C
+Routers in the Network
+  router-id  next-hop  link  cost  neighbors                 valid-origins
+  ==========================================================================
+  Router.A   Router.B  -     2     ['Router.B']              []
+  Router.B   -         0     1     ['Router.A', 'Router.C']  []
+  Router.C   (self)    -           ['Router.B']              []</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Due to a symmetric topology, the <code>Router.C</code> perspective of the topology is very similar to the <code>Router.A</code> perspective. The primary difference is the <code>cost</code>: the cost to reach <code>Router.B</code> is <code>1</code>, because the two routers are connected. However, the cost to reach <code>Router.A</code> is <code>2</code>, because the messages would have to pass through <code>Router.B</code> as the <code>next-hop</code>.</p>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_addresses_known_to_a_router">9.2.6. Viewing Addresses Known to a Router</h4>
+<div class="paragraph">
+<p>You can view message-routed and link-routed addresses known to a router.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use the following command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -a [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about the fields displayed by this command, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html#_qdstat_a" target="_blank" rel="noopener">the qdstat -a output columns</a>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, <code>Router.A</code> is connected to both <code>Router.B</code> and a broker. The broker has two queues:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><code>my_queue</code> (with a link route on <code>Router.A</code>)</p>
+</li>
+<li>
+<p><code>my_queue_wp</code> (with a waypoint and autolinks configured on <code>Router.A</code>)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>In addition, there are three receivers: one connected to <code>my_address</code> for message routing, another connected to <code>my_queue</code>, and the last one connected to <code>my_queue_wp</code>.</p>
+</div>
+<div class="paragraph">
+<p>Viewing the addresses displays the following information:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -a
+Router Addresses
+  class     addr                   phs  distrib       in-proc  local  remote  cntnr  in  out  thru  to-proc  from-proc
+  ======================================================================================================================
+  local     $_management_internal       closest       1        0      0       0      0   0    0     0        0
+  local     $displayname                closest       1        0      0       0      0   0    0     0        0
+  mobile    $management            0    closest       1        0      0       0      8   0    0     8        0
+  local     $management                 closest       1        0      0       0      0   0    0     0        0
+  router    Router.B                    closest       0        0      1       0      0   0    5     0        5 <b class="conum">(1)</b>
+  mobile    my_address             0    closest       0        1      0       0      1   1    0     0        0 <b class="conum">(2)</b>
+  link-in   my_queue                    linkBalanced  0        0      0       1      0   0    0     0        0 <b class="conum">(3)</b>
+  link-out  my_queue                    linkBalanced  0        0      0       1      0   0    0     0        0
+  mobile    my_queue_wp            1    balanced      0        1      0       0      1   1    0     0        0 <b class="conum">(4)</b>
+  mobile    my_queue_wp            0    balanced      0        1      0       0      1   1    0     0        0
+  local     qdhello                     flood         1        1      0       0      0   0    0     741      706 <b class="conum">(5)</b>
+  local     qdrouter                    flood         1        0      0       0      0   0    0     4        0
+  topo      qdrouter                    flood         1        0      1       0      0   0    27    28       28
+  local     qdrouter.ma                 multicast     1        0      0       0      0   0    0     1        0
+  topo      qdrouter.ma                 multicast     1        0      1       0      0   0    2     0        3
+  local     temp.IJSoXoY_lX0TiDE        closest       0        1      0       0      0   0    0     0        0</pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>An address related to <code>Router.B</code> with a <code>remote</code> at 1. This is the consumer from <code>Router.B</code>.</p>
+</li>
+<li>
+<p>The <code>my_address</code> address has one local consumer, which is related to the single receiver attached on that address. The <code>in</code> and <code>out</code> fields are both 1, which means that one message has traveled through this address using the <code>closest</code> distribution method.</p>
+</li>
+<li>
+<p>The incoming link route for the <code>my_queue</code> address. This address has one locally-attached container (<code>cntnr</code>) as a destination (in this case, the broker). The following entry is the outgoing link for the same address.</p>
+</li>
+<li>
+<p>The incoming autolink for the <code>my_queue_wp</code> address and configured waypoint. There is one local consumer (<code>local</code>) for the attached receiver. The following entry is the outgoing autolink for the same address. A single message has traveled through the autolinks.</p>
+</li>
+<li>
+<p>The <code>qdhello</code>, <code>qdrouter</code>, and <code>qdrouter.ma</code> addresses are used to periodically update the network topology and deliver router control messages. These updates are made automatically through the inter-router protocol, and are based on all of the messages the routers have exchanged. In this case, the distribution method (<code>distrib</code>) for each address is either flood or multicast to ensure the control messages reach all of the routers in the netw [...]
+</li>
+</ol>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_a_router_s_autolinks">9.2.7. Viewing a Router&#8217;s Autolinks</h4>
+<div class="paragraph">
+<p>You can view a list of the autolinks that are associated with waypoint addresses for a node on another container (such as a broker).</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use the following command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --autolinks [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about the fields displayed by this command, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html#_qdstat_autolinks" target="_blank" rel="noopener">the qdstat --autolinks output columns</a>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, a router is connected to a broker. The broker has a queue called <code>my_queue_wp</code>, to which the router is configured with a waypoint and autolinks. Viewing the autolinks displays the following:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --autolinks
+AutoLinks
+  addr         dir  phs  link  status  lastErr
+  ==============================================
+  my_queue_wp  in   1    4     active <b class="conum">(1)</b>
+  my_queue_wp  out  0    5     active <b class="conum">(2)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The incoming autolink from <code>my_queue_wp</code>. As indicated by the <code>status</code> field, the link is active, because the broker is running and the connection for the link is already established (as indicated by the <code>link</code> field).</p>
+</li>
+<li>
+<p>The outgoing autlink to <code>my_queue_wp</code>. Like the incoming link, it is active and has an established connection.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_the_status_of_a_router_s_link_routes">9.2.8. Viewing the Status of a Router&#8217;s Link Routes</h4>
+<div class="paragraph">
+<p>You can view the status of each incoming and outgoing link route.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use the following command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --linkroutes [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>For more information about the fields displayed by this command, see <a href="https://qpid.apache.org/releases/qpid-dispatch-1.0.1/man/qdstat.html#_qdstat_linkroutes" target="_blank" rel="noopener">the qdstat --linkroutes output columns</a>.</p>
+</div>
+<div class="paragraph">
+<p>In this example, a router is connected to a broker. The router is configured with a link route to the <code>my_queue</code> queue on the broker. Viewing the link routes displays the following:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat --linkroutes
+Link Routes
+  prefix    dir  distrib       status
+  =====================================
+  my_queue  in   linkBalanced  active <b class="conum">(1)</b>
+  my_queue  out  linkBalanced  active <b class="conum">(2)</b></pre>
+</div>
+</div>
+<div class="colist arabic">
+<ol>
+<li>
+<p>The incoming link route from <code>my_queue</code> to the router. This route is currently active, because the broker is running.</p>
+</li>
+<li>
+<p>The outgoing link from the router to <code>my_queue</code>. This route is also currently active.</p>
+</li>
+</ol>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="viewing_memory_consumption_information">9.2.9. Viewing Memory Consumption Information</h4>
+<div class="paragraph">
+<p>If you need to perform debugging or tracing for a router, you can view information about its memory consumption.</p>
+</div>
+<div class="ulist">
+<div class="title">Procedure</div>
+<ul>
+<li>
+<p>Use the following command:</p>
+<div class="openblock">
+<div class="content">
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -m [<em>CONNECTION_OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This command displays information about allocated objects, their size, and their usage by application threads:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdstat -m
+Types
+  type                     size   batch  thread-max  total  in-threads  rebal-in  rebal-out
+  ===========================================================================================
+  qd_bitmask_t             24     64     128         64     64          0         0
+  qd_buffer_t              536    16     32          80     80          0         0
+  qd_composed_field_t      64     64     128         256    256         0         0
+  qd_composite_t           112    64     128         320    320         0         0
+  ...</pre>
+</div>
+</div>
+</div>
+</div>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="managing-router">9.3. Managing Dispatch Router Using <code>qdmanage</code></h3>
+<div class="paragraph">
+<p>You can use <code>qdmanage</code> to view and modify the configuration of a running router at runtime. Specifically, <code>qdmanage</code> enables you to create, read, update, and delete the sections and attributes in the router&#8217;s configuration file without having to restart the router.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Note</div>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The <code>qdmanage</code> tool implements the AMQP management specification, which means that you can use it with any standard AMQP-managed endpoint, not just with Dispatch Router.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="sect3">
+<h4 id="syntax_for_using_code_qdmanage_code">9.3.1. Syntax for Using <code>qdmanage</code></h4>
+<div class="paragraph">
+<p>You can use <code>qdmanage</code> with the following syntax:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="nowrap">$ qdmanage [<em>CONNECTION_OPTIONS</em>] <em>OPERATION</em> [<em>OPTIONS</em>]</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This specifies:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>One or more optional <code>connection_options</code> to specify the router on which to perform the operation, or to supply security credentials if the router only accepts secure connections.</p>
+<div class="paragraph">
+<p>If you do not specify any connection options, <code>qdmanage</code> connects to the router listening on localhost and the default AMQP port (5672).</p>
+</div>
+</li>
... 13213 lines suppressed ...


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org