Routing in a wireless mesh network is a heterogeneous interoperability problem. First, it is possible that some users may disable the relaying functions of their mobile devices in order to save the computing power and battery charge. This will results in heterogeneous relaying capabilities. Second, due to the absence of standard layer-3 ad-hoc routing protocols, various devices may employ different layer-3 routing protocols, making routing difficult. A trivial solution to the above two problem is to flood packets through the un-routable regions to reach the destination region. However, flooding is a brute force approach and will make a broadcast storm, resulting in low throughput of the whole network. In this paper, we propose a cross-layer approach to solve the above problem. Our analysis results show that the proposed cross-layer approach can efficiently provide interoperability without causing broadcast storm.