rx CM Service Req: reject double use sooner
When a CM Service Req is being rejected, we should do so before changing the state of the current conn. Concerning multiple CM Service Requests: in fact we should store multiple requests, but first fix the status quo of rejecting multiple requests. Change-Id: I39209ee6662694aa054a2fc0d21eae76fb33e2f1
This commit is contained in:
parent
46c06e28c1
commit
7ce21dc589
|
@ -726,6 +726,14 @@ int gsm48_rx_mm_serv_req(struct ran_conn *conn, struct msgb *msg)
|
|||
GSM48_REJECT_INCORRECT_MESSAGE);
|
||||
}
|
||||
|
||||
if (ran_conn_is_establishing_auth_ciph(conn)) {
|
||||
LOG_RAN_CONN(conn, LOGL_ERROR,
|
||||
"Cannot accept CM Service Request, conn already busy establishing authenticity\n");
|
||||
msc_vlr_tx_cm_serv_rej(conn, GSM48_REJECT_CONGESTION);
|
||||
return -EINVAL;
|
||||
/* or should we accept and note down the service request anyway? */
|
||||
}
|
||||
|
||||
gsm48_mi_to_string(mi_string, sizeof(mi_string), mi, mi_len);
|
||||
|
||||
mi_type = mi[0] & GSM_MI_TYPE_MASK;
|
||||
|
@ -764,13 +772,6 @@ int gsm48_rx_mm_serv_req(struct ran_conn *conn, struct msgb *msg)
|
|||
if (ran_conn_is_accepted(conn))
|
||||
return cm_serv_reuse_conn(conn, mi_p);
|
||||
|
||||
if (ran_conn_is_establishing_auth_ciph(conn)) {
|
||||
LOGP(DMM, LOGL_ERROR,
|
||||
"Cannot accept CM Service Request, conn already busy establishing authenticity\n");
|
||||
msc_vlr_tx_cm_serv_rej(conn, GSM48_REJECT_CONGESTION);
|
||||
return -EINVAL;
|
||||
/* or should we accept and note down the service request anyway? */
|
||||
}
|
||||
|
||||
ran_conn_update_id(conn, COMPLETE_LAYER3_CM_SERVICE_REQ, mi_string);
|
||||
|
||||
|
|
|
@ -316,8 +316,7 @@ DMM RAN_conn(LU:901700000004620){RAN_CONN_S_AUTH_CIPH}: Awaiting results for Aut
|
|||
MSC <--GERAN-A-- MS: GSM48_MT_MM_CM_SERV_REQ
|
||||
DREF IMSI:901700000004620: MSC conn use + dtap == 1 (0x2: dtap)
|
||||
DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24)
|
||||
DMM RAN_conn(LU:901700000004620){RAN_CONN_S_AUTH_CIPH}: Rx CM SERVICE REQUEST cm_service_type=0x08 MI(IMSI)=901700000004620
|
||||
DMM Cannot accept CM Service Request, conn already busy establishing authenticity
|
||||
DBSSAP RAN_conn(LU:901700000004620){RAN_CONN_S_AUTH_CIPH}: Cannot accept CM Service Request, conn already busy establishing authenticity
|
||||
DMM -> CM SERVICE Reject cause: 22
|
||||
DMSC msc_tx 3 bytes to IMSI:901700000004620 via GERAN-A
|
||||
- DTAP --GERAN-A--> MS: GSM48_MT_MM_CM_SERV_REJ: 052216
|
||||
|
|
Loading…
Reference in New Issue