]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_pjsip: Set TCP_NODELAY on TCP transports 40/2840/1
authorGeorge Joseph <gjoseph@digium.com>
Mon, 16 May 2016 00:05:34 +0000 (18:05 -0600)
committerGeorge Joseph <gjoseph@digium.com>
Mon, 16 May 2016 00:08:41 +0000 (19:08 -0500)
commit8b5cee4a4f62c4b7ebcd94aa834c5e84ac108b09
treed1892481014bc2332ceeb2a90d00c3ce61659b2e
parentacdd0ae993c06a82b436abf35f0a14e22cc308d8
res_pjsip:  Set TCP_NODELAY on TCP transports

Although it's perfectly legal to place multiple SIP messages in the same packet,
it can cause problems because the Linux default is to enable Path MTU Discovery
which sets the Don't Fragment bit on the packets. If adding a second message to
the packet causes the MTU to be exceeded, and the destination isn't equipped to
send a FRAGMENTATION NEEDED response to a large packet, the packet will just be
dropped.

We can't specifically tell the stack to send only 1 message per packet, but we
can turn on TCP_NODELAY when we create the transport. This will at least tell
the stack to send packets as soon as possible.

ASTERISK-26005 #close
Reported-by: Ross Beer
Change-Id: I820f23227183f2416ca5e393bec510e8fe1c8fbd
res/res_pjsip/config_transport.c