From owner-freebsd-net@freebsd.org Fri Aug 18 03:47:39 2017 Return-Path: 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 45460DC62DD for ; Fri, 18 Aug 2017 03:47:39 +0000 (UTC) (envelope-from mike@karels.net) Received: from mail.karels.net (mail.karels.net [63.231.190.5]) by mx1.freebsd.org (Postfix) with ESMTP id DE53871639 for ; Fri, 18 Aug 2017 03:47:38 +0000 (UTC) (envelope-from mike@karels.net) Received: from [10.0.2.11] (mjk-mac2.karels.net [10.0.2.11]) by mail.karels.net (8.15.2/8.15.2) with ESMTP id v7I3XfjN084985; Thu, 17 Aug 2017 22:33:41 -0500 (CDT) (envelope-from mike@karels.net) From: "Mike Karels" To: "Gopakumar Pillai" Cc: "Bjoern A. Zeeb" , "freebsd-net@FreeBSD.org" Subject: Re: Only last IP frag sent if ARP entry absent Date: Thu, 17 Aug 2017 22:33:31 -0500 Message-ID: <9B1B1A12-CD9F-4A9F-B596-A2F6E5BAED1E@karels.net> In-Reply-To: References: <43CC3432-DB42-4170-B3E7-E305561973F3@lists.zabbadoz.net> MIME-Version: 1.0 X-Mailer: MailMate (1.9.6r5347) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Aug 2017 03:47:39 -0000 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=E2=80=99t know if there is anything more recent than RFC1122 on thi= s. =20 IIRC, it requires queuing at least one packet. Queing one packet is=20 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=20 > that this would affect only ICMP/UDP traffic. People have been asking for queuing of multiple packets for years. That=20 is a more general change. Consider another dumb application that starts=20 out by sending multiple UDP packets back-to-back. However,=20 well-designed application protocols don=E2=80=99t experience problems lik= e=20 this. I=E2=80=99ll quickly note that ping isn=E2=80=99t an application, = but a=20 network measuring tool. If you ask the question =E2=80=9Cwhat happens if= I=20 start off a session with a single large packet and I don=E2=80=99t suppor= t=20 retransmission=E2=80=9D, ping answers that question correctly. If badly-designed protocols get bad performance, that doesn=E2=80=99t see= m=20 like a bug to me, but a feature. > On 8/17/17, 2:40 PM, "Bjoern A. Zeeb" =20 > 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=20 > looking at > > the latest FreeBSD code, seems it exists even now. I am assuming=20 > that > > this issue is not reported. > > > > Observation: > > When a ping was performed with larger payload than MTU, the=20 > 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=20 > first > > request and then the subsequent requests were fine. > > > > Root Cause: > > * ip_output fragments the packets and loops through the=20 > fragments to > > send them to ether_output. > > * ether_output does an arpresolve and if there is no existing=20 > ARP > > entry it'll return EWOULDBLOCK after sending ARP Request. > > * ether_output ignores the error and propagates success to=20 > ip_output > > and it continues to send the remaining fragments. > > * llentry keeps only one mbuf and the last fragment is=20 > retained when > > the ARP Reply comes and the fragment is sent. > > Yes, according to the spec (RFC) we are supposed to throw the=20 > packet > away entirely and simply report that to the next upper layer. =20 > However > over the years people realised that this sucks for a TCP SYN=20 > 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=E2=80=99s no guarantee any of these packets will not be dropp= ed=20 > 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: 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 ; 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 ; 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+dFpUAumYfM= Received: 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 To: Mike Karels CC: "Bjoern A. Zeeb" , "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: References: <43CC3432-DB42-4170-B3E7-E305561973F3@lists.zabbadoz.net> <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+AZi0M= x-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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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==