Lines Matching refs:pmtu

237 /* Initialize the pmtu of a transport. */
274 t->pl.pmtu = SCTP_BASE_PLPMTU;
275 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
279 if (t->pl.pmtu == t->pl.probe_size) { /* Black Hole Detected */
284 t->pl.pmtu = SCTP_BASE_PLPMTU;
285 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
289 t->pl.probe_size = t->pl.pmtu;
292 if (t->pl.pmtu == t->pl.probe_size) { /* Black Hole Detected */
296 t->pl.pmtu = SCTP_BASE_PLPMTU;
297 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
303 pr_debug("%s: PLPMTUD: transport: %p, state: %d, pmtu: %d, size: %d, high: %d\n",
304 __func__, t, t->pl.state, t->pl.pmtu, t->pl.probe_size, t->pl.probe_high);
310 pr_debug("%s: PLPMTUD: transport: %p, state: %d, pmtu: %d, size: %d, high: %d\n",
311 __func__, t, t->pl.state, t->pl.pmtu, t->pl.probe_size, t->pl.probe_high);
313 t->pl.pmtu = t->pl.probe_size;
321 t->pl.pmtu = t->pl.probe_size;
322 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
339 t->pl.probe_size = t->pl.pmtu;
340 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
353 static bool sctp_transport_pl_toobig(struct sctp_transport *t, u32 pmtu)
355 pr_debug("%s: PLPMTUD: transport: %p, state: %d, pmtu: %d, size: %d, ptb: %d\n",
356 __func__, t, t->pl.state, t->pl.pmtu, t->pl.probe_size, pmtu);
358 if (pmtu < SCTP_MIN_PLPMTU || pmtu >= t->pl.probe_size)
362 if (pmtu >= SCTP_MIN_PLPMTU && pmtu < SCTP_BASE_PLPMTU) {
365 t->pl.pmtu = SCTP_BASE_PLPMTU;
366 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
370 if (pmtu >= SCTP_BASE_PLPMTU && pmtu < t->pl.pmtu) {
376 t->pl.pmtu = SCTP_BASE_PLPMTU;
377 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
379 } else if (pmtu > t->pl.pmtu && pmtu < t->pl.probe_size) {
380 t->pl.probe_size = pmtu;
384 if (pmtu >= SCTP_BASE_PLPMTU && pmtu < t->pl.pmtu) {
390 t->pl.pmtu = SCTP_BASE_PLPMTU;
391 t->pathmtu = t->pl.pmtu + sctp_transport_pl_hlen(t);
400 bool sctp_transport_update_pmtu(struct sctp_transport *t, u32 pmtu)
406 if (unlikely(pmtu < SCTP_DEFAULT_MINSEGMENT)) {
407 pr_warn_ratelimited("%s: Reported pmtu %d too low, using default minimum of %d\n",
408 __func__, pmtu, SCTP_DEFAULT_MINSEGMENT);
410 pmtu = SCTP_DEFAULT_MINSEGMENT;
412 pmtu = SCTP_TRUNC4(pmtu);
415 return sctp_transport_pl_toobig(t, pmtu - sctp_transport_pl_hlen(t));
424 dst->ops->update_pmtu(dst, sk, NULL, pmtu, true);
437 pmtu = sctp_dst_mtu(dst);
438 change = t->pathmtu != pmtu;
440 t->pathmtu = pmtu;
559 __u32 cwnd, ssthresh, flight_size, pba, pmtu;
571 pmtu = transport->asoc->pathmtu;
599 if (bytes_acked > pmtu)
600 cwnd += pmtu;
636 cwnd += pmtu;