sgsn_libgtp: cb_data_ind: remove mm_idle assert
Log an error message and drop the packet instead of asserting if mm state fsm is in ST_MM_IDLE while the gmm fsm is in ST_GMM_REGISTERED_NORMAL. Fixes: OS#5725 Change-Id: I9dab98917c622b36dae22399bb359d747a598208
This commit is contained in:
parent
acd967a177
commit
55e3dc8ec8
|
@ -768,15 +768,24 @@ static int cb_data_ind(struct pdp_t *lib, void *packet, unsigned int len)
|
||||||
msgb_free(msg);
|
msgb_free(msg);
|
||||||
return -1;
|
return -1;
|
||||||
case ST_GMM_REGISTERED_NORMAL:
|
case ST_GMM_REGISTERED_NORMAL:
|
||||||
OSMO_ASSERT(mm->gb.mm_state_fsm->state != ST_MM_IDLE);
|
switch (mm->gb.mm_state_fsm->state) {
|
||||||
if (mm->gb.mm_state_fsm->state == ST_MM_STANDBY) {
|
case ST_MM_IDLE:
|
||||||
|
LOGP(DGPRS, LOGL_ERROR, "Dropping DL packet for MS in MM state %s\n",
|
||||||
|
osmo_fsm_inst_state_name(mm->gb.mm_state_fsm));
|
||||||
|
msgb_free(msg);
|
||||||
|
return -1;
|
||||||
|
case ST_MM_READY:
|
||||||
|
/* Go ahead */
|
||||||
|
break;
|
||||||
|
case ST_MM_STANDBY:
|
||||||
LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s, MM state %s\n",
|
LOGMMCTXP(LOGL_INFO, mm, "Paging MS in GMM state %s, MM state %s\n",
|
||||||
osmo_fsm_inst_state_name(mm->gmm_fsm),
|
osmo_fsm_inst_state_name(mm->gmm_fsm),
|
||||||
osmo_fsm_inst_state_name(mm->gb.mm_state_fsm));
|
osmo_fsm_inst_state_name(mm->gb.mm_state_fsm));
|
||||||
gprs_gb_page_ps_ra(mm);
|
gprs_gb_page_ps_ra(mm);
|
||||||
}
|
|
||||||
|
|
||||||
/* FIXME: queue the packet we received from GTP */
|
/* FIXME: queue the packet we received from GTP */
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOGP(DGPRS, LOGL_ERROR, "GTP DATA IND for TLLI %08X in state "
|
LOGP(DGPRS, LOGL_ERROR, "GTP DATA IND for TLLI %08X in state "
|
||||||
|
|
Loading…
Reference in New Issue