Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Aug 2017 22:33:31 -0500
From:      "Mike Karels" <mike@karels.net>
To:        "Gopakumar Pillai" <gpillai@vmware.com>
Cc:        "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>, "freebsd-net@FreeBSD.org" <freebsd-net@FreeBSD.org>
Subject:   Re: Only last IP frag sent if ARP entry absent
Message-ID:  <9B1B1A12-CD9F-4A9F-B596-A2F6E5BAED1E@karels.net>
In-Reply-To: <AFD0C317-D4E2-4A9E-B6F2-CCA2B0B7464F@vmware.com>
References:  <F9ABB88D-108D-4EF0-8962-091662F488FD@vmware.com> <43CC3432-DB42-4170-B3E7-E305561973F3@lists.zabbadoz.net> <AFD0C317-D4E2-4A9E-B6F2-CCA2B0B7464F@vmware.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Another $.02 (inline):

On 17 Aug 2017, at 18:39, Gopakumar Pillai wrote:

> Thank You Bjoern. Could you please point me to the RFC?

I don’t know if there is anything more recent than RFC1122 on this.  
IIRC, it requires queuing at least one packet.  Queing one packet is 
what BSD has done essentially since ARP was implemented.

> If this is not a MUST behavior in RFC, would my fix be good? I agree 
> that this would affect only ICMP/UDP traffic.

People have been asking for queuing of multiple packets for years.  That 
is a more general change.  Consider another dumb application that starts 
out by sending multiple UDP packets back-to-back.  However, 
well-designed application protocols don’t experience problems like 
this.  I’ll quickly note that ping isn’t an application, but a 
network measuring tool.  If you ask the question “what happens if I 
start off a session with a single large packet and I don’t support 
retransmission”, ping answers that question correctly.

If badly-designed protocols get bad performance, that doesn’t seem 
like a bug to me, but a feature.

> On 8/17/17, 2:40 PM, "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net> 
> wrote:
>
>     On 17 Aug 2017, at 21:16, Gopakumar Pillai wrote:
>
>     > Hi FreeBSD Networking Gurus,
>     > I came across an issue with an old version of FreeBSD and 
> looking at
>     > the latest FreeBSD code, seems it exists even now. I am assuming 
> that
>     > this issue is not reported.
>     >
>     > Observation:
>     > When a ping was performed with larger payload than MTU, the 
> first ping
>     > failed when the ARP entry was absent for that IP.
>
>     That is because ping/ICMP has no retransmit.
>
>
>     > Noticed on the wire that the last IP fragment was sent for the 
> first
>     > request and then the subsequent requests were fine.
>     >
>     > Root Cause:
>     >   * ip_output fragments the packets and loops through the 
> fragments to
>     > send them to ether_output.
>     >   * ether_output does an arpresolve and if there is no existing 
> ARP
>     > entry it'll return EWOULDBLOCK after sending ARP Request.
>     >   * ether_output ignores the error and propagates success to 
> ip_output
>     > and it continues to send the remaining fragments.
>     >   * llentry keeps only one mbuf and the last fragment is 
> retained when
>     > the ARP Reply comes and the fragment is sent.
>
>     Yes, according to the spec (RFC) we are supposed to throw the 
> packet
>     away entirely and simply report that to the next upper layer.  
> However
>     over the years people realised that this sucks for a TCP SYN 
> packet with
>     a retransmit timer and hence we store one of them.
>
>     A large UDP packet would btw see the same behaviour to your ping.
>     There’s no guarantee any of these packets will not be dropped 
> anywhere
>     on the network, so we can as well.
>
>     Just my 2ct
>
>     /bz

		Mike
From owner-freebsd-net@freebsd.org  Fri Aug 18 04:36:10 2017
Return-Path: <owner-freebsd-net@freebsd.org>
Delivered-To: freebsd-net@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C98B9DC94BA
 for <freebsd-net@mailman.ysv.freebsd.org>;
 Fri, 18 Aug 2017 04:36:10 +0000 (UTC)
 (envelope-from gpillai@vmware.com)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam03on0045.outbound.protection.outlook.com [104.47.40.45])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
 (Client CN "mail.protection.outlook.com",
 Issuer "Microsoft IT SSL SHA2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 724D172F99
 for <freebsd-net@FreeBSD.org>; Fri, 18 Aug 2017 04:36:09 +0000 (UTC)
 (envelope-from gpillai@vmware.com)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=onevmw.onmicrosoft.com; s=selector1-vmware-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=r1I6uWVXJSgJhXhQqxf7LI8Vxr6shEwQsVu/8MS4UlY=;
 b=qt1eQ9+VzMiF7XqQftRtl0K2AAQkFLGb/Kl3R3FPFoYPq/MaRgsB2pOPBCTuUZ2AC/S9GeKJAwLPpJ6qLOnXFGo3aDHR1ZLocUcpo44I7JsPg6JSmELzb1D436WMveioyJ+El+LBKffdguLfLXGPXDt0MX2asw7M+dFpUAumYfMReceived: from DM5PR05MB3081.namprd05.prod.outlook.com (10.173.218.143) by
 DM5PR05MB3561.namprd05.prod.outlook.com (10.174.242.154) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id
 15.1.1385.4; Fri, 18 Aug 2017 04:36:07 +0000
Received: from DM5PR05MB3081.namprd05.prod.outlook.com ([10.173.218.143]) by
 DM5PR05MB3081.namprd05.prod.outlook.com ([10.173.218.143]) with mapi id
 15.01.1385.005; Fri, 18 Aug 2017 04:36:07 +0000
From: Gopakumar Pillai <gpillai@vmware.com>
To: Mike Karels <mike@karels.net>
CC: "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>,
 "freebsd-net@FreeBSD.org" <freebsd-net@FreeBSD.org>
Subject: Re: Only last IP frag sent if ARP entry absent
Thread-Topic: Only last IP frag sent if ARP entry absent
Thread-Index: AQHTF54oAIaB9utuUkWJnCYLGMHoeqKJE8iA//+rw4CAALa/gP//nCMA
Date: Fri, 18 Aug 2017 04:36:07 +0000
Message-ID: <DA5C9C72-44E2-4D9F-B8C1-850784F36320@vmware.com>
References: <F9ABB88D-108D-4EF0-8962-091662F488FD@vmware.com>
 <43CC3432-DB42-4170-B3E7-E305561973F3@lists.zabbadoz.net>
 <AFD0C317-D4E2-4A9E-B6F2-CCA2B0B7464F@vmware.com>
 <9B1B1A12-CD9F-4A9F-B596-A2F6E5BAED1E@karels.net>
In-Reply-To: <9B1B1A12-CD9F-4A9F-B596-A2F6E5BAED1E@karels.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=gpillai@vmware.com;
x-originating-ip: [67.169.166.146]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM5PR05MB3561;
 20:+Xi1Ny2/VUU3h5WcemW1X+xSQ216Gv9cMHFzUZd1i5lKOB/XFIgft9PZzM/EJJqzY2TvIiHzpmVC/R3CI6Q/KSJ61l57kryukBYE4fqb6+z+VTgcf9kKg9aUpNpr9NRYTUCxqM4RjBvSMg9uPX///vb6RRttd8/9eBMRP+AZi0Mx-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-correlation-id: 20ac7f66-0b86-42a1-6941-08d4e5f2a4bf
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);
 SRVR:DM5PR05MB3561;
x-ms-traffictypediagnostic: DM5PR05MB3561:
x-exchange-antispam-report-test: UriScan:(61668805478150)(278428928389397)(21748063052155);
x-microsoft-antispam-prvs: <DM5PR05MB35610E1AB86D8BFB0754C8D9D9800@DM5PR05MB3561.namprd05.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:DM5PR05MB3561; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:DM5PR05MB3561;
x-forefront-prvs: 040359335D
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(6009001)(24454002)(199003)(377454003)(189002)(82746002)(6506006)(6486002)(83716003)(77096006)(102836003)(4326008)(6116002)(229853002)(14454004)(33656002)(7736002)(93886005)(25786009)(478600001)(6916009)(86362001)(68736007)(5660300001)(6436002)(2950100002)(3846002)(97736004)(53546010)(54356999)(6246003)(105586002)(106356001)(81156014)(101416001)(50986999)(76176999)(6512007)(99286003)(8676002)(54906002)(8936002)(54896002)(53936002)(3660700001)(3280700002)(189998001)(66066001)(110136004)(2906002)(6306002)(36756003)(2900100001)(81166006);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR05MB3561;
 H:DM5PR05MB3081.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords;
 A:1; MX:1; LANG:en;
received-spf: None (protection.outlook.com: vmware.com does not designate
 permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
MIME-Version: 1.0
X-OriginatorOrg: vmware.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Aug 2017 04:36:07.3686 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB3561
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
X-Content-Filtered-By: Mailman/MimeDel 2.1.23
X-BeenThere: freebsd-net@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: Networking and TCP/IP with FreeBSD <freebsd-net.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-net>,
 <mailto:freebsd-net-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-net/>;
List-Post: <mailto:freebsd-net@freebsd.org>
List-Help: <mailto:freebsd-net-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-net>,
 <mailto:freebsd-net-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Aug 2017 04:36:10 -0000

VGhhbmsgWW91IEJqb2VybiBhbmQgTWlrZS4NCg0KV2hpbGUgSSBhZ3JlZSB3aXRoIHlvdSBNaWtl
IHRoYXQgcGluZyBjYW4gZmFpbCwgYSBVRFAgYXBwbGljYXRpb24gY291bGQgYWxzbyBiZSBhZmZl
Y3RlZCDigJMgaWYgaXRzIHNlbmRpbmcgPk1UVSBkYXRhIGFuZCBpZiBBUlAgZW50cnkgaXMgYWJz
ZW50LiBBbmQgZXRoZXJfb3V0cHV0IHdvdWxkbuKAmXQgZXZlbiB0ZWxsIHRoZSBhcHAgaWYgdGhl
IHNlbmRpbmcgZmFpbGVkIG9yIG5vdCAoYXMgcGVyIGV4aXN0aW5nIGNvZGUpLiBBZ3JlZSB0aGF0
IGJhZGx5IHdyaXR0ZW4gYXBwbGljYXRpb25zIHdvdWxkIHN1ZmZlciB0aGUgbW9zdC4gTXkgZml4
IG9ubHkgaGVscHMgYXBwbGljYXRpb25zLg0KDQpJIGd1ZXNzIEkgYW0gbm90IHRvdGFsbHkgb3V0
IG9mIGxpbmUuDQoNCkJ1dCBub3Qgc3VyZSB3aGV0aGVyIEkgc2hvdWxkIGNoZWNraW4gdGhpcyBm
aXggb3Igbm90ISDimLoNCg0KVGhhbmsgWW91IGFnYWluLg0KDQotLUdvcHUNCg0KDQoNCkZyb206
IE1pa2UgS2FyZWxzIDxtaWtlQGthcmVscy5uZXQ+DQpEYXRlOiBUaHVyc2RheSwgQXVndXN0IDE3
LCAyMDE3IGF0IDg6MzMgUE0NClRvOiBHb3Bha3VtYXIgUGlsbGFpIDxncGlsbGFpQHZtd2FyZS5j
b20+DQpDYzogIkJqb2VybiBBLiBaZWViIiA8YnplZWItbGlzdHNAbGlzdHMuemFiYmFkb3oubmV0
PiwgImZyZWVic2QtbmV0QEZyZWVCU0Qub3JnIiA8ZnJlZWJzZC1uZXRARnJlZUJTRC5vcmc+DQpT
dWJqZWN0OiBSZTogT25seSBsYXN0IElQIGZyYWcgc2VudCBpZiBBUlAgZW50cnkgYWJzZW50DQoN
Cg0KQW5vdGhlciAkLjAyIChpbmxpbmUpOg0KDQpPbiAxNyBBdWcgMjAxNywgYXQgMTg6MzksIEdv
cGFrdW1hciBQaWxsYWkgd3JvdGU6DQoNClRoYW5rIFlvdSBCam9lcm4uIENvdWxkIHlvdSBwbGVh
c2UgcG9pbnQgbWUgdG8gdGhlIFJGQz8NCg0KSSBkb27igJl0IGtub3cgaWYgdGhlcmUgaXMgYW55
dGhpbmcgbW9yZSByZWNlbnQgdGhhbiBSRkMxMTIyIG9uIHRoaXMuIElJUkMsIGl0IHJlcXVpcmVz
IHF1ZXVpbmcgYXQgbGVhc3Qgb25lIHBhY2tldC4gUXVlaW5nIG9uZSBwYWNrZXQgaXMgd2hhdCBC
U0QgaGFzIGRvbmUgZXNzZW50aWFsbHkgc2luY2UgQVJQIHdhcyBpbXBsZW1lbnRlZC4NCg0KSWYg
dGhpcyBpcyBub3QgYSBNVVNUIGJlaGF2aW9yIGluIFJGQywgd291bGQgbXkgZml4IGJlIGdvb2Q/
IEkgYWdyZWUgdGhhdCB0aGlzIHdvdWxkIGFmZmVjdCBvbmx5IElDTVAvVURQIHRyYWZmaWMuDQoN
ClBlb3BsZSBoYXZlIGJlZW4gYXNraW5nIGZvciBxdWV1aW5nIG9mIG11bHRpcGxlIHBhY2tldHMg
Zm9yIHllYXJzLiBUaGF0IGlzIGEgbW9yZSBnZW5lcmFsIGNoYW5nZS4gQ29uc2lkZXIgYW5vdGhl
ciBkdW1iIGFwcGxpY2F0aW9uIHRoYXQgc3RhcnRzIG91dCBieSBzZW5kaW5nIG11bHRpcGxlIFVE
UCBwYWNrZXRzIGJhY2stdG8tYmFjay4gSG93ZXZlciwgd2VsbC1kZXNpZ25lZCBhcHBsaWNhdGlv
biBwcm90b2NvbHMgZG9u4oCZdCBleHBlcmllbmNlIHByb2JsZW1zIGxpa2UgdGhpcy4gSeKAmWxs
IHF1aWNrbHkgbm90ZSB0aGF0IHBpbmcgaXNu4oCZdCBhbiBhcHBsaWNhdGlvbiwgYnV0IGEgbmV0
d29yayBtZWFzdXJpbmcgdG9vbC4gSWYgeW91IGFzayB0aGUgcXVlc3Rpb24g4oCcd2hhdCBoYXBw
ZW5zIGlmIEkgc3RhcnQgb2ZmIGEgc2Vzc2lvbiB3aXRoIGEgc2luZ2xlIGxhcmdlIHBhY2tldCBh
bmQgSSBkb27igJl0IHN1cHBvcnQgcmV0cmFuc21pc3Npb27igJ0sIHBpbmcgYW5zd2VycyB0aGF0
IHF1ZXN0aW9uIGNvcnJlY3RseS4NCg0KSWYgYmFkbHktZGVzaWduZWQgcHJvdG9jb2xzIGdldCBi
YWQgcGVyZm9ybWFuY2UsIHRoYXQgZG9lc27igJl0IHNlZW0gbGlrZSBhIGJ1ZyB0byBtZSwgYnV0
IGEgZmVhdHVyZS4NCg0KT24gOC8xNy8xNywgMjo0MCBQTSwgIkJqb2VybiBBLiBaZWViIiA8Ynpl
ZWItbGlzdHNAbGlzdHMuemFiYmFkb3oubmV0PiB3cm90ZToNCg0KT24gMTcgQXVnIDIwMTcsIGF0
IDIxOjE2LCBHb3Bha3VtYXIgUGlsbGFpIHdyb3RlOg0KDQo+IEhpIEZyZWVCU0QgTmV0d29ya2lu
ZyBHdXJ1cywNCj4gSSBjYW1lIGFjcm9zcyBhbiBpc3N1ZSB3aXRoIGFuIG9sZCB2ZXJzaW9uIG9m
IEZyZWVCU0QgYW5kIGxvb2tpbmcgYXQNCj4gdGhlIGxhdGVzdCBGcmVlQlNEIGNvZGUsIHNlZW1z
IGl0IGV4aXN0cyBldmVuIG5vdy4gSSBhbSBhc3N1bWluZyB0aGF0DQo+IHRoaXMgaXNzdWUgaXMg
bm90IHJlcG9ydGVkLg0KPg0KPiBPYnNlcnZhdGlvbjoNCj4gV2hlbiBhIHBpbmcgd2FzIHBlcmZv
cm1lZCB3aXRoIGxhcmdlciBwYXlsb2FkIHRoYW4gTVRVLCB0aGUgZmlyc3QgcGluZw0KPiBmYWls
ZWQgd2hlbiB0aGUgQVJQIGVudHJ5IHdhcyBhYnNlbnQgZm9yIHRoYXQgSVAuDQoNClRoYXQgaXMg
YmVjYXVzZSBwaW5nL0lDTVAgaGFzIG5vIHJldHJhbnNtaXQuDQoNCg0KPiBOb3RpY2VkIG9uIHRo
ZSB3aXJlIHRoYXQgdGhlIGxhc3QgSVAgZnJhZ21lbnQgd2FzIHNlbnQgZm9yIHRoZSBmaXJzdA0K
PiByZXF1ZXN0IGFuZCB0aGVuIHRoZSBzdWJzZXF1ZW50IHJlcXVlc3RzIHdlcmUgZmluZS4NCj4N
Cj4gUm9vdCBDYXVzZToNCj4gKiBpcF9vdXRwdXQgZnJhZ21lbnRzIHRoZSBwYWNrZXRzIGFuZCBs
b29wcyB0aHJvdWdoIHRoZSBmcmFnbWVudHMgdG8NCj4gc2VuZCB0aGVtIHRvIGV0aGVyX291dHB1
dC4NCj4gKiBldGhlcl9vdXRwdXQgZG9lcyBhbiBhcnByZXNvbHZlIGFuZCBpZiB0aGVyZSBpcyBu
byBleGlzdGluZyBBUlANCj4gZW50cnkgaXQnbGwgcmV0dXJuIEVXT1VMREJMT0NLIGFmdGVyIHNl
bmRpbmcgQVJQIFJlcXVlc3QuDQo+ICogZXRoZXJfb3V0cHV0IGlnbm9yZXMgdGhlIGVycm9yIGFu
ZCBwcm9wYWdhdGVzIHN1Y2Nlc3MgdG8gaXBfb3V0cHV0DQo+IGFuZCBpdCBjb250aW51ZXMgdG8g
c2VuZCB0aGUgcmVtYWluaW5nIGZyYWdtZW50cy4NCj4gKiBsbGVudHJ5IGtlZXBzIG9ubHkgb25l
IG1idWYgYW5kIHRoZSBsYXN0IGZyYWdtZW50IGlzIHJldGFpbmVkIHdoZW4NCj4gdGhlIEFSUCBS
ZXBseSBjb21lcyBhbmQgdGhlIGZyYWdtZW50IGlzIHNlbnQuDQoNClllcywgYWNjb3JkaW5nIHRv
IHRoZSBzcGVjIChSRkMpIHdlIGFyZSBzdXBwb3NlZCB0byB0aHJvdyB0aGUgcGFja2V0DQphd2F5
IGVudGlyZWx5IGFuZCBzaW1wbHkgcmVwb3J0IHRoYXQgdG8gdGhlIG5leHQgdXBwZXIgbGF5ZXIu
IEhvd2V2ZXINCm92ZXIgdGhlIHllYXJzIHBlb3BsZSByZWFsaXNlZCB0aGF0IHRoaXMgc3Vja3Mg
Zm9yIGEgVENQIFNZTiBwYWNrZXQgd2l0aA0KYSByZXRyYW5zbWl0IHRpbWVyIGFuZCBoZW5jZSB3
ZSBzdG9yZSBvbmUgb2YgdGhlbS4NCg0KQSBsYXJnZSBVRFAgcGFja2V0IHdvdWxkIGJ0dyBzZWUg
dGhlIHNhbWUgYmVoYXZpb3VyIHRvIHlvdXIgcGluZy4NClRoZXJl4oCZcyBubyBndWFyYW50ZWUg
YW55IG9mIHRoZXNlIHBhY2tldHMgd2lsbCBub3QgYmUgZHJvcHBlZCBhbnl3aGVyZQ0Kb24gdGhl
IG5ldHdvcmssIHNvIHdlIGNhbiBhcyB3ZWxsLg0KDQpKdXN0IG15IDJjdA0KDQovYnoNCg0KICAg
IE1pa2UNCg=


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9B1B1A12-CD9F-4A9F-B596-A2F6E5BAED1E>