Hi Alan,
Let’s have a look.
You are correct, we still classify the traffic here. Usually, we do classification AND marking on the edge of our network. Let’s say we have a network like this:
Phone1 - SW1 - R1 - R2 - R3 - SW2 - Phone2
And let’s say we have some proprietary Voice over IP application that uses a range of UDP ports for RTP. On the edge of my network (SW1 and SW2) I can do something like this:
SW1(config)#ip access-list extended RTP_PROPRIETARY
SW1(config-ext-nacl)#permit udp any any range 16300 17300
SW1(config)#class-map RTP_PROPRIETARY
SW1(config-cmap)#match access-group name RTP_PROPRIETARY
SW1(config)#policy-map MARKING
SW1(config-pmap)#class RTP_PROPRIETARY
SW1(config-pmap-c)#set dscp ef
We do classification and marking here. This means that on my other devices, I can just configure a policy-map that prioritizes traffic when it has DSCP value EF. This saves me the hassle of configuring this access-list on all devices throughout my network.
This can still be used as a counter. If you want an example, take a look at my Control plane policing lesson:
I kinda use the same technique there to see how many packets I receive.
I’d have to check the 3850. On the older platforms, you can use this command:
SW1#show mls qos interface GigabitEthernet 0/1 statistics
GigabitEthernet0/1 (All statistics are in packets)
dscp: incoming
-------------------------------
0 - 4 : 19783 0 0 0 0
5 - 9 : 0 0 0 0 0
10 - 14 : 0 0 0 0 0
15 - 19 : 0 0 0 0 0
20 - 24 : 0 0 0 0 0
25 - 29 : 0 0 0 0 0
30 - 34 : 0 0 0 0 0
35 - 39 : 0 0 0 0 0
40 - 44 : 0 0 0 0 0
45 - 49 : 0 0 0 0 0
50 - 54 : 0 0 0 0 0
55 - 59 : 0 3087 0 0 0
60 - 64 : 0 0 0 0
dscp: outgoing
-------------------------------
0 - 4 : 84603 0 0 0 0
5 - 9 : 0 0 0 0 0
10 - 14 : 0 0 0 0 0
15 - 19 : 0 0 0 0 0
20 - 24 : 0 0 0 0 0
25 - 29 : 0 0 0 0 0
30 - 34 : 0 0 0 0 0
35 - 39 : 0 0 0 0 0
40 - 44 : 0 0 0 0 0
45 - 49 : 0 0 0 0 0
50 - 54 : 0 0 0 0 0
55 - 59 : 0 112 0 0 0
60 - 64 : 0 0 0 0
cos: incoming
-------------------------------
0 - 4 : 92908 0 0 0 0
5 - 7 : 0 0 0
cos: outgoing
-------------------------------
0 - 4 : 118383 0 0 0 0
5 - 7 : 74056 0 286048
output queues enqueued:
queue: threshold1 threshold2 threshold3
-----------------------------------------------
queue 0: 0 0 0
queue 1: 0 19773 360104
queue 2: 0 0 0
queue 3: 0 0 98610
output queues dropped:
queue: threshold1 threshold2 threshold3
-----------------------------------------------
queue 0: 0 0 0
queue 1: 0 0 0
queue 2: 0 0 0
queue 3: 0 0 0
Policer: Inprofile: 0 OutofProfile: 0
This doesn’t tell me which class gets dropped but it does tell me which queues are working and how many packets get dropped in each queue.
Which IOS version are you using on the 3850? I tried a simple policy-map on my 3850:
class-map match-any TELNET
match access-group name TELNET
policy-map COUNT_TELNET
class TELNET
interface GigabitEthernet1/0/24
service-policy output COUNT_TELNET
It does show me packets:
SW1#telnet 192.168.1.2 /vrf TEST1
Trying 192.168.1.2 ... Open
SW5#show policy-map interface GigabitEthernet 1/0/24
GigabitEthernet1/0/24
Service-policy output: COUNT_TELNET
Class-map: TELNET (match-any)
8 packets
Match: access-group name TELNET
0 packets, 0 bytes
5 minute rate 0 bps
Class-map: class-default (match-any)
55 packets
Match: any
This is on a 3850 running 03.06.06E (quite old).
Rene