Added support for randomizing interest names and therefore lengths. Any NDN consumer can now define an additional attribute "RandComponentLenMax", and all interests generated by this consumer will have an additional randomized string component between 1 and RandComponentLenMax characters, added between the prefix and the sequence number. Producers simply ignore this element.

Example:

consumerHelper.SetPrefix ("/cp2");
consumerHelper.SetAttribute (std::string("RandComponentLenMax"), IntegerValue(32));
consumerHelper.Install (cp1);
Adopted quadratic control to the shaper

When we determine the actual shaping rate between min and max, quadratic control seems more robust than linear control.
Refined test cases

Added randomized interest size test case (ndn-cc-1). Made baseline test case to be ndn-cc-0. Set the headroom in asymmetric link test case (ndn-cc-3) to 0.98.
Passed trace file names as command line arguments

Instead of hard-coding the trace file names in the test case scripts, pass them as command line arguments. This is useful when we want to run multiple test cases simultaneously.
Randomized session start time

Randomized the start time of the consumer between 0s and 5s. Metric measurement ignores the first 10s warm-up phase.
Added two more test cases

Added test case 5 and 6 for heterogeneous RTT scenario.
Added support for variable length data payloads. Keep payload under 1450 for default L2.

Example:

  ndn::AppHelper producerHelper ("ns3::ndn::Producer");
  producerHelper.SetAttribute ("RandomPayloadSizeMin", StringValue("200"));
  producerHelper.SetAttribute ("RandomPayloadSizeMax", StringValue("1400"));