Re: The new sysctl and socket option added for PLPMTUD (RFC8899)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On 12. Jun 2021, at 19:32, Xin Long <lucien.xin@xxxxxxxxx> wrote:
> 
> On Fri, Jun 11, 2021 at 4:42 PM <tuexen@xxxxxxxxxxx> wrote:
>> 
>>> On 11. Jun 2021, at 22:20, Xin Long <lucien.xin@xxxxxxxxx> wrote:
>>> 
>>> Hi, Michael,
>>> 
>>> In the linux implementation of RFC8899, we decided to introduce one
>>> sysctl and one socket option for users to set up the PLPMUTD probe:
>>> 
>>> 1. sysctl -w net.sctp.plpmtud_probe_interval=1
>>> 
>>> plpmtud_probe_interval - INTEGER
>>>       The interval (in milliseconds) between PLPMTUD probe chunks. These
>>>       chunks are sent at the specified interval with a variable size to
>>>       probe the mtu of a given path between 2 associations. PLPMTUD will
>> I guess you mean "between 2 end points" instead of "between 2 associations".
>> 
>> I'm not sure what it means:
>> 
>> I assume, you have candidate 1400, 1420, 1460, 1480, and 1500.
>> 
>> Assume you sent a probe packet for 1400. Aren't you sending the
>> probe packet for 1420 as soon as you get an ACK for the probe packet
>> of size 1400? Or are you waiting for plpmtud_probe_interval ms?
> It will wait for "plpmtud_probe_interval" ms in searching state, but in
> searching complete it will be "plpmtud_probe_interval * 30" ms.
> 
> The step we are using is 32, when it fails, we turn the step to 4. For example:
> 1400, 1432, 1464, 1496, 1528 (failed), 1500(1496 + 4), 1504(failed,
> 1500 is the PMTU).
> 
> Sorry, "sysctl -w net.sctp.plpmtud_probe_interval=1" won't work.
> As plpmtud_probe_interval is the probe interval TIME for the timer.
> Apart from 0, the minimal value is 5000ms.
> 
> So it should be:
> 
> plpmtud_probe_interval - INTEGER
>        The time interval (in milliseconds) for sending PLPMTUD probe chunks.
>        These chunks are sent at the specified interval with a variable size
>        to probe the mtu of a given path between 2 endpoints. PLPMTUD will
>        be disabled when 0 is set.
> 
>        Default: 0
> 
> Thanks.
OK. Thanks for the clarification.

Best regards
Michael
>>>       be disabled when 0 is set.
>>> 
>>>       Default: 0
>>> 
>>> 2. a socket option that can be used per socket, assoc or transport
>>> 
>>> /* PLPMTUD Probe Interval socket option */
>>> struct sctp_probeinterval {
>>>       sctp_assoc_t spi_assoc_id;
>>>       struct sockaddr_storage spi_address;
>>>       __u32 spi_interval;
>>> };
>>> 
>>> #define SCTP_PLPMTUD_PROBE_INTERVAL    133
>>> 
>>> 
>>> The value above will enable/disable the PLPMUTD probe by setting up the probe
>>> interval for the timer. When it's 0, the timer will also stop and
>>> PLPMUTD is disabled.
>>> By this way, we don't need to introduce more options.
>> OK.
>>> 
>>> We're expecting to keep consistent with BSD on this, pls check and
>>> share your thoughts.
>> Looks good to me.
>> 
>> Best regards
>> Michael
>>> 
>>> Thanks.
>> 




[Index of Archives]     [Linux Networking Development]     [Linux OMAP]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     SCTP

  Powered by Linux