From 273feca77fc088797e0e5f8642dfa26d2389830e Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sat, 28 Mar 2009 16:53:25 +0000 Subject: [PATCH] Fix 'delete-trx1' command of bs11_config (we can now delete TRX1) --- include/openbsc/rs232.h | 3 ++- src/bs11_config.c | 15 ++++++++++++--- src/rs232.c | 6 +++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/include/openbsc/rs232.h b/include/openbsc/rs232.h index deb0c6b29..61187ca62 100644 --- a/include/openbsc/rs232.h +++ b/include/openbsc/rs232.h @@ -1,7 +1,8 @@ #ifndef _RS232_H #define _RS232_H -int rs232_setup(const char *serial_port, unsigned int delay_ms); +int rs232_setup(const char *serial_port, unsigned int delay_ms, + struct gsm_bts *bts); int handle_serial_msg(struct msgb *msg); diff --git a/src/bs11_config.c b/src/bs11_config.c index 42de5db27..b603e8bf1 100644 --- a/src/bs11_config.c +++ b/src/bs11_config.c @@ -440,14 +440,23 @@ static int handle_state_resp(enum abis_bs11_phase state) fprintf(stderr, "No valid Software file \"%s\"\n", fname_software); } else if (!strcmp(command, "delete-trx1")) { + printf("Locing BBSIG and PA objects of TRX1\n"); + abis_nm_chg_adm_state(g_bts, NM_OC_BS11, + BS11_OBJ_BBSIG, 0, 1, + NM_STATE_LOCKED); + abis_nm_chg_adm_state(g_bts, NM_OC_BS11, + BS11_OBJ_PA, 0, 1, + NM_STATE_LOCKED); + sleep(1); + printf("Deleting BBSIG and PA objects of TRX1\n"); abis_nm_bs11_delete_object(g_bts, BS11_OBJ_BBSIG, 1); abis_nm_bs11_delete_object(g_bts, BS11_OBJ_PA, 1); - sleep(5); + sleep(1); abis_nm_bs11_factory_logon(g_bts, 0); command = NULL; } else if (!strcmp(command, "create-trx1")) { create_trx1(g_bts); - sleep(5); + sleep(1); abis_nm_bs11_factory_logon(g_bts, 0); command = NULL; } else if (!strcmp(command, "oml-tei")) { @@ -701,7 +710,7 @@ int main(int argc, char **argv) } g_bts = &gsmnet->bts[0]; - rc = rs232_setup(serial_port, delay_ms); + rc = rs232_setup(serial_port, delay_ms, g_bts); if (rc < 0) { fprintf(stderr, "Problem setting up serial port\n"); exit(1); diff --git a/src/rs232.c b/src/rs232.c index 24577ea87..24a3b055e 100644 --- a/src/rs232.c +++ b/src/rs232.c @@ -44,6 +44,7 @@ struct serial_handle { unsigned int rxmsg_bytes_missing; unsigned int delay_ms; + struct gsm_bts *bts; }; /* FIXME: this needs to go */ @@ -128,6 +129,7 @@ static int handle_ser_read(struct bsc_fd *bfd) if (!sh->rx_msg) { sh->rx_msg = msgb_alloc(SERIAL_ALLOC_SIZE); sh->rx_msg->l2h = NULL; + sh->rx_msg->trx = sh->bts->c0; } msg = sh->rx_msg; @@ -197,7 +199,8 @@ static int serial_fd_cb(struct bsc_fd *bfd, unsigned int what) return rc; } -int rs232_setup(const char *serial_port, unsigned int delay_ms) +int rs232_setup(const char *serial_port, unsigned int delay_ms, + struct gsm_bts *bts) { int rc, serial_fd; struct termios tio; @@ -234,6 +237,7 @@ int rs232_setup(const char *serial_port, unsigned int delay_ms) ser_handle->fd.cb = serial_fd_cb; ser_handle->fd.data = ser_handle; ser_handle->delay_ms = delay_ms; + ser_handle->bts = bts; rc = bsc_register_fd(&ser_handle->fd); if (rc < 0) { fprintf(stderr, "could not register FD: %s\n",