From f952692c871b78590fcd6f2d1340a77ce59030a6 Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Fri, 6 Jan 2017 16:33:06 -0500 Subject: python clients can set the API rx message queue length Change-Id: I7af1493a823747e0f7389ad6c2093e4cec6c2ce9 Signed-off-by: Dave Barach --- src/vpp-api/python/pneum/pneum.c | 5 +++-- src/vpp-api/python/pneum/pneum.h | 3 ++- src/vpp-api/python/pneum/test_pneum.c | 2 +- src/vpp-api/python/vpp_papi/pneum_wrap.c | 7 ++++--- src/vpp-api/python/vpp_papi/vpp_papi.py | 6 +++--- 5 files changed, 13 insertions(+), 10 deletions(-) (limited to 'src/vpp-api') diff --git a/src/vpp-api/python/pneum/pneum.c b/src/vpp-api/python/pneum/pneum.c index b805f04b..37c8d8fe 100644 --- a/src/vpp-api/python/pneum/pneum.c +++ b/src/vpp-api/python/pneum/pneum.c @@ -126,7 +126,8 @@ pneum_msg_table_size(void) } int -pneum_connect (char * name, char * chroot_prefix, pneum_callback_t cb) +pneum_connect (char * name, char * chroot_prefix, pneum_callback_t cb, + int rx_qlen) { int rv = 0; pneum_main_t *pm = &pneum_main; @@ -139,7 +140,7 @@ pneum_connect (char * name, char * chroot_prefix, pneum_callback_t cb) return rv; } - if (vl_client_connect(name, 0, 32) < 0) { + if (vl_client_connect(name, 0, rx_qlen) < 0) { vl_client_api_unmap(); return (-1); } diff --git a/src/vpp-api/python/pneum/pneum.h b/src/vpp-api/python/pneum/pneum.h index a347bd25..9312eb47 100644 --- a/src/vpp-api/python/pneum/pneum.h +++ b/src/vpp-api/python/pneum/pneum.h @@ -19,7 +19,8 @@ #include typedef void (*pneum_callback_t)(unsigned char * data, int len); -int pneum_connect(char * name, char * chroot_prefix, pneum_callback_t cb); +int pneum_connect(char * name, char * chroot_prefix, pneum_callback_t cb, + int rx_qlen); int pneum_disconnect(void); int pneum_read(char **data, int *l); int pneum_write(char *data, int len); diff --git a/src/vpp-api/python/pneum/test_pneum.c b/src/vpp-api/python/pneum/test_pneum.c index 0d55b8a9..334e58e9 100644 --- a/src/vpp-api/python/pneum/test_pneum.c +++ b/src/vpp-api/python/pneum/test_pneum.c @@ -80,7 +80,7 @@ int main (int argc, char ** argv) vl_api_show_version_t message; vl_api_show_version_t *mp; int async = 1; - int rv = pneum_connect("pneum_client", NULL, NULL); + int rv = pneum_connect("pneum_client", NULL, NULL, 32 /* rx queue-length*/); if (rv != 0) { printf("Connect failed: %d\n", rv); diff --git a/src/vpp-api/python/vpp_papi/pneum_wrap.c b/src/vpp-api/python/vpp_papi/pneum_wrap.c index 5763707b..748b9674 100644 --- a/src/vpp-api/python/vpp_papi/pneum_wrap.c +++ b/src/vpp-api/python/vpp_papi/pneum_wrap.c @@ -45,12 +45,13 @@ static PyObject * wrap_connect (PyObject *self, PyObject *args) { char * name, * chroot_prefix = NULL; + int rx_qlen=32; /* default rx queue length */ int rv; PyObject * temp = NULL; pneum_callback_t cb = NULL; - if (!PyArg_ParseTuple(args, "s|Os:wrap_connect", - &name, &temp, &chroot_prefix)) + if (!PyArg_ParseTuple(args, "s|Ois:wrap_connect", + &name, &temp, &rx_qlen, &chroot_prefix)) return (NULL); if (temp) @@ -67,7 +68,7 @@ wrap_connect (PyObject *self, PyObject *args) cb = wrap_pneum_callback; } Py_BEGIN_ALLOW_THREADS - rv = pneum_connect(name, chroot_prefix, cb); + rv = pneum_connect(name, chroot_prefix, cb, rx_qlen); Py_END_ALLOW_THREADS return PyLong_FromLong(rv); } diff --git a/src/vpp-api/python/vpp_papi/vpp_papi.py b/src/vpp-api/python/vpp_papi/vpp_papi.py index 6b6b79fd..45774723 100644 --- a/src/vpp-api/python/vpp_papi/vpp_papi.py +++ b/src/vpp-api/python/vpp_papi/vpp_papi.py @@ -303,12 +303,12 @@ class VPP(): self.vpp_dictionary[name] = { 'id' : i, 'crc' : crc } self.vpp_dictionary_maxid = max(self.vpp_dictionary_maxid, i) - def connect(self, name, chroot_prefix = None, async = False): + def connect(self, name, chroot_prefix = None, async = False, rx_qlen = 32): msg_handler = self.msg_handler if not async else self.msg_handler_async if not chroot_prefix: - rv = vpp_api.connect(name, msg_handler) + rv = vpp_api.connect(name, msg_handler, rx_qlen) else: - rv = vpp_api.connect(name, msg_handler, chroot_prefix) + rv = vpp_api.connect(name, msg_handler, rx_qlen, chroot_prefix) if rv != 0: raise IOError(2, 'Connect failed') -- cgit 1.2.3-korg