Commit Graph

11700 Commits

Author SHA1 Message Date
Natale Patriciello
70803e884d Merged Fast Recovery and Fast Retransmit in TcpSocketBase
Since RFC 5681 defines Fast Recovery and Fast Retransmit, it has no sense to
replicate these algorithms over all TCP variants.
The only thing that a variant is allowed to do is using a different slow start
threshold: for example, TcpWestwood uses an estimate of the bandwidth to
calculate it.
So, its calculus has been delegated to a virtual function GetSsThresh which
replaces the old DupAck().

Fixed a bug in Tcp Tahoe implementation (slow start threshold
diminuished only from an RTO).

Fixed a bug on the inflation of the cWnd; it should be inflated of
m_dupAckCount segments (and not only 3, which is OK for the default
value of m_reTxThresh, but not for the others).
2015-10-16 10:38:51 -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
Natale Patriciello
c86045ee2d Management of ignored ACK moved away from ReceivedAck
The function ReceivedAck contained some if/else switches to manage ACK
which, by definition, should have been ignored, like old ACKs
(SEG.ACK < SND.UNA). The code still misses the management of the
mitigation of Blind Data Injection Attack.

This patch moves these switches inside ProcessEstablished, to simplify
the ReceivedAck function, which now manages only valid ACKS.

To complete the overview, one more condition has been added, which is
the case of an out-of-order ACK (SEG.ACK > SND.NXT).
2015-10-16 10:38:35 -07:00
Natale Patriciello
3fd6f45051 Introduction of the ACK state machine
This commits contains only the definition (in other words, the interface)
of the ACK state machine, where the design is taken from Linux v4.0.
The state machine allows to define congestion situations avoiding the
use of boolean state variables.
2015-10-16 10:38:30 -07:00
Natale Patriciello
fbbd607e3c Added queue support in tcp-variants-comparison 2015-10-16 10:38:24 -07:00
Tommaso Pecorella
b46c6eef97 Bug 2195 - Udp[*]Client can't send packets to broadcast address 2015-10-19 22:04:11 +02:00
Tom Henderson
9c5e9b5cf5 rescan bindings 2015-10-11 11:15:57 -07:00
Sébastien Deronne
2cdeb033c1 small typos 2015-10-11 16:00:39 +02:00
Sébastien Deronne
8f29278f46 RELEASE_NOTES 2015-10-11 08:38:04 +02:00
Sébastien Deronne
d1a8ff9505 fix issues with Block Ack Requests in A-MPDUs 2015-10-11 08:30:07 +02:00
Sébastien Deronne
8f1bc1b48a style 2015-10-10 17:04:27 +02:00
Sébastien Deronne
3842513b39 Refactor previous commit 2015-10-10 16:49:26 +02:00
Sébastien Deronne
3527b5e411 Bug 1954 [wifi] - Serialized size of wifi-net-device differ for TX and RX trace 2015-10-10 11:43:00 +02:00
Sébastien Deronne
7ca24da09b rescan bindings 2015-10-10 11:05:11 +02:00
Sébastien Deronne
46a217a308 Move uint8_t packetType to enum mpduType 2015-10-10 11:01:47 +02:00
Sébastien Deronne
bf3ee0bdbf Bug 2184 [wifi] - integer overflow in MacLow; remove dependcy between tx and rx reference number field in MPDU status 2015-10-10 11:01:44 +02:00
Tom Henderson
1611d6c483 bug 2181: Xcode 7.0 (clang-602.0.53) errors 2015-09-28 20:23:11 -07:00
Tom Henderson
395432f376 add release 3.24.1 to RELEASE_NOTES 2015-10-06 22:06:28 -07:00
miilic
79106b45f2 Bug 2170 - AnimationInterface outputs improperly formed XML 2015-10-01 07:59:09 -07:00
Sébastien Deronne
5aa0f567df Bug 2003 [wifi] - Missing DSSS short PLCP preamble 2015-09-30 22:24:08 +02:00
Tom Henderson
cfccf23b06 fix sphinx warnings 2015-09-27 12:49:29 -07:00
Tommaso Pecorella
0f7f58c31e [doxygen] Small fix in WifiRadioEnergyModel docs 2015-09-27 10:49:52 +02:00
Tom Henderson
8aa4c425e1 pybindgen required version is now a string literal, not a tuple 2015-09-21 10:21:07 -07:00
Matthieu Coudron
8171d94e7c Add Node::GetLocalTime() placeholder, alias to Simulator::Now() 2015-09-22 23:52:56 +02:00
Tommaso Pecorella
88f7a8df92 Bug 2183 - [energy] LiIonEnergySourceHelper is not in the wscript 2015-09-21 23:12:24 +02:00
Tommaso Pecorella
7870451290 Bug 2177 - Ipv6ExtensionHeader length - code cleanup and remove hardcoded values 2015-09-19 16:14:49 +02:00
Sébastien Deronne
928d66f741 Update RELEASE_NOTES 2015-09-18 11:18:45 +02:00
Mirko Banchi
03bf49fe74 Bug 1132 - Avoid misleading for loops with no body. 2015-09-16 23:34:51 +02:00
Tom Henderson
10fa6f4e2e update RELEASE_NOTES and CHANGES.html for next release cycle 2015-09-15 16:13:22 -07:00
Tom Henderson
6bcce32d02 update version numbers in tutorial 2015-09-15 12:13:38 -07:00
Tom Henderson
02994154bf Added tag ns-3.24 for changeset e8634b0101f7 2015-09-15 10:24:40 -07:00
Vedran Miletić
397d34fb58 Update Waf to 1.8.13 2015-09-15 13:07:31 +02:00
Tommaso Pecorella
e17ad5fbd0 Missing SetGroupName in two classes 2015-09-11 10:52:44 +02:00
Tom Henderson
bad3a40712 clarify Wi-Fi short slot time implementation status 2015-09-14 13:34:07 -07:00
Sébastien Deronne
2776512a2c Clean wifi wscript 2015-09-14 19:07:56 +02:00
Sébastien Deronne
0c915b3b38 Avoid unexpected requests to DCF when packets get queued during EdcaTxopN::MissedAck or during EdcaTxopN::MissedCts 2015-09-14 19:07:10 +02:00
Sébastien Deronne
7bfa2bb5eb Update RELEASE_NOTES 2015-09-11 21:50:40 +02:00
Tom Henderson
2d4a9c278b additional Python 2/3 compatibility 2015-09-09 15:14:27 -07:00
Tom Henderson
d495e87798 ensure consistent digests for checking the build cache 2015-09-09 09:47:36 -07:00
Sébastien Deronne
cd648bf280 small typo 2015-09-09 20:27:32 +02:00
Tom Henderson
e02f7ad599 temporarily rollback a Python 3 related change 2015-09-07 22:52:47 -07:00
Tom Henderson
68ed392c07 update AUTHORS 2015-09-07 12:11:08 -07:00
Tom Henderson
71a19583aa update CHANGES.html 2015-09-07 12:07:08 -07:00
Tom Henderson
7ccd46bcfb update RELEASE_NOTES 2015-09-07 11:21:25 -07:00
Tom Henderson
55b0e0147e rescan bindings 2015-09-07 11:04:33 -07:00
Tommaso Pecorella
e9ff3c1695 Bug 2177 - Ipv6ExtensionHeader::Setlength - stricter checks. 2015-09-07 17:10:02 +02:00
Saswat Mishra
b1d413cb3a Update AODV and DSR for static ARP support 2015-09-06 22:58:26 -07:00
Saswat Mishra
081b99da00 Add support for removing entries and marking permanent (static) entries in ArpCache 2015-09-06 22:57:37 -07:00
Tom Henderson
607486bea3 populate EXAMPLE_DIRECTORIES variable in the configuration cache for use by test.py 2015-09-06 22:19:22 -07:00