Commit Graph

87 Commits

Author SHA1 Message Date
Natale Patriciello
8b798303c6 tcp: Added TcpRxBufferTest 2017-02-03 14:02:34 +01:00
Natale Patriciello
033ad8f0a1 tcp: manage Sack-permitted option in TcpSocketBase 2017-02-03 14:02:04 +01:00
Natale Patriciello
b2bd923d9f tcp: Added definitions of Sack options 2017-02-03 14:01:42 +01:00
Natale Patriciello
555f5654d1 tcp: Added TcpTxBuffer test 2017-02-03 14:01:39 +01:00
Natale Patriciello
a97a735523 tcp: option headers are now public 2017-02-03 14:01:02 +01:00
Tommaso Pecorella
4e9537008a Tests: reorganize ErrorChannel and ErrorBinaryModel 2017-01-29 03:15:41 +01:00
Francisco Javier Sanchez Roselly
6f5252e537 internet: (fixes #2521) include ipv6-option.h in wscript 2016-10-14 17:56:46 +02:00
Amir Modarresi
531955a8fe tcp: Add H-TCP model 2016-08-18 16:22:57 -07:00
Stefano Avallone
7fa7bc978f test: Move pfifo-fast and adaptive-red tests to ns3tc 2016-08-01 10:34:34 +02:00
Anh Nguyen
609f07f047 tcp: added TCP Illinois 2016-06-09 12:31:28 +02:00
Anh Nguyen
5a63ddb268 tcp: added TCP YeAH 2016-06-09 12:18:15 +02:00
Anh Nguyen
e32a77a5e9 internet: added test for TCP Bic 2016-04-18 17:22:51 +02:00
Natale Patriciello
5aaeb0103c internet: Added TCP Bic 2016-04-18 17:21:45 +02:00
Anh Nguyen
e1d2bd27e1 internet: added TCP Veno 2016-04-18 17:20:17 +02:00
Anh Nguyen
58413eb0d3 internet: added TCP Scalable 2016-04-18 17:18:37 +02:00
Anh Nguyen
8bb8fe1904 internet: added TCP Vegas 2016-04-18 17:17:09 +02:00
Tom Henderson
1261e63e88 traffic-control: Relocate PfifoFast test suite due to dependency 2016-03-08 22:34:05 -08:00
Stefano Avallone
92f923701b traffic-control: Add the pfifo_fast queue disc
Linux pfifo_fast is the default priority queue enabled on Linux
systems.  Packets are enqueued in three FIFO droptail queues according
to three priority bands based on their Type of Service bits or DSCP bits.
2016-03-08 10:45:41 -08:00
Pasquale Imputato
2e7c7dbb00 internet: Move CoDel model, test and examples to the traffic-control module
This move prepares CoDel to become a queue disc. Building of CoDel
model, tests and examples is disabled until the conversion is done.
2016-03-08 10:45:32 -08:00
Stefano Avallone
69e882e74b internet: Defer the addition of the IP header until the packet is extracted from the queue disc
When a packet is passed to the Traffic Control layer, the IPv{4,6} header has not
been added yet. It will be added when the packet is dequeued from the queue disc.
2016-03-08 10:45:02 -08:00
Natale Patriciello
9365cf70f6 internet: add a dependency on traffic-control 2016-03-08 10:43:33 -08:00
Tommaso Pecorella
dd90b30eaa internet: RIPv2 implementation 2016-02-25 16:30:34 -08:00
Natale Patriciello
8f68ea76f4 internet: added tcp-bytes-in-flight test 2016-02-23 09:57:38 +01:00
Natale Patriciello
932033c7a3 internet: added tcp-rtt-estimation test 2016-02-22 10:07:19 +01:00
Natale Patriciello
babde48a82 internet: (fixes #2298) PktsAcked invoked in CA_OPEN state 2016-02-17 11:22:02 +01:00
Natale Patriciello
e05449b06a [BUG 2141] Call DataSent callback for all transmitted data
Thanks to Mark Keaton for discovering and analysing the bug; he provides
an initial version of the patch, which is semantically equivalent to
the one provided in this commit.
2015-12-17 12:38:13 +01:00
Alexander Krotov
564ea8dbf8 Bug 2211 - Ipv{4,6}EndPoint can cause memory corruption 2015-11-15 19:11:04 +01:00
Natale Patriciello
b64d02bbe2 Added test-case for TCP zero window situations 2015-10-28 11:28:30 +01:00
Natale Patriciello
266ca73a62 Added TCP Hybla test 2015-10-28 11:28:28 +01:00
Natale Patriciello
2def27ae86 Added HighSpeed test 2015-10-28 11:28:25 +01:00
Natale Patriciello
653e2f9b05 Added TCP Hybla 2015-10-28 11:21:41 +01:00
Natale Patriciello
2903ebda5c Added TCP HighSpeed 2015-10-28 11:21:29 +01:00
Natale Patriciello
d87182055c Basic RTO test 2015-10-16 10:44:15 -07:00
Natale Patriciello
8a3ce829f6 Added test suite for Fast Retransmit 2015-10-16 10:43:58 -07:00
Natale Patriciello
cb30195586 Added test on congestion avoidance 2015-10-16 10:43:52 -07:00
Natale Patriciello
1bc7bed8b3 Added slow start test
Two test added: one for the normal slow start behavior in presence of a
normal socket (receive a packet, and ACKs the sequence number
according to the RFC) and the other with a malicious socket which sends
many small ACKs (on bad implementation this should artificially inflate
the window).
2015-10-16 10:43:48 -07:00
Natale Patriciello
74beb15f40 Added an ErrorChannel aware of TCP
The class is responsible to take away the IP and TCP header from the packet,
and then to interrogate the pure virtual method ShouldDrop, dropping the packet
accordingly to the returned value. An implementation is a channel which
drops packet with specified flags.
2015-10-16 10:43:44 -07:00
Natale Patriciello
157fec86d9 Added a GeneralTest class for TCP
The class provides a general infrastructure for a TCP-related test,
setting up the environment (two sockets connected through
SimpleNetDevice over SimpleChannel) and provides the basic management of
parameters (like segment size).
2015-10-16 10:43:36 -07:00
Natale Patriciello
b87e04a77a Splitted congestion control from TcpSocketBase
Added TcpCongestionOps class, in where the congestion control is
managed. It is created/added to a socket through TcpL4Protocol.

TcpSocketBase and the congestion algorithm classes reworked to be
compatible with the new TcpCongestionOps class.
2015-10-16 10:42:30 -07:00
Natale Patriciello
2c0cfe1201 Removed Tahoe. 2015-10-16 10:38:57 -07:00
Natale Patriciello
194cca3ad9 Removed RFC 793 TCP, without congestion control
Using the TCP without congestion control is not recommented anymore by
IETF. This patch removes the class derived from RFC793. Its behavior
could be reintroduced later with using some conditional Attributes
inside TcpSocketBase.
2015-10-16 10:38:44 -07:00
Natale Patriciello
51e94e52f0 Removed TcpReno from ns-3 mainline
TcpNewReno is introduced in RFC 2582. The most recent RFC on this is
the RFC 6582. Since its introduction, Tcp NewReno is the RECOMMENDED
algorithm by the Internet Engineering Task Force. The main difference
between Reno and New Reno is in the Fast retransmit algorithm, in order
to recover more quickly when multiple packet losses occur in a single
window. NewReno introduces the concept of Partial acknowledgments. Since
the intention is to merge fast retransmit and fast recovery into
TcpSocketBase, there isn't the possibility to maintain TcpReno as
separate class. However, its behavior could be introduced again with one
conditional attribute in TcpSocketBase itself.
2015-10-16 10:38:39 -07:00
Siddharth Santurkar
b5fde4107c port wscripts, test.py, and waf-tools to Python3 2015-09-03 21:14:55 -07:00
Tommaso Pecorella
d8c14885b2 Bug 2124 - UdpSocketImpl::ShutdownRecv doesn't stop the Ipv[4,6]EndPointDemux 2015-07-02 18:21:44 +02:00
Peter D. Barnes, Jr.
60e7012077 bug 2002: Hardcoded include paths cause breakage 2015-01-29 19:00:01 -08:00
Tommaso Pecorella
287bda5b7e Move some tests from src/test to appropriate places 2014-09-06 07:09:08 +02:00
Anh Nguyen
4c20e1b099 test suite for CoDel queue 2014-09-04 12:27:00 -07:00
Tom Henderson
16e4f9b004 move CoDel queue model to internet module 2014-09-04 12:18:19 -07:00
Natale Patriciello
07364f0e31 Support for basic TCP options, window scale, and timestamps, based on original code proposal by Adrian S.-W. Tam 2014-09-05 16:57:11 -07:00
Tom Henderson
47d531fb41 support disabling of NSC by command-line argument 2014-09-05 15:25:10 -07:00