From: Marcelo Ricardo Leitner <marcelo.leit...@gmail.com>
Date: Sat, 19 Mar 2016 12:17:20 -0300

> SCTP is a protocol that is aligned to a word (4 bytes). Thus using bare
> MTU can sometimes return values that are not aligned, like for loopback,
> which is 65536 but ipv4_mtu() limits that to 65535. This mis-alignment
> will cause the last non-aligned bytes to never be used and can cause
> issues with congestion control.
> 
> So it's better to just consider a lower MTU and keep congestion control
> calcs saner as they are based on PMTU.
> 
> Same applies to icmp frag needed messages, which is also fixed by this
> patch.
> 
> One other effect of this is the inability to send MTU-sized packet
> without queueing or fragmentation and without hitting Nagle. As the
> check performed at sctp_packet_can_append_data():
> 
> if (chunk->skb->len + q->out_qlen >= transport->pathmtu - packet->overhead)
>       /* Enough data queued to fill a packet */
>       return SCTP_XMIT_OK;
> 
> with the above example of MTU, if there are no other messages queued,
> one cannot send a packet that just fits one packet (65532 bytes) and
> without causing DATA chunk fragmentation or a delay.
> 
> v2:
>  - Added WORD_TRUNC macro
> 
> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leit...@gmail.com>

Applied.

Reply via email to