From owner-freebsd-net@FreeBSD.ORG Thu Jun 16 06:01:10 2005 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 81E7C16A41C; Thu, 16 Jun 2005 06:01:10 +0000 (GMT) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [66.127.85.87]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4FBBA43D49; Thu, 16 Jun 2005 06:01:10 +0000 (GMT) (envelope-from sam@errno.com) Received: from [66.127.85.94] ([66.127.85.94]) (authenticated bits=0) by ebb.errno.com (8.12.9/8.12.6) with ESMTP id j5G612ms011357 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 15 Jun 2005 23:01:03 -0700 (PDT) (envelope-from sam@errno.com) Message-ID: <42B115B0.4090603@errno.com> Date: Wed, 15 Jun 2005 23:01:20 -0700 From: Sam Leffler Organization: Errno Consulting User-Agent: Mozilla Thunderbird 1.0.2 (Macintosh/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Hartmeier References: <200506132123.j5DLNove069255@freefall.freebsd.org> <20050615204232.GX8526@insomnia.benzedrine.cx> In-Reply-To: <20050615204232.GX8526@insomnia.benzedrine.cx> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-net@freebsd.org, Marcel Moolenaar , freebsd-pf@freebsd.org Subject: Re: ia64/81284: Unaligned Reference with pf on 5.4/IA64 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 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, 16 Jun 2005 06:01:10 -0000 Daniel Hartmeier wrote: > On Mon, Jun 13, 2005 at 09:23:50PM +0000, Marcel Moolenaar wrote: > > >>Synopsis: Unaligned Reference with pf on 5.4/IA64 >> >>Responsible-Changed-From-To: freebsd-net->freebsd-pf >>Responsible-Changed-By: marcel >>Responsible-Changed-When: Mon Jun 13 21:22:54 GMT 2005 >>Responsible-Changed-Why: >>Move to a more pf-focussed responsible party. >> >>http://www.freebsd.org/cgi/query-pr.cgi?pr=81284 > > > If I understand the problem correctly, there is an underlying > network-generic question I'd like to ask here. > > When a function in the kernel gets passed a struct ip pointer, can it > assume that the struct ip object pointed to is properly aligned? Or > should it assume that this is not the case, and extract members more > carefully? > > We can fix the access in pf of course, but if other functions rightfully > count on struct ip objects being properly aligned, this might simply > crash outside of pf, too. > > In short, is the problem that bridge doesn't properly align the struct > ip object (which I can try to fix, too), or that pf assumes that such > objects should be aligned? > > On OpenBSD's 64-bit architectures with varying alignment rules, this has > never occured, I think because the struct ip objects (and, hence, their > ip_src/dst members) are kept aligned. > > If I'm way off, and proper alignment of struct ip objects does not > guarantee proper alignment of the ip_src/dst members as 32-bit > unsigneds, please explain. If ia64 is different from other 64-bit > architectures (of which I only know amd64, sparc64 and alpha), please > explain what alignment rules there are for u_int32_t. Much code assumes ip packets are aligned. Sam