From owner-freebsd-net@FreeBSD.ORG Thu Nov 8 23:56:02 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 862F1E11 for ; Thu, 8 Nov 2012 23:56:02 +0000 (UTC) (envelope-from andre@freebsd.org) Received: from c00l3r.networx.ch (c00l3r.networx.ch [62.48.2.2]) by mx1.freebsd.org (Postfix) with ESMTP id D6DD18FC15 for ; Thu, 8 Nov 2012 23:56:01 +0000 (UTC) Received: (qmail 68915 invoked from network); 9 Nov 2012 01:30:56 -0000 Received: from c00l3r.networx.ch (HELO [127.0.0.1]) ([62.48.2.2]) (envelope-sender ) by c00l3r.networx.ch (qmail-ldap-1.03) with SMTP for ; 9 Nov 2012 01:30:56 -0000 Message-ID: <509C4684.2030102@freebsd.org> Date: Fri, 09 Nov 2012 00:55:48 +0100 From: Andre Oppermann User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121010 Thunderbird/16.0.1 MIME-Version: 1.0 To: Adrian Chadd Subject: Re: svn commit: r242739 - stable/9/sys/dev/ti References: <201211080206.qA826RiN054539@svn.freebsd.org> <20121108023858.GA3127@michelle.cdnetworks.com> <509BC2E2.4030907@freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: pyunyh@gmail.com, FreeBSD Net , Pyun YongHyeon X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 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, 08 Nov 2012 23:56:02 -0000 On 09.11.2012 00:32, Adrian Chadd wrote: > On 8 November 2012 06:34, Andre Oppermann wrote: > >> TCP/UDP doesn't (want to) generate any fragments at all and tries >> to avoid it at almost all cost. We want to send very large packets >> and have the NIC fragment/segment it (TSO/UDP frag offload). > > What about if it's a router and the frames don't have DF set? At the risk of repeating myself: when a routed packet is fragmented the payload (layer 4, eg. TCP/UDP/SCTP) is NOT recalculated or changed or anything else. It remains as originally calculated by the sender unchanged in the first fragment L4 header. Only the IPv4 header checksum, which DOES NOT include any payload data, has to be calculated for every fragment. The IPv4 header checksum is offloaded with CSUM_IP and continues to work as expected. :) > Not that it should happen often, however.. -- Andre