Lines Matching refs:mtu
202 u32 mtu; in ip6_xmit() local
260 mtu = dst_mtu(dst); in ip6_xmit()
261 if ((skb->len <= mtu) || skb->ignore_df || skb_is_gso(skb)) { in ip6_xmit()
284 ipv6_local_error((struct sock *)sk, EMSGSIZE, fl6, mtu); in ip6_xmit()
384 static bool ip6_pkt_too_big(const struct sk_buff *skb, unsigned int mtu) in ip6_pkt_too_big() argument
386 if (skb->len <= mtu) in ip6_pkt_too_big()
390 if (IP6CB(skb)->frag_max_size && IP6CB(skb)->frag_max_size > mtu) in ip6_pkt_too_big()
396 if (skb_is_gso(skb) && skb_gso_validate_network_len(skb, mtu)) in ip6_pkt_too_big()
409 u32 mtu; in ip6_forward() local
523 mtu = ip6_dst_mtu_forward(dst); in ip6_forward()
524 if (mtu < IPV6_MIN_MTU) in ip6_forward()
525 mtu = IPV6_MIN_MTU; in ip6_forward()
527 if (ip6_pkt_too_big(skb, mtu)) { in ip6_forward()
530 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); in ip6_forward()
589 unsigned int mtu, hlen, left, len; in ip6_fragment() local
601 mtu = ip6_skb_dst_mtu(skb); in ip6_fragment()
606 if (unlikely(!skb->ignore_df && skb->len > mtu)) in ip6_fragment()
610 if (IP6CB(skb)->frag_max_size > mtu) in ip6_fragment()
614 mtu = IP6CB(skb)->frag_max_size; in ip6_fragment()
615 if (mtu < IPV6_MIN_MTU) in ip6_fragment()
616 mtu = IPV6_MIN_MTU; in ip6_fragment()
619 if (np && np->frag_size < mtu) { in ip6_fragment()
621 mtu = np->frag_size; in ip6_fragment()
623 if (mtu < hlen + sizeof(struct frag_hdr) + 8) in ip6_fragment()
625 mtu -= hlen + sizeof(struct frag_hdr); in ip6_fragment()
639 if (first_len - hlen > mtu || in ip6_fragment()
647 if (frag->len > mtu || in ip6_fragment()
773 if (len > mtu) in ip6_fragment()
774 len = mtu; in ip6_fragment()
859 icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); in ip6_fragment()
1135 static void ip6_append_data_mtu(unsigned int *mtu, in ip6_append_data_mtu() argument
1145 *mtu = orig_mtu - rt->dst.header_len; in ip6_append_data_mtu()
1152 *mtu = orig_mtu; in ip6_append_data_mtu()
1154 *maxfraglen = ((*mtu - fragheaderlen) & ~7) in ip6_append_data_mtu()
1164 unsigned int mtu; in ip6_setup_cork() local
1210 mtu = np->pmtudisc >= IPV6_PMTUDISC_PROBE ? in ip6_setup_cork()
1211 READ_ONCE(rt->dst.dev->mtu) : dst_mtu(&rt->dst); in ip6_setup_cork()
1213 mtu = np->pmtudisc >= IPV6_PMTUDISC_PROBE ? in ip6_setup_cork()
1214 READ_ONCE(rt->dst.dev->mtu) : dst_mtu(xfrm_dst_path(&rt->dst)); in ip6_setup_cork()
1215 if (np->frag_size < mtu) { in ip6_setup_cork()
1217 mtu = np->frag_size; in ip6_setup_cork()
1219 if (mtu < IPV6_MIN_MTU) in ip6_setup_cork()
1221 cork->base.fragsize = mtu; in ip6_setup_cork()
1247 unsigned int maxfraglen, fragheaderlen, mtu, orig_mtu, pmtu; in __ip6_append_data() local
1269 mtu = cork->gso_size ? IP6_MAX_MTU : cork->fragsize; in __ip6_append_data()
1270 orig_mtu = mtu; in __ip6_append_data()
1280 maxfraglen = ((mtu - fragheaderlen) & ~7) + fragheaderlen - in __ip6_append_data()
1292 if (headersize + transhdrlen > mtu) in __ip6_append_data()
1295 if (cork->length + length > mtu - headersize && ipc6->dontfrag && in __ip6_append_data()
1298 ipv6_local_rxpmtu(sk, fl6, mtu - headersize + in __ip6_append_data()
1306 maxnonfragsize = mtu; in __ip6_append_data()
1310 pmtu = max_t(int, mtu - headersize + sizeof(struct ipv6hdr), 0); in __ip6_append_data()
1320 length <= mtu - headersize && in __ip6_append_data()
1347 copy = (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - skb->len; in __ip6_append_data()
1366 ip6_append_data_mtu(&mtu, &maxfraglen, in __ip6_append_data()
1378 …if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fraghe… in __ip6_append_data()
1384 alloclen = mtu; in __ip6_append_data()