EXPEDITED FORWARDING
 

                                                  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



This page is maintained by Saravanan Radhakrishnan.