Attention is currently required from: pespin.
laforge has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/libosmocore/+/41702?usp=email )
Change subject: logging_vty: Allow setting gsmtap log tgt as (blocking-io|nonblocking-io|wq) ......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS2:
what I don't yet see is any attempt to increase the UDP socket send buffer using SO_SNDBUF. […]
I've just did a small test: ``` #include <sys/socket.h> #include <stdio.h> #include <netinet/in.h>
int main(int argc, char **argv) { int fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); int i, rc; socklen_t optlen;
optlen = sizeof(i); rc = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &i, &optlen); if (rc < 0) { perror("getsockopt"); } printf("sndbuf read: %d\n", i);
i = 40960000; rc = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &i, optlen); if (rc < 0) { perror("setsockopt"); } printf("sndbuf write: %d\n", i);
rc = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &i, &optlen); if (rc < 0) { perror("getsockopt"); } printf("sndbuf read: %d\n", i); } ```
and it seems one can set whatever large integer value, the kernel will always accept it and just truncate it to (twice) the amount set in the sysctl.
So it's rather simple: Ask for something like 4 MByte (modern-day kernel default wmem_max according to private chat message of @pespin), and do that actually in at least blocking and non-blocking mode. Probably best to do it unconditionally in all modes.