gmm: Expect E_VLR_ANSWERED when in ST_IU_SECURITY_CMD
GSUP message is sent immediately before moving onto state ST_IU_SECURITY_CMD, so it's expected to receive a response for it, which will trigger event E_VLR_ANSWERED being sent. See following log showing the scenario: """ GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x8137b88]{Authenticate}: Received Event E_AUTH_RESP_RECV_SUCCESS MM(001010123456789/f8bab3dc) Requesting authorization MM(001010123456789/f8bab3dc) Missing information, requesting subscriber data MM(001010123456789/f8bab3dc) Requesting subscriber data update SUBSCR(001010123456789) subscriber data is not available SUBSCR(001010123456789) Sending GSUP, will send: 04 01 08 00 01 01 21 43 65 60 f3 28 01 01 GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x8137b88]{Authenticate}: state_chg to IuSecurityCommand SUBSCR(001010123456789) Received GSUP message OSMO_GSUP_MSGT_INSERT_DATA_REQUEST SUBSCR(001010123456789) Will set PDP info, context id = 1, APN = 01 2a SUBSCR(001010123456789) Updating subscriber data MM(001010123456789/f8bab3dc) Subscriber data update MM(001010123456789/f8bab3dc) Updating authorization (authenticate -> accepted) MM(001010123456789/f8bab3dc) Got authorization update: state authenticate -> accepted MM(001010123456789/f8bab3dc) Authorized, continuing procedure, IMSI=001010123456789 GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x8137b88]{IuSecurityCommand}: Received Event E_VLR_ANSWERED GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x8137b88]{IuSecurityCommand}: Event E_VLR_ANSWERED not permitted SUBSCR(001010123456789) Sending GSUP, will send: 12 01 08 00 01 01 21 43 65 60 f3 28 01 01 SUBSCR(001010123456789) Received GSUP message OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT SUBSCR(001010123456789) Updating subscriber data MM(001010123456789/f8bab3dc) Subscriber data update MM(001010123456789/f8bab3dc) Updating authorization (accepted -> accepted) sccp_sap_up(N-DATA.indication) N-DATA.ind(2, 20 06 00 08 00 00 01 00 06 00 01 00 ) handle_co(dir=2, proc=6) Transmitting RANAP CommonID (SCCP conn_id 2) GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x8137b88]{IuSecurityCommand}: Received Event E_IU_SECURITY_CMD_COMPLETE GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x8137b88]{IuSecurityCommand}: state_chg to WaitAttachComplete """ Related: SYS#5389 Change-Id: If348ff32faa4a709b59ee1b9b043883a7d46cf93
This commit is contained in:
parent
c8ace5a03c
commit
ce0a0e9beb
|
@ -272,6 +272,13 @@ static void st_iu_security_cmd_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_
|
|||
static void st_iu_security_cmd(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||
{
|
||||
switch(event) {
|
||||
case E_VLR_ANSWERED:
|
||||
/* We may receive an event due to rx
|
||||
* OSMO_GSUP_MSGT_INSERT_DATA_REQUEST here. Do nothing, update of
|
||||
* subscriber is done by lower layers before event is signalled.
|
||||
* In this state we simply wait for E_IU_SECURITY_CMD_COMPLETE
|
||||
*/
|
||||
break;
|
||||
case E_IU_SECURITY_CMD_COMPLETE:
|
||||
gmm_attach_fsm_state_chg(fi, ST_ACCEPT);
|
||||
break;
|
||||
|
@ -308,7 +315,7 @@ static struct osmo_fsm_state gmm_attach_req_fsm_states[] = {
|
|||
.action = st_auth,
|
||||
},
|
||||
[ST_IU_SECURITY_CMD] = {
|
||||
.in_event_mask = X(E_IU_SECURITY_CMD_COMPLETE),
|
||||
.in_event_mask = X(E_IU_SECURITY_CMD_COMPLETE) | X(E_VLR_ANSWERED),
|
||||
.out_state_mask = X(ST_INIT) | X(ST_AUTH) | X(ST_ACCEPT) | X(ST_REJECT),
|
||||
.name = "IuSecurityCommand",
|
||||
.onenter = st_iu_security_cmd_on_enter,
|
||||
|
|
Loading…
Reference in New Issue