PVC Interface Priority Queueing – PIPQ


New technology i just learned about! Its called PIPQ, and stands for PVC Interface Priority Queueing.

As the name implies, its a Queueing method, and its only for frame-relay.

It basically functions in the same way as a PQ scheme, in that it has 4 queues, high, medium, normal and low.

Where it differs is that instead of putting packets into each queue, you “put PVC’s” into each queue, or rather, you designate into which queue this specific PVC should belong to.

When packets are then ready to be moved from to the transmit ring, you dequeue based on high, medium, normal and low priority. And that means taking packets going to PVC’s in the high priority queue first, then medium etc.

Thats basically all there is to it. Very basic QoS, but QoS never the less.

Its really simple to configure, so lets try it out.

The scenario is that you have a multipoint interface, with three PVC’s configured. Two going to your business partners, while the third is a link to your datacenter. Business partner 1 is a very good partner, while partner 2 has been lacking in their appreciation for Cisco gear :).The datacenter one is critical to your business needs, so you want to make sure that one gets preferential treatment.

DLCI assignment:

102 – Business partner 1.

103 – Business partner 2.

104 – Data center link.

We want to assign them to the following queues:

104 – High.

102 – Medium.

103 – Low.

Step 1)

Create some map-classes to map the queue to each PVC:

R1(config)#map-class frame 102-class
R1(config-map-class)#frame-relay interface-queue priority medium
R1(config-map-class)#map-class frame 103-class
R1(config-map-class)#frame-relay interface-queue priority low
R1(config-map-class)#map-class frame 104-class
R1(config-map-class)#frame-relay interface-queue priority high

Step 2)

Apply these classes to the individual PVC’s:

R1(config-if)#frame-relay interface-dlci 102
R1(config-fr-dlci)#class 102-class
R1(config-fr-dlci)#frame-relay interface-dlci 103
R1(config-fr-dlci)#class 103-class
R1(config-fr-dlci)#frame-relay interface-dlci 104
R1(config-fr-dlci)#class 104-class

Step 3)

Enable PIPQ on the main interface:

R1(config-if)#frame-relay interface-queue priority

Step 4)

Verify the priority on each PVC. Note that PVC’s in the normal queue wont show up in this command:

R1(config-if)#do sh frame pvc 102
PVC Statistics for interface Serial0/0 (Frame Relay DTE)
DLCI = 102, DLCI USAGE = LOCAL, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
 input pkts 0             output pkts 0            in bytes 0
 out bytes 0              dropped pkts 0           in pkts dropped 0
 out pkts dropped 0                out bytes dropped 0
 in FECN pkts 0           in BECN pkts 0           out FECN pkts 0
 out BECN pkts 0          in DE pkts 0             out DE pkts 0
 out bcast pkts 0         out bcast bytes 0
 5 minute input rate 0 bits/sec, 0 packets/sec
 5 minute output rate 0 bits/sec, 0 packets/sec
 pvc create time 00:01:03, last time pvc status changed 00:01:03
 priority medium
R1(config-if)#
R1(config-if)#do sh frame pvc 103
PVC Statistics for interface Serial0/0 (Frame Relay DTE)
DLCI = 103, DLCI USAGE = LOCAL, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
 input pkts 0             output pkts 0            in bytes 0
 out bytes 0              dropped pkts 0           in pkts dropped 0
 out pkts dropped 0                out bytes dropped 0
 in FECN pkts 0           in BECN pkts 0           out FECN pkts 0
 out BECN pkts 0          in DE pkts 0             out DE pkts 0
 out bcast pkts 0         out bcast bytes 0
 5 minute input rate 0 bits/sec, 0 packets/sec
 5 minute output rate 0 bits/sec, 0 packets/sec
 pvc create time 00:01:21, last time pvc status changed 00:01:21
 priority low
R1(config-if)#do sh frame pvc 104
PVC Statistics for interface Serial0/0 (Frame Relay DTE)
DLCI = 104, DLCI USAGE = LOCAL, PVC STATUS = INACTIVE, INTERFACE = Serial0/0
 input pkts 0             output pkts 0            in bytes 0
 out bytes 0              dropped pkts 0           in pkts dropped 0
 out pkts dropped 0                out bytes dropped 0
 in FECN pkts 0           in BECN pkts 0           out FECN pkts 0
 out BECN pkts 0          in DE pkts 0             out DE pkts 0
 out bcast pkts 0         out bcast bytes 0
 5 minute input rate 0 bits/sec, 0 packets/sec
 5 minute output rate 0 bits/sec, 0 packets/sec
 pvc create time 00:01:35, last time pvc status changed 00:01:35
 priority high

And finally:

R1#sh queueing priority
Current DLCI priority queue configuration:
 Interface           High    Medium  Normal  Low
 limit   limit   limit   limit
 Serial0/0           20      40      60      80

And thats all there is to it. Cool huh?

Take Care!