model: add queue length congestion detection and signaling

add PCON consumer app

refs #4578

Change-Id: I1b04e3d123510b1ed6134a708c2710ebbb217167
diff --git a/docs/source/applications.rst b/docs/source/applications.rst
index 8bb508d..c35440e 100644
--- a/docs/source/applications.rst
+++ b/docs/source/applications.rst
@@ -163,6 +163,46 @@
 
   If ``Size`` is set to -1, Interests will be requested till the end of the simulation.
 
+ConsumerPcon
+^^^^^^^^^^^^^^^^
+
+:ndnsim:`ConsumerPcon` is an application generating variable rate Interest traffic. It implements a sliding-window-based Interest generation mechanism that adjusts window size using the PCON congestion control mechanism developed by K. Schneider et al. (https://named-data.net/publications/practical_congestion_control_scheme/). It is derived from :ndnsim:`ConsumerWindow`.
+
+.. code-block:: c++
+
+    // Create application using the app helper
+    AppHelper consumerHelper("ns3::ndn::ConsumerPcon");
+
+The application has the same attributes as :ndnsim:`ConsumerWindow`, in addition to the following:
+
+* ``Beta``
+
+  .. note::
+     default: ``0.5``
+
+  TCP Multiplicative Decrease factor
+
+* ``AddRttSupress``
+
+  .. note::
+     default: ``0.5``
+
+  Minimum number of RTTs (1 + this factor) between window decreases
+
+* ``ShouldReactToCongestionMarks``
+
+  .. note::
+     default: ``true``
+
+  If true, process received congestion marks; otherwise, ignore them
+
+* ``ShouldUseCwa``
+
+  .. note::
+     default: ``true``
+
+  If true, use Conservative Window Adaptation
+
 Producer
 ^^^^^^^^^^^^