From 4157bcb0671afb79eba093c1a500add008af4359 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Wed, 7 Sep 2011 18:34:37 +0200 Subject: uRTP: allow vty configuration of batching factor there's a new "compression batching <1-15>" --- openbsc/src/libmgcp/mgcp_network.c | 2 +- openbsc/src/libmgcp/mgcp_vty.c | 30 +++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) (limited to 'openbsc/src') diff --git a/openbsc/src/libmgcp/mgcp_network.c b/openbsc/src/libmgcp/mgcp_network.c index c11f54d53..6483f982f 100644 --- a/openbsc/src/libmgcp/mgcp_network.c +++ b/openbsc/src/libmgcp/mgcp_network.c @@ -199,7 +199,7 @@ static int maybe_send_queue(struct mgcp_endpoint *endp, int rc; /* Queue up to four messages per endpoint */ - if (++endp->compr_queue_size != 4) + if (++endp->compr_queue_size < endp->tcfg->compress_batch) return 0; /* Allocate the outgoing data */ diff --git a/openbsc/src/libmgcp/mgcp_vty.c b/openbsc/src/libmgcp/mgcp_vty.c index 71c249cce..773500504 100644 --- a/openbsc/src/libmgcp/mgcp_vty.c +++ b/openbsc/src/libmgcp/mgcp_vty.c @@ -105,7 +105,9 @@ static int config_write_mgcp(struct vty *vty) /* Compression */ vty_out(vty, " allow-compression %s%s", mgcp_compr_name(g_cfg->trunk.compress_dir), VTY_NEWLINE); - + if (g_cfg->trunk.compress_dir != COMPR_NONE) + vty_out(vty, " compression batching %u%s", + g_cfg->trunk.compress_batch, VTY_NEWLINE); return CMD_SUCCESS; } @@ -405,6 +407,17 @@ DEFUN(cfg_mgcp_compr, return CMD_SUCCESS; } +DEFUN(cfg_mgcp_compr_batch, + cfg_mgcp_compr_batch_cmd, + "compression batching <1-15>", + COMPR_STR) +{ + g_cfg->trunk.compress_batch = atoi(argv[0]); + + return CMD_SUCCESS; +} + + DEFUN(cfg_mgcp_trunk, cfg_mgcp_trunk_cmd, "trunk <1-64>", "Configure a SS7 trunk\n" "Trunk Nr\n") @@ -490,6 +503,16 @@ DEFUN(cfg_trunk_compr, return CMD_SUCCESS; } +DEFUN(cfg_trunk_compr_batch, + cfg_trunk_compr_batch_cmd, + "compression batching <1-4>", + COMPR_STR) +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->compress_batch = atoi(argv[0]); + return CMD_SUCCESS; +} + DEFUN(loop_endp, loop_endp_cmd, "loop-endpoint <0-64> NAME (0|1)", @@ -660,6 +683,7 @@ int mgcp_vty_init(void) install_element(MGCP_NODE, &cfg_mgcp_loop_cmd); install_element(MGCP_NODE, &cfg_mgcp_number_endp_cmd); install_element(MGCP_NODE, &cfg_mgcp_compr_cmd); + install_element(MGCP_NODE, &cfg_mgcp_compr_batch_cmd); install_element(MGCP_NODE, &cfg_mgcp_trunk_cmd); install_node(&trunk_node, config_write_trunk); @@ -670,6 +694,7 @@ int mgcp_vty_init(void) install_element(TRUNK_NODE, &cfg_trunk_payload_name_cmd); install_element(TRUNK_NODE, &cfg_trunk_loop_cmd); install_element(TRUNK_NODE, &cfg_trunk_compr_cmd); + install_element(TRUNK_NODE, &cfg_trunk_compr_batch_cmd); return 0; } @@ -734,6 +759,9 @@ static int allocate_trunk(struct mgcp_trunk_config *trunk) } } + /* default batching _if_ compression is enabled */ + trunk->compress_batch = 4; + return 0; } -- cgit v1.2.3