From owner-freebsd-hackers Sat Jun 9 10:21:43 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from johnson.mail.mindspring.net (johnson.mail.mindspring.net [207.69.200.177]) by hub.freebsd.org (Postfix) with ESMTP id A369E37B405 for ; Sat, 9 Jun 2001 10:21:39 -0700 (PDT) (envelope-from tlambert2@mindspring.com) Received: from mindspring.com (dialup-209.245.133.57.Dial1.SanJose1.Level3.net [209.245.133.57]) by johnson.mail.mindspring.net (8.9.3/8.8.5) with ESMTP id NAA00599; Sat, 9 Jun 2001 13:21:38 -0400 (EDT) Message-ID: <3B225B3E.5C3D0FC0@mindspring.com> Date: Sat, 09 Jun 2001 10:22:06 -0700 From: Terry Lambert Reply-To: tlambert2@mindspring.com X-Mailer: Mozilla 4.7 [en]C-CCK-MCD {Sony} (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Bsdguru@aol.com Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: How to disable software TCP checksumming? References: <84.1717a060.28525287@aol.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Bsdguru@aol.com wrote: > > This thread is baffling. The bottom line is that you cant > trust data coming into your machine, and you have to > checksum it. The link level check only verifies that what > was sent by the last forwarding point is the same as what > you got, but in NO WAY implies that all of the data is > valid. A link level checksum pass is a necessary, but not > a sufficient condition for the data being acceptable. There > are scads of reasons that it could be bad. Disabling > checksumming is a kludge that you may chose to do, but its > never the right thing to do. Tell me: at what point are you willing to trust the data? Is "the card plus the motherboard" my machine, or is it just "the motherboard"? The cards support offloading the checksum to hardware; you are saying that it is never reasonable to do this. Fine. That basically means that we need to checksum the contents of memory once they have been loaded into the L2 cache, to make sure they arrived safely from memory. Wait... now we need to checksum them in L1 cache, once they have arrived from L2. Wait... now we need to checksum them in the pipeline, as they have arrived from our untrustworthy L1 cache... At some point you have to draw the boundary between the "inside" and the "outside". I am happy to draw this boundary at the etherenet cable; why are you insisting that I draw it at the PCI bus instead? Does your requirement apply to devices integrated on the motherboard, or is your concern solely with the mechanical PCI connectors between the boards and the motherboard? -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message