This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Neels Hofmeyr gerrit-no-reply at lists.osmocom.orgNeels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12029 Change subject: drop msc_compl_l3() return value ...................................................................... drop msc_compl_l3() return value msc_compl_l3() always returns MSC_CONN_ACCEPT, because the conn FSM handles (or should handle) all reject cases. The accept/reject return value is a legacy from libbsc internally passing a conn over to libmsc, in osmo-nitb. Drop enum msc_compl_l3_rc. Change msc_compl_l3_rc() to return void. Change all callers to always act like for acceptance, as they always did anyway. Drop some local variables now no longer needed. Adjust the comment to msc_compl_l3(). Drop a bunch of #if-0'd code from msc_compl_l3(). Change-Id: I759d15f4e820d5fc16397ed7210ce92308e52a09 --- M include/osmocom/msc/osmo_msc.h M src/libmsc/a_iface_bssap.c M src/libmsc/iucs.c M src/libmsc/osmo_msc.c 4 files changed, 11 insertions(+), 51 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/29/12029/1 diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h index ad81da5..674de3b 100644 --- a/include/osmocom/msc/osmo_msc.h +++ b/include/osmocom/msc/osmo_msc.h @@ -40,11 +40,6 @@ SUBSCR_CONN_S_RELEASED, }; -enum msc_compl_l3_rc { - MSC_CONN_ACCEPT = 0, - MSC_CONN_REJECT = 1, -}; - struct gsm_subscriber_connection *msc_subscr_conn_alloc(struct gsm_network *network, enum ran_type via_ran, uint16_t lac); @@ -59,8 +54,8 @@ void msc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci); int msc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause); -int msc_compl_l3(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint16_t chosen_channel); +void msc_compl_l3(struct gsm_subscriber_connection *conn, + struct msgb *msg, uint16_t chosen_channel); void msc_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg); int msc_classmark_request_then_cipher_mode_cmd(struct gsm_subscriber_connection *conn, bool umts_aka, bool retrieve_imeisv); diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c index 9a2333d..77d84b3 100644 --- a/src/libmsc/a_iface_bssap.c +++ b/src/libmsc/a_iface_bssap.c @@ -260,8 +260,6 @@ uint16_t lac = 0; uint8_t data_length; const uint8_t *data; - int rc; - struct gsm_network *network = a_conn_info->network; struct gsm_subscriber_connection *conn; @@ -345,17 +343,8 @@ conn = subscr_conn_allocate_a(a_conn_info, network, lac, scu, a_conn_info->conn_id); /* Handover location update to the MSC code */ - rc = msc_compl_l3(conn, msg, 0); - - if (rc == MSC_CONN_ACCEPT) { - LOGP(DMSC, LOGL_INFO, "User has been accepted by MSC.\n"); - return 0; - } else if (rc == MSC_CONN_REJECT) - LOGP(DMSC, LOGL_INFO, "User has been rejected by MSC.\n"); - else - LOGP(DMSC, LOGL_INFO, "User has been rejected by MSC (unknown error)\n"); - - return -EINVAL; + msc_compl_l3(conn, msg, 0); + return 0; } /* Endpoint to handle BSSMAP classmark update */ diff --git a/src/libmsc/iucs.c b/src/libmsc/iucs.c index 95bbbee..c3fea0d 100644 --- a/src/libmsc/iucs.c +++ b/src/libmsc/iucs.c @@ -142,7 +142,6 @@ int gsm0408_rcvmsg_iucs(struct gsm_network *network, struct msgb *msg, uint16_t *lac) { - int rc; struct ranap_ue_conn_ctx *ue_ctx; struct gsm_subscriber_connection *conn; @@ -174,7 +173,6 @@ OSMO_ASSERT(pdisc != GSM48_PDISC_RR); msc_dtap(conn, msg); - rc = 0; } else { /* allocate a new connection */ @@ -191,10 +189,10 @@ abort(); /* ownership of conn hereby goes to the MSC: */ - rc = msc_compl_l3(conn, msg, 0); + msc_compl_l3(conn, msg, 0); } - return rc; + return 0; } int iu_rab_act_cs(struct gsm_trans *trans) diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index f2c84e6..9a371a4 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -87,37 +87,15 @@ gsm411_sapi_n_reject(conn); } -/* receive a Level 3 Complete message and return MSC_CONN_ACCEPT or - * MSC_CONN_REJECT */ -int msc_compl_l3(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint16_t chosen_channel) +/* receive a Level 3 Complete message. + * Ownership of the conn is completely passed to the conn FSM, i.e. for both acceptance and rejection, + * the conn FSM shall decide when to release this conn. It may already be discarded before this exits. */ +void msc_compl_l3(struct gsm_subscriber_connection *conn, + struct msgb *msg, uint16_t chosen_channel) { msc_subscr_conn_get(conn, MSC_CONN_USE_COMPL_L3); gsm0408_dispatch(conn, msg); - msc_subscr_conn_put(conn, MSC_CONN_USE_COMPL_L3); - - /* Always return acceptance, because even if the conn was not accepted, - * we assumed ownership of it and the caller shall not interfere with - * that. We may even already have discarded the conn. */ - return MSC_CONN_ACCEPT; - -#if 0 - /* - * If this is a silent call we want the channel to remain open as long as - * possible and this is why we accept this connection regardless of any - * pending transaction or ongoing operation. - */ - if (conn->silent_call) - return MSC_CONN_ACCEPT; - if (conn->loc_operation || conn->sec_operation || conn->anch_operation) - return MSC_CONN_ACCEPT; - if (trans_has_conn(conn)) - return MSC_CONN_ACCEPT; - - LOGP(DRR, LOGL_INFO, "MSC Complete L3: Rejecting connection.\n"); - return MSC_CONN_REJECT; -#endif } /* Receive a DTAP message from BSC */ -- To view, visit https://gerrit.osmocom.org/12029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I759d15f4e820d5fc16397ed7210ce92308e52a09 Gerrit-Change-Number: 12029 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181130/a0dfbaa4/attachment.htm>