Re: Tellicast client version 2.14.4 for Linux
David J Taylor GM8ARV 🏴 🇪🇺
This is my "understanding" so far:
When TELLICast connects to a channel it opens a socket.
Part of this system call is the size of a (net-) buffer
to be provided by the kernel. The kernel has some max
size limits for read and write buffers. It seems that
the Linux default limits are not enough for TELLICast.
In /etc/sysctl.conf a lot of different kernel defaults
can be adapted. For TC 2.14.1 EUMETSAT asked to set
maximum network buffer sizes to 5500000 Bytes. Maybe
this was a hard coded size TC 2.14.1 was asking for.
Or maybe EUMETSAT just found the clients default of
4000000 (according to TD-15) and added some slack.
Now it seems that the new TC 2.14.4 asks for 4000000 by
default but has the possibility to increase (or lower)
that with "receive_buffer_size" on a TC channel basis.
EUMETSAT now recommends receive_buffer_size=8000000
which means that the max limits in /etc/sysctl.conf
must (at least) be that size. Of course this does not
answer the question of optimum sizes per channel.
As I still had 5500000 as max limit but was asking
for 8000000 the TC client when opening the socket
got a return value that only a 5500000 Bytes buffer
size could be allocated. This was the reason for
the warning in the TELLICast clients log file.
Thanks, Ernst. I've not needed to specify a buffer size when writing network code under Windows, but that might simply mean that there is a default buffer size which has been adequate for my needs. I'd been wondering whether this was allocated from a finite pool (e.g. non-pageable memory), but I don't know. Anyway, "If it works, leave it!" is one of my unwritten rules of network programming.
From what you say, it seems that providing you don't set a value of "0", you'll get a warning if the requested buffer can't be allocated, and the program will try to continue with the maximum buffer it could get. Yes, there are buffer size options when opening a Windows socket. On Windows it seems that (at least one) buffer size may be set by the network adapter itself - possibly configurable.
SatSignal Software - Quality software written to your requirements