don’t forget the fundamental: layer-2 has frames while packets are at layer-3, if that is clear, read on :-)
Layer-2 802.1Q frames have a 2-byte field called Tag Control Information. The three most significant bits of this 2-byte field represents the CoS (Class of Service) value. Layer-2 QoS is represented by this CoS value which is from 0 to 7 (thus 8 values). In addition to 802.1Q and Cisco proprietary ISL (Inter-Switch Link), no other layer-2 frames can have CoS (and hence QoS) values!
Layer-3 IP packets can carry either an IP precedence (IPP) value or a Differentiated Services Code Point (DSCP) value. QoS supports the use of either value because DSCP values are backward-compatible with IP precedence values.
IP precedence values range from 0 to 7.
DSCP values range from 0 to 63
Both IPP and DSCP use the bits in the ToS (Type of Service) byte in the IPv4 header. IPP uses the 3 Most Significant Bits (MSB) while DSCP uses the 6 MSBs of the ToS byte (kudos to IPv4 designers for keeping the ToS byte in there!!!)
Following picture shall be helpful in understanding:
So, remember: layer-2 QoS deals with CoS, while at layer-3 we deal with IPP and|or DSCP