A dynamic programming approach for routing in wireless mesh networks