We present an algorithm for multi-hop routing and scheduling of requests in wireless networks in the sinr model. The goal of our algorithm is to maximize the throughput or maximize the minimum ratio between the flow and the demand. Our algorithm partitions the links into buckets. Every bucket consists of a set of links that have nearly equivalent reception powers. We denote the number of nonempty buckets by σ. Our algorithm obtains an approximation ratio of O(σ·log n), where n denotes the number of nodes. For the case of linear powers σ = 1, hence the approximation ratio of the algorithm is O(logn). This is the first practical approximation algorithm for linear powers with an approximation ratio that depends only on n (and not on the max-to-min distance ratio). If the transmission power of each link is part of the input (and arbitrary), then σ ≤ log Γ + log Δ, where Γ denotes the ratio of the max-to-min power, and Δ denotes the ratio of the max-to-min distance. Hence, the approximation ratio is O(log n ·(logΓ + log Δ)). Finally, we consider the case that the algorithm needs to assign powers to each link in a range [P min ,P max ]. An extension of the algorithm to this case achieves an approximation ratio of O[(log n + log log Γ) ·(log Γ + log Δ)].