On Tue, May 18, 2021 at 09:19:21PM +0200, Michael Tuexen wrote: > > > > On 18. May 2021, at 20:33, Xin Long <lucien.xin@xxxxxxxxx> wrote: > > > > On Tue, May 18, 2021 at 1:38 PM Michael Tuexen <tuexen@xxxxxxxxxxx> wrote: > >> > >>> On 18. May 2021, at 18:43, Xin Long <lucien.xin@xxxxxxxxx> wrote: > >>> > >>> Hi, Michael, > >>> > >>> We're implementing RFC8899 (PLPMTUD) on Linux SCTP recently, > >>> and to make this be controlled by setsockopt with > >>> SCTP_PEER_ADDR_PARAMS, as in > >>> > >>> https://datatracker.ietf.org/doc/html/rfc6458#section-8.1.12: > >>> > >>> we need another two flags to add for spp_flags: > >>> > >>> SPP_PLPMTUD_ENABLE > >>> SPP_PLPMTUD_DISABLE > >>> > >>> Do you think it makes sense? if yes, does the RFC6458 need to update? > >>> if not, do you have a better suggestion for it? > >> It is great new that you want to implement RFC 8899. I plan to do the > >> same for the FreeBSD stack. > >> > >> In my view, RFC 8899 is the right way to implement PMTU discovery. > >> So I will just use the SPP_PMTUD_ENABLE and SPP_PMTUD_DISABLE. I don't > >> think that the user needs to control which method is used. > >> I you want to support multiple versions, I would make that > >> controllable via a sysctl variable. But I think for FreeBSD, support > >> for RFC 8899 will be the only way of doing PMTU discovery. There > >> might be multiple choices for details like how to do the searching, > >> how long to wait for some events. These will be controllable via > >> sysctl. > >> > >> So in my view, there is no need to extend the socket API. What do you think? > > OK, that makes sense to me. > > > > Another thing I want to know your opinion on is: do you think the HB > > should be created > > separately for PLPMTUD probe, instead of reusing the old HB that > > checks the link connectivity? > Yes. I think testing for connectivity is conceptually different > from testing a particular PMTU. When testing for PMTU, I think > about sending probe packets. Not that they consist of a HB chunk > bundled with a PAD chunk. > > As the HB for PLPMTUD probe might get lost, which we don't want to > > affect the link's > > connectivity. > Yes, I agree completely. With this, Xin, seems we should have a separate timer for the PROBE_TIMER, other than the heartbeat one. Otherwise, converging the two logics into one single timer is not worth the hassle for saving a timer. For example, we would have to have it fire on the active transport but to send only the probe. Also, considering they can and (AFAIU the RFC) should have different expire timeouts from time to time. With a separate timer, we won't have issues converging the user-selectable heartbeat interval to the recommended 600s PMTU_RAISE_TIMER, for example. Maybe I am missing something. But it seems the hassle for reusing the timer here is just not worth it. Thoughts? Best, Marcelo > > Best regards > Michael > > > >> > >> Best regards > >> Michael > >>> > >>> Thanks. > >> >