Given the locations of mesh routers and their traffic demands, one can have the network configuration designed A network configuration is called a feasible network configuration (FNC) if and only if all constraints, i.e., from (C1) to (C7), are met. The algorithms find out FNCs by means of routing paths for traffic demands. In the algorithm, diverse predefined gateway sets are checked to see whether an FNC can be found.
The concept behind the algorithm as described as shown in Figure 2. is to discover a set of gateways as well as the sequence to route paths for the traffic demands such that the optimal solution is obtained. Let g denote the number of gateways used. Since we do not know how many gateways are needed beforehand, the algorithm searches for an FNC using one gateway, i.e., g = 1, at the beginning. g is increased by one every time no FNC is obtained using g gateways. These processes continue until an FNC is obtained. Given g, the algorithm selects g gateways arbitrarily and then routes the paths for the traffic demands. If all traffic demands are satisfied, the algorithm will proceed to check if the network configuration meets the survivability requirement (C7), i.e., each mesh router must have at least two node-disjoint paths to different gateways. If true, then an FNC is obtained. Otherwise, the algorithm adds gateway and repeat until FNC obtained.
The order of traffic demands to route paths is specified in the routing sequence. An enhanced Dijkstra's algorithm presented is employed to find the path from the source mesh router to either of the gateways can be seen in Figure 1 . If the capacity of the path can support the traffic demand, the traffic demand is satisfied by the path and the link capacity along the path that is deducted accordingly. Otherwise, the path will carry a part of the traffic demand that equals to its capacity, and the enhanced Dijkstra's algorithm will be triggered again to route the path for the residual traffic demand of the mesh router.