From owner-freebsd-questions@FreeBSD.ORG Tue Apr 15 19:00:21 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C5EC1065675 for ; Tue, 15 Apr 2008 19:00:21 +0000 (UTC) (envelope-from yonyossef.lists@gmail.com) Received: from yw-out-2324.google.com (yw-out-2324.google.com [74.125.46.30]) by mx1.freebsd.org (Postfix) with ESMTP id A68CA8FC12 for ; Tue, 15 Apr 2008 19:00:20 +0000 (UTC) (envelope-from yonyossef.lists@gmail.com) Received: by yw-out-2324.google.com with SMTP id 2so1149778ywt.13 for ; Tue, 15 Apr 2008 12:00:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type; bh=TURhkWntr2zGsv7V1vCzbsVJ2eLotIvLXtZ0s0Or6pM=; b=xcKdrhTMqf4wWZ/5ibIT/4d3rx+IOtldDcWCpgUnO18w0HzyetzO2tG76YGZPq00ksG/Ahmhj3VGNZ6wgvpT3V8JdhPSo8EfntLPNDemy+F0JnD6jdVBnuixJcmwDKzwzE0SrHJ+UuYcQbk8JoxDWLoWeezZc0SPZiDIh1Lbuoc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=GTvKU+OESQAMftD9hCfvAkJsXL0+e5G0Oa5cZBBDBVjNP5w2iE96tFkNIVSkF0rZK0d6y48giEYbUk80+JABmKds2p2yg9ZS4l/VMsQQu0AtTgHgP6o4iuo1AGzh6KmLHtxRwTlW7EpCWdjHskH3JvYpT2viMSo/C1ILPv809Sc= Received: by 10.150.156.9 with SMTP id d9mr8256052ybe.116.1208286009140; Tue, 15 Apr 2008 12:00:09 -0700 (PDT) Received: by 10.151.12.5 with HTTP; Tue, 15 Apr 2008 12:00:09 -0700 (PDT) Message-ID: <20def4870804151200u49f54563scabd8c19460c20b5@mail.gmail.com> Date: Tue, 15 Apr 2008 22:00:09 +0300 From: "Mr Y" To: freebsd-questions@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: mbuf chains / records in networking X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Apr 2008 19:00:21 -0000 I'm porting an Ethernet driver LRO mechanism (Large Recieve Offload) from Linux to FreeBSD. I learned a bit about mbuf chains and records, but i couldn't understand whether the OS is capable of "eating" a whole mbuf record (mbuf linked using m_cat, by their m_nextpkt pointer) on the RX side. Can I simply concat my incoming network mbufs, each one with his own TCP/IP headers, and push the whole record up the stack in one operation? or should I strip all the packets and build a single TCP/IP header in the first mbuf before I push the record up? Thanks -Yony