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

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

 



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.
> >        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]

  Powered by Linux