aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/ipaccess
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-05-12 23:34:51 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-05-13 00:41:30 +0800
commit52fd4e4395cd8852ac0dcb31062cce60f1b97209 (patch)
treea5aa82c193fd7187171bc28909f3e583d8cd40ed /openbsc/src/ipaccess
parentebead597ff571ac6d4eb2986b64aa5242a563382 (diff)
ipaccess: Send the reset to the BASEBAND_TRANSC and supply TRX
Send the IPA Restart to a given BTS/TRX, change the signal callbacks to carry the trx instead of the BTS so we have an easy access to the right TRX and change the ipaccess-config to use that TRX. This is fixing the restart with a multi TRX setup. Even if we have the msg->trx, use the gsm_bts_trx_by_nr and get the TRX from the fom header. This is because the OpenBSC and the BTS numbering might not match for the multi TRX case.
Diffstat (limited to 'openbsc/src/ipaccess')
-rw-r--r--openbsc/src/ipaccess/ipaccess-config.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/openbsc/src/ipaccess/ipaccess-config.c b/openbsc/src/ipaccess/ipaccess-config.c
index da0131ace..556220a95 100644
--- a/openbsc/src/ipaccess/ipaccess-config.c
+++ b/openbsc/src/ipaccess/ipaccess-config.c
@@ -92,23 +92,23 @@ static int ipacc_msg_nack(u_int8_t mt)
return 0;
}
-static void check_restart_or_exit(struct gsm_bts *bts)
+static void check_restart_or_exit(struct gsm_bts_trx *trx)
{
if (restart) {
- abis_nm_ipaccess_restart(bts);
+ abis_nm_ipaccess_restart(trx);
} else {
exit(0);
}
}
-static int ipacc_msg_ack(u_int8_t mt, struct gsm_bts *bts)
+static int ipacc_msg_ack(u_int8_t mt, struct gsm_bts_trx *trx)
{
if (sw_load_state == 1) {
fprintf(stderr, "The new software is activaed.\n");
- check_restart_or_exit(bts);
+ check_restart_or_exit(trx);
} else if (oml_state == 1) {
fprintf(stderr, "Set the primary OML IP.\n");
- check_restart_or_exit(bts);
+ check_restart_or_exit(trx);
}
return 0;
@@ -203,7 +203,7 @@ static int nm_sig_cb(unsigned int subsys, unsigned int signal,
return ipacc_msg_nack(ipacc_data->msg_type);
case S_NM_IPACC_ACK:
ipacc_data = signal_data;
- return ipacc_msg_ack(ipacc_data->msg_type, ipacc_data->bts);
+ return ipacc_msg_ack(ipacc_data->msg_type, ipacc_data->trx);
case S_NM_TEST_REP:
return test_rep(signal_data);
case S_NM_IPACC_RESTART_ACK:
@@ -304,7 +304,6 @@ static void bootstrap_om(struct gsm_bts_trx *trx)
int len;
static u_int8_t buf[1024];
u_int8_t *cur = buf;
- struct gsm_bts *bts = trx->bts;
printf("OML link established using TRX %d\n", trx->nr);
@@ -361,7 +360,7 @@ static void bootstrap_om(struct gsm_bts_trx *trx)
if (restart && !prim_oml_ip && !software) {
printf("restarting BTS\n");
- abis_nm_ipaccess_restart(bts);
+ abis_nm_ipaccess_restart(trx);
}
}