OLD | NEW |
(Empty) | |
| 1 .. include:: replace.txt |
| 2 .. highlight:: cpp |
| 3 |
| 4 pfifo_fast queue disc |
| 5 --------------------- |
| 6 |
| 7 Model Description |
| 8 ***************** |
| 9 |
| 10 Linux pfifo_fast is the default priority queue enabled on Linux |
| 11 systems. Packets are enqueued in three FIFO droptail queues according |
| 12 to three priority bands based on the classification returned by |
| 13 the configured packet filters. |
| 14 |
| 15 The system behaves similar to three ns3::DropTail queues operating |
| 16 together, in which packets from higher priority bands are always |
| 17 dequeued before a packet from a lower priority band is dequeued. |
| 18 |
| 19 The queue disc capacity, i.e., the maximum number of packets that can |
| 20 be enqueued in the queue disc, is set through the limit attribute, which |
| 21 plays the same role as txqueuelen in Linux. If no internal queue is |
| 22 provided, three DropTail queues having each a capacity equal to limit are |
| 23 created by default. User is allowed to provide queues, but they must be |
| 24 three, operate in packet mode and each have a capacity not less |
| 25 than limit. |
| 26 |
| 27 It is necessary to provide at least one packet filter. To simulate the |
| 28 Linux behavior, the PfifoFastIpv4PacketFilter and/or the PfifoFastIpv6PacketFilt
er |
| 29 shall be provided. These filters classify packets based on their Type of |
| 30 Service bits or DSCP bits. If the filters are unable to classify a packet, |
| 31 i.e., they return -1 (PF_NO_MATCH), that packet is enqueued into band 1 |
| 32 (normal service). |
| 33 |
| 34 |
| 35 |
| 36 Attributes |
| 37 ========== |
| 38 |
| 39 The PfifoFastQueueDisc class holds a single attribute: |
| 40 |
| 41 * ``Limit:`` The maximum number of packets accepted by the queue disc. The defau
lt value is 1000. |
| 42 |
| 43 Examples |
| 44 ======== |
| 45 |
| 46 The traffic-control example located in ``examples/traffic-control`` shows how to
configure |
| 47 and install a pfifo_fast queue on Ipv4 nodes. |
| 48 |
| 49 Validation |
| 50 ********** |
| 51 |
| 52 The pfifo_fast model is tested using :cpp:class:`PfifoFastQueueDiscTestSuite` cl
ass defined |
| 53 in ``src/traffic-control/test/pfifo-fast-queue-disc-test-suite.cc``. The suite i
ncludes 4 test cases: |
| 54 |
| 55 * Test 1: The first test checks whether IPv4 packets are enqueued in the correct
band based on the TOS byte |
| 56 * Test 2: The second test checks whether IPv4 packets are enqueued in the correc
t band based on the TOS byte |
| 57 * Test 3: The third test checks that the queue disc cannot enqueue more packets
than its limit |
| 58 * Test 4: The fourth test checks that packets that the filters have not been abl
e to classify are enqueued into the default band of 1 |
OLD | NEW |