aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-05-11 23:28:19 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-05-17 09:38:24 +0200
commit2c9ea91317db1e81dc179fa31765468fdd3da1bc (patch)
tree5a9b9271953b3d229fbd79e5299a07d7d1fc92e1
parent41a93dc2f082111b8dbfea38cfd61855dd5cfd81 (diff)
nitb: Enable the external RF Control interface for the nitb application
Add argument handling for the nitb application and create the RF ctrl interface for being able to control the TRX using an external socket.
-rw-r--r--openbsc/src/osmo-nitb/bsc_hack.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index 5a274e3f5..eb0b3bb13 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -1,7 +1,7 @@
/* A hackish minimal BSC (+MSC +HLR) implementation */
/* (C) 2008-2010 by Harald Welte <laforge@gnumonks.org>
- * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2009-2012 by Holger Hans Peter Freyther <zecke@selfish.org>
* All Rights Reserved
*
* This program is free software; you can redistribute it and/or modify
@@ -46,13 +46,16 @@
#include <openbsc/handover_decision.h>
#include <openbsc/rrlp.h>
#include <openbsc/control_if.h>
+#include <openbsc/osmo_bsc_rf.h>
#include "../../bscconfig.h"
/* MCC and MNC for the Location Area Identifier */
struct gsm_network *bsc_gsmnet = 0;
+static struct osmo_bsc_rf *rf_ctrl;
static const char *database_name = "hlr.sqlite3";
static const char *config_file = "openbsc.cfg";
+static const char *rf_ctrl_name = NULL;
extern const char *openbsc_copyright;
static int daemonize = 0;
static int use_mncc_sock = 0;
@@ -97,6 +100,7 @@ static void print_help()
printf(" -e --log-level number. Set a global loglevel.\n");
printf(" -m --mncc-sock Disable built-in MNCC handler and offer socket\n");
printf(" -C --no-dbcounter Disable regular syncing of counters to database\n");
+ printf(" -r --rf-ctl NAME. A unix domain socket to listen for cmds.\n");
}
static void handle_options(int argc, char **argv)
@@ -118,10 +122,11 @@ static void handle_options(int argc, char **argv)
{"log-level", 1, 0, 'e'},
{"mncc-sock", 0, 0, 'm'},
{"no-dbcounter", 0, 0, 'C'},
+ {"rf-ctl", 1, 0, 'r'},
{0, 0, 0, 0}
};
- c = getopt_long(argc, argv, "hd:Dsl:ar:p:TPVc:e:mC",
+ c = getopt_long(argc, argv, "hd:Dsl:ar:p:TPVc:e:mCr:",
long_options, &option_index);
if (c == -1)
break;
@@ -168,6 +173,9 @@ static void handle_options(int argc, char **argv)
print_version(1);
exit(0);
break;
+ case 'r':
+ rf_ctrl_name = optarg;
+ break;
default:
/* ignore */
break;
@@ -264,6 +272,14 @@ int main(int argc, char **argv)
/* seed the PRNG */
srand(time(NULL));
+ if (rf_ctrl_name) {
+ rf_ctrl = osmo_bsc_rf_create(rf_ctrl_name, bsc_gsmnet);
+ if (!rf_ctrl) {
+ fprintf(stderr, "Failed to create the RF service.\n");
+ exit(1);
+ }
+ }
+
if (db_init(database_name)) {
printf("DB: Failed to init database. Please check the option settings.\n");
return -1;