From 3552db04ce9a44dd0fdc92913edc747676800357 Mon Sep 17 00:00:00 2001 From: Deepak Kumaraswamy Date: Mon, 29 Jun 2020 20:51:15 +0530 Subject: [PATCH] tcp: Add dynamic pacing implementation based on Linux internal pacing Includes contributions from Tom Henderson, Vivek Jain, and Viyom Mittal --- CHANGES.html | 4 +- RELEASE_NOTES | 1 + examples/tcp/tcp-pacing.cc | 312 ++++++++++++++----- src/internet/doc/tcp.rst | 85 ++++- src/internet/model/tcp-socket-base.cc | 136 +++++++- src/internet/model/tcp-socket-base.h | 37 +++ src/internet/model/tcp-socket-state.cc | 21 +- src/internet/model/tcp-socket-state.h | 5 +- src/internet/test/tcp-general-test.cc | 34 ++ src/internet/test/tcp-general-test.h | 16 + src/internet/test/tcp-pacing-test.cc | 413 +++++++++++++++++++++++++ src/internet/wscript | 1 + 12 files changed, 976 insertions(+), 89 deletions(-) create mode 100644 src/internet/test/tcp-pacing-test.cc diff --git a/CHANGES.html b/CHANGES.html index bf927dc3a..09646ab32 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -57,6 +57,7 @@ us a note on ns-developers mailing list.

  • A new TCP congestion control, TcpLinuxReno, has been added.
  • Added, to PIE queue disc, queue delay calculation using timestamp feature (Linux default behavior), cap drop adjustment feature (Section 5.5 of RFC 8033), ECN (Section 5.1 of RFC 8033) and derandomization feature (Section 5.4 of RFC 8033).
  • Added L4S Mode to FqCoDel and CoDel queue discs
  • +
  • A model for dynamic pacing has been added to TCP.
  • Changes to existing API: