Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/10147
Change subject: cosmetic: reduce bsc_api.h ...................................................................... cosmetic: reduce bsc_api.h Remove as much as possible from bsc_api.h. Use '#pragma once'. Tweak head comment. BSC_API_CONN_POL_{ACCEPT,REJECT}: only user is static complete_layer3(), just use a bool return value instead. msc_connected(): only used in osmo_bsc_api.c, make static there. Instead of including gsm_data.h, declare structs opaquely, include stdint.h. codec_pref_test.c used this as indirect gsm_data.h include via osmo_bsc.h, include gsm_data.h there directly. osmo_bsc.h: instead of including bsc_api.h, declare opaque structs. gsm_04_08_rr.h: declare opaque structs to replace indirect include of gsm_data.h. Change-Id: Ia9c0f9828317236048e40ec9ecf9990592e2190a --- M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/osmo_bsc.h M src/osmo-bsc/osmo_bsc_api.c 4 files changed, 30 insertions(+), 25 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/47/10147/1 diff --git a/include/osmocom/bsc/bsc_api.h b/include/osmocom/bsc/bsc_api.h index dcfcc45..5241295 100644 --- a/include/osmocom/bsc/bsc_api.h +++ b/include/osmocom/bsc/bsc_api.h @@ -1,12 +1,10 @@ -/* GSM 08.08 like API for OpenBSC */ +/* GSM 08.08 function declarations for osmo-bsc */ -#ifndef OPENBSC_BSC_API_H -#define OPENBSC_BSC_API_H +#pragma once -#include "gsm_data.h" +#include <stdint.h> -#define BSC_API_CONN_POL_ACCEPT 0 -#define BSC_API_CONN_POL_REJECT 1 +struct gsm_subscriber_connection; void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci); void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr); @@ -16,11 +14,3 @@ void bsc_cm_update(struct gsm_subscriber_connection *conn, const uint8_t *cm2, uint8_t cm2_len, const uint8_t *cm3, uint8_t cm3_len); - -int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t link_id, - bool allow_sacch); -int gsm0808_assign_req(struct gsm_subscriber_connection *conn, int chan_mode, int full_rate); -int gsm0808_clear(struct gsm_subscriber_connection *conn); - -bool msc_connected(struct gsm_subscriber_connection *conn); -#endif diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index 63bec7a..8f46922 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -1,5 +1,18 @@ #pragma once +#include <stdint.h> + +struct amr_mode; +struct amr_multirate_conf; +struct bsc_subscr; +struct gsm48_chan_desc; +struct gsm48_pag_resp; +struct gsm_lchan; +struct gsm_meas_rep; +struct gsm_network; +struct gsm_subscriber_connection; +struct msgb; + void gsm_net_update_ctype(struct gsm_network *network); enum gsm_chan_t get_ctype_by_chreq(struct gsm_network *network, uint8_t ra); int get_reason_by_chreq(uint8_t ra, int neci); diff --git a/include/osmocom/bsc/osmo_bsc.h b/include/osmocom/bsc/osmo_bsc.h index 0e19b0b..bebfb2f 100644 --- a/include/osmocom/bsc/osmo_bsc.h +++ b/include/osmocom/bsc/osmo_bsc.h @@ -2,7 +2,6 @@ #include <osmocom/gsm/protocol/gsm_04_08.h> -#include <osmocom/bsc/bsc_api.h> #include <osmocom/bsc/bsc_msg_filter.h> #define BSS_SEND_USSD 1 @@ -18,6 +17,8 @@ struct gsm0808_channel_type; struct gsm0808_speech_codec_list; struct gsm_audio_support; +struct gsm_subscriber_connection; +struct gsm_bts; struct bsc_api *osmo_bsc_api(); diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index b4d080d..dfec19a 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -23,6 +23,7 @@ #include <osmocom/bsc/bsc_subscriber.h> #include <osmocom/bsc/debug.h> #include <osmocom/bsc/paging.h> +#include <osmocom/bsc/bsc_api.h> #include <osmocom/bsc/gsm_04_80.h> #include <osmocom/bsc/gsm_04_08_rr.h> @@ -36,7 +37,7 @@ #include <osmocom/bsc/osmo_bsc_sigtran.h> /* Check if we have a proper connection to the MSC */ -bool msc_connected(struct gsm_subscriber_connection *conn) +static bool msc_connected(struct gsm_subscriber_connection *conn) { /* No subscriber conn at all */ if (!conn) @@ -53,8 +54,8 @@ return true; } -static int complete_layer3(struct gsm_subscriber_connection *conn, - struct msgb *msg, struct bsc_msc_data *msc); +static bool complete_layer3(struct gsm_subscriber_connection *conn, + struct msgb *msg, struct bsc_msc_data *msc); static struct osmo_cell_global_id *cgi_for_msc(struct bsc_msc_data *msc, struct gsm_bts *bts) { @@ -438,8 +439,8 @@ return 0; } -static int complete_layer3(struct gsm_subscriber_connection *conn, - struct msgb *msg, struct bsc_msc_data *msc) +static bool complete_layer3(struct gsm_subscriber_connection *conn, + struct msgb *msg, struct bsc_msc_data *msc) { int con_type, rc, lu_cause; char *imsi = NULL; @@ -451,7 +452,7 @@ &imsi, &con_type, &lu_cause); if (rc < 0) { bsc_maybe_lu_reject(conn, con_type, lu_cause); - return BSC_API_CONN_POL_REJECT; + return false; } /* allocate resource for a new connection */ @@ -464,7 +465,7 @@ else if (ret == BSC_CON_REJECT_RF_GRACE) bsc_send_ussd_no_srv(conn, msg, msc->ussd_grace_txt); - return BSC_API_CONN_POL_REJECT; + return false; } /* TODO: also extract TMSI. We get an IMSI only when an initial L3 Complete comes in that @@ -493,12 +494,12 @@ resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), NULL); if (!resp) { LOGP(DMSC, LOGL_DEBUG, "Failed to create layer3 message.\n"); - return BSC_API_CONN_POL_REJECT; + return false; } osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CONN_REQ, resp); - return BSC_API_CONN_POL_ACCEPT; + return true; } /* @@ -519,7 +520,7 @@ * MSC. If it fails the caller will need to handle this * properly. */ - if (complete_layer3(_conn, msg, msc) != BSC_API_CONN_POL_ACCEPT) { + if (!complete_layer3(_conn, msg, msc)) { /* FIXME: I have not the slightest idea what move_to_msc() intends to do; during lchan * FSM introduction, I changed this and hope it is the appropriate action. I actually * assume this is unused legacy code for osmo-bsc_nat?? */ -- To view, visit https://gerrit.osmocom.org/10147 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia9c0f9828317236048e40ec9ecf9990592e2190a Gerrit-Change-Number: 10147 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr <nhofm...@sysmocom.de>