aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2020-07-16 14:20:32 +0200
committerlaforge <laforge@osmocom.org>2020-07-18 21:45:32 +0000
commite2f1c95774e934949cef9f5e4304fa82da070666 (patch)
tree84d4c445cbd4c9d251dabfa7fa3d16158d9d0e7e
parent388ed5848242f56a207abbc854aa5f2c519ffdb1 (diff)
bts: Drop duplicated function to get trx by number
In the big mess of gsm_data we reached a point where we have multiple functions doing the same thing, most probably because it's hard finding stuff in there. Let's drop one of them (the one which less callers) and move it to bts.*, where it belongs. Change-Id: I9071a0ab250844619280fbe2be63ed99f2c87eb1
-rw-r--r--include/osmocom/bsc/bts.h2
-rw-r--r--include/osmocom/bsc/gsm_data.h1
-rw-r--r--src/osmo-bsc/abis_nm.c4
-rw-r--r--src/osmo-bsc/abis_om2000.c4
-rw-r--r--src/osmo-bsc/abis_om2000_vty.c4
-rw-r--r--src/osmo-bsc/bsc_ctrl_lookup.c1
-rw-r--r--src/osmo-bsc/bts.c8
-rw-r--r--src/osmo-bsc/gsm_data.c15
8 files changed, 14 insertions, 25 deletions
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index 07d279333..b38c11ad7 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -598,7 +598,7 @@ struct gsm_lchan *gsm_bts_get_cbch(struct gsm_bts *bts);
int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type);
-struct gsm_bts_trx *gsm_bts_trx_by_nr(struct gsm_bts *bts, int nr);
+struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num);
int bts_gprs_mode_is_compat(struct gsm_bts *bts, enum bts_gprs_mode mode);
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index a74e6d982..f90bfa7db 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -963,7 +963,6 @@ struct gsm_bts *gsm_bts_by_cell_id(const struct gsm_network *net,
int match_idx);
struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts);
-struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num);
extern const struct value_string gsm_chreq_descs[];
extern const struct value_string gsm_pchant_names[];
diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c
index 4ce27f3d9..19eed8cf7 100644
--- a/src/osmo-bsc/abis_nm.c
+++ b/src/osmo-bsc/abis_nm.c
@@ -800,7 +800,7 @@ struct gsm_bts_trx_ts *abis_nm_get_ts(const struct msgb *oml_msg)
{
struct abis_om_fom_hdr *foh = msgb_l3(oml_msg);
struct e1inp_sign_link *sign_link = oml_msg->dst;
- struct gsm_bts_trx *trx = gsm_bts_trx_by_nr(sign_link->trx->bts, foh->obj_inst.trx_nr);
+ struct gsm_bts_trx *trx = gsm_bts_trx_num(sign_link->trx->bts, foh->obj_inst.trx_nr);
uint8_t ts_nr = foh->obj_inst.ts_nr;
if (!trx) {
LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for sign_link without trx\n",
@@ -2791,7 +2791,7 @@ static int abis_nm_rx_ipacc(struct msgb *msg)
/* The message might be received over the main OML link, so we cannot
* just use sign_link->trx. Resolve it by number from the FOM header. */
- trx = gsm_bts_trx_by_nr(sign_link->trx->bts, foh->obj_inst.trx_nr);
+ trx = gsm_bts_trx_num(sign_link->trx->bts, foh->obj_inst.trx_nr);
DEBUGPFOH(DNM, foh, "Rx IPACCESS(0x%02x): %s\n", foh->msg_type,
osmo_hexdump(foh->data, oh->length - sizeof(*foh)));
diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c
index 1e4ef9783..5c8b378ec 100644
--- a/src/osmo-bsc/abis_om2000.c
+++ b/src/osmo-bsc/abis_om2000.c
@@ -1039,7 +1039,7 @@ static int abis_om2k_sendmsg(struct gsm_bts *bts, struct msgb *msg)
case OM2K_MO_CLS_TX:
case OM2K_MO_CLS_RX:
/* Route through per-TRX OML Link to the appropriate TRX */
- trx = gsm_bts_trx_by_nr(bts, o2h->mo.inst);
+ trx = gsm_bts_trx_num(bts, o2h->mo.inst);
if (!trx) {
LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "
"non-existing TRX\n", om2k_mo_name(&o2h->mo));
@@ -1049,7 +1049,7 @@ static int abis_om2k_sendmsg(struct gsm_bts *bts, struct msgb *msg)
break;
case OM2K_MO_CLS_TS:
/* Route through per-TRX OML Link to the appropriate TRX */
- trx = gsm_bts_trx_by_nr(bts, o2h->mo.assoc_so);
+ trx = gsm_bts_trx_num(bts, o2h->mo.assoc_so);
if (!trx) {
LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "
"non-existing TRX\n", om2k_mo_name(&o2h->mo));
diff --git a/src/osmo-bsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c
index b00c7ddfe..26e8488cb 100644
--- a/src/osmo-bsc/abis_om2000_vty.c
+++ b/src/osmo-bsc/abis_om2000_vty.c
@@ -561,7 +561,7 @@ DEFUN(om2k_conf_req, om2k_conf_req_cmd,
abis_om2k_tx_con_conf_req(bts);
break;
case OM2K_MO_CLS_TS:
- trx = gsm_bts_trx_by_nr(bts, oms->mo.assoc_so);
+ trx = gsm_bts_trx_num(bts, oms->mo.assoc_so);
if (!trx) {
vty_out(vty, "%% BTS %u has no TRX %u%s", bts->nr,
oms->mo.assoc_so, VTY_NEWLINE);
@@ -578,7 +578,7 @@ DEFUN(om2k_conf_req, om2k_conf_req_cmd,
case OM2K_MO_CLS_RX:
case OM2K_MO_CLS_TX:
case OM2K_MO_CLS_TRXC:
- trx = gsm_bts_trx_by_nr(bts, oms->mo.inst);
+ trx = gsm_bts_trx_num(bts, oms->mo.inst);
if (!trx) {
vty_out(vty, "%% BTS %u has no TRX %u%s", bts->nr,
oms->mo.inst, VTY_NEWLINE);
diff --git a/src/osmo-bsc/bsc_ctrl_lookup.c b/src/osmo-bsc/bsc_ctrl_lookup.c
index 38d1ba4ea..4328d76eb 100644
--- a/src/osmo-bsc/bsc_ctrl_lookup.c
+++ b/src/osmo-bsc/bsc_ctrl_lookup.c
@@ -29,6 +29,7 @@
#include <osmocom/bsc/debug.h>
#include <osmocom/bsc/gsm_data.h>
#include <osmocom/bsc/bsc_msc_data.h>
+#include <osmocom/bsc/bts.h>
extern vector ctrl_node_vec;
diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c
index 71968f640..c94368489 100644
--- a/src/osmo-bsc/bts.c
+++ b/src/osmo-bsc/bts.c
@@ -570,14 +570,18 @@ int bts_gprs_mode_is_compat(struct gsm_bts *bts, enum bts_gprs_mode mode)
return 1;
}
-struct gsm_bts_trx *gsm_bts_trx_by_nr(struct gsm_bts *bts, int nr)
+struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num)
{
struct gsm_bts_trx *trx;
+ if (num >= bts->num_trx)
+ return NULL;
+
llist_for_each_entry(trx, &bts->trx_list, list) {
- if (trx->nr == nr)
+ if (trx->nr == num)
return trx;
}
+
return NULL;
}
diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c
index 12955929b..5daee2614 100644
--- a/src/osmo-bsc/gsm_data.c
+++ b/src/osmo-bsc/gsm_data.c
@@ -349,21 +349,6 @@ struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts)
return trx;
}
-struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num)
-{
- struct gsm_bts_trx *trx;
-
- if (num >= bts->num_trx)
- return NULL;
-
- llist_for_each_entry(trx, &bts->trx_list, list) {
- if (trx->nr == num)
- return trx;
- }
-
- return NULL;
-}
-
static char ts2str[255];
char *gsm_trx_name(const struct gsm_bts_trx *trx)