Attention is currently required from: pespin. neels has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-msc/+/30107 )
Change subject: log CC timeouts ......................................................................
Patch Set 1:
(1 comment)
File src/libmsc/gsm_04_08_cc.c:
https://gerrit.osmocom.org/c/osmo-msc/+/30107/comment/f097e6b6_7050c7fe PS1, Line 401: LOG_TRANS(trans, LOGL_INFO, "Timeout of T%x\n", trans->cc.Tcurrent);
what? are timers in hexadecimal notation? I don't recall ever seeing that.
it's super weird, but that's how the osmo-nitb legacy code was written. These greps will explain:
▶ sgrep Tcurrent include/osmocom/msc/transaction.h:97: int Tcurrent; /* current CC timer */ src/libmsc/gsm_04_08_cc.c:225: LOG_TRANS(trans, LOGL_DEBUG, "stopping pending timer T%x\n", trans->cc.Tcurrent); src/libmsc/gsm_04_08_cc.c:227: trans->cc.Tcurrent = 0; src/libmsc/gsm_04_08_cc.c:401: LOG_TRANS(trans, LOGL_INFO, "Timeout of T%x\n", trans->cc.Tcurrent); src/libmsc/gsm_04_08_cc.c:408: switch(trans->cc.Tcurrent) { src/libmsc/gsm_04_08_cc.c:462: mo_rel.cause.diag[0] = ((trans->cc.Tcurrent & 0xf00) >> 8) + '0'; src/libmsc/gsm_04_08_cc.c:463: mo_rel.cause.diag[1] = ((trans->cc.Tcurrent & 0x0f0) >> 4) + '0'; src/libmsc/gsm_04_08_cc.c:464: mo_rel.cause.diag[2] = (trans->cc.Tcurrent & 0x00f) + '0'; src/libmsc/gsm_04_08_cc.c:507: trans->cc.Tcurrent = current; src/libmsc/msc_vty.c:847: trans->cc.Tcurrent,
▶ sgrep gsm48_start_cc_timer src/libmsc/gsm_04_08_cc.c:501:static void gsm48_start_cc_timer(struct gsm_trans *trans, int current, src/libmsc/gsm_04_08_cc.c:665: gsm48_start_cc_timer(trans, 0x303, GSM48_T303); src/libmsc/gsm_04_08_cc.c:712: gsm48_start_cc_timer(trans, 0x310, GSM48_T310); src/libmsc/gsm_04_08_cc.c:807: gsm48_start_cc_timer(trans, 0x301, GSM48_T301); src/libmsc/gsm_04_08_cc.c:887: gsm48_start_cc_timer(trans, 0x313, GSM48_T313); src/libmsc/gsm_04_08_cc.c:1039: gsm48_start_cc_timer(trans, 0x306, GSM48_T306); src/libmsc/gsm_04_08_cc.c:1138: gsm48_start_cc_timer(trans, 0x308, GSM48_T308); src/libmsc/gsm_04_08_cc.c:1470: gsm48_start_cc_timer(trans, 0x323, GSM48_T323);
For inter-MSC handover i had to write a separate CC FSM (mncc_call.c). It would be nice to also replace this old CC code with using that FSM, we would drop a lot of code that looks weird from today's perspective.