1
|
Interfaces
|
2
|
==========
|
3
|
|
4
|
See also: LTE-Multi-RAT 2.1.3
|
5
|
|
6
|
Rel.7 SGSN:
|
7
|
Gn: SGSN<->PDN-GW (GTPv1C, 3gpp ts 29.060)
|
8
|
-> 3gpp ts 3gpp TS 29.060, section 7.5.14 RAN Information Management Messages (RIM)
|
9
|
Procedures: 3gpp TS 23.060, section 8.1.5, Messages: 3gpp TS 48.018
|
10
|
Gn: SGSN<->MME
|
11
|
Gr: SGSN<->HSS/HLR
|
12
|
|
13
|
Rel.8 SGSN:
|
14
|
S4: SGSN<->SGW (GTPv2-C)
|
15
|
S3: SGSN<->MME
|
16
|
S6d: SGSN<->HSS/HLR (Diameter)
|
17
|
|
18
|
Direct tunneling (3G)
|
19
|
S12: SGW<->RNC (GTPv1-U)
|
20
|
|
21
|
Interfaces using RIM: Gb (BSSGP), Iu (RANAP), Gn (GTPv1), S16 (GTPv2) Routing
|
22
|
|
23
|
|
24
|
====================
|
25
|
= PS HO =
|
26
|
====================
|
27
|
|
28
|
Cell Reselection from GRPS (Packet transfer mode or packet_idle) to E-UTRA (RRC idle)
|
29
|
Cell Reselection from E-UTRA (any state) to GERAN (packet_idle)
|
30
|
==> Fastest, but most complex
|
31
|
|
32
|
|
33
|
====================
|
34
|
= CCO/NACC =
|
35
|
====================
|
36
|
|
37
|
CCO + NACC from E-UTRAN (connected/DRX) to GERAN (packet_idle)
|
38
|
CCO + NACC rom GERAN (GPRS packet transfer) to E-UTRAN (RRC idle)
|
39
|
==> Medium complexity, can work without intervention by the network.
|
40
|
UEs request cell info via RIM and perform the cell change based on that info.
|
41
|
|
42
|
== System information ==
|
43
|
- CCN (Cell Change Notification) must be enabled in SI (UTRAN/3G:PSI3g EUTRAN:SI2q)
|
44
|
osmo-pcu already enables CCN in SI13
|
45
|
|
46
|
== Messages (GERAN) ==
|
47
|
RAN: PACKET_MEASUREMENT_ORDER
|
48
|
RAN: PACKET_CELL_CHANGE_ORDER
|
49
|
RAN: CHELL_CHANGE_CONTINUE
|
50
|
RAN: PS_HANDOVER_COMMAND
|
51
|
RAN: PACKET_NEIGHBOUR_CELL_DATA
|
52
|
MS: PACKET_CELL_CHANGE_NOTIFICATION
|
53
|
|
54
|
== Steps (GPRS) ==
|
55
|
(UE makes sure that CCN (Cell Change Notification) is enabled in SI (UTRAN/3G:PSI3g EUTRAN:SI2q)
|
56
|
|
57
|
- UE wants to change to a different cell on a different RAT, but does not have the system information to perform the
|
58
|
cell change yet.
|
59
|
- UE sends PACKET_CELL_CHANGE_NOTIFICATION to network to propose a cell (can be one or more)
|
60
|
- Network sends PACKET_NEIGHBOUR_CELL_DATA back (multiple messages)
|
61
|
- Network sends PACKET_CELL_CHANGE_CONTINUE, UE changes cell autonomously
|
62
|
- (Network may also respond with PACKET_CELL_CHANGE_ORDER (CCO) or a PS_HANDOVER_COMMAND)
|
63
|
|
64
|
MS PCU open5gs
|
65
|
| | |
|
66
|
|----PACKET_CELL_CHANGE_NOTIFICATION----->| |
|
67
|
| +-----------------------------------------+
|
68
|
|<------PACKET_NEIGHBOUR_CELL_DATA-----| |
|
69
|
|<------PACKET_NEIGHBOUR_CELL_DATA-----| RIM RAN INFORMATION REQUEST |
|
70
|
|<------PACKET_NEIGHBOUR_CELL_DATA-----| |
|
71
|
|<------PACKET_NEIGHBOUR_CELL_DATA-----| |
|
72
|
| +-----------------------------------------+
|
73
|
| | |
|
74
|
|<------PACKET_CELL_CHANGE_CONTINUE-------| |
|
75
|
| | |
|
76
|
|
77
|
== Interfaces ==
|
78
|
Gb/BSSGP (2g/GPRS)
|
79
|
Iu/RANAP (3g)
|
80
|
Gn/GTPv1/RIM (SGSN<==>MME)
|
81
|
S16/GTPv2/RIM (rel. 8 only, interconnects multiple SGSN)
|
82
|
|
83
|
== Specs ==
|
84
|
3gpp TS 44.060 (GPRS/RLCMAC), section 8.8 Network Assisted Cell Change procedures
|
85
|
3gpp TS 48.018 (BSSGP), section 8c Signalling procedures between RIM SAPs
|
86
|
3gpp TS 25.413 (RANAP), section 9.2.3.30-9.2.3.32 (message descriptions)
|
87
|
3gpp TS 29.060 (GTP-C), section 7.5.14, RAN Information Management Messages (RIM)
|
88
|
section 7.7.43, RAN Transparent Container
|
89
|
3gpp TS 23.060, section 8.1.5 RAN Information Management (RIM) procedures (Addressing, Routing, Relaying)
|
90
|
|
91
|
== Open5gs ==
|
92
|
grep for RIM:
|
93
|
lib/gtp/v1/message.c: RIM related message definitions are present.
|
94
|
lib/asn1c/: NGAP, S1AP, A lot of asn1c generated code.
|
95
|
lib/gtp/v1/support/cache/tlv-msg-70.py
|
96
|
lib/gtp/v1/support/cache/tlv-type-list.py
|
97
|
lib/ngap/ogs-ngap.h: includes some of the header files for the asn1c RIM message encoder/decoder
|
98
|
lib/s1ap/ogs-s1ap.h: includes some of the header files for the asn1c RIM message encoder/decoder
|
99
|
lib/sbi/openapi/model/ngap_ie_type.c: ngap_ie_typeArray[] with RIM stuff
|
100
|
lib/sbi/openapi/model/ngap_ie_type.h: enum with RIM stuff
|
101
|
==> Message definitions present, but no code that makes use of them.
|
102
|
|
103
|
== Open Questions ==
|
104
|
- ttcn3-hnbgw-test has no NACC tests. Does osmo-hnbgw have any RIM support? Is this in scope as well?
|
105
|
- osmo-sgsn: We apparantly support Gn towards MME, but what about the traffic?
|
106
|
- osmo-sgsn: is RIM routing properly tested?
|
107
|
|
108
|
== Milestones ==
|
109
|
- osmo-pcu: TTCN3 testsuite tests inter RAT inbound/outbound NACC and osmo-pcu behaves as expected
|
110
|
In this milestone we toughen osmo-pcu so that it will fully support 3G/4G NACC. This is our first step
|
111
|
towards better interoperability.
|
112
|
ToDo: * Extend osmo-pcu and related TTCN3 testsuite so that 3G/4G PacketCellChangeNotification is
|
113
|
is handled / tested properly
|
114
|
- Osmo-pcu does not understand 3G/4G PacketCellChangeNotification, see:
|
115
|
nacc_fsm.c:fill_neigh_key_from_bts_pkt_cell_chg_not()
|
116
|
- TTCN3 libraries also do not model 3G/4G PacketCellChangeNotification, see:
|
117
|
RLCMAC_CSN1_Types.ttcn:PacketCellChangeNotification
|
118
|
* Extend osmo-pcu TTCN3 testsuite so that inbound NACC is tested
|
119
|
- osmo-pcu should support inbound NACC requests, but the TTCN3 tests do cover this
|
120
|
|
121
|
- osmo-sgsn: Gn interface switching between GGSN and MME
|
122
|
This is an optional milestone since the MME can carry out all functions of a classic GGSN.
|
123
|
When implemented, all non LTE capable UEs would get their IP packet anchor in the classic GGSN,
|
124
|
all others would get the IP packet anchor in the EPC (evolved packet core).
|
125
|
|
126
|
- osmo-hnbgw: TTCN3 testsuite tests DirectInformationTransfer (RIM) and osmo-hnbgw behaves as expected
|
127
|
Similar to osmo-pcu we toughen osmo-hnbgw so that it will fully support 3G/4G NACC.
|
128
|
ToDo: * In hnbgw_ranap.c:ranap_rx_initiating_msg we can see that messages with procedure code
|
129
|
DirectInformationTransfer are dropped. Those messages, which come from the HNB, will contain
|
130
|
the RIM Ran Information Requests. (DirectInformationTransfer->InterSystemInformationTransferType->
|
131
|
rIM-Transfer, see also 3GPP TS 25.413, section 9.1.54) Also in hnbgw_cn.c:cn_ranap_rx_initiating_msg()
|
132
|
we do not know what to do with a DirectInformationTransfer. All this seems to be more or less just
|
133
|
about transparently forwarding those messages to the CN.
|
134
|
* Extend osmo-hnbgw TTCN3 testsuite so that it verifes that DirectInformationTransfer works.
|
135
|
|
136
|
- osmo-sgsn: OsmoSGSN has a TTCN3 test that tests a RAN information Request with a GERAN cell TC_bssgp_rim_single_report.
|
137
|
This should be/is extended so that also UTRAN and EUTRAN cells are queried Also we need to add tests that check if the
|
138
|
reverse direction actually works (MME asks via Gn interface for GERAN cell info).
|
139
|
ToDo: * Extend TTCN3 testsuite so that it tests the GERAN originated RAN information Request with a 4G target
|
140
|
cell. (Also add a test that tests the same with a 3G cell, the request might have to be routed through
|
141
|
RANAP, so this might require the completion of the RANAP part first.) In sgsn_rim.c:sgsn_rim_rx_from_gb we
|
142
|
see that we should be able to query GERAN and even EUTRAN cells. But apparantly we lack support for EUTRAN
|
143
|
cells.
|
144
|
* In osmo-iuh.git, iu_client.c:cn_ranap_handle_co we can see that no DirectInformationTransfer (Not to be
|
145
|
confused with DirectTransfer) is supported. Also the code that uses the iu_client in osmo-sgsn has no
|
146
|
knowlegde about DirectInformationTransfer, so RIM support for 3G/RANAP is missing and needs to be
|
147
|
implemented.
|
148
|
|
149
|
- open5gs: A TTCN3 testsuite that tests the RIM capabilities exists and open5gs is extended so that RIM containers are routed
|
150
|
between S1/ENBs and Gn/GTP.
|
151
|
ToDo: * As it seems open5gs has no RIM support. The message definitions are present but no procedures are
|
152
|
implemented. This means we have to extend open5gs with RIM capabilities first. We also need a testsuite
|
153
|
to do the implementation, so adding RIM support and developing the testsuite will have to be done in
|
154
|
parallel.
|
155
|
|
156
|
|
157
|
====================
|
158
|
= CR =
|
159
|
====================
|
160
|
|
161
|
Cell Reselection from GRPS (Packet transfer mode or packet_idle) to E-UTRA (RRC idle)
|
162
|
Cell Reselection from E-UTRA (any state) to GERAN (packet_idle)
|
163
|
==> Slowest method, UEs search for new cell as soon as they lose signal.
|
164
|
|
165
|
== Steps ==
|
166
|
- UE looses signal
|
167
|
- State change: RRC_CONNECTED / GSM_CONNECTED => RRC_IDLE / PACKET_IDLE
|
168
|
- Cell Reselection
|
169
|
- Connection establishment on selected cell
|
170
|
|
171
|
== Conclusion ==
|
172
|
- This method is the simplest possible but also the most inefficient.
|
173
|
- Simple because no communication betwen E-UTRAN and GERAN is required.
|
174
|
- Already works with Osmocom and open5gs.
|
175
|
|