Cognitive radio network (CRN) is developed to improve the scarce but under-utilized wireless spectrum due to rapidly developing wireless networks. This paper proposes a reservation-based MAC protocol for traffic having multiple classes of priorities in CRN. One channel called control channel is used for contention resolution between secondary users (SUs). In this protocol, an SU having data packets with different class of priorities transmits its control packet containing the priority value through the control channel. The order of access to primary channels is determined based on the priority of the data packet and the position of the non-colliding control packet. The access order determines the idle primary channel that an SU uses to transmit its data packet. In this protocol, there is no performance degradation either from SUs choosing a busy primary channel or multiple SUs choosing the same idle primary channel. Moreover, even though the SU cannot transmit its data packet because there is no idle primary channel that the SU can utilize, it can re-transmit its control packet without having concern over additional collision. Multistate Markov chain is used to analyze the throughput and performance of the proposed protocol and the analytical results show that higher priority traffic can be transmitted first ahead of the lower priority traffic. Notwithstanding the above, the maximum sum of the throughput of SUs with different classes of priorities is almost equal to the available capacity, and therefore the proposed protocol can take advantage of almost all of the available portion of primary channels. INDEX TERMS Reservation MAC, multi-priority traffic, cognitive radio networks, multi-channel MAC protocol, common control channel