pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-pcap/+/27795 )


Change subject: client: Add 'wqueue max-length <0-4294967295>' VTY command
......................................................................

client: Add 'wqueue max-length <0-4294967295>' VTY command

This allows setting a suitable write-queue max length per client. The
desired value can be different based on a lot of variables, like memory
availabilty, network and CPU load, input/output link state, etc.

Related: SYS#5921
Change-Id: I4e9d5d836ddda215f9e7a075aa8e10d2d3854dd2
---
M include/osmo-pcap/osmo_pcap_client.h
M src/osmo_client_core.c
M src/osmo_client_vty.c
3 files changed, 20 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-pcap refs/changes/95/27795/1

diff --git a/include/osmo-pcap/osmo_pcap_client.h 
b/include/osmo-pcap/osmo_pcap_client.h
index 887d422..5bc203a 100644
--- a/include/osmo-pcap/osmo_pcap_client.h
+++ b/include/osmo-pcap/osmo_pcap_client.h
@@ -32,6 +32,8 @@

 struct rate_ctr_group;

+#define WQUEUE_MAXLEN_DEFAULT 1000
+
 enum {
        CLIENT_CTR_CONNECT,
        CLIENT_CTR_BYTES,
diff --git a/src/osmo_client_core.c b/src/osmo_client_core.c
index 8209afe..4bb4b4e 100644
--- a/src/osmo_client_core.c
+++ b/src/osmo_client_core.c
@@ -341,7 +341,7 @@
 {
        conn->client = client;
        conn->tls_verify = true;
-       osmo_wqueue_init(&conn->wqueue, 1000);
+       osmo_wqueue_init(&conn->wqueue, WQUEUE_MAXLEN_DEFAULT);
        conn->wqueue.bfd.fd = -1;
 }

diff --git a/src/osmo_client_vty.c b/src/osmo_client_vty.c
index 7458f85..8e21d67 100644
--- a/src/osmo_client_vty.c
+++ b/src/osmo_client_vty.c
@@ -104,6 +104,10 @@
        if (conn->protocol != PROTOCOL_OSMOPCAP)
                vty_out(vty, "%s protocol %s%s", indent,
                        get_value_string(osmopcap_protocol_names, 
conn->protocol), VTY_NEWLINE);
+
+       if (conn->wqueue.max_length != WQUEUE_MAXLEN_DEFAULT)
+               vty_out(vty, "%s wqueue max-length %u%s", indent,
+                       conn->wqueue.max_length, VTY_NEWLINE);
 }

 static int config_write_server(struct vty *vty)
@@ -518,6 +522,18 @@
        return CMD_SUCCESS;
 }

+DEFUN(cfg_wqueue_maxlength,
+      cfg_wqueue_maxlength_cmd,
+      "wqueue max-length <1-4294967295>",
+      "Configure the write-queue used for transfer\n"
+      "Configure the maximum amount of packets to be stored in the 
write-queue\n"
+      "Maximum amount of packets before dropping starts\n")
+{
+       struct osmo_pcap_client_conn *conn = get_conn(vty);
+
+       conn->wqueue.max_length = atoi(argv[0]);
+       return CMD_SUCCESS;
+}

 int vty_client_init(void)
 {
@@ -535,6 +551,7 @@
        install_element(CLIENT_NODE, &cfg_server_port_cmd);
        install_element(CLIENT_NODE, &cfg_source_ip_cmd);
        install_element(CLIENT_NODE, &cfg_protocol_cmd);
+       install_element(CLIENT_NODE, &cfg_wqueue_maxlength_cmd);

        install_element(CLIENT_NODE, &cfg_enable_tls_cmd);
        install_element(CLIENT_NODE, &cfg_disable_tls_cmd);

--
To view, visit https://gerrit.osmocom.org/c/osmo-pcap/+/27795
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcap
Gerrit-Branch: master
Gerrit-Change-Id: I4e9d5d836ddda215f9e7a075aa8e10d2d3854dd2
Gerrit-Change-Number: 27795
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to