Issue with GSM1800/1900

Dieter Spaar spaar at
Thu Aug 4 17:44:01 UTC 2011

Hello Andreas,

there is a small issue with GSM1800/1900 in the mobile application:
When a location update is performed, the wrong power capability is
set in Mobile Station Classmark 1. As a workaround I fixed it this way:

   --- ./host/layer23/src/mobile/gsm48_mm.c        Mon Jul 25 15:40:50 2011
   +++ r:./host/layer23/src/mobile/gsm48_mm.c      Thu Aug 04 13:15:09 2011
   @@ -2321,7 +2321,11 @@
               gsm_print_mnc(subscr->mnc), subscr->lac);
           /* classmark 1 */
   +#if 0
           pwr_lev = gsm48_current_pwr_lev(set, rr->cd_now.arfcn);
   +#else /* cd_now not yet set, take selected cell ARFCN !? */
   +       pwr_lev = gsm48_current_pwr_lev(set, rr->ms->cellsel.sel_arfcn);
           gsm48_encode_classmark1(&nlu->classmark1, sup->rev_lev, sup->es_ind,
                   set->a5_1, pwr_lev);
           /* MI */

The reason for the the wrong power capability comes from the fact that
"rr->cd_now" is not yet set and so the ARFCN is 0 which causes the
GSM900 power capability to be used. It is set to "Class 4" in the
configuration file per default, however this value is not defined for
GSM1800/1900. I am not sure if my workaround is perfect, you are the
expert for "mobile" ;-)

Although this might sound like not that important (networks with OpenBSC
or OpenBTS don't care at all about the value) there are some real networks
out there which don't like it.

On a related note: The default TX power calibration curve for GSM900
causes too less TX power for GSM1800/1900, expecially for low power
settings. I will try to improve my current workaround for this and
provide a patch.

Best regards,
Dieter Spaar, Germany                           spaar at

More information about the baseband-devel mailing list