Quality of service architectures that provide efficient resource allocation for multiple services have been an active research topic for a long time, but unsuccessful when it comes to deployment. The goal in this paper is to propose an admission control algorithm that both preserves the quality of service and efficiently shares resources based on the demand in different classes. Based on the concept of externality costs we derive a solution to balance the admission control in a high priority class with congestion control for best effort traffic. A low complexity implementation based on measuring the load of high priority traffic and the loss in the best effort class is proposed. It is then evaluated by simulations which show that it can achieve an efficient sharing between the traffic classes.