From owner-svn-src-all@freebsd.org Thu Mar 29 23:25:09 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C59FF53F84; Thu, 29 Mar 2018 23:25:09 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from forward104o.mail.yandex.net (forward104o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::607]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B05436A8D6; Thu, 29 Mar 2018 23:25:08 +0000 (UTC) (envelope-from melifaro@ipfw.ru) Received: from mxback9j.mail.yandex.net (mxback9j.mail.yandex.net [IPv6:2a02:6b8:0:1619::112]) by forward104o.mail.yandex.net (Yandex) with ESMTP id 49C56700DDF; Fri, 30 Mar 2018 02:24:57 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback9j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 01b6uf5HIP-OtXaPV6f; Fri, 30 Mar 2018 02:24:56 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfw.ru; s=mail; t=1522365896; bh=YHGJbXniAvCvKmzHH2Ou2HqObPYZdIbSoG+BaqrEAl8=; h=From:To:Cc:In-Reply-To:References:Subject:Message-Id:Date; b=tttPc31O9UEE843bCL9qyIPEpkUqkoI2u4SRDZlEBoRTeKvEy+wC9CWETb89IwrpG gxYA2chvG1DbD+cWK1QHo3a506AzikGIQZTDPbNBDBwvqKc1ycsLfyStfD3E+2QAAw gq6Gh4i3ZEnQ9y1ddgci8iBrkKegz9Sc5X663ua8= Authentication-Results: mxback9j.mail.yandex.net; dkim=pass header.i=@ipfw.ru Received: by web41j.yandex.ru with HTTP; Fri, 30 Mar 2018 02:24:55 +0300 From: Alexander V. Chernikov Envelope-From: melifaro@ipfw.ru To: Bjoern A. Zeeb Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" In-Reply-To: <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net> References: <201803171705.w2HH5mk1054256@repo.freebsd.org> <99B864A7-2541-4EBF-BDF3-F24E1ABF11D0@lists.zabbadoz.net> Subject: Re: svn commit: r331098 - in head/sys: net netinet netinet6 MIME-Version: 1.0 Message-Id: <10903971522365895@web41j.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Fri, 30 Mar 2018 02:24:55 +0300 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Mar 2018 23:25:09 -0000 30.03.2018, 02:10, "Bjoern A. Zeeb" : > On 17 Mar 2018, at 17:05, Alexander V. Chernikov wrote: > >>  Author: melifaro >>  Date: Sat Mar 17 17:05:48 2018 >>  New Revision: 331098 >>  URL: https://svnweb.freebsd.org/changeset/base/331098 >> >>  Log: >>    Fix outgoing TCP/UDP packet drop on arp/ndp entry expiration. >> >>    Current arp/nd code relies on the feedback from the datapath >>  indicating >>     that the entry is still used. This mechanism is incorporated into >>  the >>     arpresolve()/nd6_resolve() routines. After the inpcb route cache >>     introduction, the packet path for the locally-originated packets >>  changed, >>     passing cached lle pointer to the ether_output() directly. This >>  resulted >>     in the arp/ndp entry expire each time exactly after the configured >>  max_age >>     interval. During the small window between the ARP/NDP request and >>  reply >>     from the router, most of the packets got lost. >> >>    Fix this behaviour by plugging datapath notification code to the >>  packet >>     path used by route cache. Unify the notification code by using >>  single >>     inlined function with the per-AF callbacks. >> >>    Reported by: sthaug at nethelp.no >>    Reviewed by: ae >>    MFC after: 2 weeks > > Does this mean that we now take an extra lock per-packet again? No. This codepath is triggered only when ARP/NDP state machine requires datapath feedback, e.g. at most once per second per LLE. > > /bz