Thursday, February 14, 2008

MQC-based Frame Relay Traffic Shaping

 

This is a “modern” way to configure FRTS, using MQC commands only to accomplish the task. With MQC approach, an unified interface has been introduced to configure all QoS settings, irrelevant of underlying technology.

Insummary:

- Legacy command frame-relay traffic-shaping is incompatible with MQC-based FRTS (you can’t mix them)
-Fancy queueing could not be used as a PVC-queueing strategy: CBWFQ is the only option available
-Per-VC CBWFQ is configured via hierarchical policy-maps configuration: Parent policy sets shaping values, while child policy implements CBWFQ
-You may apply policy-map per-interface (subinterface) or per-VC, using match fr-dlci under class-map submode

Example:Shape PVC to 384Kbps and provide LLQ treatment for voice bearer packets on PVC queue

class-map VOICE 
match ip dscp ef!class-map DATA
match ip dscp cs1!! "Child" policy-map, used to implement CBWFQ
!

policy-map CBWFQ class VOICE
priority 64 class DATA
bandwidth 128 class class-default
fair-queue!! "Parent" policy map, used for PVC shaping
!

policy-map SHAPE_384K class class-default
shape average 384000 shape adaptive 192000
service-policy CBWFQinterface Serial 0/0/0:0.1
ip address 177.0.112.1 255.255.255.0 service-policy output SHAPE_384K
frame-relay interface-dlci 112

Verification:check out policy map settings

Rack1R1#show policy-map interface serial 0/0/0:0.1 

Serial0/0/0:0.1

Service-policy output: SHAPE_384K Class-map: class-default (match-any)
1942 packets, 1590741 bytes 5 minute offered rate 48000 bps, drop rate 0 bps
Match: any Traffic Shaping
Target/Average Byte Sustain Excess Interval Increment Rate Limit bits/int bits/int (ms) (bytes)
384000/384000 2400 9600 9600 25 1200

Adapt Queue Packets Bytes Packets Bytes Shaping Active Depth Delayed Delayed Active
- 0 1936 1581717 0 0 no Service-policy : CBWFQ

Class-map: VOICE (match-all) 0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps Match: protocol rtp
Match: ip dscp ef (46) Queueing
Strict Priority Output Queue: Conversation 40
Bandwidth 64 (kbps) Burst 1600 (Bytes) (pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0 Class-map: DATA (match-all)
0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps
Match: ip dscp cs1 (8) Queueing
Output Queue: Conversation 41 Bandwidth 128 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0 (depth/total drops/no-buffer drops) 0/0/0

Class-map: class-default (match-any) 1942 packets, 1590741 bytes
5 minute offered rate 48000 bps, drop rate 0 bps Match: any
Queueing Flow Based Fair Queueing
Maximum Number of Hashed Queues 32 (total queued/total drops/no-buffer drops) 0/0/0

The amount of bandwidth, available for allocation to CBWFQ classes, is taken from shape adaptive value. If the latter is not configured, shape average
valueis used instead. Note, that as you configure bandwidth settings for classes, their values are not subtracted from remaining bandwidth. This is in contraty with
“classic”CBWFQ, applied to a physical interface (not subinterface or PVC)

Verification (with the example above):

Rack1R1#conf tEnter configuration commands, one per line.  End with CNTL/Z. 
Rack1R1(config)#policy-map CBWFQRack1R1(config-pmap)#classclass-default
Rack1R1(config-pmap-c)#no fair-queueRack1R1(config-pmap-c)#bandwidth256
I/f shape class class-default requested bandwidth 256 (kbps), available
only 192 (kbps)

Notethat available bandwidth is set to shape adaptive value, even though we have priority configured under class VOICE and bandwidth
settingsunder class DATA

- You can’t apply FRF.12 fragmentation with MQC commands - it should be applied at physical interface level. By doing so, FRF.12 is effectively enabled for all PVCs
-Physical interface queue could be set to any of WFQ/CQ/PQ or CBWFQ (not restricted to FIFO as with FRTS legacy) - though this is rarely needed

Example:Shape PVC DLCI 112 to 384Kpbs and enable FRF.12 fragmentation for all PVCs

class-map VOICE 
match ip dscp ef!class-map DATA
match ip dscp cs1!! Match the specific DLCI
!
class-map DLCI_112 match fr-dlci 112

!
! "Child" policy-map, used to implement CBWFQ!policy-map CBWFQ
class VOICE priority 64
class DATA bandwidth 128
class class-default fair-queue

!
! "Parent" policy map, used for PVC shaping!With multiple classes, we can match different DLCIs
! all at the same physical interface (where they belongs)!policy-map INTERFACE_POLICY
class DLCI_112 shape average 384000
shape adaptive 192000 service-policy CBWFQ

!
! Apply the parent policy map at physical interface level!Also, configure FRF.12 "global" settings here
!

interface Serial 0/0/0:0 service-policy output INTERFACE_POLICY
frame-relay fragment 640 end-to-end

Verification:

Rack1R1#show policy-map interface serial 0/0/0:0 

Serial0/0/0:0

Service-policy output: INTERFACE_POLICY Class-map: DLCI_112 (match-all)
1040 packets, 95287 bytes 5 minute offered rate 0 bps, drop rate 0 bps
Match: fr-dlci 112 Traffic Shaping
Target/Average Byte Sustain Excess Interval Increment Rate Limit bits/int bits/int (ms) (bytes)
384000/384000 2400 9600 9600 25 1200

Adapt Queue Packets Bytes Packets Bytes Shaping Active Depth Delayed Delayed Active
- 0 1040 95287 4 1373 no Service-policy : CBWFQ

Class-map: VOICE (match-all) 0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps Match: protocol rtp
Match: ip dscp ef (46) Queueing
Strict Priority Output Queue: Conversation 40
Bandwidth 64 (kbps) Burst 1600 (Bytes) (pkts matched/bytes matched) 0/0
(total drops/bytes drops) 0/0 Class-map: DATA (match-all)
0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps
Match: ip dscp cs1 (8) Match: fr-dlci 112
Queueing Output Queue: Conversation 41
Bandwidth 128 (kbps) Max Threshold 64 (packets) (pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0 Class-map: class-default (match-any)
1040 packets, 95287 bytes 5 minute offered rate 0 bps, drop rate 0 bps
Match: any Queueing
Flow Based Fair Queueing Maximum Number of Hashed Queues 32
(total queued/total drops/no-buffer drops) 0/0/0 Class-map: class-default (match-any)
2594 packets, 153695 bytes 5 minute offered rate 0 bps, drop rate 0 bps
Match: any

Verifyfragmentation settings:

Rack1R1#show interface serial 0/0/0:0 
Serial0/0/0:0 is up, line protocol is up Hardware is GT96K Serial
MTU 1500 bytes, BW 1536 Kbit, DLY 20000 usec, reliability 255/255, txload 1/255, rxload 1/255
Encapsulation FRAME-RELAY, loopback not set Keepalive set (10 sec)
LMI enq sent 21224, LMI stat recvd 21224, LMI upd recvd 0, DTE LMI up LMI enq recvd 0, LMI stat sent 0, LMI upd sent 0
LMI DLCI 1023 LMI type is CISCO frame relay DTE FR SVC disabled, LAPF state down
Fragmentation type: end-to-end, size 640, PQ interleaves 0
<--------- Fragment Size Broadcast queue 0/64, broadcasts sent/dropped 63160/0, interface broadcasts 56080
Last input 00:00:03, output 00:00:02, output hang never Last clearing of "show interface" counters 2d10h
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 6 Queueing strategy: weighted fair
Output queue: 0/1000/64/0 (size/max total/threshold/drops) Conversations 0/1/256 (active/max active/max total)
Reserved Conversations 0/0 (allocated/max allocated) Available Bandwidth 1152 kilobits/sec
5 minute input rate 0 bits/sec, 1 packets/sec 5 minute output rate 0 bits/sec, 1 packets/sec
272202 packets input, 27557680 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
15 input errors, 15 CRC, 8 frame, 0 overrun, 0 ignored, 5 abort 333676 packets output, 42152431 bytes, 0 underruns
0 output errors, 0 collisions, 16 interface resets 0 output buffer failures, 0 output buffers swapped out
0 carrier transitions Timeslot(s) Used:1-24, SCC: 0, Transmitter delay is 0 flags

ShareThis