From owner-freebsd-net@freebsd.org Thu Sep 29 16:38:40 2016 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 DF2A4C01D05 for ; Thu, 29 Sep 2016 16:38:40 +0000 (UTC) (envelope-from prox@prolixium.com) Received: from nox.prolixium.com (nox.prolixium.com [IPv6:2620:6:2000:104::1e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C1AEA250; Thu, 29 Sep 2016 16:38:40 +0000 (UTC) (envelope-from prox@prolixium.com) Received: from prox by nox.prolixium.com with local (Exim 4.87) (envelope-from ) id 1bpeM2-0000hA-Mg; Thu, 29 Sep 2016 11:38:38 -0500 Date: Thu, 29 Sep 2016 11:38:38 -0500 From: Mark Kamichoff To: "Andrey V. Elsukov" Cc: freebsd-net@FreeBSD.org Subject: Re: ICMPv6 HL Exceeded Messages Generated from Wrong Address Message-ID: <20160929163838.GA27564@prolixium.com> References: <20160929031108.GA1530@prolixium.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: prox@prolixium.com X-SA-Exim-Scanned: No (on nox.prolixium.com); SAEximRunCond expanded to false 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: Thu, 29 Sep 2016 16:38:41 -0000 On Thu, Sep 29, 2016 at 09:52:20AM +0300, Andrey V. Elsukov wrote: > Hi, > > can you test this patch? > > -- > WBR, Andrey V. Elsukov > Index: icmp6.c > =================================================================== > --- icmp6.c (revision 305970) > +++ icmp6.c (working copy) > @@ -2203,7 +2203,7 @@ icmp6_reflect(struct mbuf *m, size_t off) > * that we do not own. Select a source address based on the > * source address of the erroneous packet. > */ > - in6_splitscope(&ip6->ip6_dst, &dst6, &scopeid); > + in6_splitscope(&ip6->ip6_src, &dst6, &scopeid); > error = in6_selectsrc_addr(RT_DEFAULT_FIB, &dst6, > scopeid, NULL, &src6, &hlim); > I just tested this. ICMPv6 HL exceeded packets are now emitted from the incoming (correct) interface. Thank you! - Mark -- Mark Kamichoff prox@prolixium.com http://www.prolixium.com/