We have some 2960s in our environment, and we have the switchport and trunk ports configured with
mls qos trust cos
That works fine, and DSCP tags are being passed as-is.
However we had the same command issued on our 2950s, and DSCP was being rewritten/stripped. I found this document http://www.cisco.com/en/US/tech/tk389/tk813/technologies_q_and_a_item09186a00804976d3.shtml#qa10
Based on that doc I changed it to mls qos trust cos pass-through dscp and the tags are now being passed as-is.
My question is, is the 2950 actually prioritizing packets (honoring DSCP) or is it just passing the tags?
It has been a long time since I've worked with the 2950's and I don't remember which is the priority queue. I would assume 4. Here is a link to the SRND for QoS. It's an excellent guide and the official Cisco QoS training class uses this as the guide book.