On Mon, Jun 04, 2007 at 12:32:49PM +0800, Wei Yongjun wrote:
>
> The latest kernel 2.6.21.3 also doing so. The rule to send ICMP message 
> limit this.
> Ref to net/ipv4/icmp.c
> line 433 void icmp_send(struct sk_buff *skb_in, int type, int code, 
> __be32 info)
> line 434 {
> ...
> line 572    /* RFC says return as much as we can without exceeding 576 
> bytes. */
> line 573
> line 574    room = dst_mtu(&rt->u.dst);
> line 575    if (room > 576)
> line 576        room = 576;
> line 577    room -= sizeof(struct iphdr) + icmp_param.replyopts.optlen;
> line 578    room -= sizeof(struct icmphdr);
> line 579
> line 560    icmp_param.data_len = skb_in->len - icmp_param.offset;
> line 561    if (icmp_param.data_len > room)
> line 562        icmp_param.data_len = room;
> line 563    icmp_param.head_len = sizeof(struct icmphdr);
> 
> line 576 do this.

But this is not the old_mtu field that we were talking about.  The
old_mtu field comes from iph->tot_len which is the length of field
in the *original* IP header.  We're certainly not allowed touch that
field.

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to