aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-08-08 12:04:30 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-08-30 14:12:37 +0200
commit4179ebdec160dc7318ad23f13512ca13bb1eef98 (patch)
treef359d33d2050189d6f1efb2cb34f30ad81ffecba
parentefe85d33d4948a20de1baec2e8956113714ec72e (diff)
mgcp: add VTY Option to force-realloc endpoints
Currently the force_realloc feature is turnd on and of in a hardcoded way. This patch makes the option available via VTY. Change-Id: Ic8740512c5ea0766ff6ceb1c28b9c2b3fe46e75f
-rw-r--r--src/libmgcp/mgcp_vty.c14
-rw-r--r--src/osmo-bsc_mgcp/mgcp_main.c2
-rw-r--r--src/osmo-bsc_nat/bsc_mgcp_utils.c1
-rw-r--r--src/osmo-bsc_nat/bsc_nat.c3
4 files changed, 18 insertions, 2 deletions
diff --git a/src/libmgcp/mgcp_vty.c b/src/libmgcp/mgcp_vty.c
index 7d4b2da8..51889d9a 100644
--- a/src/libmgcp/mgcp_vty.c
+++ b/src/libmgcp/mgcp_vty.c
@@ -591,6 +591,16 @@ DEFUN(cfg_mgcp_loop,
return CMD_SUCCESS;
}
+DEFUN(cfg_mgcp_force_realloc,
+ cfg_mgcp_force_realloc_cmd,
+ "force-realloc (0|1)",
+ "Force endpoint reallocation when the endpoint is still seized\n"
+ "Don't force reallocation\n" "force reallocation\n")
+{
+ g_cfg->trunk.force_realloc = atoi(argv[0]);
+ return CMD_SUCCESS;
+}
+
DEFUN(cfg_mgcp_number_endp,
cfg_mgcp_number_endp_cmd,
"number endpoints <0-65534>",
@@ -803,9 +813,10 @@ static int config_write_trunk(struct vty *vty)
trunk->keepalive_interval, VTY_NEWLINE);
else
vty_out(vty, " no rtp keep-alive%s", VTY_NEWLINE);
-
vty_out(vty, " loop %d%s",
trunk->audio_loop, VTY_NEWLINE);
+ vty_out(vty, " force-realloc %d%s",
+ trunk->force_realloc, VTY_NEWLINE);
if (trunk->omit_rtcp)
vty_out(vty, " rtcp-omit%s", VTY_NEWLINE);
else
@@ -1379,6 +1390,7 @@ int mgcp_vty_init(void)
install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_number_cmd_old);
install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_name_cmd_old);
install_element(MGCP_NODE, &cfg_mgcp_loop_cmd);
+ install_element(MGCP_NODE, &cfg_mgcp_force_realloc_cmd);
install_element(MGCP_NODE, &cfg_mgcp_number_endp_cmd);
install_element(MGCP_NODE, &cfg_mgcp_omit_rtcp_cmd);
install_element(MGCP_NODE, &cfg_mgcp_no_omit_rtcp_cmd);
diff --git a/src/osmo-bsc_mgcp/mgcp_main.c b/src/osmo-bsc_mgcp/mgcp_main.c
index 4ea07007..6cf9ab78 100644
--- a/src/osmo-bsc_mgcp/mgcp_main.c
+++ b/src/osmo-bsc_mgcp/mgcp_main.c
@@ -218,6 +218,8 @@ int main(int argc, char **argv)
cfg->get_net_downlink_format_cb = &mgcp_transcoding_net_downlink_format;
#endif
+ cfg->trunk.force_realloc = 1;
+
vty_info.copyright = openbsc_copyright;
vty_init(&vty_info);
logging_vty_add_cmds(NULL);
diff --git a/src/osmo-bsc_nat/bsc_mgcp_utils.c b/src/osmo-bsc_nat/bsc_mgcp_utils.c
index 48847865..7df362f8 100644
--- a/src/osmo-bsc_nat/bsc_mgcp_utils.c
+++ b/src/osmo-bsc_nat/bsc_mgcp_utils.c
@@ -1101,7 +1101,6 @@ int bsc_mgcp_nat_init(struct bsc_nat *nat)
/* some more MGCP config handling */
cfg->data = nat;
cfg->policy_cb = bsc_mgcp_policy_cb;
- cfg->trunk.force_realloc = 1;
if (cfg->bts_ip)
talloc_free(cfg->bts_ip);
diff --git a/src/osmo-bsc_nat/bsc_nat.c b/src/osmo-bsc_nat/bsc_nat.c
index daa066d0..401288d8 100644
--- a/src/osmo-bsc_nat/bsc_nat.c
+++ b/src/osmo-bsc_nat/bsc_nat.c
@@ -1628,6 +1628,9 @@ int main(int argc, char **argv)
rate_ctr_init(tall_bsc_ctx);
osmo_stats_init(tall_bsc_ctx);
+ /* Ensure that forced enpoint allocation is turned on by default */
+ nat->mgcp_cfg->trunk.force_realloc = 1;
+
/* init vty and parse */
if (mgcp_parse_config(config_file, nat->mgcp_cfg, MGCP_BSC_NAT) < 0) {
fprintf(stderr, "Failed to parse the config file: '%s'\n", config_file);