aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/gsm_04_08_cc.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-03-17 15:11:24 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2020-09-10 14:19:17 +0200
commitef154047dd0ea8613fbae6aba2586eb237314da9 (patch)
tree343768321d9246a0f831715ac96095ca5a06d700 /src/libmsc/gsm_04_08_cc.c
parent3e3c4c0c9de4a18e7a046d6f016f53aa67c77595 (diff)
CC: fix sanity expectations for call establishment
Recent 'add full SDP codec information to the MNCC...' patch has added a strict CC state sanity check, which is too strict: In tests with 200 concurrent calls, situations came up where the MNCC is faster than the Abis in establishing a call. If that happens, the CC state machine is already in GSM_CSTATE_ACTIVE when the RR channel assignment completes. Also allow GSM_CSTATE_ACTIVE state for accepting an Assignment Complete. Change-Id: I0e0767ec10232615bbf063181fc7f8738ef94f28
Diffstat (limited to 'src/libmsc/gsm_04_08_cc.c')
-rw-r--r--src/libmsc/gsm_04_08_cc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 2ee3957d4..32e918434 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -1900,6 +1900,10 @@ int cc_assignment_done(struct gsm_trans *trans)
/* MT call */
break;
+ case GSM_CSTATE_ACTIVE:
+ /* already active */
+ break;
+
default:
LOG_TRANS(trans, LOGL_ERROR, "Assignment done in unexpected CC state: %d\n", trans->cc.state);
return -EINVAL;