The implementation of effective quality of service (QoS) support for user services must be implemented end-to-end and through all layers of the OSI hierarchy at each network node. We consider the layer-2 design of an ATM switch, which is built as a scalable, 3-stage Clos switching network and discuss architectural choices for the implementation of QoS support on this switch. An ATM-like cell format is used to encapsulate and propagate traffic and resource management information through the switch. Call admission control, fast inter-stage cell transfers and priority-based queue arbitration are used as congestion control and resource management mechanisms. Simulation results are presented to show the effect of architectural choices (internal buffering) on QoS parameters.