From 03e87549604893541d10085c21cb01b835a7a094 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sun, 14 Apr 2019 18:34:18 +0700 Subject: libmsc/gsm_04_11.c: clarify implicit CP-ACK handling Change-Id: I3c5327a5019590c65d0ccb33a52f07b3988ea952 --- src/libmsc/gsm_04_11.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c index 434f87858..da0744a3a 100644 --- a/src/libmsc/gsm_04_11.c +++ b/src/libmsc/gsm_04_11.c @@ -1238,11 +1238,13 @@ int gsm0411_rcv_sms(struct ran_conn *conn, LOG_TRANS(trans, LOGL_DEBUG, "receiving SMS message %s\n", gsm48_pdisc_msgtype_name(gsm48_hdr_pdisc(gh), gsm48_hdr_msg_type(gh))); - /* 5.4: For MO, if a CP-DATA is received for a new - * transaction, equals reception of an implicit - * last CP-ACK for previous transaction */ + /* According to section 5.3.4, due to structure of message flow on + * SAPI 0 and 3 it is possible that the CP-ACK of a short message + * transfer might not be received. In this case the reception of + * CP-DATA may be interpreted as the reception of the awaited + * CP-ACK (implicit) and CP-DATA message. */ if (trans->sms.smc_inst.cp_state == GSM411_CPS_IDLE - && msg_type == GSM411_MT_CP_DATA) { + && msg_type == GSM411_MT_CP_DATA) { int i; struct gsm_trans *ptrans; -- cgit v1.2.3