|
@@ -110,18 +110,14 @@ tcpmss_mangle_packet(struct sk_buff *skb,
|
|
|
if (info->mss == XT_TCPMSS_CLAMP_PMTU) {
|
|
|
struct net *net = par->net;
|
|
|
unsigned int in_mtu = tcpmss_reverse_mtu(net, skb, family);
|
|
|
+ unsigned int min_mtu = min(dst_mtu(skb_dst(skb)), in_mtu);
|
|
|
|
|
|
- if (dst_mtu(skb_dst(skb)) <= minlen) {
|
|
|
+ if (min_mtu <= minlen) {
|
|
|
net_err_ratelimited("unknown or invalid path-MTU (%u)\n",
|
|
|
- dst_mtu(skb_dst(skb)));
|
|
|
+ min_mtu);
|
|
|
return -1;
|
|
|
}
|
|
|
- if (in_mtu <= minlen) {
|
|
|
- net_err_ratelimited("unknown or invalid path-MTU (%u)\n",
|
|
|
- in_mtu);
|
|
|
- return -1;
|
|
|
- }
|
|
|
- newmss = min(dst_mtu(skb_dst(skb)), in_mtu) - minlen;
|
|
|
+ newmss = min_mtu - minlen;
|
|
|
} else
|
|
|
newmss = info->mss;
|
|
|
|