The physical air interface provided by ns is used. The number of frequency channels to be created for the Uplink and Downlink can be set by the user through max_num_freq in the OTcl script. We differentiate between the uplink and downlink channels by creating separate timers to clock the TDMA on each. A hard-coded skew of 3 time-slots is maintained between the uplink and downlink TDMA frames. On each frequency (uplink as well as downlink), slot 0 is reserved for signalling and broadcasts. The user can decide the number of slots to reserve for GPRS traffic on each frequency through gprs_slots_per_frame in the OTcl script. The remaining slots are left for GSM mobiles. The frequency channel a packet is to be transmitted on is stamped onto a new field called chan_ in the common header of the packet.
The logical channels are mapped such that:
PBCH - slot0 on uplink/downlink frequency 0.
PRACH - slot0 on uplink frequency 0.
PAGCH - slot0 on downlink frequency 0.
PDTCH - all other slots/frequencies.