From 52fd4e4395cd8852ac0dcb31062cce60f1b97209 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 12 May 2010 23:34:51 +0800 Subject: 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. --- openbsc/src/ipaccess/ipaccess-config.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'openbsc/src/ipaccess/ipaccess-config.c') 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); } } -- cgit v1.2.3