Commit Graph

115 Commits

Author SHA1 Message Date
Gabriel Ferreira
4e642e5d60 internet: Fix tcp flags check to determine packet type
(TcpHeader::ACK | TcpHeader::ECE) was not correctly tested, resulting in an uninitialized packetType value
2024-10-06 03:23:07 +02:00
Tom Henderson
38055f5e6d tcp: Prevent DupAck classification on segments with data
Credits to Neal Cardwell for finding the issue.
2024-09-29 23:45:12 +05:30
Andreas Boltres
f70eabb0f9 tcp: Add TCP retransmission trace source 2024-09-27 09:25:08 -07:00
Aniket Singh
3ac4ea7ce3 tcp: (fixes #1011) Forbid ECN-marking of retransmissions, window probes and pure ACKs 2024-09-18 15:32:07 +00:00
André Apitzsch
8bc94a1cc3 Use SPDX license identifiers 2024-09-06 19:32:31 +00:00
Eduardo Almeida
e8ed6a539c Fix Doxygen formatting 2024-08-29 01:03:20 +00:00
Aniket Singh
3be702f769 tcp (fixes #1043): Fix BBR incorrect minRtt updates 2024-07-03 17:35:06 +00:00
Eduardo Almeida
aedd34ca8f Fix local #include headers by removing the "ns3/" prefix 2023-09-17 17:19:59 +01:00
Eduardo Almeida
c5371d938c Fix clang-tidy readability-make-member-function-const warnings 2023-02-21 16:09:35 +00:00
Eduardo Almeida
4930479af4 Remove enum / struct specifiers when declaring the variable's type 2022-12-05 19:05:45 +00:00
Eduardo Almeida
dfc6fb9d2d Remove emacs comment from C++ files 2022-10-14 14:13:12 +00:00
Eduardo Almeida
e25ff966fe Apply clang-format to codebase 2022-10-07 20:08:35 +00:00
Eduardo Almeida
be07b6487a Fix clang-tidy modernize-use-override warnings 2022-10-07 11:48:10 +00:00
Eduardo Almeida
6bb6383562 Fix clang-tidy modernize-redundant-void-arg warnings 2022-10-07 11:48:10 +00:00
Gabriel Ferreira
60e1e4032c fixing dead links 2022-06-18 17:57:05 -03:00
Tommaso Pecorella
21fb224e8a internet: fix doxygen warnings 2021-05-01 04:14:27 +02:00
Tom Henderson
993226f55b tcp: Add CWR state for the recovery phase after ECN-Echo (ECE) 2020-12-22 08:23:30 -08:00
Deepak Kumaraswamy
3552db04ce tcp: Add dynamic pacing implementation based on Linux internal pacing
Includes contributions from Tom Henderson, Vivek Jain, and Viyom Mittal
2020-08-31 08:54:32 -07:00
Tom Henderson
c9b96134b1 tcp: (fixes !157) Prevent sending outside receiver window
According to RFC 6675, the NextSeg() method should return the range of
sequence space to transmit, not just the starting sequence number.  The
method should also check the available receiver window.  This changeset
extends NextSeg() to return the valid range of sequence numbers to send,
and makes the receiver window value available to the TcpTxBuffer object.
2020-06-14 11:47:08 -07:00
Xiuchao Wu
c86c855923 tcp: (fixes !156) enter CA_RECOVERY despite large sequence number increase
When the sequence number is advanced significantly between two
packet loss events, the TCP sender will fail to enter into CA_RECOVERY state
if the sequence number gap between loss events is large enough.  This change
adds an additional state variable to track whether fast recovery is active.
2020-06-13 15:48:03 -07:00
Tom Henderson
b9da6d6484 internet: (fixes #222) Fix ECN check functions (and Doxygen) 2020-06-08 17:21:15 -07:00
hax0kartik (GCI 2019)
1f3735f6f0 Replace calls to Scheduler::Remove(EventId) with EventId::Cancel 2020-05-13 00:08:08 +00:00
Vivek Jain
12d9d5b324 tcp: add attribute UseEcn for enabling and disabling ECN functionality
* add new attribute in TcpDctcp to enable the option for choosing
  ECT codepoint
* add TcpDctcp in TcpVariantsComparison example
2020-02-09 17:33:30 -08:00
Vivek Jain
43516a0ec4 tcp: Auto Enable DctcpEcn for Dctcp 2020-02-09 17:33:30 -08:00
Vivek Jain
c3265b7d44 tcp: Move m_rxBuffer in TcpSocketState and add SendEmptyPacket callback 2020-02-09 17:12:57 -08:00
Vivek Jain
3024805d16 tcp: Feed RateOps from TcpSocketBase
(incorporating comments from Natale P.)
2019-09-30 06:51:09 -07:00
Natale Patriciello
e5ebdb3b11 tcp: Get the number of bytes SACKed out of the option processing 2019-09-30 06:50:19 -07:00
Natale Patriciello
813ec47cd1 tcp: Add published citations to documentation 2018-08-26 06:33:14 -07:00
Alexander Krotov
8d1b7b1391 Spellcheck the rest of ns-3 2018-06-28 12:51:39 +03:00
Shravya Ks
084ffd070b tcp: Add ECN support (with contributions from Vivek Jain) 2018-06-09 12:00:54 -07:00
Natale Patriciello
be1056f204 tcp: TcpSocketState split from TcpSocketBase to help forward declaring 2018-05-15 22:19:16 +02:00
Natale Patriciello
d2298f36df tcp: Forward declare as much as possible 2018-05-15 22:18:27 +02:00
Viyom
aeb3d27b4d tcp: Modularization of Fast Recovery - I 2018-05-11 19:30:43 +02:00
Vivek Jain
b84b30547d tcp: moved RTT and BytesInFlight in TcpSocketState 2018-05-11 19:23:31 +02:00
Natale Patriciello
b93c00f8b8 tcp: (fixes #1783 #2832 #2859) Unify code path for SACK and non-SACK connections. Thanks to Tom H., Menglei Zhang, Viyom Mittal 2018-03-03 12:00:13 +01:00
Natale Patriciello
abd5f6464d tcp: Simplified BytesInFlight and IsLost for SACK connections 2018-03-03 11:53:32 +01:00
Natale Patriciello
085eeca653 tcp: Removed duplicated code for assigning socket tag 2018-02-25 11:36:23 +01:00
Natale Patriciello
7552517ba1 tcp: DeHeaderize TcpSocketBase, c++11 initializers 2018-02-25 11:32:43 +01:00
Vivek Jain
f1da2c177e tcp: Save minRtt in TcpSocketState 2018-01-19 16:49:41 +01:00
Ankit Deepak
d742ba2155 tcp: (feature #2677) Added cwnd events to cong control 2017-12-13 19:04:27 +01:00
Vivek Jain
c1122f9a87 tcp: (feature 2823) Implemented TCP Pacing 2017-12-13 19:00:07 +01:00
Peter D. Barnes, Jr.
dfe5fb5ca9 tcp: doxy: correct formal args in callback typedef 2017-05-12 10:29:43 -07:00
Christoph Döpmann
fbd0cfb1fb tcp: Advertised Window was still incorrect 2017-02-06 13:56:19 +01:00
Ankit Deepak
7aa7e4dc35 tcp: Added TCP Ledbat 2017-02-06 13:17:50 +01:00
Tommaso Pecorella
7ce60ab528 internet: Doxygen fixes 2017-02-04 01:52:02 +01:00
Natale Patriciello
3edf5deef6 tcp: Documentation corrected 2017-02-03 19:52:14 +01:00
Natale Patriciello
db82b92b54 tcp: TCP SACK documentation 2017-02-03 14:03:01 +01:00
Natale Patriciello
7f593ecde6 tcp: generate SACK options with out-of-order segments 2017-02-03 14:02:36 +01:00
Natale Patriciello
0de265445c tcp: RFC 6675-compliant Retransmission Timeout 2017-02-03 14:02:24 +01:00
Natale Patriciello
efc5f3c53b tcp: RFC 6675-compliant Fast Retransmit/Recovery 2017-02-03 14:02:21 +01:00