A cross-layer design for resource allocation and congestion control in multichannel multi-hop cognitive radio networks