probe_size
if (viommu->probe_size) {
struct virtio_iommu_config, probe_size,
&viommu->probe_size);
return len - viommu->probe_size - tail_size;
u32 probe_size;
probe_len = sizeof(*probe) + viommu->probe_size +
cur < viommu->probe_size) {
if (cur >= viommu->probe_size)
u32 probe_size:31,
t->pl.probe_size = SCTP_BASE_PLPMTU;
t->pl.probe_size = SCTP_BASE_PLPMTU;
__u32 probe_size;
__u16 probe_size;
__le32 probe_size;
!inet_csk(sk)->icsk_mtup.probe_size;
icsk->icsk_mtup.search_high = icsk->icsk_mtup.probe_size - 1;
icsk->icsk_mtup.probe_size = 0;
do_div(val, icsk->icsk_mtup.probe_size);
icsk->icsk_mtup.search_low = icsk->icsk_mtup.probe_size;
icsk->icsk_mtup.probe_size = 0;
icsk->icsk_mtup.probe_size &&
if (unlikely(icsk->icsk_mtup.probe_size &&
icsk->icsk_mtup.probe_size = 0;
icsk->icsk_mtup.probe_size = 0;
int probe_size)
if (!sk_wmem_schedule(sk, to->truesize + probe_size))
if (len >= probe_size)
probe_size - len);
WARN_ON_ONCE(len != probe_size);
to->truesize += probe_size;
to->len += probe_size;
to->data_len += probe_size;
int probe_size;
icsk->icsk_mtup.probe_size ||
probe_size = tcp_mtu_to_mss(sk, (icsk->icsk_mtup.search_high +
size_needed = probe_size + (tp->reordering + 1) * tp->mss_cache;
if (probe_size > tcp_mtu_to_mss(sk, icsk->icsk_mtup.search_high) ||
if (!tcp_can_coalesce_send_queue_head(sk, probe_size))
if (tcp_clone_payload(sk, nskb, probe_size)) {
TCP_SKB_CB(nskb)->end_seq = TCP_SKB_CB(skb)->seq + probe_size;
copy = min_t(int, skb->len, probe_size - len);
if (len >= probe_size)
icsk->icsk_mtup.probe_size = tcp_mss_to_mtu(sk, nskb->len);
if (icsk->icsk_mtup.probe_size)
icsk->icsk_mtup.probe_size = 0;
t->pl.probe_size + sctp_transport_pl_hlen(t) <= pmtu))
pad = sctp_make_pad(t->asoc, t->pl.probe_size - overhead);
__u32 probe_size)
hbinfo.probe_size = probe_size;
retval->pmtu_probe = !!probe_size;
reply = sctp_make_heartbeat(asoc, transport, transport->pl.probe_size);
if (hbinfo->probe_size) {
if (hbinfo->probe_size != link->pl.probe_size ||
if (t->pl.probe_size == SCTP_BASE_PLPMTU) { /* BASE_PLPMTU Confirmation Failed */
if (t->pl.pmtu == t->pl.probe_size) { /* Black Hole Detected */
t->pl.probe_size = SCTP_BASE_PLPMTU;
t->pl.probe_high = t->pl.probe_size;
t->pl.probe_size = t->pl.pmtu;
if (t->pl.pmtu == t->pl.probe_size) { /* Black Hole Detected */
t->pl.probe_size = SCTP_BASE_PLPMTU;
__func__, t, t->pl.state, t->pl.pmtu, t->pl.probe_size, t->pl.probe_high);
__func__, t, t->pl.state, t->pl.pmtu, t->pl.probe_size, t->pl.probe_high);
t->pl.pmtu = t->pl.probe_size;
t->pl.probe_size += SCTP_PL_BIG_STEP;
t->pl.pmtu = t->pl.probe_size;
t->pl.probe_size += SCTP_PL_BIG_STEP;
if (t->pl.probe_size < SCTP_MAX_PLPMTU) {
t->pl.probe_size = min(t->pl.probe_size + SCTP_PL_BIG_STEP,
t->pl.probe_size += SCTP_PL_MIN_STEP;
if (t->pl.probe_size >= t->pl.probe_high) {
t->pl.probe_size = t->pl.pmtu;
t->pl.probe_size = min(t->pl.probe_size + SCTP_PL_MIN_STEP, SCTP_MAX_PLPMTU);
__func__, t, t->pl.state, t->pl.pmtu, t->pl.probe_size, pmtu);
if (pmtu < SCTP_MIN_PLPMTU || pmtu >= t->pl.probe_size)
t->pl.probe_size = SCTP_BASE_PLPMTU;
} else if (pmtu > t->pl.pmtu && pmtu < t->pl.probe_size) {
t->pl.probe_size = pmtu;
t->pl.probe_size = SCTP_BASE_PLPMTU;