Commit Graph

11984 Commits

Author SHA1 Message Date
Tom Henderson
08cd446ca8 bindings: remove problematic forward declarations 2016-03-08 22:00:35 -08:00
Tom Henderson
04822ef884 traffic-control: add network module dependency 2016-03-08 21:59:03 -08:00
Tom Henderson
8d64ccb91b traffic-control: fix invalid use of incomplete type 2016-03-08 21:38:59 -08:00
Tom Henderson
4bfd4c7a9d traffic-control: break reference cycle 2016-03-08 11:48:16 -08:00
M P Tahiliani
b0b03f081c traffic-control: Add ARED test and examples 2016-03-08 10:48:41 -08:00
M P Tahiliani
9e11878f7d traffic-control: Add the ARED implementation 2016-03-08 10:48:36 -08:00
Stefano Avallone
1f3c090e56 test: Regenerate reference data files for the ns3-tcp-state test 2016-03-08 10:48:31 -08:00
Pasquale Imputato
003a65526d traffic-control: Fix the CoDel examples 2016-03-08 10:48:27 -08:00
Pasquale Imputato
e12f8db264 traffic-control: Fix the CoDel test suite after the move to the traffic-control module 2016-03-08 10:48:22 -08:00
Pasquale Imputato
f2ddfb2948 traffic-control: CoDel is a queue disc now 2016-03-08 10:48:18 -08:00
Pasquale Imputato
586d3d9e37 traffic-control: fix the RED examples 2016-03-08 10:48:13 -08:00
Pasquale Imputato
24881696d2 traffic-control: Fix the RED test suite after the move to the traffic-control module 2016-03-08 10:48:09 -08:00
Pasquale Imputato
58756a8efd traffic-control: RED is a queue disc now 2016-03-08 10:48:05 -08:00
Stefano Avallone
3a928d5b34 point-to-point: DoDispose must reset m_queue, too 2016-03-08 10:46:13 -08:00
Pasquale Imputato
c0773c1a46 traffic-control: Add a pfifo_fast test suite 2016-03-08 10:46:09 -08:00
Pasquale Imputato
ea75b70eb1 examples: Add a traffic control example
Signed-off-by: Stefano Avallone <stavallo@unina.it>
2016-03-08 10:46:01 -08:00
Stefano Avallone
c1724a275d mesh: Regenerate reference data files for the devices-mesh-flame-regression test suite 2016-03-08 10:45:53 -08:00
Stefano Avallone
a826db4fbb internet: install the default TC configuration (pfifo_fast) on every device by default 2016-03-08 10:45:49 -08:00
Stefano Avallone
7e4d58c204 traffic-control: Add a traffic control helper to ease the installation of queue discs 2016-03-08 10:45:44 -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
c6e5ecc191 network: The Queue base class holds mode, maxPackets and maxBytes
...so that all the subclasses have such attributes. This
allows queue discs to have attributes specifying the mode and
size of their queue(s) and to create queues using their
own attributes.

This commit is heavily inspired by Natale's queue rework patch:
https://codereview.appspot.com/270540044/
2016-03-08 10:45:36 -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
Pasquale Imputato
e02e86faa7 network: Move RED model, test and examples to the traffic-control module
This move prepares RED to become a queue disc. Building of RED
model, tests and examples is disabled until the conversion is done.
2016-03-08 10:45:27 -08:00
Stefano Avallone
9e79ad7d45 point-to-point: Add preliminary support for flow control
The (unique) transmission queue is stopped when enqueuing a packet fails, so
that upper layers do not send other packets down. When a packet transmission
is completed, if the queue is empty then wake the upper layers. If the queue
was stopped, there is now room for another packet and hence wake the upper
layers as well.
2016-03-08 10:45:07 -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
Stefano Avallone
374639c6fe traffic-control: The traffic control layer enqueues packets in the queue disc
...aggregated to the outgoing network device, if any. Otherwise,
packets are sent directly to the device.
2016-03-08 10:44:19 -08:00
Stefano Avallone
bedc89eea9 traffic-control: Add the QueueDisc base class
QueueDisc is a base class providing the interface and implementing
the operations common to all the queueing disciplines. Child classes
need to implement the methods used to enqueue a packet (DoEnqueue),
dequeue a single packet (DoDequeue), get a copy of the next packet
to extract (DoPeek), plus methods to classify enqueued packets in
case they manage multiple queues internally.
2016-03-08 10:44:13 -08:00
Stefano Avallone
defeaea224 network: Add the NetDeviceQueue and NetDeviceQueueInterface classes
This patch adds a NetDeviceQueue class to store information about a single
transmission queue of a network device. This class is meant to store the
state of a transmission queue (i.e., whether the queue is stopped or not)
and some data used by techniques such as Byte Queue Limits. Also, multi-queue
aware queue discs can aggregate a child queue disc to an object of this class.
These features (excluding BQL) are added in subsequent commits.
The NetDevice class maintains a vector of NetDeviceQueue pointers, one for
each transmission queue. A NetDevice constructor is added which creates a
single transmission queue by default for every device. The number of transmission
queues can be modified (by child classes) by calling NetDevice::SetTxQueuesN.
Two public methods, GetTxQueue and GetTxQueuesN, are also added to the NetDevice class
to return the i-th NetDeviceQueue and the number of transmission queues, respectively.
2016-03-08 10:44:08 -08:00
Stefano Avallone
df2fa95970 network: Make Queue store QueueItem objects
A QueueItem base class is introduced to represent the items stored
in a Queue. The base class only contains a Ptr<Packet>. Derived classes
can store additional information. DropTailQueue, RedQueue and CodelQueue,
along with their examples and testsuits, have been adapted. Objects using
such queues have been adapted too.
2016-03-08 10:44:03 -08:00
Natale Patriciello
5e677fd152 internet: use traffic-control to send packets 2016-03-08 10:43:58 -08:00
Natale Patriciello
4f01bea25b internet: Register callbacks on TCLayer and NetDevices, RX side 2016-03-08 10:43:54 -08:00
Natale Patriciello
be96e8a5ca internet: Aggregate TrafficControlLayer by default in the tests 2016-03-08 10:43:49 -08:00
Natale Patriciello
cfacfc0e53 internet: Aggregate TrafficControlLayer to every Internet-enabled node 2016-03-08 10:43:42 -08:00
Natale Patriciello
9365cf70f6 internet: add a dependency on traffic-control 2016-03-08 10:43:33 -08:00
Natale Patriciello
37af8b51de traffic-control: Add the traffic control layer 2016-03-08 10:43:16 -08:00
Sébastien Deronne
5ef77015d8 wifi: rescan bindings 2016-03-01 20:49:37 +01:00
Sébastien Deronne
a16565b345 wifi: clean unused size parameter in rate managers 2016-03-01 20:12:29 +01:00
Sébastien Deronne
c90edb7c06 Update RELEASE_NOTES 2016-03-01 20:10:20 +01:00
Sébastien Deronne
210ae29049 wifi: (fixes #2313) remove A-MPDU subframe header before peeking WifiMacHeader in MacLow::ReceiveError 2016-03-01 20:06:44 +01:00
Sébastien Deronne
44355247f4 wifi: (fixes #2315) take Block ACK Request into account in A-MPDU size 2016-03-01 20:04:28 +01:00
Tom Henderson
681872e15d wifi: (fixes #2275) AdhocWifiMac compatible with 802.11n/ac 2016-03-01 19:56:51 +01:00
Matías Richart
8571ceea0e wifi: (fixes #2311) store state received about the remote station being HT or VHT capable 2016-03-01 19:53:17 +01:00
Vedran Miletić
c5cb7eb896 spectrum: actually remove the define 2016-02-28 22:50:25 +01:00
Vedran Miletić
26ed7563e1 spectrum: replace #define private public with friend class
ns-3 declares test classes as friend classes elsewhere, and this is the
only use of #define private public. Removing this #define also fixes
building with GCC 6.
2016-02-28 22:47:50 +01:00
Vedran Miletić
62aa377d4f Upgrade Waf to 1.8.19 2016-02-28 22:09:20 +01:00
Vedran Miletić
038fdd2c83 Replace comparison of this to null with NS_LOG macro 2016-02-28 22:04:00 +01:00
Tommaso Pecorella
e2c1cff8d3 Update CHANGES and RELEASE_NOTES 2016-02-27 17:57:24 +01:00
Tom Henderson
26fb8c2b5d internet-apps: avoid 2-parts packets in Ping6 application. 2016-02-27 17:35:15 +01:00
Tom Henderson
e7e64c971e rescan bindings 2016-02-26 08:20:55 -08:00
Gustavo Carneiro
91ae3bb10b bindings: Improve custom support for callback forward declarations 2016-02-26 06:55:11 -08:00