Interfaces ========== See also: LTE-Multi-RAT 2.1.3 Rel.7 SGSN: Gn: SGSN<->PDN-GW (GTPv1C, 3gpp ts 29.060) -> 3gpp ts 3gpp TS 29.060, section 7.5.14 RAN Information Management Messages (RIM) Procedures: 3gpp TS 23.060, section 8.1.5, Messages: 3gpp TS 48.018 Gn: SGSN<->MME Gr: SGSN<->HSS/HLR Rel.8 SGSN: S4: SGSN<->SGW (GTPv2-C) S3: SGSN<->MME S6d: SGSN<->HSS/HLR (Diameter) Direct tunneling (3G) S12: SGW<->RNC (GTPv1-U) Interfaces using RIM: Gb (BSSGP), Iu (RANAP), Gn (GTPv1), S16 (GTPv2) Routing ==================== = PS HO = ==================== Cell Reselection from GRPS (Packet transfer mode or packet_idle) to E-UTRA (RRC idle) Cell Reselection from E-UTRA (any state) to GERAN (packet_idle) ==> Fastest, but most complex ==================== = CCO/NACC = ==================== CCO + NACC from E-UTRAN (connected/DRX) to GERAN (packet_idle) CCO + NACC rom GERAN (GPRS packet transfer) to E-UTRAN (RRC idle) ==> Medium complexity, can work without intervention by the network. UEs request cell info via RIM and perform the cell change based on that info. == System information == - CCN (Cell Change Notification) must be enabled in SI (UTRAN/3G:PSI3g EUTRAN:SI2q) osmo-pcu already enables CCN in SI13 == Messages (GERAN) == RAN: PACKET_MEASUREMENT_ORDER RAN: PACKET_CELL_CHANGE_ORDER RAN: CHELL_CHANGE_CONTINUE RAN: PS_HANDOVER_COMMAND RAN: PACKET_NEIGHBOUR_CELL_DATA MS: PACKET_CELL_CHANGE_NOTIFICATION == Steps (GPRS) == (UE makes sure that CCN (Cell Change Notification) is enabled in SI (UTRAN/3G:PSI3g EUTRAN:SI2q) - UE wants to change to a different cell on a different RAT, but does not have the system information to perform the cell change yet. - UE sends PACKET_CELL_CHANGE_NOTIFICATION to network to propose a cell (can be one or more) - Network sends PACKET_NEIGHBOUR_CELL_DATA back (multiple messages) - Network sends PACKET_CELL_CHANGE_CONTINUE, UE changes cell autonomously - (Network may also respond with PACKET_CELL_CHANGE_ORDER (CCO) or a PS_HANDOVER_COMMAND) MS PCU open5gs | | | |----PACKET_CELL_CHANGE_NOTIFICATION----->| | | +-----------------------------------------+ |<------PACKET_NEIGHBOUR_CELL_DATA-----| | |<------PACKET_NEIGHBOUR_CELL_DATA-----| RIM RAN INFORMATION REQUEST | |<------PACKET_NEIGHBOUR_CELL_DATA-----| | |<------PACKET_NEIGHBOUR_CELL_DATA-----| | | +-----------------------------------------+ | | | |<------PACKET_CELL_CHANGE_CONTINUE-------| | | | | == Interfaces == Gb/BSSGP (2g/GPRS) Iu/RANAP (3g) Gn/GTPv1/RIM (SGSN<==>MME) S16/GTPv2/RIM (rel. 8 only, interconnects multiple SGSN) == Specs == 3gpp TS 44.060 (GPRS/RLCMAC), section 8.8 Network Assisted Cell Change procedures 3gpp TS 48.018 (BSSGP), section 8c Signalling procedures between RIM SAPs 3gpp TS 25.413 (RANAP), section 9.2.3.30-9.2.3.32 (message descriptions) 3gpp TS 29.060 (GTP-C), section 7.5.14, RAN Information Management Messages (RIM) section 7.7.43, RAN Transparent Container 3gpp TS 23.060, section 8.1.5 RAN Information Management (RIM) procedures (Addressing, Routing, Relaying) == Open5gs == grep for RIM: lib/gtp/v1/message.c: RIM related message definitions are present. lib/asn1c/: NGAP, S1AP, A lot of asn1c generated code. lib/gtp/v1/support/cache/tlv-msg-70.py lib/gtp/v1/support/cache/tlv-type-list.py lib/ngap/ogs-ngap.h: includes some of the header files for the asn1c RIM message encoder/decoder lib/s1ap/ogs-s1ap.h: includes some of the header files for the asn1c RIM message encoder/decoder lib/sbi/openapi/model/ngap_ie_type.c: ngap_ie_typeArray[] with RIM stuff lib/sbi/openapi/model/ngap_ie_type.h: enum with RIM stuff ==> Message definitions present, but no code that makes use of them. == Open Questions == - ttcn3-hnbgw-test has no NACC tests. Does osmo-hnbgw have any RIM support? Is this in scope as well? - osmo-sgsn: We apparantly support Gn towards MME, but what about the traffic? - osmo-sgsn: is RIM routing properly tested? == Milestones == - osmo-pcu: TTCN3 testsuite tests inter RAT inbound/outbound NACC and osmo-pcu behaves as expected In this milestone we toughen osmo-pcu so that it will fully support 3G/4G NACC. This is our first step towards better interoperability. ToDo: * Extend osmo-pcu and related TTCN3 testsuite so that 3G/4G PacketCellChangeNotification is is handled / tested properly - Osmo-pcu does not understand 3G/4G PacketCellChangeNotification, see: nacc_fsm.c:fill_neigh_key_from_bts_pkt_cell_chg_not() - TTCN3 libraries also do not model 3G/4G PacketCellChangeNotification, see: RLCMAC_CSN1_Types.ttcn:PacketCellChangeNotification * Extend osmo-pcu TTCN3 testsuite so that inbound NACC is tested - osmo-pcu should support inbound NACC requests, but the TTCN3 tests do cover this - osmo-sgsn: Gn interface switching between GGSN and MME This is an optional milestone since the MME can carry out all functions of a classic GGSN. When implemented, all non LTE capable UEs would get their IP packet anchor in the classic GGSN, all others would get the IP packet anchor in the EPC (evolved packet core). - osmo-hnbgw: TTCN3 testsuite tests DirectInformationTransfer (RIM) and osmo-hnbgw behaves as expected Similar to osmo-pcu we toughen osmo-hnbgw so that it will fully support 3G/4G NACC. ToDo: * In hnbgw_ranap.c:ranap_rx_initiating_msg we can see that messages with procedure code DirectInformationTransfer are dropped. Those messages, which come from the HNB, will contain the RIM Ran Information Requests. (DirectInformationTransfer->InterSystemInformationTransferType-> rIM-Transfer, see also 3GPP TS 25.413, section 9.1.54) Also in hnbgw_cn.c:cn_ranap_rx_initiating_msg() we do not know what to do with a DirectInformationTransfer. All this seems to be more or less just about transparently forwarding those messages to the CN. * Extend osmo-hnbgw TTCN3 testsuite so that it verifes that DirectInformationTransfer works. - osmo-sgsn: OsmoSGSN has a TTCN3 test that tests a RAN information Request with a GERAN cell TC_bssgp_rim_single_report. This should be/is extended so that also UTRAN and EUTRAN cells are queried Also we need to add tests that check if the reverse direction actually works (MME asks via Gn interface for GERAN cell info). ToDo: * Extend TTCN3 testsuite so that it tests the GERAN originated RAN information Request with a 4G target cell. (Also add a test that tests the same with a 3G cell, the request might have to be routed through RANAP, so this might require the completion of the RANAP part first.) In sgsn_rim.c:sgsn_rim_rx_from_gb we see that we should be able to query GERAN and even EUTRAN cells. But apparantly we lack support for EUTRAN cells. * In osmo-iuh.git, iu_client.c:cn_ranap_handle_co we can see that no DirectInformationTransfer (Not to be confused with DirectTransfer) is supported. Also the code that uses the iu_client in osmo-sgsn has no knowlegde about DirectInformationTransfer, so RIM support for 3G/RANAP is missing and needs to be implemented. - open5gs: A TTCN3 testsuite that tests the RIM capabilities exists and open5gs is extended so that RIM containers are routed between S1/ENBs and Gn/GTP. ToDo: * As it seems open5gs has no RIM support. The message definitions are present but no procedures are implemented. This means we have to extend open5gs with RIM capabilities first. We also need a testsuite to do the implementation, so adding RIM support and developing the testsuite will have to be done in parallel. ==================== = CR = ==================== Cell Reselection from GRPS (Packet transfer mode or packet_idle) to E-UTRA (RRC idle) Cell Reselection from E-UTRA (any state) to GERAN (packet_idle) ==> Slowest method, UEs search for new cell as soon as they lose signal. == Steps == - UE looses signal - State change: RRC_CONNECTED / GSM_CONNECTED => RRC_IDLE / PACKET_IDLE - Cell Reselection - Connection establishment on selected cell == Conclusion == - This method is the simplest possible but also the most inefficient. - Simple because no communication betwen E-UTRAN and GERAN is required. - Already works with Osmocom and open5gs.