53int fn_NetSim_FormGSMChannel(DEVVAR_MSC* mscVar)
56 unsigned int nTotalNoOfChannel, nNoOfChannelPerBTS;
57 unsigned int nLoop,nLoop1;
58 Cellular_CHANNEL *tempChannel1, *tempChannel2=NULL;
60 double dDLFrequencyMin,dDLFrequencyMax,dULFrequencyMin,dULFrequencyMax;
63 dBandWidth = mscVar->gsmVar->dUpLinkBandwidthMax - mscVar->gsmVar->dUpLinkBandwidthMin;
66 nTotalNoOfChannel = (int)(dBandWidth/mscVar->gsmVar->dChannelBandiwdth);
67 nTotalNoOfChannel = nTotalNoOfChannel*mscVar->gsmVar->nSlotCountInEachCarrier;
70 mscVar->gsmVar->nChannelCount = nTotalNoOfChannel;
72 nNoOfChannelPerBTS = nTotalNoOfChannel/mscVar->nBTSCount;
73 if(nNoOfChannelPerBTS <=1)
75 fnNetSimError(
"Too less channel for BTS. Increase frequency...");
78 dDLFrequencyMin=mscVar->gsmVar->dDownLinkBandwidthMin;
79 dDLFrequencyMax=dDLFrequencyMin+mscVar->gsmVar->dChannelBandiwdth;
80 dULFrequencyMin=mscVar->gsmVar->dUpLinkBandwidthMin;
81 dULFrequencyMax=mscVar->gsmVar->dChannelBandiwdth+dULFrequencyMin;
83 for(nLoop = 0; nLoop < mscVar->nBTSCount; nLoop++,i++)
85 Cellular_BS_MAC* BSMAC=((Cellular_BS_MAC*)DEVICE_MACVAR(mscVar->BTSList[nLoop],1));
87 BSMAC->nChannelCount=nNoOfChannelPerBTS;
88 BSMAC->nFreeChannel=nNoOfChannelPerBTS;
89 BSMAC->nRACHChannel=1;
90 BSMAC->nTrafficChannel=nNoOfChannelPerBTS-1;
92 for(nLoop1=0;nLoop1<nNoOfChannelPerBTS;nLoop1++)
94 tempChannel1=calloc(1,
sizeof* tempChannel1);
95 tempChannel1->dDownLinkMaximumFreqency=dDLFrequencyMax;
96 tempChannel1->dDownLinkMinimumFrequency=dDLFrequencyMin;
97 tempChannel1->dUpLinkMaximumFrequency=dULFrequencyMax;
98 tempChannel1->dUpLinkMinimumFrequency=dULFrequencyMin;
99 tempChannel1->nChannelId=nLoop1+1;
104 tempChannel1->nTimeSlot=i;
105 if(BSMAC->pstruChannelList)
107 tempChannel2->pstru_NextChannel=tempChannel1;
108 tempChannel2=tempChannel1;
112 tempChannel2=tempChannel1;
113 BSMAC->pstruChannelList=tempChannel1;
116 if(i==mscVar->gsmVar->nSlotCountInEachCarrier)
118 dDLFrequencyMax += mscVar->gsmVar->dChannelBandiwdth;
119 dDLFrequencyMin += mscVar->gsmVar->dChannelBandiwdth;
120 dULFrequencyMax += mscVar->gsmVar->dChannelBandiwdth;
121 dULFrequencyMin += mscVar->gsmVar->dChannelBandiwdth;
129int isCellularChannelAllocated(NETSIM_ID nMSId,NETSIM_ID nInterfaceId,NETSIM_ID nApplicationId)
131 Cellular_MS_MAC* MSMac=DEVICE_MACVAR(nMSId,nInterfaceId);
132 if(MSMac->pstruAllocatedChannel)
134 Cellular_CHANNEL* channel=MSMac->pstruAllocatedChannel;
139 channel=channel->pstru_NextChannel;
CELLULAR_CHANNEL_TYPE nChannelType