The discrete network design problem deals with the selection of link additions to an existing road network, with given demand from each origin to each destination. The objective is to make an optimal investment decision in order to minimize the total travel cost in the network, while accounting for the route choice behaviors of network users. Because of the computational difficulties experienced with the solution algorithm of nonlinear bi-level mixed integer programming with a large number of 0-1 variables, the discrete network design problem has been recognized as one of the most difficult yet challenging problems in transport. In this paper, at first a traditional bi-level programming model for the discrete network design problem is introduced, and then a new solution algorithm is proposed by using the support function concept to express the relationship between improvement flows and the new additional links in the existing urban network. Finally, the applications of the new algorithm are illustrated with two numerical examples. Numerical results indicate that the proposed algorithm would be efficient in practice.