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/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/24550 ) Change subject: WIP: Support OSMO IPA multiplex ...................................................................... WIP: Support OSMO IPA multiplex Change-Id: I21beb4e5c101157cd0977fd9a607c2fe5350befe --- M include/osmocom/bsc/Makefile.am A include/osmocom/bsc/abis_osmo.h M include/osmocom/bsc/bts.h M include/osmocom/bsc/gsm_04_08_rr.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/pcuif_proto.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am A src/osmo-bsc/abis_osmo.c M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bts.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/gsm_04_08_rr.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/acc/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am 20 files changed, 244 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/50/24550/1 diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index be27dae..5e866cc 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -2,6 +2,7 @@ a_reset.h \ abis_nm.h \ abis_om2000.h \ + abis_osmo.h \ abis_rsl.h \ acc.h \ assignment_fsm.h \ diff --git a/include/osmocom/bsc/abis_osmo.h b/include/osmocom/bsc/abis_osmo.h new file mode 100644 index 0000000..6083e1e --- /dev/null +++ b/include/osmocom/bsc/abis_osmo.h @@ -0,0 +1,35 @@ +/* GSM Network Management messages on the A-bis interface + * 3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0 */ + +/* (C) 2008-2009 by Harald Welte <laforge at gnumonks.org> + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#pragma once + +#include <stdint.h> + +#include <osmocom/core/msgb.h> + +#include <osmocom/gsm/protocol/gsm_04_08.h> + +struct gsm_bts; + +int abis_osmo_rcvmsg(struct msgb *msg); +int abis_osmo_sendmsg(struct gsm_bts *bts, struct msgb *msg); + +int abis_osmo_pcu_measure_neighbours_req(struct gsm_bts *bts, const struct gsm48_cell_desc *cell_desc_li, unsigned int num_cells); diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index 7a491d9..545f92f 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -284,6 +284,8 @@ /* Connected PCU version (if any) */ char pcu_version[MAX_VERSION_LENGTH]; + /* PCU sign_link, over OML line: */ + struct e1inp_sign_link *osmo_link; /* maximum Tx power that the MS is permitted to use in this cell */ int ms_max_power; @@ -650,6 +652,9 @@ #define BTS_STORE_UPTIME_INTERVAL 10 /* in seconds */ void bts_store_uptime(struct gsm_bts *bts); +#define ANR_REQUEST_INTERVAL 60 /* in seconds */ +int bts_anr_request(struct gsm_bts *bts, const struct gsm48_cell_desc *cell_desc_li, unsigned int num_cells); + unsigned long long bts_uptime(const struct gsm_bts *bts); char *get_model_oml_status(const struct gsm_bts *bts); diff --git a/include/osmocom/bsc/gsm_04_08_rr.h b/include/osmocom/bsc/gsm_04_08_rr.h index 5ddee7f..ebba0f8 100644 --- a/include/osmocom/bsc/gsm_04_08_rr.h +++ b/include/osmocom/bsc/gsm_04_08_rr.h @@ -12,6 +12,7 @@ struct gsm_meas_rep; struct gsm_network; struct gsm_subscriber_connection; +struct gsm_bts; void gsm_net_update_ctype(struct gsm_network *network); enum gsm_chan_t get_ctype_by_chreq(struct gsm_network *network, uint8_t ra); @@ -43,6 +44,8 @@ struct msgb *gsm48_create_rr_status(uint8_t cause); int gsm48_tx_rr_status(struct gsm_subscriber_connection *conn, uint8_t cause); +void gsm48_cell_desc(struct gsm48_cell_desc *cd, const struct gsm_bts *bts); + #define GSM48_ALLOC_SIZE 2048 #define GSM48_ALLOC_HEADROOM 256 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 831463a..5ebcccb 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1271,6 +1271,9 @@ /* Timer to write each BTS's uptime counter state to the stats system. */ struct osmo_timer_list bts_store_uptime_timer; + /* Timer to submit Measure Neighbours Request from time to time. */ + struct osmo_timer_list anr_request_timer; + struct { struct mgcp_client_conf *conf; struct mgcp_client *client; diff --git a/include/osmocom/bsc/pcuif_proto.h b/include/osmocom/bsc/pcuif_proto.h index 8f72602..771eb9c 100644 --- a/include/osmocom/bsc/pcuif_proto.h +++ b/include/osmocom/bsc/pcuif_proto.h @@ -23,6 +23,8 @@ #define PCU_IF_MSG_TIME_IND 0x52 /* GSM time indication */ #define PCU_IF_MSG_PAG_REQ 0x60 /* paging request */ #define PCU_IF_MSG_TXT_IND 0x70 /* Text indication for BTS */ +/* msg_type coming from BSC */ +#define PCU_IF_MSG_ANR_REQ 0x80 /* Automatic Neighbor Registration Request */ /* sapi */ #define PCU_IF_SAPI_RACH 0x01 /* channel request on CCCH */ @@ -208,6 +210,12 @@ uint8_t cause; } __attribute__ ((packed)); +/* BSC sends some message to PCU, potentially forwarded by BTS via IPA/PCU */ +struct gsm_pcu_if_anr_req { + uint8_t num_cells; + uint16_t cell_list[80]; /* struct gsm48_cell_desc */ +} __attribute__ ((packed)); + struct gsm_pcu_if { /* context based information */ uint8_t msg_type; /* message type */ @@ -228,6 +236,7 @@ struct gsm_pcu_if_time_ind time_ind; struct gsm_pcu_if_pag_req pag_req; struct gsm_pcu_if_app_info_req app_info_req; + struct gsm_pcu_if_anr_req anr_req; } u; } __attribute__ ((packed)); diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index e282c6f..351f618 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -50,6 +50,7 @@ $(top_builddir)/src/osmo-bsc/bts_sm.o \ $(top_builddir)/src/osmo-bsc/bts_trx.o \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ @@ -74,6 +75,7 @@ ipaccess_proxy_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_sm.o \ diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index f91c6bf..df4e0c3 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -31,6 +31,7 @@ abis_nm_vty.c \ abis_om2000.c \ abis_om2000_vty.c \ + abis_osmo.c \ abis_rsl.c \ acc.c \ assignment_fsm.c \ diff --git a/src/osmo-bsc/abis_osmo.c b/src/osmo-bsc/abis_osmo.c new file mode 100644 index 0000000..7745ac5 --- /dev/null +++ b/src/osmo-bsc/abis_osmo.c @@ -0,0 +1,119 @@ +/* Osmocom specific protocols over Abis (IPA) */ + +/* (C) 2021 sysmocom - s.f.m.c. GmbH <info at sysmocom.de> + * Author: Pau Espin Pedrol <pespin at sysmocom.de> + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <errno.h> +#include <osmocom/core/logging.h> + +#include <osmocom/core/msgb.h> + +#include <osmocom/gsm/protocol/ipaccess.h> +#include <osmocom/gsm/ipa.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> +#include <osmocom/gsm/protocol/osmo_pcu.h> + +#include <osmocom/bsc/abis_osmo.h> +#include <osmocom/bsc/debug.h> +#include <osmocom/bsc/bts.h> +#include <osmocom/bsc/pcuif_proto.h> + + +#define OM_ALLOC_SIZE 1024 +#define OM_HEADROOM_SIZE 128 +#define IPACC_SEGMENT_SIZE 245 + +//////////////////////////////////////// +// OSMO ABIS extensions (PCU) +/////////////////////////////////////// +static struct msgb *abis_osmo_pcu_msgb_alloc(uint8_t msg_type, uint8_t bts_nr) +{ + struct msgb *msg; + struct gsm_pcu_if *pcu_prim; + msg = msgb_alloc_headroom(sizeof(struct gsm_pcu_if) + OM_HEADROOM_SIZE, + OM_HEADROOM_SIZE, "IPA/ABIS/OSMO"); + msgb_put(msg, sizeof(struct gsm_pcu_if)); + pcu_prim = (struct gsm_pcu_if *) msg->data; + pcu_prim->msg_type = msg_type; + pcu_prim->bts_nr = bts_nr; + return msg; +} + +/* Send a OML NM Message from BSC to BTS */ +static int abis_osmo_pcu_sendmsg(struct gsm_bts *bts, struct msgb *msg) +{ + ipa_prepend_header_ext(msg, IPAC_PROTO_EXT_PCU); + return abis_osmo_sendmsg(bts, msg); +} + +int abis_osmo_pcu_measure_neighbours_req(struct gsm_bts *bts, const struct gsm48_cell_desc *cell_desc_li, unsigned int num_cells) +{ + struct msgb *msg = abis_osmo_pcu_msgb_alloc(PCU_IF_MSG_ANR_REQ, 0); + struct gsm_pcu_if *pcu_prim = (struct gsm_pcu_if *) msgb_data(msg); + struct gsm_pcu_if_anr_req *anr_req = &pcu_prim->u.anr_req; + + anr_req->num_cells = num_cells; + if (num_cells) + memcpy(anr_req->cell_list, cell_desc_li, sizeof(*cell_desc_li) * num_cells); + + return abis_osmo_pcu_sendmsg(bts, msg); +} + +static int rcvmsg_pcu(struct msgb *msg) +{ + return 0; +} + +//////////////////////////////////////// +// OSMO ABIS extensions (generic code) +/////////////////////////////////////// + +/* High-Level API */ +/* Entry-point where L2 OSMO from BTS enters the NM code */ +int abis_osmo_rcvmsg(struct msgb *msg) +{ + int rc; + uint8_t *osmo_type = msgb_l2(msg); + msg->l2h = osmo_type + 1; + + switch (*osmo_type) { + case IPAC_PROTO_EXT_PCU: + rc = rcvmsg_pcu(msg); + break; + default: + LOGP(DNM, LOGL_ERROR, "IPAC_PROTO_EXT 0x%x not supported!\n", + *osmo_type); + rc = -EINVAL; + } + + msgb_free(msg); + return rc; +} + + +/* Send a OML NM Message from BSC to BTS */ +int abis_osmo_sendmsg(struct gsm_bts *bts, struct msgb *msg) +{ + msg->dst = bts->osmo_link; + + msg->l2h = msg->data; + + return abis_sendmsg(msg); + +} diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index 24596f4..55a507b 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -97,6 +97,32 @@ osmo_timer_schedule(&net->bts_store_uptime_timer, BTS_STORE_UPTIME_INTERVAL, 0); } +static void bsc_anr_request(void *data) +{ + struct gsm_network *net = data; + struct gsm_bts *bts; + struct gsm48_cell_desc cell_desc[256]; + unsigned int num_cells = 0; + + /* Build list of ARFCN+BSIC: */ + llist_for_each_entry(bts, &net->bts_list, list) { + if (num_cells == ARRAY_SIZE(cell_desc)) { + LOGP(DNM, LOGL_ERROR, + "ANR Req: Unable to build list larger than %zu elements", + ARRAY_SIZE(cell_desc)); + break; + } + gsm48_cell_desc(&cell_desc[num_cells], bts); + num_cells++; + } + + llist_for_each_entry(bts, &net->bts_list, list) + bts_anr_request(bts, cell_desc, num_cells); + + /* Keep this timer ticking. */ + osmo_timer_schedule(&net->anr_request_timer, ANR_REQUEST_INTERVAL, 0); +} + static struct gsm_network *bsc_network_init(void *ctx) { struct gsm_network *net = gsm_network_init(ctx); @@ -144,6 +170,10 @@ osmo_timer_setup(&net->bts_store_uptime_timer, bsc_store_bts_uptime, net); osmo_timer_schedule(&net->bts_store_uptime_timer, BTS_STORE_UPTIME_INTERVAL, 0); + /* Init uptime tracking timer. */ + osmo_timer_setup(&net->anr_request_timer, bsc_anr_request, net); + osmo_timer_schedule(&net->anr_request_timer, ANR_REQUEST_INTERVAL, 0); + net->cbc->net = net; net->cbc->mode = BSC_CBC_LINK_MODE_DISABLED; net->cbc->server.local_addr = bsc_cbc_default_server_local_addr; diff --git a/src/osmo-bsc/bts.c b/src/osmo-bsc/bts.c index 857ddd2..87cfb9a 100644 --- a/src/osmo-bsc/bts.c +++ b/src/osmo-bsc/bts.c @@ -24,6 +24,7 @@ #include <osmocom/bsc/bts.h> #include <osmocom/bsc/debug.h> #include <osmocom/bsc/nm_common_fsm.h> +#include <osmocom/bsc/abis_osmo.h> const struct value_string bts_attribute_names[] = { OSMO_VALUE_STRING(BTS_TYPE_VARIANT), @@ -579,6 +580,20 @@ return difftime(tp.tv_sec, bts->uptime); } +int bts_anr_request(struct gsm_bts *bts, const struct gsm48_cell_desc *cell_desc_li, unsigned int num_cells) +{ + if (!bts->osmo_link) { + LOGP(DNM, LOGL_INFO, "BTS%u: ANR Req: OSMO link is down\n", bts->nr); + return 0; + } + if (!osmo_bts_has_feature(&bts->features, BTS_FEAT_ABIS_OSMO_PCU)) { + LOGP(DNM, LOGL_INFO, "BTS%u: ANR Req: Abis OSMO_PCU proto not supported\n", bts->nr); + return 0; + } + LOGP(DNM, LOGL_INFO, "BTS%u: ANR Req (%u cells)\n", bts->nr, num_cells); + return abis_osmo_pcu_measure_neighbours_req(bts, cell_desc_li, num_cells); +} + char *get_model_oml_status(const struct gsm_bts *bts) { if (bts->model->oml_status) diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 1e3e9c1..db91b01 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -37,6 +37,7 @@ #include <osmocom/bsc/gsm_data.h> #include <osmocom/bsc/abis_nm.h> #include <osmocom/bsc/abis_rsl.h> +#include <osmocom/bsc/abis_osmo.h> #include <osmocom/bsc/debug.h> #include <osmocom/abis/subchan_demux.h> #include <osmocom/gsm/ipa.h> @@ -557,6 +558,10 @@ bts->uptime = 0; osmo_stat_item_dec(bts->bts_statg->items[BTS_STAT_OML_CONNECTED], 1); + /* Also drop the associated OSMO link */ + e1inp_sign_link_destroy(bts->osmo_link); + bts->osmo_link = NULL; + /* we have issues reconnecting RSL, drop everything. */ llist_for_each_entry(trx, &bts->trx_list, list) { ipaccess_drop_rsl(trx, "OML link drop"); @@ -713,6 +718,10 @@ sign_link->trx->bts->ip_access.flags |= OML_UP; } osmo_stat_item_inc(bts->bts_statg->items[BTS_STAT_OML_CONNECTED], 1); + + /* Create link for E1INP_SIGN_OSMO */ + //SAPI must be 0, no IPAC_PROTO_EXT_PCU, see ipaccess_bts_read_cb + bts->osmo_link = e1inp_sign_link_create(sign_ts, E1INP_SIGN_OSMO, bts->c0, IPAC_PROTO_OSMO, 0); break; case E1INP_SIGN_RSL: { struct e1inp_ts *ts; @@ -785,6 +794,9 @@ case E1INP_SIGN_OML: ret = abis_nm_rcvmsg(msg); break; + case E1INP_SIGN_OSMO: + ret = abis_osmo_rcvmsg(msg); + break; default: LOGP(DLINP, LOGL_ERROR, "Unknown signal link type %d\n", link->type); diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index 058a107..be1eadc 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -387,7 +387,7 @@ return rsl_encryption_cmd(msg); } -static void gsm48_cell_desc(struct gsm48_cell_desc *cd, +void gsm48_cell_desc(struct gsm48_cell_desc *cd, const struct gsm_bts *bts) { cd->ncc = (bts->bsic >> 3 & 0x7); diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index c180390..39d2417 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -48,6 +48,7 @@ bs11_config_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_sm.o \ @@ -132,6 +133,7 @@ meas_json_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_sm.o \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index cb327fb..0612827 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -26,6 +26,7 @@ abis_test_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ diff --git a/tests/acc/Makefile.am b/tests/acc/Makefile.am index 9351545..e0044d0 100644 --- a/tests/acc/Makefile.am +++ b/tests/acc/Makefile.am @@ -26,6 +26,7 @@ acc_test_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts.o \ $(top_builddir)/src/osmo-bsc/bts_sm.o \ diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index d08ca18..a0bbb81 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -35,6 +35,7 @@ bsc_test_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 271a0fd..186dc39 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -25,6 +25,7 @@ gsm0408_test_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/gsm_04_08_rr.o \ $(top_builddir)/src/osmo-bsc/bts.o \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index f0b2e7a..65eb6a8 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -45,6 +45,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm_vty.o \ $(top_builddir)/src/osmo-bsc/abis_om2000.o \ $(top_builddir)/src/osmo-bsc/abis_om2000_vty.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/abis_rsl.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/assignment_fsm.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index f2afa2b..e31b8e9 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -24,6 +24,7 @@ nanobts_omlattr_test_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_osmo.o \ $(top_builddir)/src/osmo-bsc/acc.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/bts.o \ -- To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/24550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Change-Id: I21beb4e5c101157cd0977fd9a607c2fe5350befe Gerrit-Change-Number: 24550 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210604/2405d651/attachment.htm>