This document proposes three algorithms for cross-layer design of congestion control and power control in wireless networks. The first algorithm uses complete convexification to achieve global optimal source rates and link power allocation in a distributed manner but requires large messages. The second algorithm uses outage probability bounds to map to an SIR constraint and develop a near-optimal distributed algorithm using local SIR measurements. The third algorithm uses successive convex approximation to iteratively transform the nonconvex problem into convex problems and achieve distributed optimal solutions. Numerical results show the algorithms perform similarly while the second algorithm converges faster, making it more practical.