Saturday, December 25, 2010

The 3560 Ingress Queue

3560 Ingress Queue (2 Input) -

Inside a DOT1q tag you have COS or Priority Bits - 802.1p ( Layer 2 )

The DSCP value is located in the IP header. ( Layer 3 )

Ingress QoS features such as classification, marking and policing can be configured on a per port basis.

Input map tables and ingress queueing can be configured globally and can not be configured on a per port basis.

You can Classify / Mark the frames based on the incoming CoS / DSCP values or an ACL in one of three ways and only one method per port.





Port based configuration using the mls qos interface based commands.

intf# mls qos cos <#> - This will NOT change the CoS values of a frame that is already tagged, this will only add the CoS value you specify to packets that do not already have a tag.

intf# mls qos cos <#> override - This WILL change the CoS values of ALL frames that are tagged or untagged to the value that you designate.

intf#mls qos extend cos <#> - Will allow you to keep the EF frames from the phone and designate the marking you would like to see attached to the packets received from the PC / Server Ect.

MQC based configuration using class−map and policy−map



NOTE: PHB (Per Hop Behavior) 

The configuration under each class of policy−map are called PHB actions. Marking, queuing,
policing, shaping and congestion avoidance are the supported PHB actions in Cisco routers.

Marking and Policing are the ONLY supported PHB actions in the Cisco Catalyst 3560 Switch.

The set and trust commands are Marking PHB actions.

The police command is the Policing PHB action.

Policing can only be configured on the ingress port. Policing can only be configured through MQC and this means there is no interface specific command to police the traffic.

Marking Example:

policy−map Shelby
 class Class−A
   trust cos
 class Class−B
   set dscp af21

The Cisco Catalyst 3560 Switch supports only single rate, single bucket policing. This means the switch meters at only one rate and it can profile the traffic in two colors conform and exceed action.



Policing Example:

Policy−map Oscar
 class Class−A
   police 10000000 8000 exceed−action drop

Policed−dscp map:
        0   1   2   3  4   5   6   7  8  9
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
  0 : 00 01 02 03 04 05 06 07 08 09
  1 : 10 11 12 13 14 15 16 17 18 19
  2 : 20 21 22 23 24 25 26 27 28 29
  3 : 30 31 32 33 34 35 36 37 38 39
  4 : 40 41 42 43 44 45 26 47 48 49
  5 : 50 51 52 53 54 55 56 57 58 59
  6 : 60 61 62 63

mls qos map policed−dscp 46 to 26

Policy−map Abby
 class Class−A
   trust dscp
   police 256000 8000 exceed−action policed−dscp−transmit


SRR for ingress queue can be configured globally.

3 Steps -
i.    Queuing
ii.    Dropping
iii.    Scheduling



Ingress queues use SRR (Shared Round Robin) and is the only mode supported.

The queues share the bandwidth according to configured weights and are guaranteed this amount but not limited to it.

sw1(config)#mls qos srr-queue input ?
  bandwidth       Configure SRR bandwidth
  buffers            Configure buffer allocation
  cos-map          Configure cos-map for a queue id
  dscp-map        Configure dscp-map for a queue id
  priority-queue  Configure priority scheduling
  threshold         Configure queue tail-drop thresholds


Queueing:

buffers          Configure buffer allocation
cos-map         Configure cos-map for a queue id
dscp-map        Configure dscp-map for a queue id

Scheduling:

bandwidth       Configure SRR bandwidth
priority-queue    Configure priority scheduling

Dropping:

threshold        Configure queue tail-drop thresholds

Each queue can support (3) threshold levels, the 3rd is 100% and cant be changed.

On the ingress queue, queue 2 is the priority-queue unlike the output queue where queue 1 is the priority-queue.

   Dscp-inputq-threshold map:
     d1 :d2    0     1     2     3     4     5     6     7     8     9
     ------------------------------------------------------------
      0 :    01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01
      1 :    01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01
      2 :    01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01
      3 :    01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01
      4 :    02-01 02-01 02-01 02-01 02-01 02-01 02-01 02-01 01-01 01-01
      5 :    01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01 01-01
      6 :    01-01 01-01 01-01 01-01

By default as you can see, the DSCP values of 40-46 are place in queue 2.

Queue 2 is the priority queue and is serviced for its configured weight (Default 10%) and the shares the remaining bandwidth 90% between queue 1 AND 2 so 45% each.



There are (3) steps to configure queuing and scheduling.

1. Queue Map configuration -
    Maps the packets to 1 of 2 queues based on CoS or DSCP

2. Queue configuration -
    Defines the ratio with which to divide the ingress buffers between the (2) queues.

3. Scheduler configuration -
    Defines the ratio of the weights that controls the frequency of dequeuing packets from the queues to the stack ring.



This will be a work in progress so hang tight...