Enabling Dynamic Spectrum Allocation in Cognitive Radio Networks