| begin |
| declare |
| time(): system execution time; |
| Te: simulation end time; |
| BW_L: remaining bandwidth in current time; |
| BW_LN: remaining bandwidth in the next time; |
| throttle_flagi: alert indictor for a new call admission; |
| call_flag: indicator for call request /*judge new call or handoff*/ |
| thresholdCDP: the predefined threshold for CDP; |
| Traffic_c: traffic class; |
| while(time()< Te) |
| begin |
| calculate the remaining bandwidth BW_L according to current system utilization; |
| if (call_flag == handoff) /*call request is handoff call*/ |
| begin |
| if ((Traffic_c == 2) && (BW_L ≥ 4) ) /*traffic of class 2*/ |
| admit and allocate four units of bandwidths for the handoff call request; |
| else if ((Traffic_c ==1) && (BW_L ≥ 1) /* traffic of class 1*/ |
| admit and allocate one unit of bandwidths for the handoff call request; |
| else |
| reject handoff call request; |
| end |
| else /*call request is new call*/ |
| begin |
| call the prediction module to obtain system utilization and handoff dropping probability |
| in the next time; |
| calculate the potential remaining bandwidths BW_LN in the next time according to the |
| prediction result; |
| if ((Traffic_c == 2) && (BW_L ≤ 4) ) /*traffic of class 2*/ |
| begin |
| set the throttle_flagi to 1; /* current cell i is under heavy traffic load*/ |
| reject new call request; |
| end |
| else if ((Traffic_c ==1) && (BW_L ≤ 1) /* traffic of class 1*/ |
| begin |
| set the throttle_flagi to 1; |
| reject new call request; |
| end |
| else if (one of throttle_flagi,j == 1) |
| /* one of the six adjacent cells j exhausts bandwidth for cell i*/ |
| reject new call request; |
| else if ((BW_LN ≥ 4) && (CDP ≤ thresholdCDP)) |
| begin |
| admit and allocate the required amount of bandwidth for the handoff call |
| request; |
| set the throttle_flagi to 0; |
| end |
| else |
| begin |
| set the throttle_flagi to 1; |
| reject new call request; |
| end |
| end |
| end |
| end |