netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wei Yongjun <yjwei@cn.fujitsu.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH] Fix bug of update IPv4 PMTU when received ICMP Fragmentation Needed message
Date: Mon, 04 Jun 2007 12:32:49 +0800	[thread overview]
Message-ID: <466395F1.7060003@cn.fujitsu.com> (raw)
In-Reply-To: <20070604041406.GA28263@gondor.apana.org.au>


> On Mon, Jun 04, 2007 at 12:03:57PM +0800, Wei Yongjun wrote:
>   
>> So I want to know how the route announce a MTU larger then 576, such as 
>> 1280? RFC says ICMP error message return as much as we can without 
>> exceeding 576 bytes.
>>     
>
> I think there is a misunderstanding here.  The RFC is talking about
> how much of the payload may be included in the ICMP packet.  It is
> not talking about the length field in the original IP header.  That
> must be left untouched.
>
>   
As you said, the RFC is talking about the payload of ICMP packet, it's 
not greater then 576, if router announce a MTU larger then 1280, the 
original IP header must be a size of 704? The format of ICMP message is 
like this:
  IPv4 header
  ICMP header
  payload
>> And ipv4 router alaways return as a packet size 576 because of this.
>> If MTU is greater then 576, HOST will used "mtu = guess_mtu(old_mtu)" to 
>> get a MTU. Method of send ICMP Fragmentation Needed message is 
>> difference from receive,
>>     
>
> Which router is doing that?
>
>
>   
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.

-- 

A new email address of FJWAN is launched from Apr.1 2007.
The updated address is: yjwei@cn.fujitsu.com 
--------------------------------------------------
Wei Yongjun
Development Dept.I
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
8/F., Civil Defense Building, No.189 Guangzhou Road,
Nanjing, 210029, China
TEL: +86+25-86630523-858
COINS: 79955-858
FAX: +86+25-83317685
MAIL: yjwei@cn.fujitsu.com
--------------------------------------------------


  reply	other threads:[~2007-06-04  4:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-01  3:51 [PATCH] Fix bug of update IPv4 PMTU when received ICMP Fragmentation Needed message Wei Yongjun
2007-06-02 10:49 ` Herbert Xu
2007-06-04  0:39   ` Wei Yongjun
2007-06-04  2:55     ` Herbert Xu
2007-06-04  4:03       ` Wei Yongjun
2007-06-04  4:14         ` Herbert Xu
2007-06-04  4:32           ` Wei Yongjun [this message]
2007-06-04  4:55             ` Herbert Xu
2007-06-04  5:38               ` Wei Yongjun
2012-03-21 11:40                 ` Ranjeeth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=466395F1.7060003@cn.fujitsu.com \
    --to=yjwei@cn.fujitsu.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).