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 |