From nobody@FreeBSD.org  Mon Feb  8 11:05:00 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1BCC5106566C
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  8 Feb 2010 11:05:00 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id E6F558FC0C
	for <freebsd-gnats-submit@FreeBSD.org>; Mon,  8 Feb 2010 11:04:59 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o18B4xm8017033
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 8 Feb 2010 11:04:59 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o18B4xEG017032;
	Mon, 8 Feb 2010 11:04:59 GMT
	(envelope-from nobody)
Message-Id: <201002081104.o18B4xEG017032@www.freebsd.org>
Date: Mon, 8 Feb 2010 11:04:59 GMT
From: Arifumi Matsumoto <a@arifumi.net>
To: freebsd-gnats-submit@FreeBSD.org
Subject: PMTU black hole detection not implemented
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         143666
>Category:       kern
>Synopsis:       [ip6] [request] PMTU black hole detection not implemented
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    ae
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 08 11:10:01 UTC 2010
>Closed-Date:    
>Last-Modified:  Wed Nov 20 22:46:57 UTC 2013
>Originator:     Arifumi Matsumoto
>Release:        6.4R, 7.2R, and 8.0R
>Organization:
>Environment:
FreeBSD mail.nttv6.net 6.4-RELEASE-p7 FreeBSD 6.4-RELEASE-p7 #0: Fri Oct  2 02:29:33 UTC 2009     root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
When both a local host and a remote host supports IPv6, and path MTU is
decreased to 1480 or something below interface's MTU value somewhere
between these hosts, and ICMPv6 packet too big message is lost somewhere
in the network, a TCP connection stalls and if one side tries to send
1500-byte packet, resulted in disconnection.

RFC 2923 "TCP Problems with Path MTU Discovery" Section 2.1 recommends
to fix this problem by making TCP to try sending smaller packets when a
connection stalls.

The corresponding description cited below:

   How to fix
      TCP should notice that the connection is timing out.  After
      several timeouts, TCP should attempt to send smaller packets,
      perhaps turning off the DF flag for each packet.  If this
      succeeds, it should continue to turn off PMTUD for the connection
      for some reasonable period of time, after which it should probe
      again to try to determine if the path has changed.

      Note that, under IPv6, there is no DF bit -- it is implicitly on
      at all times.  Fragmentation is not allowed in routers, only at
      the originating host.  Fortunately, the minimum supported MTU for
      IPv6 is 1280 octets, which is significantly larger than the 68
      octet minimum in IPv4.  This should make it more reasonable for
      IPv6 TCP implementations to fall back to 1280 octet packets, when
      IPv4 implementations will probably have to turn off DF to respond
      to black hole detection.

      Ideally, the ICMP black holes should be fixed when they are found.

      If hosts start to implement black hole detection, it may be that
      these problems will go unnoticed and unfixed.  This is especially
      unfortunate, since detection can take several seconds each time,
      and these delays could result in a significant, hidden degradation
      of performance.  Hosts that implement black hole detection should
      probably log detected black holes, so that they can be fixed.


I also noticed modern other OSes have already implemented this fix.
>How-To-Repeat:
Prepare the MTU black holed environment, and filter out ICMPv6 error
messages between them, and start a TCP session and send 1500-byte
packets by retrieving a file or something.
>Fix:
As stated in RFC 2923, tweak TCP implementation to detect path MTU
black hole, and to react to it by sending smaller packets like 1280-byte
long.

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->suspended 
State-Changed-By: linimon 
State-Changed-When: Mon Feb 8 22:09:50 UTC 2010 
State-Changed-Why:  
Awaiting someone to take an interest in this. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=143666 
Responsible-Changed-From-To: freebsd-bugs->freebsd-net 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Mon Feb 8 22:11:24 UTC 2010 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=143666 

From: Arifumi Matsumoto <a@arifumi.net>
To: bug-followup@FreeBSD.org, freebsd-net@freebsd.org
Cc:  
Subject: Re: kern/143666: [ip6] [request] PMTU black hole detection not 
	implemented
Date: Mon, 14 Jun 2010 09:32:11 +0900

 --0016364ec9c29f44e80488f29edc
 Content-Type: text/plain; charset=ISO-8859-1
 
 Hi,
 
 I made a patch for 8.0 release to fix this issue of path-mtu blackhole
 detection.
 This was mostly derived from macosx, which is APSL and BSD
 dual-licensed code base,
 and slightly modified so that it should not affect ipv4 path mtu detection.
 
 I tested it on 8.0 release only.
 I'm guessing this can be applied for CURRENT also, as the related code does not
 seem to be changed that much.
 
 Best regards,
 
 --0016364ec9c29f44e80488f29edc
 Content-Type: application/octet-stream; name="pmtud-blackhole.patch"
 Content-Disposition: attachment; filename="pmtud-blackhole.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gaekgauz0
 
 ZGlmZiAtYyBuZXRpbmV0Lm9yZy90Y3BfdGltZXIuYyBuZXRpbmV0L3RjcF90aW1lci5jCioqKiBu
 ZXRpbmV0Lm9yZy90Y3BfdGltZXIuYwlTdW4gT2N0IDI1IDAxOjEwOjI5IDIwMDkKLS0tIG5ldGlu
 ZXQvdGNwX3RpbWVyLmMJTW9uIEp1biAxNCAwMzoxNzozMyAyMDEwCioqKioqKioqKioqKioqKgoq
 KiogNjEsNjYgKioqKgotLS0gNjEsNjcgLS0tLQogICNpbmNsdWRlIDxuZXRpbmV0L3RjcF9mc20u
 aD4KICAjaW5jbHVkZSA8bmV0aW5ldC90Y3BfdGltZXIuaD4KICAjaW5jbHVkZSA8bmV0aW5ldC90
 Y3BfdmFyLmg+CisgI2luY2x1ZGUgPG5ldGluZXQ2L3RjcDZfdmFyLmg+CiAgI2luY2x1ZGUgPG5l
 dGluZXQvdGNwaXAuaD4KICAjaWZkZWYgVENQREVCVUcKICAjaW5jbHVkZSA8bmV0aW5ldC90Y3Bf
 ZGVidWcuaD4KKioqKioqKioqKioqKioqCioqKiAxMTAsMTE1ICoqKioKLS0tIDExMSwxMjMgLS0t
 LQogIFNZU0NUTF9QUk9DKF9uZXRfaW5ldF90Y3AsIE9JRF9BVVRPLCBmaW53YWl0Ml90aW1lb3V0
 LCBDVExUWVBFX0lOVHxDVExGTEFHX1JXLAogICAgICAmdGNwX2ZpbndhaXQyX3RpbWVvdXQsIDAs
 IHN5c2N0bF9tc2VjX3RvX3RpY2tzLCAiSSIsICJGSU4tV0FJVDIgdGltZW91dCIpOwogIAorIGlu
 dCAgICAgdGNwX3BtdHVkX2JsYWNrX2hvbGVfZGV0ZWN0ID0gMSA7CisgU1lTQ1RMX0lOVChfbmV0
 X2luZXRfdGNwLCBPSURfQVVUTywgcG10dWRfYmxhY2tob2xlX2RldGVjdGlvbiwgQ1RMRkxBR19S
 VywKKyAgICAgJnRjcF9wbXR1ZF9ibGFja19ob2xlX2RldGVjdCwgMCwgIlBhdGggTVRVIERpc2Nv
 dmVyeSBCbGFjayBIb2xlIERldGVjdGlvbiIpOworIAorIGludCAgICAgdGNwX3BtdHVkX2JsYWNr
 X2hvbGVfbXNzID0gMTIwMCA7CisgU1lTQ1RMX0lOVChfbmV0X2luZXRfdGNwLCBPSURfQVVUTywg
 cG10dWRfYmxhY2tob2xlX21zcywgQ1RMRkxBR19SVywKKyAgICAgJnRjcF9wbXR1ZF9ibGFja19o
 b2xlX21zcywgMCwgIlBhdGggTVRVIERpc2NvdmVyeSBCbGFjayBIb2xlIERldGVjdGlvbiBsb3dl
 cmVkIE1TUyIpOwogIAogIHN0YXRpYyBpbnQJdGNwX2tlZXBjbnQgPSBUQ1BUVl9LRUVQQ05UOwog
 IAkvKiBtYXggaWRsZSBwcm9iZXMgKi8KKioqKioqKioqKioqKioqCioqKiA0NDIsNDQ3ICoqKioK
 LS0tIDQ1MCw0NTggLS0tLQogIAlpbnQgcmV4bXQ7CiAgCWludCBoZWFkbG9ja2VkOwogIAlzdHJ1
 Y3QgaW5wY2IgKmlucDsKKyAjaWZkZWYgSU5FVDYKKyAJaW50IG9wdGxlbiA9IDA7CisgI2VuZGlm
 CiAgI2lmZGVmIFRDUERFQlVHCiAgCWludCBvc3RhdGU7CiAgCioqKioqKioqKioqKioqKgoqKiog
 NTEzLDUxOCAqKioqCi0tLSA1MjQsNTcwIC0tLS0KICAJCXJleG10ID0gVENQX1JFWE1UVkFMKHRw
 KSAqIHRjcF9iYWNrb2ZmW3RwLT50X3J4dHNoaWZ0XTsKICAJVENQVF9SQU5HRVNFVCh0cC0+dF9y
 eHRjdXIsIHJleG10LAogIAkJICAgICAgdHAtPnRfcnR0bWluLCBUQ1BUVl9SRVhNVE1BWCk7Cisg
 CisgICAgICAgICAvKgorICAgICAgICAgICogQ2hlY2sgZm9yIHBvdGVudGlhbCBQYXRoIE1UVSBE
 aXNjb3ZlcnkgQmxhY2sgSG9sZSAKKyAgICAgICAgICAqLworIAorICNpZiBJTkVUNgorICAgICAg
 ICAgaWYgKCh0cC0+dF9pbnBjYi0+aW5wX3ZmbGFnICYgSU5QX0lQVjYpICE9IDAgJiYgdGNwX3Bt
 dHVkX2JsYWNrX2hvbGVfZGV0ZWN0ICYmICh0cC0+dF9zdGF0ZSA9PSBUQ1BTX0VTVEFCTElTSEVE
 KSkgeworICAgICAgICAgICAgICAgICBpZiAodHAtPnRfcnh0c2hpZnQgPT0gMikgeworICAgICAg
 ICAgICAgICAgICAgICAgICAgIC8qIAorICAgICAgICAgICAgICAgICAgICAgICAgICAqIEVudGVy
 IFBhdGggTVRVIEJsYWNrLWhvbGUgRGV0ZWN0aW9uIG1lY2hhbmlzbToKKyAgICAgICAgICAgICAg
 ICAgICAgICAgICAgKiAtIERpc2FibGUgUGF0aCBNVFUgRGlzY292ZXJ5IChJUCAiREYiIGJpdCku
 CisgICAgICAgICAgICAgICAgICAgICAgICAgICogLSBSZWR1Y2UgTVRVIHRvIGxvd2VyIHZhbHVl
 IHRoYW4gd2hhdCB3ZSBuZWdvY2lhdGVkIHdpdGggcGVlci4KKyAgICAgICAgICAgICAgICAgICAg
 ICAgICAgKi8KKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICB0cC0+dF9mbGFncyB8PSBURl9C
 TEFDS0hPTEU7IC8qIFJlY29yZCB0aGF0IHdlIG1heSBoYXZlIGZvdW5kIGEgYmxhY2sgaG9sZSAq
 LworICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGxlbiA9IHRwLT50X21heG9wZCAtIHRwLT50
 X21heHNlZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0cC0+dF9wbXR1ZF9zYXZlZF9tYXhv
 cGQgPSB0cC0+dF9tYXhvcGQ7IC8qIEtlZXAgdHJhY2sgb2YgcHJldmlvdXMgTVNTICovCisgICAg
 ICAgICAgICAgICAgICAgICAgICAgaWYgKHRwLT50X21heG9wZCA+IHRjcF9wbXR1ZF9ibGFja19o
 b2xlX21zcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRwLT50X21heG9wZCA9
 IHRjcF9wbXR1ZF9ibGFja19ob2xlX21zczsgLyogUmVkdWNlIHRoZSBNU1MgdG8gaW50ZXJtZWRp
 YXJ5IHZhbHVlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICB0cC0+dF9tYXhvcGQgPSBWX3RjcF92Nm1zc2RmbHQ7Cisg
 ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIHRwLT50
 X21heHNlZyA9IHRwLT50X21heG9wZCAtIG9wdGxlbjsKKyAgICAgICAgICAgICAgICAgfQorICAg
 ICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgKiBJZiBmdXJ0aGVyIHJldHJhbnNt
 aXNzaW9ucyBhcmUgc3RpbGwgdW5zdWNjZXNzZnVsIHdpdGggYSBsb3dlcmVkIE1UVSwKKyAgICAg
 ICAgICAgICAgICAgICogbWF5YmUgdGhpcyBpc24ndCBhIEJsYWNrIEhvbGUgYW5kIHdlIHJlc3Rv
 cmUgdGhlIHByZXZpb3VzIE1TUyBhbmQKKyAgICAgICAgICAgICAgICAgICogYmxhY2tob2xlIGRl
 dGVjdGlvbiBmbGFncy4KKyAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgIGVs
 c2UgeworIAorICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodHAtPnRfZmxhZ3MgJiBURl9C
 TEFDS0hPTEUpICYmICh0cC0+dF9yeHRzaGlmdCA+IDQpKSB7CisgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICB0cC0+dF9mbGFncyAmPSB+VEZfQkxBQ0tIT0xFOyAKKyAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgIG9wdGxlbiA9IHRwLT50X21heG9wZCAtIHRwLT50X21heHNl
 ZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRwLT50X21heG9wZCA9IHRwLT50
 X3BtdHVkX3NhdmVkX21heG9wZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRw
 LT50X21heHNlZyA9IHRwLT50X21heG9wZCAtIG9wdGxlbjsKKyAgICAgICAgICAgICAgICAgICAg
 ICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAjZW5kaWYKKyAKICAJLyoK
 ICAJICogRGlzYWJsZSByZmMxMzIzIGlmIHdlIGhhdm4ndCBnb3QgYW55IHJlc3BvbnNlIHRvCiAg
 CSAqIG91ciB0aGlyZCBTWU4gdG8gd29yay1hcm91bmQgc29tZSBicm9rZW4gdGVybWluYWwgc2Vy
 dmVycwpkaWZmIC1jIG5ldGluZXQub3JnL3RjcF92YXIuaCBuZXRpbmV0L3RjcF92YXIuaAoqKiog
 bmV0aW5ldC5vcmcvdGNwX3Zhci5oCVN1biBPY3QgMjUgMDE6MTA6MjkgMjAwOQotLS0gbmV0aW5l
 dC90Y3BfdmFyLmgJTW9uIEp1biAxNCAwOToyMToyNSAyMDEwCioqKioqKioqKioqKioqKgoqKiog
 MjAzLDIwOCAqKioqCi0tLSAyMDMsMjA5IC0tLS0KICAJaW50CXRfaXNwYXJlOwkJLyogZXhwbGlj
 aXQgcGFkIGZvciA2NGJpdCBhbGlnbm1lbnQgKi8KICAJdm9pZAkqdF9wc3BhcmUyWzZdOwkJLyog
 MiBDQyAvIDQgVEJEICovCiAgCXVpbnQ2NF90IF9wYWRbMTJdOwkJLyogNyBVVE8sIDUgVEJEICgx
 LTIgQ0MvUlRUPykgKi8KKyAgICAgICAgIHVfaW50ICAgdF9wbXR1ZF9zYXZlZF9tYXhvcGQ7ICAg
 LyogTVNTIHNhdmVkIGJlZm9yZSBwZXJmb3JtaW5nIFBNVFUtRCBCbGFja0hvbGUgZGV0ZWN0aW9u
 ICovCiAgfTsKICAKICAvKgoqKioqKioqKioqKioqKioKKioqIDIzNCwyMzkgKioqKgotLS0gMjM1
 LDI0MSAtLS0tCiAgI2RlZmluZQlURl9FQ05fUEVSTUlUCTB4NDAwMDAwMAkvKiBjb25uZWN0aW9u
 IEVDTi1yZWFkeSAqLwogICNkZWZpbmUJVEZfRUNOX1NORF9DV1IJMHg4MDAwMDAwCS8qIEVDTiBD
 V1IgaW4gcXVldWUgKi8KICAjZGVmaW5lCVRGX0VDTl9TTkRfRUNFCTB4MTAwMDAwMDAJLyogRUNO
 IEVDRSBpbiBxdWV1ZSAqLworICNkZWZpbmUgVEZfQkxBQ0tIT0xFICAgIDB4MjAwMDAwMDAgICAg
 ICAvKiBQYXRoIE1UVSBEaXNjb3ZlcnkgQmxhY2sgSG9sZSBkZXRlY3Rpb24gKi8KICAKICAjZGVm
 aW5lIElOX0ZBU1RSRUNPVkVSWSh0cCkJKHRwLT50X2ZsYWdzICYgVEZfRkFTVFJFQ09WRVJZKQog
 ICNkZWZpbmUgRU5URVJfRkFTVFJFQ09WRVJZKHRwKQl0cC0+dF9mbGFncyB8PSBURl9GQVNUUkVD
 T1ZFUlkK
 --0016364ec9c29f44e80488f29edc--
State-Changed-From-To: suspended->open 
State-Changed-By: ae 
State-Changed-When: Wed Nov 20 22:46:19 UTC 2013 
State-Changed-Why:  
Take it. 


Responsible-Changed-From-To: freebsd-net->ae 
Responsible-Changed-By: ae 
Responsible-Changed-When: Wed Nov 20 22:46:19 UTC 2013 
Responsible-Changed-Why:  
Take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=143666 
>Unformatted:
