apps: Implement BIC and CUBIC congestion control in ConsumerPcon

Also fix some bugs in the current version.

refs: #4672

Change-Id: Ibbada2c808945f144d7dd9bd6fb9e779ce16aea9
diff --git a/docs/source/applications.rst b/docs/source/applications.rst
index c35440e..5191146 100644
--- a/docs/source/applications.rst
+++ b/docs/source/applications.rst
@@ -130,7 +130,7 @@
 ConsumerWindow
 ^^^^^^^^^^^^^^^^^^
 
-:ndnsim:`ConsumerWindow` is an application generating a variable rate Interest traffic. It implements a simple sliding-window-based Interest generation mechanism.
+:ndnsim:`ConsumerWindow` is an application generating a variable-rate Interest traffic. It implements a simple sliding-window-based Interest generation mechanism.
 
 .. code-block:: c++
 
@@ -166,7 +166,7 @@
 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`.
+:ndnsim:`ConsumerPcon` is an application generating variable-rate Interest traffic. It implements a window-based rate control 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++
 
@@ -175,6 +175,13 @@
 
 The application has the same attributes as :ndnsim:`ConsumerWindow`, in addition to the following:
 
+* ``CcAlgorithm``
+
+  .. note::
+     default: ``AIMD``
+
+  Which window adaptation algorithm to use (AIMD, BIC, or CUBIC)
+
 * ``Beta``
 
   .. note::
@@ -182,6 +189,13 @@
 
   TCP Multiplicative Decrease factor
 
+* ``CubicBeta``
+
+  .. note::
+     default: ``0.8``
+
+  TCP CUBIC Multiplicative Decrease factor
+
 * ``AddRttSupress``
 
   .. note::
@@ -189,20 +203,27 @@
 
   Minimum number of RTTs (1 + this factor) between window decreases
 
-* ``ShouldReactToCongestionMarks``
+* ``ReactToCongestionMarks``
 
   .. note::
      default: ``true``
 
   If true, process received congestion marks; otherwise, ignore them
 
-* ``ShouldUseCwa``
+* ``UseCwa``
 
   .. note::
      default: ``true``
 
   If true, use Conservative Window Adaptation
 
+* ``UseCubicFastConvergence``
+
+  .. note::
+     default: ``true``
+
+  If true, use TCP CUBIC Fast Convergence
+
 Producer
 ^^^^^^^^^^^^