All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.