DesignFest Home

Metalevel Programming

CellKeeper, a Cellular Network Manager

[ Home | Problem Collection | Results for this problem ]

Prepared by

Peter Kriens (aQute)

Problem Domain Description

The CellKeeper Application

Specific Requirements

Use Cases

Concrete Interfaces


Problem domain description

Cellular telephone networks have shown exponential growth rates in the past few years. From networks containing a handful of cells to cover a country, they have grown into networks containing tens of thousands of cells. It used to be possible to configure these networks by hand, but the tremendous growth has made this infeasible. There are just too many cells to be handled by man.

We would like you to design a program, called CellKeeper, that can plan and execute changes in the configuration of a live network without disturbing it. This is daunting because of the volume of information involved, the myriad of hardware, and the complex constraints that exists in cellular telephone networks.

About cells

A cell in a cellular telephone network handles all the calls of mobile phones in the area it covers. To do this, it transmits identifying information on a beacon radio frequency and handles the "traffic" on other frequencies. When a network is initially built, the area that is covered by each cell is very large. When the number of subscribers increases, capacity is added by splitting cells. This results in more and smaller cells, offering more total capacity. This technique makes cellular networks highly scalable. In busy areas like cities, cell diameters are measured in metres, in rural areas the diameters can be up to 64 km. The only limit is the interference of cells that reuse the same frequency. Networks that use digital signals instead of analog between the cell and the mobile phone have an advantage because the interference levels can be considerable higher at the same quality.

One of the most complicated aspects of a cellular network is the planning of the frequencies. This is almost a black art and is usually handled by special planning programs. These programs contain prediction algorithms that take into account the terrain that the cell covers.

The mobile phone

The mobile phone must be slaved to a cell when it is first turned on. It will select the most suitable cell by scanning all beacon frequencies. It will then send an identifying signal to the cell to make contact. After this contact is made, the cell is in full charge of the mobile. The only initiative left to the mobile is to broadcast that it wants to start a call. When the mobile is moving, the cell will detect that the signal quality will become worse, and will hand over the mobile to a more suitable neighboring cell.

Base stations

A cell is implemented by a base station. A base station is a computer plus radio equipment that is connected to a telephone exchange. Base stations are located on a "site". The sites are the most visible part of a cellular network because of the very obvious antenna masts that are visible all over the country. One site can host multiple base stations. The base stations are connected to a telephone exchange that, besides switching the calls, is also responsible for controlling the operation of the cells. In the GSM system it is called the Base Station Controller (BSC).

POTS = Plain Old Telephone System
BSC = Base Station Controller
= site, can contain multiple cells


The network operator wants to process as many calls as possible for the least amount of cost. The tasks to achieve this are manifold. Planning, subscriptions, procurement, installation, handling of alarms, measurements, configuration changes and many more. The networks have become so large that they are normally split sections. Each section is then managed by an Operational Maintenance Center (OMC). Each OMC manages a number of BSCs and a geographic area.

For this problem we focus on how to change the network configuration. Configuring the network is done by sending management commands to the cells that set values on parameters or read these parameter values. This is complicated because each cell has literally hundreds of parameters. A short summary:

Several of these parameters are dependent on, and constrained by, the settings of other parameters in other cells. For example, neighboring cells should always use different frequencies. Also, each cell needs to know what its neighbors are. Not only for the cells of the same network, but also for cells of adjacent networks when they have cells that could interfere.

All these parameters for ten thousands of cells are difficult to manage. Many parameters must be changed when cells are split. Not only for the split cells, but also for adjacent cells.

Changing parameters in the network must be done in a short time on all related cells to keep the disturbance to the network as low as possible. For example, changing the frequency plan of a set of cells makes the cells inoperative during the changes. Therefore, the changes must be planned and executed in a short time, usually during the middle of the night. Such a change should of course be done carefully to keep the network consistent.

A very complicating factor in the management of the cells is that in one network, one can find cells from different manufacturers and different versions and variants from the same manufacturer. Each type/variant/version can have its own specific management interface and semantics. New types/variants/versions are introduced all the time to handle specific situations. For example, special cells are developed to be used in trains, offices and rural areas.

The CellKeeper application

Design a program that allows a network operator to plan changes in every parameter of every cell in the network. These planned changes should be verified for consistency and correctness and then applied to the network in the least disturbing way.

We would like you to pay most of your attention to the fact that there are so many different cells in the network that need to managed in a common way, but are still of very different types. The problem is that the difference cannot be abstracted away because the operator also wants to use the unique features (they want to have their cake and eat it too). Do not focus on the specific algorithms for frequency allocation and consistency checks. The program should be easily extendable to handle the algorithms and rules of the network operator so they cannot be hard-coded anyway.

Design an infrastructure where the network operator can customize critical aspects, instead of hard-coding knowledge. The program must be very flexible for changes because these networks change at a rapid pace.

Specific requirements

Structure summary

Each OMC has a set of BSC that it manages.
Each BSC controls one or more cells.
Each cell is on a site (and a site can have many cells on it).
Each cell has a set of neighbors, which are other cells.
Some cells are managed by the same OMC, others are managed by other OMCs or other network operators.

Use cases

Use Case #1: Splitting a cell

A cell in sector 301.402 is split in three. The original cell was a Sienokola and used an antenna that created a cell where the site was in the middle. Three directional antennas have been added plus the necessary base stations.

The operator starts the application and first selects the cell that must be removed. She indicates that the cell should be removed. She then calls up a list of neighboring cells and checks the frequencies on these cells to decide which frequencies can be used for the new cells. She then modifies the frequencies of one of the neighboring cells and creates the three new cells. The planning department had run predictions for the coverage of the new cells and had given her values for the key parameters. All the other parameters were left at default values. The next step is to see if the planned changes are consistent. This is actually the case and she orders the plan to be executed at 3 am. The next morning she finds in her mailbox a log that indicates that the changes have been successfully applied to the network.

Use Case #2: Adding a new cell type

A new supplier has entered the market that can supply base stations for a significantly lower price than the ones currently used. The network operator decides to buy 10 base stations and installs them on new sites.

The new base stations have a different management interface than the older ones. The supplier offers a special development kit that allows the base stations to be managed over a standard Simple Network Management Protocol (SNMP) interface. The development center of the network operator creates new drivers for this type and adds the type to the application. After this change, parameters can be set that are specific for the new base station.

Use Case #3: Tuning a cell

Reports have come in that the cell in sector 231.912 is not functioning well. Many calls are dropped in a certain part of the sector. Inspection of the location reveals that a high rise was built that blocks the passage of the radio signals. Another cell 10 km to the north could reach the location but the parameter settings are such that the cell is not allowed to cover that area.

The application is started and the cell is called up. The parameters that define the area in which handovers can take place are modified. The change should take effect immediately because there are people on the location that can perform measurements. After several attempts the optimal settings are found.

Concrete interfaces

DISCLAIMER: The actual supplier names, cell structure and rules are nonsense, though typical for the problem domain.

The operator who orders this program has the following systems:


This supplier offers cells for the GSM and DCS systems. The operator has 2000 cells of this type. Two variants are in use, the v15 type for rural areas (range 32 km) and the v16 that supports city areas (range 2 km). During the change of revision of the cells, the management software must support the new revision and the previous. The Sienokola cells can be accessed through a C-library from the Sienokola development kit.


The operator has about 800 of these cells. This supplier offers a command line interface to the cell to set its properties. Each command starts with a name and then the parameters of the commands. Unfortunately, commands are not always "logically" constructed. A command has a maximum length of 80 characters. Commands look very similar to the AT command set for modems, for example:


Parameter overview

    parameter                   Phillison                       Sienokola
                                v3              v4              v15             v16
                                GSM     DCS     GSM     DCS     GSM     DCS     GSM     DCS
    name    identifing          A16     A16     A16     A16     S12     S12     S16     S16
    mcc     mobile country code MCC     MCC     MCC     MCC     MCC     MCC     MCC     MCC
    mnc     mobile network code MNC     MNC     MNC     MNC     MNC     MNC     MNC     MNC
    lac     location area code  LAC     LAC     LAC     LAC     LAC     LAC     LAC     LAC
    ci      cell identifier     CI      CI      CI      CI      CI      CI      CI      CI
    bspower base station power  0..64   0..32   0..128  0..32   32..64  32      32..64  32
    fBeacon beacon frequency    GSMFreq DCSFreq GSMFreq DCSFreq GSMFreq DCSFreq GSMFreq DCSFreq
    traffic traffic frequencies FSetGSM FSetDCS FSetGSM FSetDCS GSMFreq DCSFreq GSMFreq DCSFreq
    chPage  paging channels     2..8    4..16   4..26   4..26   1..6    1..6    1..8    1..8
    chBroad broadcast channels  1..8    1..8    1..8    1..8    1..6    1..6    1..8    1..8
    filter  filter algorithm    Fp      Fp      Fp      Fp      Fs      Fs      Fs1     Fs1
    nfreq   neigbour freq.      FSetGSM FsetDCS FSetGSM FSetDCS FSetGSM FSetDCS FSetGSM FSetDCS
    hopping frq. hopping        NULL    NULL    Hopping Hopping NULL    NULL    NULL    NULL
    tadvlim tim. advance limit  0..64   0       0..64   0       0..64   0       0..128  0
    rels    neighbour relations PNrG    PNrD    PNrG4   PNrD    SNr     SNr     SNr     SNr
    A16     = IA5STRING( SIZE(1..16), ALPHABET( "A-Za-z") )
    S12     = IA5STRING( SIZE(1..12), ALPHABET( "A-Za-z0-9") )
    S16     = IA5STRING( SIZE(1..16), ALPHABET( "A-Za-z0-9") )
    Fp      = ENUMERATED { standard, fast, medium, slow }
    Fs      = INTEGER(1..7)
    Fs1     = INTEGER(1..12)
    MCC     = NummericString(SIZE(3))               // is country code
    MNC     = NummericString(SIZE(2))               // mobile network code
    LAC     = INTEGER(0..65535)
    CI      = INTEGER(0..65535)
    GSMFreq = INTEGER( 0..124 )
    DCSFreq = INTEGER( 1000 ..1374 )
    PNrG    = SET OF PN(SIZE(32))
    PNrD    = SET OF PN(SIZE(64))
    PN      = SEQUENCE { other  A16, treshold Power, hysteresis Power, algorithm INTEGER(0..4) }
    PN4     = SEQUENCE { other  A16, treshold Power, hysteresis Power, algorithm INTEGER(0..8) }
    PNrDG4  = SET OF PN4(SIZE(64))
    SNr     = SET OF SN(SIZE(128))
    PN4     = SEQUENCE { other  A16,  border INTEGER(0..100) }

Example consistency rules




NOTE: Actual cells contain hundreds of parameters!


  1. The GSM System for Mobile Communications. Michel Mouly, Mary-Bernadette Pautet. ISBN 2-9507190-0-7
  2. Mobile Telecommunications: emerging European markets. Artech House Publishers. ISBN 0-89006-796-1
  3. Integrated Network and System Management. Addison Wesley, ISBN 0-201-59377-7
  4. Feature interactions in telecommunications III, IOS Press, ISBN 90-5199-238-6
  5. Network management. Problems, standards and strategies. Addison Wesley, ISBN 0-201-56534-X

Last updated by Torsten Layda, SWX Swiss Exchange, DesignFest® Webmaster.