Comet <----------------> Testbed16
The EF draft reads -
"Another possible implementation is a
CBQ [CBQ] scheduler that gives the EF queue priority up to
the configured rate. "
Based on this, I had 'tc' setup to do EF.
The parameters:
class cbq 2: root rate 10Mbit (bounded,isolated)
prio 8
class cbq 2:1 parent 2: rate 1500Kbit (bounded,isolated)
prio 1
class cbq 2:2 parent 2: rate 5Mbit prio 7
This means that I have a CBQ with two classes
- 2:1 represents the expedited forwarding class. A bandwidth of 3
Mbit is assigned. 'Bounded' means that it cannot borrow any additional
bandwidth that 2: has. That is because of the line
"CBQ scheduler that gives the EF queue
priority up to the configured rate."
in the draft. "Isolated" means that the class will not share any available bandwidth with non-descedant classes.
The queues that were created:
qdisc red 800d: parent 2:2 refcnt 0 limit 60Kb
min 15Kb max 45Kb
qdisc pfifo 800c: parent 2:1 refcnt 0 limit 5p
qdisc cbq 2: parent 1: refcnt 0 rate 10Mbit (bounded,isolated)
prio 8
qdisc dsmark 1: root refcnt 0 indices 0x0040
default_index 0x0000 set_tc_index
I have a pfifo (Priority FIFO) with 8 levels for expedited forwarding. I have a RED queue for best effort, with a policer to rate limit the overlimit (this is a CBQ term) class.
I ran a ttcp - five best effort streams and one expedited forwarding stream.
The throughput that the streams recevied were -
Best Effort 1 - 1.090421 Mbps
Best Effort 2 - 1.094772 Mbps
Best Effort 3 - 1.080941 Mbps
Best Effort 4 - 1.085908 Mbps
Best Effort 5 - 1.085249 Mbps
Expedited Forwarding Service - 1.30203Mbps
I did a tcpdump and plotted the number of times
the ports were accessed. Port 6040, which was the port at which the EF
service was provided, was accessed more number of times than the ports
at which best effort service was provided.
Fig : Plot of the port numbers against the number of port accesses
The information about the queuing disciplines that were set up and the packets transmitted on them:
qdisc red 8008: parent 2:2 refcnt 0
limit 60Kb min 15Kb max 45Kb
Sent 31618356 bytes 228736 pkts (dropped
0, overlimits 0)
qdisc pfifo 8007: parent 2:1 refcnt 0
limit 5p
Sent 2458282 bytes 35497 pkts (dropped
271, overlimits 0)
qdisc cbq 2: parent 1: refcnt 0 rate
10Mbit (bounded,isolated) prio 8
Sent 34147870 bytes 265929 pkts (dropped
271, overlimits 0)
borrowed 48 overactions 0 avgidle 762
undertime 0
qdisc dsmark 1: root refcnt 0 indices
0x0040 default_index 0x0000 set_tc_index
Sent 34147870 bytes 265929 pkts (dropped
271, overlimits 0)
The information about the classes that were set up and the paackets transmitted on them:
class cbq 2: root rate 10Mbit (bounded,isolated)
prio 8
Sent 71358 bytes 1699 pkts (dropped
0, overlimits 0)
borrowed 48 overactions 0 avgidle 762
undertime 0
class cbq 2:1 parent 2: rate 1500Kbit (bounded,isolated)
prio 1
Sent 2458282 bytes 35497 pkts (dropped
271, overlimits 0)
borrowed 0 overactions 0 avgidle 53155
undertime 0
class cbq 2:2 parent 2: rate 5Mbit prio 7
Sent 31623262 bytes 228791 pkts (dropped
0, overlimits 2)
borrowed 48 overactions 2 avgidle 23140
undertime 0