This is an implementation of Packet Control Unit (PCU) according to TS 04.60

The PCU is part of BSS, so it connects directly to SGSN.


== Current limitations ==

 * No PFC support
 * No fixed allocation support
 * No extended dynamic allocation support
 * No unacknowledged mode operation
 * No PCCCH/PBCCH support
 * Only single slot assignment on uplink direction
 * No half-duplex class support (only semi-duplex)
 * No handover support
 * No measurement support
 * No TA loop
 * No power loop
 * No CS loop
 * No EGPRS
