We introduce a flexible QoS routing protocol for mobile ad hoc network called AQOPC “Ad hoc QoS Optimal Paths based on metric Classes”. It provides end-to-end quality of service (QoS) support in terms of various metrics and offers accurate information about the state of bandwidth, end-to-end delay and hop count in the network. It performs accurate admission control and a good use of network resources by calculating multiple paths based on different metrics, and by generating the needed service classes. To regulate traffic, a flexible priority queuing mechanism is integrated. QoS violation detection and adaptive recovery are assured by a mechanism based on the prediction of the arrival time of data packets. The results of simulations show that AQOPC provides QoS support with a high reliability and a low overhead, and it produces lower delay than its best effort counterpart at lower mobility rates.