We have an application which receives DTMF digit in the form of RTP (using UDP) packets. Earlier the server version was RHEL 5.7 and everything was working fine. Now since we migrated to RHEL 6.8 very often the packets are getting dropped. The packets do not reach the application and
netstat -su
shows an increase in UDP packet receive errors. We are using the usual C function recvfrom() for receiving the packets from the socket.
Setting the /proc/sys/net/core/rmem_max
value to 33554432 using
sysctl -w net.core.rmem_max=33554432
made the system work.
Now why is this change required in RHEL 6.8 and not 5.7 and will this only delay the problem as when this buffer is filled, will the packets again start to drop?