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