-
Notifications
You must be signed in to change notification settings - Fork 0
/
041-measurement.tex
80 lines (70 loc) · 6.81 KB
/
041-measurement.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
%\section{Measurement Report}
\utsubsection{Measurement Report}{Max Eschenbacher}\label{sec:measrep}
Measurement Reports enthalten Messwerte bzgl. der Empfangsleistung, Empfangsqualität, sowie Informationen zu Nachbarzellen. Sie werden beim Einbuchen in das Netzwerk und während eines Gesprächs (ca. 2 mal in der Sekunde) von der MS an die BTS gesandt. Measurement Reports sind im RR-Sublayer (\textit{Radio Resource}) angesiedelt und mit dem Nachrichtentyp \textit{MEASUREMENT REPORT} gekennzeichnet. Die Messwerte sind für das Weiterreichen (Handover) der MS von großer Bedeutung.
OpenBTS verwaltet diese Messwerte intern in einer eigenen Klasse, bietet aber auch die Möglichkeit, diese in eine externe SQL-Datenbank abzulegen. Mit der OpenBTS-Option \verb|Control.Reporting.PhysStatusTable| kann der Pfad der Datenbank angegeben werden:
\begin{verbatim}
OpenBTS> config Control.Reporting.PhysStatusTable \
/etc/OpenBTS/phystatus.db
\end{verbatim}
Leider werden keinerlei Informationen bzgl. der Nachbarzellen in die Datenbank eingetragen. Deshalb musste die Tabelle \verb|PHYSTATUS| in der Datenbank um zusätzliche Felder für die Nachbarzellen erweitert und die Methode \verb|PhysicalStatus::setPhysical()| in der C++-Quelldatei \verb|<OpenBTS-DIR>/GSM/PhysicalStatus.cpp| angepasst werden.
Zusätzlich wurde ein neuer CLI-Befehl namens \verb|showmr| implementiert, welcher den Inhalt der "`Measurement Report Datenbank"' entsprechend formatiert und im OpenBTS-Terminal auflistet. Dazu wurde eine bereits bestehende, aber auskommentierte Methode (\verb|PhysicalStatus::dump()| ebenfalls in \verb|<OpenBTS-DIR>/GSM/PhysicalStatus.cpp|), von OpenBTS an die neuen Bedürfnisse (erweitertes Tabellenlayout) angepasst und der eigentliche CLI-Befehl in der Datei \verb|<OpenBTS-DIR>/CLI/CLI.cpp| hinzugefügt.
Es sei erwähnt, dass das Handover-Modul (siehe Kapitel \ref{sec:hom}) auf die Measurement-Daten in der SQL-Tabelle aus Performancegründen komplett verzichtet und sich die benötigten Messwerte direkt über den Aufruf der entsprechenden Getter-Methoden des Measurment-Objekts besorgt. Somit dient die SQL-Tabelle rein dem CLI-Befehl \verb|showmr|, damit dieser nicht nur den aktuell vorliegenden Messbericht anzeigt, sondern auch Auskunft über zurückliegende Reports geben kann.
\newpage
Nachfolgend eine Beispielausgabe von \verb|showmr|:
\begin{figure}[ht]
\setbox0\vbox{\small
\begin{verbatim}
OpenBTS> showmr
############################################################
Measurement Report:
############################################################
CN_TN_TYPE_OFFSET = C0T0 SDCCH/4-0
ARFCN = 867
ACCESSED = 1330702677
RSSI = -63.750000
TIME_ERR = -0.222656
TIME_ADVC = 1
TRANS_PWR = 30 dBm
FER = 0.000000
RXLEV_FULL_SERVING_CELL = -48 dBm
RXLEV_SUB_SERVING_CELL = -48 dBm
RXQUAL_FULL_SERVING_CELL_BER = 0.181000 dBm
RXQUAL_SUB_SERVING_CELL_BER = 0.181000 dBm
NO_NCELL = 1
RXLEV_CELL_1 = 0, BCCH_FREQ_CELL_1 = 0, BSIC_CELL_1 = 0
RXLEV_CELL_2 = 0, BCCH_FREQ_CELL_2 = 0, BSIC_CELL_2 = 0
RXLEV_CELL_3 = 0, BCCH_FREQ_CELL_3 = 0, BSIC_CELL_3 = 0
RXLEV_CELL_4 = 0, BCCH_FREQ_CELL_4 = 0, BSIC_CELL_4 = 0
RXLEV_CELL_5 = 0, BCCH_FREQ_CELL_5 = 0, BSIC_CELL_5 = 0
RXLEV_CELL_6 = -33, BCCH_FREQ_CELL_6 = 63, BSIC_CELL_6 = 1
############################################################
CN_TN_TYPE_OFFSET = C0T1 TCH/F
ARFCN = 867
ACCESSED = 1330696371
RSSI = -57.250000
TIME_ERR = 0.263672
TIME_ADVC = 1
TRANS_PWR = 30 dBm
FER = 0.042869
RXLEV_FULL_SERVING_CELL = -48 dBm
RXLEV_SUB_SERVING_CELL = -48 dBm
RXQUAL_FULL_SERVING_CELL_BER = 0.000000 dBm
RXQUAL_SUB_SERVING_CELL_BER = 0.000000 dBm
NO_NCELL = 7
RXLEV_CELL_1 = 0, BCCH_FREQ_CELL_1 = 0, BSIC_CELL_1 = 0
RXLEV_CELL_2 = 0, BCCH_FREQ_CELL_2 = 0, BSIC_CELL_2 = 0
RXLEV_CELL_3 = 0, BCCH_FREQ_CELL_3 = 0, BSIC_CELL_3 = 0
RXLEV_CELL_4 = 0, BCCH_FREQ_CELL_4 = 0, BSIC_CELL_4 = 0
RXLEV_CELL_5 = 0, BCCH_FREQ_CELL_5 = 0, BSIC_CELL_5 = 0
RXLEV_CELL_6 = 0, BCCH_FREQ_CELL_6 = 0, BSIC_CELL_6 = 0
############################################################
\end{verbatim}
}
\centerline{\fbox{\box0}}
\end{figure}
\newpage
\underline{Erläuterungen zur Beispielausgabe:}
Der erste Measurement Report wurde um \verb|1330702677| (Unix-Time, entspricht 02.03.2012 - 16:37:57 Realzeit) im \verb|SDCCH| (\textit{Standalone Dedicated Control Channel}) mit der Nummer \verb|0| (von 4 Möglichen) auf der \verb|ARFCN 867| gesendet. Die empfangene Signalstärke (\verb|RSSI| = \textit{Received Signal Strength Indication}) betrug \verb|-63.75 dBm|. Der zugeordnete \textit{Timing Advance} Parameter der MS betrug \verb|1| Symbolperiode und wies einen Fehler (\verb|TIME_ERR|), d.h. einen Zeitversatz, von \verb|-0.222656| Symbolperioden auf.
Die Sendeleistung der MS betrug \verb|30 dBm| und hatte bis dato eine \verb|Uplink-FER| (= \textit{Frame Erasure Rate}; gibt das Verhältnis zwischen verworfenen (defekten) Frames und der Gesamtanzahl der Frames an) von \verb|0|. Der Empfangspegel der verwendeten Zelle (\verb|RXLEV_FULL_SERVING_CELL|) betrug \verb|-48 dBm| und die Empfangsqualität \verb|RXQUAL_FULL_SERVING_CELL_BER = 0.181000 dBm|. Die Angaben \verb|SUB| und \verb|FULL| bei der Empfangsleistung und -qualität beziehen sich auf die Verwendung von \textit{DTX} (\textit{Discontinuous Transmission}). \verb|FULL| bezieht dabei alle Frames mit ein, also auch die zu dessen Zeitpunkt keine Sprache gesendet wurde. \verb|SUB| bezieht hingegen nur die effektiven "`Sprachframes"' mit ein. Da jeweils beide Werte im obigen Beispiel gleich sind, kann davon ausgegangen werden, dass kein DTX verwendet wurde.
Die restlichen Angaben beziehen sich auf die Nachbarzellen. \verb|NO_NCELL| gibt die Anzahl der sichtbaren Nachbarzellen an. Dabei gibt es zwei Sonderfälle: \verb|NO_NCELL=0| - es existieren keine Messwerte, \verb|NO_NCELL=7| - es existieren keine Nachbarzellen. Im obigen Beispiel sieht die MS eine Nachbarzelle (Nr. 6) mit der ID \verb|1| (\textit{Base Station ID Code}) und einer Empfangsleistung von \verb|-33 dBm|. Der \textit{Broadcast Control Channel} (\verb|BCCH|) liegt dabei auf Frequenz \verb|63|.
Analog zum ersten Eintrag ist auch der zweite Eintrag im Measurement Report zu interpretieren. Dieser bezieht sich auf einen \textit{Traffic Channel} im Zeitschlitz Nr. 1, bei dem die MS keine Informationen bzgl. der Nachbarzellen (\verb|NO_NCELL=7|) besitzt.