|
|
@@ -498,9 +498,8 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt,
|
|
|
err = 0;
|
|
|
|
|
|
switch (*type) {
|
|
|
- __u32 teli;
|
|
|
struct ipv6_tlv_tnl_enc_lim *tel;
|
|
|
- __u32 mtu;
|
|
|
+ __u32 mtu, teli;
|
|
|
case ICMPV6_DEST_UNREACH:
|
|
|
net_dbg_ratelimited("%s: Path to destination invalid or inactive!\n",
|
|
|
t->parms.name);
|
|
|
@@ -531,11 +530,11 @@ ip6_tnl_err(struct sk_buff *skb, __u8 ipproto, struct inet6_skb_parm *opt,
|
|
|
}
|
|
|
break;
|
|
|
case ICMPV6_PKT_TOOBIG:
|
|
|
+ ip6_update_pmtu(skb, net, htonl(*info), 0, 0,
|
|
|
+ sock_net_uid(net, NULL));
|
|
|
mtu = *info - offset;
|
|
|
if (mtu < IPV6_MIN_MTU)
|
|
|
mtu = IPV6_MIN_MTU;
|
|
|
- t->dev->mtu = mtu;
|
|
|
-
|
|
|
len = sizeof(*ipv6h) + ntohs(ipv6h->payload_len);
|
|
|
if (len > mtu) {
|
|
|
rel_type = ICMPV6_PKT_TOOBIG;
|