|
Metalevel ProgrammingCellKeeper, a Cellular Network Manager |
Prepared by
Peter Kriens (aQute)
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.
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 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.
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.
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.
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.
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.
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.
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:
bnmsm:cell="NAME",bspower=12,tadv=24
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)
FSetGSM = SEQUENCE OF GSMFreq
FSetDCS = SEQUENCE OF DCSFreq
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) }
NOTE: Actual cells contain hundreds of parameters!