mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-23 08:12:01 +00:00
msc_compl_l3(): publish in .h, tweak return value
Use new libmsc enum values for return val, to avoid dependency on libbsc headers. Make callable from other scopes: publish in osmo_msc.h and remove 'static' in osmo_msc.c Change-Id: If24007445899e9c75553a0dbf843ada3566b3380
This commit is contained in:
@@ -50,9 +50,15 @@ static inline const char *subscr_conn_from_name(enum subscr_conn_from val)
|
||||
return get_value_string(subscr_conn_from_names, val);
|
||||
}
|
||||
|
||||
enum msc_compl_l3_rc {
|
||||
MSC_CONN_ACCEPT = 0,
|
||||
MSC_CONN_REJECT = 1,
|
||||
};
|
||||
|
||||
void msc_subscr_conn_init(void);
|
||||
|
||||
struct bsc_api *msc_bsc_api();
|
||||
|
||||
#define subscr_con_get(conn) _subscr_con_get(conn, __BASE_FILE__, __LINE__)
|
||||
struct gsm_subscriber_connection *
|
||||
_subscr_con_get(struct gsm_subscriber_connection *conn,
|
||||
@@ -66,6 +72,8 @@ int msc_create_conn_fsm(struct gsm_subscriber_connection *conn, const char *id);
|
||||
int msc_vlr_alloc(struct gsm_network *net);
|
||||
int msc_vlr_start(struct gsm_network *net);
|
||||
|
||||
enum msc_compl_l3_rc msc_compl_l3(struct gsm_subscriber_connection *conn,
|
||||
struct msgb *msg, uint16_t chosen_channel);
|
||||
void msc_close_connection(struct gsm_subscriber_connection *conn);
|
||||
|
||||
bool msc_subscr_conn_is_accepted(struct gsm_subscriber_connection *conn);
|
||||
|
@@ -21,6 +21,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <openbsc/osmo_msc.h>
|
||||
#include <openbsc/bsc_api.h>
|
||||
#include <openbsc/debug.h>
|
||||
#include <openbsc/transaction.h>
|
||||
@@ -64,9 +65,10 @@ static bool keep_conn(struct gsm_subscriber_connection *conn)
|
||||
}
|
||||
}
|
||||
|
||||
/* Receive a COMPLETE LAYER3 INFO from BSC */
|
||||
static int msc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg,
|
||||
uint16_t chosen_channel)
|
||||
/* receive a Level 3 Complete message and return MSC_CONN_ACCEPT or
|
||||
* MSC_CONN_REJECT */
|
||||
enum msc_compl_l3_rc msc_compl_l3(struct gsm_subscriber_connection *conn,
|
||||
struct msgb *msg, uint16_t chosen_channel)
|
||||
{
|
||||
gsm0408_new_conn(conn);
|
||||
gsm0408_dispatch(conn, msg);
|
||||
@@ -76,13 +78,13 @@ static int msc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg
|
||||
|
||||
if (!keep_conn(conn)) {
|
||||
DEBUGP(DMM, "compl_l3: Discarding conn\n");
|
||||
return BSC_API_CONN_POL_REJECT;
|
||||
return MSC_CONN_REJECT;
|
||||
}
|
||||
DEBUGP(DMM, "compl_l3: Keeping conn\n");
|
||||
conn->owned_by_msc = true;
|
||||
DEBUGP(DMM, "%s owned_by_msc = true\n",
|
||||
vlr_subscr_name(conn->vsub));
|
||||
return BSC_API_CONN_POL_ACCEPT;
|
||||
return MSC_CONN_ACCEPT;
|
||||
|
||||
#if 0
|
||||
/*
|
||||
@@ -91,14 +93,14 @@ static int msc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg
|
||||
* pending transaction or ongoing operation.
|
||||
*/
|
||||
if (conn->silent_call)
|
||||
return BSC_API_CONN_POL_ACCEPT;
|
||||
if (conn->sec_operation || conn->anch_operation)
|
||||
return BSC_API_CONN_POL_ACCEPT;
|
||||
return MSC_CONN_ACCEPT;
|
||||
if (conn->loc_operation || conn->sec_operation || conn->anch_operation)
|
||||
return MSC_CONN_ACCEPT;
|
||||
if (trans_has_conn(conn))
|
||||
return BSC_API_CONN_POL_ACCEPT;
|
||||
return MSC_CONN_ACCEPT;
|
||||
|
||||
LOGP(DRR, LOGL_INFO, "MSC Complete L3: Rejecting connection.\n");
|
||||
return BSC_API_CONN_POL_REJECT;
|
||||
return MSC_CONN_REJECT;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user