libosmocore/src/gsm
Pau Espin 3278f0fb3c iuup: Fix Handling of subsequent Initialization msgs
Once the IuUP FSM moved away from Init state, it stopped handling
Initialization messages received from peers and simply ignored them
starting from that point. As a result, if the first IuUP Init ACK it
sent to the peer was lost, the peer would keep retrying with more IuUP
Init and getting no answer.
In any case, it seems possible and desirable that a peer may send an
IuUP Init at a later point, as pointed out vaguely in 3GPP TS 25.415.

sec 6.5.2.1:
"""
Upon reception of a frame indicating that an Initialisation procedure is
active in the peer Iu UP entity, the Iu UP protocol layer forwards the whole
protocol information contained in the INITIALISATION control frame to the
upper layers. It also stores the RAB sub-Flow Combination set (and thus
replaces a possible previous set) in order to control during the transfer of
user data, that the Iu UP payload is correctly formatted (e.g. RFCI matches
the expected Iu UP frame payload total length). The peer Iu UP entity
receiving the INITIALISATION control frame shall choose a version that it
supports among the proposed versions indicated by the sender for which it
has enough initialisation information.
"""

sec B.2.2 "Initialisation State":
"""
After sending a positive acknowledgement of the last INITIALISATION control
frame, the Iu UP instance enters SMpSDU data transfer ready state. Note that
CN does not know if the initialisation ACK was correctly received by the RNC
(and Initialisation procedure successfully completed) until it receives RAB
assignment response, or use data from the RNC. The CN must therefore be able
to continue receiving INITIALISATION control frames by re-entering the
Initialisation state (from Support Mode Data Transfer Ready State), if the CN
has started to send user data before receiving the indication that
Initialisation was successfully completed
"""

sec B.2.3 "Support Mode Data Transfer Ready State":
"""
In case of handover or relocation, Initialisation procedures may have to be
performed and Iu UP instance may have to enter the initialisation state.
"""

Related: SYS#5995
Change-Id: I5cb740702805693cc7f0a550e2e093f9bfdd507c
2022-06-13 13:51:55 +02:00
..
kdf kdf: add key derivation functions 2021-06-08 02:38:15 +02:00
milenage add osmo_auth_c3() (separate from gsm_milenage()) 2017-12-18 23:05:24 +00:00
Makefile.am Introduce CRC and FSM for IuUP (user plane) as used in 3G RTP data 2021-12-22 14:58:31 +01:00
a5.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
abis_nm.c Rename osmo dyn ts enums 2021-06-30 13:14:08 +02:00
apn.c Use internal <osmocom/core/talloc.h> everywhere 2022-04-27 12:42:15 +00:00
auth_comp128v1.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
auth_comp128v23.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
auth_core.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
auth_milenage.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
auth_xor.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
bsslap.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
bssmap_le.c bssmap_le: support additional IEs in Perform Location Request 2022-03-22 18:38:19 +03:00
bts_features.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
cbsp.c cbsp: Add enum and value string for Cause 2022-06-09 18:17:43 +02:00
comp128.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
comp128v23.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gad.c gad.c: fix rc for osmo_gad_enc_ell_point_unc_circle() 2020-10-15 01:02:04 +00:00
gan.c Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
gea.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gprs_cipher_core.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gprs_gea.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gprs_rlc.c Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
gsm48.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm48_arfcn_range_encode.c range_enc_determine_range(): Don't dereference array on size=0 2021-06-01 14:04:20 +02:00
gsm48_ie.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm48_rest_octets.c gsm: Introduce API osmo_gsm48_rest_octets_si13_decode 2021-02-18 00:54:33 +00:00
gsm0341.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm0411_smc.c gsm0411_{smc,smr}.c: Work around newlib bug 2020-07-30 21:35:10 +02:00
gsm0411_smr.c fix spelling in 'value_string' arrays: existAnt -> existEnt 2020-10-29 18:09:36 +07:00
gsm0411_utils.c libosmogsm: (re)introduce gsm48_push_l3hdr() 2018-08-05 23:21:43 +07:00
gsm0414.c doxygen: unify use of \file across the board 2017-06-23 00:18:23 +00:00
gsm0480.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm0502.c libosmogsm: add Doxygen docs for gsm0502_hop_seq_gen() 2020-05-15 17:56:41 +00:00
gsm0808.c gsm0808: Add missing IEs in bss_att_tlvdef 2022-03-18 17:36:46 +01:00
gsm0808_utils.c gsm: [ABI BREAK] Support CellId SAI, change CellId CGI-PS id number 2022-02-16 17:59:23 +01:00
gsm23003.c gsm: [ABI BREAK] Support CellId SAI, change CellId CGI-PS id number 2022-02-16 17:59:23 +01:00
gsm23236.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm29118.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm29205.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
gsm48049.c gsm/gsm48049.c: fix use of GNU 'missing =' extension in designator 2020-01-21 18:34:04 +07:00
gsm_04_08_gprs.c fix spelling in 'value_string' arrays: existAnt -> existEnt 2020-10-29 18:09:36 +07:00
gsm_utils.c gsm_7bit_encode_n(): use regular malloc() instead of calloc() 2022-01-29 01:02:32 +06:00
gsup.c gsup: Introduce OSMO_GSUP_NUM_VECTORS_REQ_IE 2019-12-09 10:54:30 +00:00
gsup_sms.c GSUP/SMS: introduce MO-/MT-FORWARD-SM messages 2018-12-18 21:52:01 +07:00
i460_mux.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
ipa.c ipa_ccm_make_id_resp: Make it work at all 2021-04-29 19:59:12 +02:00
iuup.c iuup: Fix Handling of subsequent Initialization msgs 2022-06-13 13:51:55 +02:00
kasumi.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
kdf.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
lapd_core.c gsm: lapd_core: Change log line NOTICE->INFO 2022-03-02 19:03:32 +01:00
lapdm.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
libosmogsm.map Introduce CRC and FSM for IuUP (user plane) as used in 3G RTP data 2021-12-22 14:58:31 +01:00
mncc.c mncc: properly export osmo_mncc_name() 2018-05-24 12:19:45 +02:00
oap.c Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
oap_client.c oap_client: Fix license: GPLv2+ instead of AGPLv3+ 2019-05-27 23:26:45 +02:00
rsl.c jenkins: Validate gsm 08.58 IEs are added to tlv_definition 2022-04-05 17:38:25 +02:00
rxlev_stat.c treewide: remove FSF address 2021-12-14 12:44:03 +01:00
sysinfo.c Fix/Update copyright notices; Add SPDX annotation 2017-11-13 01:35:12 +09:00
tlv_parser.c cosmetic: tlv_parser: fix typo in func description 2021-04-14 17:21:02 +02:00