ACN-Congestion control using admission control
import java.util.*;
class Main
{
static int pri[]={4,3,2,1};
static int bdw[]={5,4,3,2};
static int rem=10;
static int cp=0;
static int p[][]=new int [10][4];
public static void main(String ars[])
{
int i,j,k,m,ch,cprior,min,count=0,pos;
boolean done=false;
Scanner br=new Scanner(System.in);
System.out.println(“Enter choice \n 1 for CBR \n 2 for VBR \n 3 for UBR \n 4 for ABR”);
do
{
j=0;done=false;count++;
System.out.println(“Enter Details for “+count+” connection”);
System.out.println(“Enter Connection Type”);
m=br.nextInt();
cprior=pri[m-1];
if(rem>=bdw[m-1])
{
allocate(count,m);
done=true;
}
while(done!=true)
{
min=p[0][1];
pos=0;
for(i=0;i<cp;i++)
{
if(min>p[i][1])
{
min=p[i][1];
pos=i;
}
}
if(min>cprior)
{
break;
}
unallocate(pos);
if(rem>=bdw[m-1])
{
allocate(count,m);
done=true;
}
}
if(done==false)
{
System.out.println(“Connection Not Granted”);
}
System.out.println(“Enter 1 to continue”);
ch=br.nextInt();
}while(ch==1);
}
public static void allocate(int count,int m)
{
Scanner br=new Scanner(System.in);
System.out.println(“Enter time for connection”);
int t;
t=br.nextInt();
int j=0;
p[cp][j]=count;j++;
p[cp][j]=pri[m-1];j++;
p[cp][j]=bdw[m-1];j++;
p[cp][j]=t;cp++;
rem=rem-bdw[m-1];
System.out.println(“Connection Granted”);
}
public static void unallocate(int pos)
{
p[pos][1]=3000;
p[pos][3]=3000;
rem=rem+p[pos][2];
p[pos][2]=0;
System.out.println(“Connection “+p[pos][0]+” terminated”);
}
}