I have some ME3800's running 15.3(3)S which aggregate layer 2 circuits from customers. They all have a similar configuration of an incoming trunk on Gi0/1 and then Gi0/23 & Gi0/24 are layer 3 p-t-p links to neighbouring ME3x00 switches;
gi0/23--SW1---gi0/23 gi0/24---SW2---gi0/23 gi0/24---SW3---gi0/23
| | |
| | |
gi0/1 gi0/1 gi0/1
I am trying to apply some QoS on this network. I can apply my policies to the L3 interfacings linking the switches together but I can't apply the same QoS policy to the L2 trunks.
SW1#show run int gi0/1
Building configuration...
Current configuration : 93 bytes
!
interface GigabitEthernet0/1
description ****ACCESS-UPLINK****
switchport mode trunk
end
The reason is because the QoS policies are written for layer 3 interfaces, when I try to apply them to this trunk interface I get the following error;
SW1(config-if)#service-policy input PE-QOS-OUT
QoS: Configuration failed. 'match qos-group' not allowed in an input policy-map
QoS: Configuration failed. 'match qos-group' not allowed in an input policy-map
QoS: Configuration errors for policymap PE-QOS-OUT
I am wondering how I can write a policy for layer 2 trunk interfaces; I could apply the layer 3 policy map to each SVI on this switch that terminates each VLAN being trunked up but surely the QoS policy on an SVI doesn't look at the ingress/egress interface of a frame and examine the congestion for that interface? How coule the SVI policy manage the layer 2 turnk?
Short question: To QoS a layer 2 interface is the only (best?) way to break it down into service instances?
Long question: Would I have to convert those interfaces to use service instances and then add a service instance for each VLAN being trunked in; Then I could apply a parent policy to the interface which has various classes defined, each class matches one of the VLANs/service instances being trunked in and then apply the same child policy to each VLAN/service instace which would be the layer 3 one I originally tied to apply?
A snippest of the layer 3 policy I am using;
class-map match-any NC
match mpls experimental topmost 6
match mpls experimental topmost 7
match dscp cs6
match dscp cs7
match cos 6
match cos 7
class-map match-any REALTIME
match mpls experimental topmost 5
match dscp ef
match dscp cs5
match cos 5
class-map match-any NC-QG
match qos-group 6
match dscp cs6
match dscp cs7
class-map match-any REALTIME-QG
match qos-group 5
policy-map PE-QOS-IN
class NC
set qos-group 6
class REALTIME
set qos-group 5
policy-map PE-QOS-OUT
class NC-QG
bandwidth percent 2
queue-limit 1024000 bytes
class REALTIME-QG
police cir percent 10
conform-action transmit
exceed-action drop
priority
queue-limit 1024000 bytes