diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2017-06-12 12:26:31 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2017-06-18 17:50:09 +0200 |
commit | 39f3b1109d4b3463b44ac7b3401a03a16166edba (patch) | |
tree | 1da4bbe184d4c1369f807c0687f51b0b400234f2 /openbsc/src/libmgcp | |
parent | 778e14a51e28294e2e4f4c869c01ec177713c263 (diff) |
mgcp: make bts base port configurable
Currently the rtp base port of the BTS is hardcoded (4000) and not
configurable. This patch adds VTY configuration options to make
it adjustable.
Diffstat (limited to 'openbsc/src/libmgcp')
-rw-r--r-- | openbsc/src/libmgcp/mgcpgw_client.c | 2 | ||||
-rw-r--r-- | openbsc/src/libmgcp/mgcpgw_client_vty.c | 21 |
2 files changed, 23 insertions, 0 deletions
diff --git a/openbsc/src/libmgcp/mgcpgw_client.c b/openbsc/src/libmgcp/mgcpgw_client.c index 0c5b5caf7..12880dd4f 100644 --- a/openbsc/src/libmgcp/mgcpgw_client.c +++ b/openbsc/src/libmgcp/mgcpgw_client.c @@ -45,6 +45,7 @@ void mgcpgw_client_conf_init(struct mgcpgw_client_conf *conf) .remote_port = -1, .first_endpoint = 0, .last_endpoint = 0, + .bts_base = 0, }; } @@ -342,6 +343,7 @@ struct mgcpgw_client *mgcpgw_client_init(void *ctx, mgcp->actual.first_endpoint = conf->first_endpoint > 0 ? (uint16_t)conf->first_endpoint : 0; mgcp->actual.last_endpoint = conf->last_endpoint > 0 ? (uint16_t)conf->last_endpoint : 0; + mgcp->actual.bts_base = conf->bts_base > 0 ? (uint16_t)conf->bts_base : 4000; return mgcp; } diff --git a/openbsc/src/libmgcp/mgcpgw_client_vty.c b/openbsc/src/libmgcp/mgcpgw_client_vty.c index 8670192e9..806800078 100644 --- a/openbsc/src/libmgcp/mgcpgw_client_vty.c +++ b/openbsc/src/libmgcp/mgcpgw_client_vty.c @@ -99,12 +99,26 @@ DEFUN(cfg_mgcpgw_endpoint_range, cfg_mgcpgw_endpoint_range_cmd, return CMD_SUCCESS; } +#define BTS_START_STR "First UDP port allocated for the BTS side\n" +#define UDP_PORT_STR "UDP Port number\n" +DEFUN(cfg_mgcp_rtp_bts_base_port, + cfg_mgcp_rtp_bts_base_port_cmd, + "mgcpgw bts-base <0-65534>", + MGCPGW_STR + BTS_START_STR + UDP_PORT_STR) +{ + global_mgcpgw_client_conf->bts_base = atoi(argv[0]); + return CMD_SUCCESS; +} + int mgcpgw_client_config_write(struct vty *vty, const char *indent) { const char *addr; int port; uint16_t first_endpoint; uint16_t last_endpoint; + uint16_t bts_base; addr = global_mgcpgw_client_conf->local_addr; if (addr) @@ -131,6 +145,12 @@ int mgcpgw_client_config_write(struct vty *vty, const char *indent) first_endpoint, last_endpoint, VTY_NEWLINE); } + bts_base = global_mgcpgw_client_conf->bts_base; + if (bts_base) { + vty_out(vty, "%smgcpgw bts-base %u%s", indent, + bts_base, VTY_NEWLINE); + } + return CMD_SUCCESS; } @@ -143,4 +163,5 @@ void mgcpgw_client_vty_init(int node, struct mgcpgw_client_conf *conf) install_element(node, &cfg_mgcpgw_remote_ip_cmd); install_element(node, &cfg_mgcpgw_remote_port_cmd); install_element(node, &cfg_mgcpgw_endpoint_range_cmd); + install_element(node, &cfg_mgcp_rtp_bts_base_port_cmd); } |