aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-04-14 18:34:18 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2019-04-25 20:01:19 +0000
commit03e87549604893541d10085c21cb01b835a7a094 (patch)
tree6a77e791851bd69fb22713e696a65cac0af24cbe
parentbaccf3a74ba90ff7f8a8c278627e0ad862b434e7 (diff)
libmsc/gsm_04_11.c: clarify implicit CP-ACK handling
-rw-r--r--src/libmsc/gsm_04_11.c10
1 files 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;