Bug 920 - [PATCH] Priority queuing for Point-to-point netdevice
[PATCH] Priority queuing for Point-to-point netdevice
Status: RESOLVED INVALID
Product: ns-3
Classification: Unclassified
Component: traffic-control
pre-release
All All
: P5 normal
Assigned To: Stefano Avallone
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-25 08:49 UTC by Antti Mäkelä
Modified: 2016-03-31 07:09 UTC (History)
3 users (show)

See Also:


Attachments
Patch (4.81 KB, patch)
2010-05-25 08:50 UTC, Antti Mäkelä
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Antti Mäkelä 2010-05-25 08:49:43 UTC
I have created a patch that may or may not be used in conjunction with the one in bug #897 to have multiple output queues in PointToPointDevice.

There may be up to 256 queues, with the number 0 being the default and being used for compatibility.

If a QosTag is present in the packet, the packet is enqueued to the matching queue, if there's room. If not, all other queues of lower priority are attempted.

A "strict" priority queuing, where only the specific queue is attempted should be easy to obtain too.

Right now I'm not sure how to implement this at Helper. In application level, I'm currently copying IP TOS byte to the QosTag's tid field for routed packets, and setting it directly in application before calling socket->SendTo(). 

Probably helper should provide some capability to allocate queues based on preference. E.g. I f I want to e.g. allocate 200 kbps for VoIP with higher priority, you might use Cisco's implicit queue limits or similar (see http://www.cisco.com/en/US/docs/ios/12_0s/feature/guide/12simql.html#wp1046949 ) 

For me, I'm using it to prioritize signaling traffic over bulk.
Comment 1 Antti Mäkelä 2010-05-25 08:50:02 UTC
Created attachment 876 [details]
Patch
Comment 2 Antti Mäkelä 2010-05-31 02:56:09 UTC
On further thought, this of course should be just a separate queue type, inherited from Queue, even if it is just an array of DropTailQueue.

I wonder, will this lead to ListQueue-kind of situation (contrast to ListRouting), especially if someone wants to implement Cisco-style hierarchical class-maps and service policies...

Anyway, I'll refactor this into a separate queue class at some point.
Comment 3 Tom Henderson 2016-03-30 20:00:59 UTC
Stefano, can you please review and advise if you think any parts of this should be reworked, or whether it can be closed?
Comment 4 Stefano Avallone 2016-03-31 07:09:40 UTC
I think prioritizing some kind of traffic over others pertains to the traffic control layer rather than the netdevice layer. I understand in 2010 it could only be done that way, but now it can be achieved by using queue discs. Pfifo_fast may already be used for this purpose, though some bits (i.e., setting user priorities) are still being worked on. Long story short, I believe this patch is outdated and the bug can be closed.