Left: | ||
Right: |
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 their Type of Service bits or DSCP bits. | |
13 | |
14 The system behaves similar to three ns3::DropTail queues operating | |
15 together, in which packets from higher priority bands are always | |
16 dequeued before a packet from a lower priority band is dequeued. | |
17 | |
18 The queue disc capacity, i.e., the maximum number of packets that can | |
19 be enqueued in the queue disc, is set through the limit attribute, which | |
20 plays the same role as txqueuelen in Linux. If no internal queue is | |
21 provided, three DropTail queues having each a capacity equal to limit are | |
Tommaso Pecorella
2016/02/18 00:01:18
Why 3 ?
And why they MUST be 3 ?
Stefano Avallone
2016/02/18 16:44:27
pfifo_fast in Linux has 3 queues and the number of
| |
22 created by default. User is allowed to provide queues, but they must be | |
23 three, operate in packet mode and altogether have a capacity not less | |
24 than limit. | |
25 | |
26 It is necessary to provide at least one packet filter. To simulate the | |
27 Linux behavior, the PfifoFastIpv4PacketFilter and/or the PfifoFastIpv6PacketFilt er | |
28 shall be provided. If the filters are unable to classify a packet, i.e., | |
29 they return -1 (PF_NO_MATCH), that packet is enqueued into band 1 (normal | |
30 service). | |
31 | |
32 | |
33 | |
34 References | |
Tommaso Pecorella
2016/02/18 00:01:18
Avoid empty sections
Stefano Avallone
2016/02/18 16:44:27
Done.
| |
35 ========== | |
36 | |
37 | |
38 Attributes | |
39 ========== | |
40 | |
41 The PfifoFastQueueDisc class holds a single attribute: | |
42 | |
43 * ``Limit:`` The maximum number of packets accepted by the queue disc. The defau lt value is 1000. | |
44 | |
45 Examples | |
46 ======== | |
47 | |
48 The traffic-control example located in ``examples/traffic-control`` shows how to configure | |
49 and install a pfifo_fast queue on Ipv4 nodes. | |
50 | |
51 Validation | |
52 ********** | |
53 | |
54 The pfifo_fast model is tested using :cpp:class:`PfifoFastQueueDiscTestSuite` cl ass defined | |
55 in ``src/traffic-control/test/pfifo-fast-queue-disc-test-suite.cc``. The suite i ncludes 4 test cases: | |
56 | |
57 * Test 1: The first test checks whether IPv4 packets are enqueued in the correct band based on the TOS byte | |
58 * Test 2: The second test checks whether IPv4 packets are enqueued in the correc t band based on the TOS byte | |
59 * Test 3: The third test checks that the queue disc cannot enqueue more packets than its limit | |
60 * 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 |