QoS Lab : Voice not altered by UDP flooding

Unanswered Question
Jul 3rd, 2009
User Badges:

Hi,


The goal of my lab is to test and prove the effect of QoS between a central site and a remote site. It simulates the case of a customer where I have to configure QoS. The link between the central site and the remote site is normaly a SDSL 2 Mb/s, but in my lab it is a simple 100Mb ethernet link. However the 2 Mb/s bitrate is between the operator's routers and not between the custmer's equipments. That's why I want to create the bottleneck on the customer's routers and to adjust the bitrate to 2 Mb/s, in order to be able to do QoS prioritization.


The customer uses GRE tunnels between central and remote sites to do dynamic routing.


On GRE tunnel, you can only use Traffic shaping to use CBWFQ (hierarchical service policy).


For the lab, the speed of the routers (Cisco 1721) is set to 100 Mb/s.


The soft Wan killer is used to saturate the link : always UDP discard


First of all, I would like to show how the voice is altered without QoS.


Wan killer is used with a bandwidth of 100000 kb/s, a size of packet of 1440 bytes.


Until 17 % of flooding (17 Mb/s) the phone call quality is OK (in the same direction than the flooding). The note given by the cisco 7960 is 4.500 which is excellent, despite the 2 Mb/s shapping.


Here is a show of the Fa 0 interface on R2 :


R2#sh int fa 0


FastEthernet0 is up, line protocol is up

Hardware is PQUICC_FEC, address is 0013.199e.2d0d (bia 0013.199e.2d0d)

MTU 1500 bytes, BW 100000 Kbit, DLY 1000 usec,

reliability 255/255, txload 6/255, rxload 44/255

Encapsulation 802.1Q Virtual LAN, Vlan ID 1., loopback not set

Full-duplex, 100Mb/s, 100BaseTX/FX

Input queue: 23/75/4/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: fifo

Output queue: 0/40 (size/max)

30 second input rate 17575000 bits/sec, 1747 packets/sec

30 second output rate 2374000 bits/sec, 429 packets/sec



Here is a show of the Tunnel GRE interface :


R2#sh int tu 1


Tunnel1 is up, line protocol is up

Hardware is Tunnel

Internet address is 172.16.0.2/24

MTU 1514 bytes, BW 2000 Kbit, DLY 500000 usec,

reliability 255/255, txload 255/255, rxload 44/255

Encapsulation TUNNEL, loopback not set

Tunnel source 192.168.0.2 (FastEthernet0.1), destination 192.168.0.1

Tunnel protocol/transport GRE/IP, key disabled, sequencing disabled

Tunnel TTL 255

Checksumming of packets disabled, fast tunneling enabled

Tunnel transmit bandwidth 8000 (kbps)

Tunnel receive bandwidth 8000 (kbps)

Input queue: 3/75/0/0 (size/max/drops/flushes); Total output drops: 49074

Queueing strategy: fifo

Output queue: 0/0 (size/max)

30 second input rate 352000 bits/sec, 214 packets/sec

30 second output rate 2000000 bits/sec, 214 packets/sec


Here are the shapper statistics :


R2#sh policy-map interface

Tunnel1

Service-policy output: shape


Class-map: class-default (match-any)

76719 packets, 106314226 bytes

30 second offered rate 17024000 bps, drop rate 14388000 bps

Match: any


Traffic Shaping

Target/Average Byte Sustain Excess Interval Increment

Rate Limit bits/int bits/int (ms) (bytes)

2000000/2000000 12500 50000 50000 25 6250

Adapt Queue Packets Bytes Packets Bytes Shaping

Active Depth Delayed Delayed Active

- 64 10816 12335322 10816 12335322 yes



Traffic shaping is active and a lot of packet are drop. Why is the phone call quality not affected ???


At this step, no queuing tool is used by the shapper, it is in Fifo mode I guess. Fair-queuing is not activated on the class-default where the shapping is configured.


I don't understand why the voice, which has a bitrate of 80ko/s approximatively and is in competition with an 17 Mb/s UDP flooding stream, can be unaffected ???


Is there something I forgot ?


I would appreciate your help on this, thank you.


Thomas




  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 4 (1 ratings)
Loading.
tandlauer Fri, 07/03/2009 - 04:10
User Badges:

Just another precision :


If I decrease the size of packet or increase the flood bitrate, the voice quality degrades, but it seems to be due to input drops, the queue is full, look a the "show int fa 0" in this case :


R2#sh int fa0


FastEthernet0 is up, line protocol is up

Hardware is PQUICC_FEC, address is 0013.199e.2d0d (bia 0013.199e.2d0d)

MTU 1500 bytes, BW 100000 Kbit, DLY 1000 usec,

reliability 255/255, txload 4/255, rxload 29/255

Encapsulation 802.1Q Virtual LAN, Vlan ID 1., loopback not set

Full-duplex, 100Mb/s, 100BaseTX/FX

ARP type: ARPA, ARP Timeout 04:00:00

Input queue: 76/75/9251/0 (size/max/drops/flushes); Total output drops: 0

Queueing strategy: fifo

Output queue: 0/40 (size/max)

30 second input rate 11622000 bits/sec, 1285 packets/sec

30 second output rate 1677000 bits/sec, 293 packets/sec


Joseph W. Doherty Fri, 07/03/2009 - 08:59
User Badges:
  • Super Bronze, 10000 points or more

Good results are likely due to shaper (itself) actually queuing using (W)FQ, not FIFO.

tandlauer Sat, 07/04/2009 - 10:42
User Badges:

Thank you for your answer.


I thought about that too, but I configured the class-default of the policy-map "shape" with "no fair-queue". This is the default comand, that's why you can't see it int the running config. If fair-queuing were used, you would see "fair-queue" under the class-default for policy-map shape.


Joseph W. Doherty Sat, 07/04/2009 - 17:43
User Badges:
  • Super Bronze, 10000 points or more

No, I'm not referring to FQ as defined within CBWFQ's class-default, whether implicit or explicit. I'm referring to the shaper itself (at least before 12.4[20]T).


I.e.


policy-map x


class class-default


no fair-queue


shape average | peak #


tandlauer Sun, 07/05/2009 - 23:45
User Badges:

Hi joseph,


Yes that's what I said too. I meant the shaper default class.


My configuration is :


policy-map shape

class class-default

shape average 2000000

no fair-queue


but the no fair-queue line is not visible as it is the default behaviour. You only see the line if you configure FQ.



Joseph W. Doherty Mon, 07/06/2009 - 03:16
User Badges:
  • Super Bronze, 10000 points or more

No, again, not CBWFQ's class-default FQ, the shaper's FQ. I.e., CBWFQ queues for the defined class, for class-default, either FIFO or WFQ, and/or queues for shaped traffic. They're two different queuing points. I realize, the expectation is that shaped traffic is directly pushed into the CBWFQ class queue, but that doesn't seem to often be the way it works.

tandlauer Mon, 07/06/2009 - 06:23
User Badges:

Ok I see what you mean. So do you know how to know if the shaper uses Fifo ou WFQ ?


I tried to use a child policy in the default class where the shape is used, in order to force the queueing mechanism of the shaper. It seems to work better, as As soon as the shaper becomes active, the voice quality level reported by the cisco-phones begin to decrease.


The child policy is configured as following :


policy-map llq

class dscp46

priority 90

class class-default

bandwidth 75

policy-map shape

class class-default

shape average 2000000

service-policy llq


With class dscp46, voice is OK, without it is not as good.


Thanks

Joseph W. Doherty Mon, 07/06/2009 - 09:01
User Badges:
  • Super Bronze, 10000 points or more

"So do you know how to know if the shaper uses Fifo ou WFQ ? "


My understanding, shaper within CBWFQ, before 12.4(20)T, WFQ; later IOS depends on CBWFQ class configuration.


"I tried to use a child policy in the default class where the shape is used, in order to force the queueing mechanism of the shaper."


I had thought to mention a hierarchal policy, but didn't want to confuse the issue.


BTW, I sometimes wonder whether the shaper pushes ALL shaped packets to the child policy. From watching policies like your recent example, I suspect, at least on some IOSs, the shaper still maintains its own (minimal?) queue(s), and pushes its queue(s) overflow into the child policy.

Actions

This Discussion