/* Local packets are never produced too large for their
interface. We degfragment them at LOCAL_OUT, however,
so we have to refragment them here. */
- if ((*pskb)->len > rt->u.dst.pmtu) {
+ if ((*pskb)->len > dst_pmtu(&rt->u.dst)) {
/* No hook can be after us, so this should be OK. */
ip_fragment(*pskb, okfn);
return NF_STOLEN;
nskb->dst = &rt->u.dst;
/* "Never happens" */
- if (nskb->len > nskb->dst->pmtu)
+ if (nskb->len > dst_pmtu(nskb->dst))
goto free_nskb;
connection_attach(nskb, oldskb->nfct);
/* RFC says return as much as we can without exceeding 576 bytes. */
length = skb_in->len + sizeof(struct iphdr) + sizeof(struct icmphdr);
- if (length > rt->u.dst.pmtu)
- length = rt->u.dst.pmtu;
+ if (length > dst_pmtu(&rt->u.dst))
+ length = dst_pmtu(&rt->u.dst);
if (length > 576)
length = 576;
}
/* Try to redo what tcp_v4_send_synack did. */
- req->window_clamp = rt->u.dst.window;
+ req->window_clamp = dst_metric(&rt->u.dst, RTAX_WINDOW);
tcp_select_initial_window(tcp_full_space(sk), req->mss,
&req->rcv_wnd, &req->window_clamp,
0, &rcv_wscale);