From 8139553962bfd60a0027b46ae3001b9996b536d5 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sat, 17 Apr 2010 07:48:45 +0200 Subject: [PATCH] nat: Make the MSC configurable. --- openbsc/include/openbsc/bsc_nat.h | 1 + openbsc/src/nat/bsc_nat.c | 2 +- openbsc/src/nat/bsc_nat_utils.c | 1 + openbsc/src/nat/bsc_nat_vty.c | 11 +++++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h index 3754f25f0..54a13e218 100644 --- a/openbsc/include/openbsc/bsc_nat.h +++ b/openbsc/include/openbsc/bsc_nat.h @@ -205,6 +205,7 @@ struct bsc_nat { /* msc things */ char *msc_ip; + int msc_port; int first_contact; struct bsc_endpoint *bsc_endpoints; diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c index f4180abb6..4f7fde6c8 100644 --- a/openbsc/src/nat/bsc_nat.c +++ b/openbsc/src/nat/bsc_nat.c @@ -853,7 +853,7 @@ int main(int argc, char** argv) return -4; /* connect to the MSC */ - msc_con = bsc_msc_create(nat->msc_ip, 5000); + msc_con = bsc_msc_create(nat->msc_ip, nat->msc_port); if (!msc_con) { fprintf(stderr, "Creating a bsc_msc_connection failed.\n"); exit(1); diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c index 623bec56a..c9a90f96c 100644 --- a/openbsc/src/nat/bsc_nat_utils.c +++ b/openbsc/src/nat/bsc_nat_utils.c @@ -52,6 +52,7 @@ struct bsc_nat *bsc_nat_alloc(void) nat->stats.bsc.auth_fail = counter_alloc("nat.bsc.auth_fail"); nat->stats.msc.reconn = counter_alloc("nat.msc.conn"); nat->msc_ip = talloc_strdup(nat, "127.0.0.1"); + nat->msc_port = 5000; return nat; } diff --git a/openbsc/src/nat/bsc_nat_vty.c b/openbsc/src/nat/bsc_nat_vty.c index a91da7c4e..e0a59992f 100644 --- a/openbsc/src/nat/bsc_nat_vty.c +++ b/openbsc/src/nat/bsc_nat_vty.c @@ -56,6 +56,7 @@ static int config_write_nat(struct vty *vty) if (_nat->imsi_deny) vty_out(vty, " insi deny %s%s", _nat->imsi_deny, VTY_NEWLINE); vty_out(vty, " msc ip %s%s", _nat->msc_ip, VTY_NEWLINE); + vty_out(vty, " msc port %d%s", _nat->msc_port, VTY_NEWLINE); return CMD_SUCCESS; } @@ -213,6 +214,15 @@ DEFUN(cfg_nat_msc_ip, return CMD_SUCCESS; } +DEFUN(cfg_nat_msc_port, + cfg_nat_msc_port_cmd, + "msc port <1-65500>", + "Set the port of the MSC.") +{ + _nat->msc_port = atoi(argv[0]); + return CMD_SUCCESS; +} + /* per BSC configuration */ DEFUN(cfg_bsc, cfg_bsc_cmd, "bsc BSC_NR", "Select a BSC to configure\n") { @@ -327,6 +337,7 @@ int bsc_nat_vty_init(struct bsc_nat *nat) install_element(NAT_NODE, &cfg_nat_imsi_allow_cmd); install_element(NAT_NODE, &cfg_nat_imsi_deny_cmd); install_element(NAT_NODE, &cfg_nat_msc_ip_cmd); + install_element(NAT_NODE, &cfg_nat_msc_port_cmd); /* BSC subgroups */ install_element(NAT_NODE, &cfg_bsc_cmd);