Dear Ole,
I have a quick/easy request for the Python language binding. See pneum_connect(...). We need to make the client input queue size configurable, with a default size of 32. See below. Seems like a simple change to vpp_papi.py:connect(...) -> pneum_wrap.c:wrap_connect(...) -> pneum.c:pneum_connect(...). I hate to make work for other people, but I’m pretty sure that I’ll foul up the PyArg_ParseTuple(...) bit. Why do we care? When run at scale, Wojciech’s test code bumps against its input queue size. Vpp deals with the situation reasonably gracefully, but [especially in single-core cases] the data plane is forced to turf vpp->client messages [stats, interface event notifications, etc.] to avoid gross packet loss [especially when an API client dies]. We can’t let the data-plane wait for a [possibly dead] client to clean up its input queue. Thanks... Dave int pneum_connect (char * name, char * chroot_prefix, pneum_callback_t cb) { int rv = 0; pneum_main_t *pm = &pneum_main; if (chroot_prefix != NULL) vl_set_memory_root_path (chroot_prefix); if ((rv = vl_client_api_map("/vpe-api"))) { clib_warning ("vl_client_api map rv %d", rv); return rv; } if (vl_client_connect(name, 0, 32) < 0) { /* Python code must be able to set this parameter */ vl_client_api_unmap(); return (-1); } if (cb) { /* Start the rx queue thread */ rv = pthread_create(&pm->rx_thread_handle, NULL, pneum_rx_thread_fn, 0); if (rv) { clib_warning("pthread_create returned %d", rv); vl_client_api_unmap(); return (-1); } pneum_callback = cb; } pm->connected_to_vlib = 1; return (0); }
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev