Before the handover, UE normally measure the cell power (signal quality) of the target cell and report it to the network, so that network can make a decision whether to allow UE to handover to the target cell or not.
It is not a big issue to measure the signal quality of the target cell if the target cell is at the same frequency as the current cell (Intrafrequency measurement). But there would be an issue when the target cell is at a different frequency from the current cell (Interfrequency measurement). Just in terms of logical sense of view, the simplest solution for Interfrequency measurement, the simplest solution for this would be to implement two RF tranciever on UE. However, there are some practical problems with this kind of two tranciever solution. One of the problems is cost issue. It would require additional cost to implement the additional tranciever. The other problem would be the possible interference between the current frequency and target frequency especially when the current frequency and target frequency are close to each other.
So they come out with a special techique called "Compressed Mode". The idea of the compressed mode is to create a small gap during which no transmission and reception happens. since there is no signal transmission and reception during the gap, UE can switch to the target cell and perform the signal quality measurement and come back to the current cell.
To make this work seamlessly, there should be a well established agreement between UE and Network about the gap definition (e.g, Starting Position of the Gap, Gap length, number of Gaps etc) and this agreement is established by a couple of RRC messages (e.g, Measurement Control, Physical Channel Reconfiguration etc). Followings are a couple of example configuration that was proved working in my test setp.
The rest of this page reads two gap configurations from a live network and explains each field. It then compares them with the compressed mode IEs of the current 25.331, where several value ranges differ from older descriptions.
Followings are the topics to be covered in this page.
- Measurement GAP setting for WCDMA to WCDMA Measurement
- Measurement GAP setting for WCDMA to LTE Measurement
- Descriptions of Parameters
- Compressed Mode IEs in the Current 25.331
- Reference
Measurement GAP setting for WCDMA to WCDMA Measurement
What does a working gap configuration look like? The capture below is the DPCH compressed mode info that the network sent for an inter-frequency WCDMA measurement. The fields marked in red are the gap pattern parameters described later on this page.
Decoded RRC message from a tester log,
| | +-modeSpecificInfo ::= CHOICE [fdd]
| | | +-fdd ::= SEQUENCE [011]
| | | +-defaultDPCH-OffsetValue ::= INTEGER OPTIONAL:Omit
| | | +-dpch-CompressedModeInfo ::= SEQUENCE OPTIONAL:Exist
| | | | +-tgp-SequenceList ::= SEQUENCE OF SIZE(1..maxTGPS[6]) [1]
| | | | +-TGP-Sequence ::= SEQUENCE [1]
| | | | +-tgpsi ::= INTEGER (1..maxTGPS[6]) [1]
| | | | +-tgps-Status ::= CHOICE [activate]
| | | | | +-activate ::= SEQUENCE
| | | | | +-tgcfn ::= INTEGER (0..255) [0]
| | | | +-tgps-ConfigurationParams ::= SEQUENCE [000000] OPTIONAL:Exist
| | | | +-tgmp ::= ENUMERATED [fdd-Measurement]
| | | | +-tgprc ::= INTEGER (0..511) [0]
| | | | +-tgsn ::= INTEGER (0..14) [4]
| | | | +-tgl1 ::= INTEGER (1..14) [7]
| | | | +-tgl2 ::= INTEGER OPTIONAL:Omit
| | | | +-tgd ::= INTEGER (15..270) [270]
| | | | +-tgpl1 ::= INTEGER (1..144) [12]
| | | | +-dummy ::= INTEGER OPTIONAL:Omit
| | | | +-rpp ::= ENUMERATED [mode0]
| | | | +-itp ::= ENUMERATED [mode0]
| | | | +-ul-DL-Mode ::= CHOICE [ul-and-dl]
| | | | | +-ul-and-dl ::= SEQUENCE
| | | | | +-ul ::= ENUMERATED [sf-2]
| | | | | +-dl ::= ENUMERATED [higherLayerScheduling]
| | | | +-dl-FrameType ::= ENUMERATED [dl-FrameTypeA]
| | | | +-deltaSIR1 ::= INTEGER (0..30) [10]
| | | | +-deltaSIRAfter1 ::= INTEGER (0..30) [5]
| | | | +-deltaSIR2 ::= INTEGER OPTIONAL:Omit
| | | | +-deltaSIRAfter2 ::= INTEGER OPTIONAL:Omit
| | | | +-nidentifyAbort ::= INTEGER OPTIONAL:Omit
| | | | +-treconfirmAbort ::= INTEGER OPTIONAL:Omit
The pattern starts at CFN 0, because tgcfn is 0. The gap begins at slot 4 of that frame (tgsn = 4) and lasts 7 slots (tgl1 = 7). A slot is 10/15 ms, so the gap lasts about 4.7 ms. The value tgd = 270 means undefined, so each pattern has only one gap, and tgl2 is omitted. The value tgpl1 = 12 repeats the pattern every 12 frames, which is every 120 ms. The value tgprc = 0 means infinity in 25.331, so the pattern repeats until the network deactivates it.
The two compressed mode methods decide how the data of a gap frame is still delivered. On the uplink, sf-2 halves the spreading factor, so the UE sends the frame's data in the slots outside the gap. On the downlink, higherLayerScheduling limits the transport format combinations, so less data is sent in that frame. The values deltaSIR1 = 10 and deltaSIRAfter1 = 5 raise the downlink SIR target by 1.0 dB in the gap frame and by 0.5 dB in the frame after it, because the IE value is in steps of 0.1 dB.
This capture also carries the dummy field, which 25.331 kept in place of the former TGPL2. It is omitted, as the specification asks. The structure is the original TGP-Sequence, because tgmp = fdd-Measurement does not need the Release 8 values.
Gap of 7 slots from slot 4 : about 4.7 ms in every 12th frame.tgprc = 0 : the pattern repeats until it is deactivated.tgd = 270 : undefined, so one gap per pattern.UL sf-2, DL higher layer scheduling : how the data of the gap frame is still carried.
Measurement GAP setting for WCDMA to LTE Measurement
An E-UTRA measurement needs a longer gap than a WCDMA one. The UE has to find the LTE PSS and SSS, which repeat only every 5 ms. The capture below uses the Release 8 structure, TGP-Sequence-r8, because tgmp = e-UTRA exists only in TGMP-r8.
Decoded RRC message from a tester log,
| | +-modeSpecificInfo ::= CHOICE [fdd]
| | | +-fdd ::= SEQUENCE [111]
| | | +-defaultDPCH-OffsetValue ::= INTEGER (0..599) [0] OPTIONAL:Exist
| | | +-dpch-CompressedModeInfo ::= SEQUENCE OPTIONAL:Exist
| | | | +-tgp-SequenceList ::= SEQUENCE OF SIZE(1..maxTGPS[6]) [1]
| | | | +-TGP-Sequence-r8 ::= SEQUENCE [1]
| | | | +-tgpsi ::= INTEGER (1..maxTGPS[6]) [1]
| | | | +-tgps-Status ::= CHOICE [activate]
| | | | | +-activate ::= SEQUENCE
| | | | | +-tgcfn ::= INTEGER (0..255) [0]
| | | | +-tgps-ConfigurationParams ::= SEQUENCE [00000] OPTIONAL:Exist
| | | | +-tgmp ::= ENUMERATED [e-UTRA]
| | | | +-tgprc ::= INTEGER (0..511) [0]
| | | | +-tgsn ::= INTEGER (0..14) [8]
| | | | +-tgl1 ::= INTEGER (1..14) [10]
| | | | +-tgl2 ::= INTEGER OPTIONAL:Omit
// In 3GPP, TGD value can be '15-269'.
// So, 270 specified here would be interpreted as 'Undefined'
// 'Undefined' is also valid setting in 3GPP
| | | | +-tgd ::= INTEGER (15..270) [270]
| | | | +-tgpl1 ::= INTEGER (1..144) [12]
| | | | +-rpp ::= ENUMERATED [mode0]
| | | | +-itp ::= ENUMERATED [mode0]
| | | | +-ul-DL-Mode ::= CHOICE [ul-and-dl]
| | | | | +-ul-and-dl ::= SEQUENCE
| | | | | +-ul ::= ENUMERATED [sf-2]
| | | | | +-dl ::= ENUMERATED [sf-2]
| | | | +-dl-FrameType ::= ENUMERATED [dl-FrameTypeB]
| | | | +-deltaSIR1 ::= INTEGER (0..30) [20]
| | | | +-deltaSIRAfter1 ::= INTEGER (0..30) [10]
| | | | +-deltaSIR2 ::= INTEGER OPTIONAL:Omit
| | | | +-deltaSIRAfter2 ::= INTEGER OPTIONAL:Omit
| | | | +-nidentifyAbort ::= INTEGER OPTIONAL:Omit
| | | | +-treconfirmAbort ::= INTEGER OPTIONAL:Omit
HEX (Physical Channel Reconfiguration) : FB 7A 64 2B 12 A7 82 00 00 00 C1 30 80 80 1D C0 01 00 00 60 04 4F F8 59 1D 14 08 04 80 00 04 D8 00
The gap now starts at slot 8 (tgsn = 8) and lasts 10 slots (tgl1 = 10), about 6.7 ms. That is longer than 5 ms plus the length of the PSS and SSS, so every gap contains at least one LTE synchronization signal pair. The 10 slots do not fit in one frame after slot 8. So the gap takes slots 8 to 14 of the first frame and slots 0 to 2 of the next one. 25.212 clause 4.4.3 limits the idle length to 7 slots per frame, so a gap longer than 7 slots always spans two frames.
Both directions use sf-2 here, and the downlink uses frame type B instead of type A. 25.212 clause 4.4.2 says type A maximises the gap, while type B is optimised for power control: it also sends the TPC field of the first gap slot. The SIR offsets are also larger, 2.0 dB in the gap frame and 1.0 dB after it. A longer gap interrupts power control for longer, so the network raises the SIR target more. The green comments in the capture are the author's notes on TGD: 25.331 defines TGD as INTEGER (15..270), where 270 represents undefined. The HEX line at the end is the whole Physical Channel Reconfiguration message that carried this configuration.
The table below compares the two settings field by field.
Field | WCDMA to WCDMA | WCDMA to LTE | Meaning |
tgmp | fdd-Measurement | e-UTRA | Purpose of the gap |
tgsn | 4 | 8 | First gap slot in the frame |
tgl1 | 7 slots, about 4.7 ms | 10 slots, about 6.7 ms | Gap length |
tgd | 270, undefined | 270, undefined | One gap per pattern |
tgpl1 | 12 frames | 12 frames | Pattern length |
tgprc | 0, infinity | 0, infinity | Number of patterns |
UL / DL method | sf-2 / higherLayerScheduling | sf-2 / sf-2 | How the gap frame keeps its data |
dl-FrameType | A | B | Downlink gap layout |
deltaSIR1 / deltaSIRAfter1 | 1.0 dB / 0.5 dB | 2.0 dB / 1.0 dB | SIR target increase |
Gap of 10 slots from slot 8 : about 6.7 ms, across two frames.Longer than 5 ms : every gap contains an LTE PSS and SSS.TGP-Sequence-r8 : needed for tgmp = e-UTRA.
Descriptions of Parameters
Let's look into the definition of each parameters used about Compressed Mode (Refer to 10.3.6.33 DPCH compressed mode info for the detailed description and valid value range) .
The table follows 25.331 clause 10.3.6.33. The valid ranges below are the ones in 25.331 v19.0.1, and the note under TGPL2 explains why that row no longer applies.
|
Parameter |
Description |
TGPRC |
The number of transmission gap patterns within the Transmission Gap Pattern Sequence. Valid Values : (1..511, Infinity) |
|
TGCFN |
Transmission Gap Connection Frame Number |
|
TGSN |
Transmission Gap Starting Slot Number The slot number of the first transmission gap slot within the TGCFN. Valid Values : (0..14) |
|
TGL1 |
The length of the first Transmission Gap within the transmission gap pattern expressed in number of slots. Valid Values : (1..14) |
|
TGL2 |
The length of the second Transmission Gap within the transmission gap pattern. If omitted, then TGL2=TGL1. The value of TGL2 shall be ignored if TGD is set to "undefined". Valid Values : (1..14) |
|
TGD |
Transmission Gap Distance. This indicates the number of slots between starting slots of two consecutive transmission gaps within a transmission gap pattern. If there is only one transmission gap in the transmission gap pattern, this parameter shall be set to undefined. Valid Values : (15..269, Undefined) |
|
TGPL1 |
Transmission Gap Pattern Length 1 Valid Values : (1..144) |
|
TGPL2 |
Transmission Gap Pattern Length 2 Valid Values : (1..145, Undefined) Removed from 25.331 in v6.5.0, Release 6. The original structure keeps an unused dummy field in its place, and the -r8 and -r10 structures drop it. |
The diagram below shows how these parameters fit together. A transmission gap pattern sequence alternates TG pattern 1 and TG pattern 2, up to pattern number TGPRC. Each pattern holds gap 1 at TGSN with length TGL1, and gap 2 TGD slots later with length TGL2.
Transmission gap pattern sequence. The diagram shows the older definition with separate TGPL1 and TGPL2. 25.331 removed TGPL2 in v6.5.0, so in the current specification every pattern lasts TGPL1 frames.
Both captures on this page use only gap 1, because TGD is undefined. The second gap in the diagram is used when the network needs two gaps per pattern, for example to split one long idle period into two shorter ones.
Ranges from 25.331 v19.0.1 : TGSN 0 to 14, TGL 1 to 14, TGPL 1 to 144.TGPRC = infinity : encoded as 0.TGPL2 removed in Release 6 : every pattern lasts TGPL1 frames.
Compressed Mode IEs in the Current 25.331
Which version of the IE applies? 25.331 keeps three versions of DPCH compressed mode info: the original one, -r8 and -r10. The first capture uses the original structure, and the second one uses -r8. The tile below gives -r8 and the types it uses.
Following is based on
DPCH-CompressedModeInfo-r8 ::= SEQUENCE {
tgp-SequenceList TGP-SequenceList-r8
}
TGP-SequenceList-r8 ::= SEQUENCE (SIZE (1..maxTGPS)) OF
TGP-Sequence-r8
TGP-Sequence-r8 ::= SEQUENCE {
tgpsi TGPSI,
tgps-Status CHOICE {
activate SEQUENCE {
tgcfn TGCFN
},
deactivate NULL
},
tgps-ConfigurationParams TGPS-ConfigurationParams-r8 OPTIONAL
}
TGPS-ConfigurationParams-r8 ::= SEQUENCE {
tgmp TGMP-r8,
tgprc TGPRC,
tgsn TGSN,
tgl1 TGL,
tgl2 TGL OPTIONAL,
tgd TGD,
tgpl1 TGPL,
rpp RPP,
itp ITP,
-- TABULAR: Compressed mode method is nested inside UL-DL-Mode
ul-DL-Mode UL-DL-Mode,
dl-FrameType DL-FrameType,
deltaSIR1 DeltaSIR,
deltaSIRAfter1 DeltaSIR,
deltaSIR2 DeltaSIR OPTIONAL,
deltaSIRAfter2 DeltaSIR OPTIONAL,
nidentifyAbort NidentifyAbort OPTIONAL,
treconfirmAbort TreconfirmAbort OPTIONAL
}
TGMP-r8 ::= ENUMERATED {
tdd-Measurement, fdd-Measurement,
gsm-CarrierRSSIMeasurement,
gsm-initialBSICIdentification, gsmBSICReconfirmation,
multi-carrier, e-UTRA, spare }
-- TABULAR: In TGPRC, value 0 represents "infinity" in the tabular description.
TGPRC ::= INTEGER (0..511)
TGSN ::= INTEGER (0..14)
TGL ::= INTEGER (1..14)
-- In TGD, value 270 represents "undefined" in the tabular description.
TGD ::= INTEGER (15..270)
TGPL ::= INTEGER (1..144)
TGCFN ::= INTEGER (0..255)
UL-DL-Mode ::= CHOICE {
ul UL-CompressedModeMethod,
dl DL-CompressedModeMethod,
ul-and-dl SEQUENCE {
ul UL-CompressedModeMethod,
dl DL-CompressedModeMethod
}}
UL-CompressedModeMethod ::= ENUMERATED {
sf-2,
higherLayerScheduling }
DL-CompressedModeMethod ::= ENUMERATED {
-- dummy is not used in this version of the specification, it should
-- not be sent and if received the UE behaviour is not specified.
dummy, sf-2,
higherLayerScheduling }
DL-FrameType ::= ENUMERATED {
dl-FrameTypeA, dl-FrameTypeB }
RPP ::= ENUMERATED {
mode0, mode1 }
ITP ::= ENUMERATED {
mode0, mode1 }
-- Actual value DeltaSIR = IE value * 0.1
DeltaSIR ::= INTEGER (0..30)
The ASN.1 explains three values in the captures. TGPRC is INTEGER (0..511), and a comment says 0 means infinity. TGD is INTEGER (15..270), and 270 means undefined. DeltaSIR is INTEGER (0..30) with an actual value of 0.1 times the IE value, in dB. The -r8 structure adds e-UTRA to TGMP and drops the dummy field. The -r10 structure, not shown, also adds freqSpecificCompressedMode for frequency specific compressed mode.
Three versions : original, -r8 for E-UTRA, -r10 for frequency specific gaps.0 and 270 are special values : infinity for TGPRC, undefined for TGD.DeltaSIR in steps of 0.1 dB : 0 to 3 dB.
Reference
[1] 3GPP TS 25.331 v19.0.1 - clause 10.3.6.33, DPCH compressed mode info, and the ASN.1 of clause 11.3
[2] 3GPP TS 25.212 v19.0.0 - clause 4.4, Compressed mode