From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.toke.dk (mail.toke.dk [IPv6:2001:470:dc45:1000::1]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 4B8833BA8E for ; Thu, 26 Apr 2018 02:39:37 -0400 (EDT) From: Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1524724775; bh=GEfwYf8jfFwUFRacveDceQ1D4thNE+yPe7PWXhqLNAc=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=M61AuJi5GdMvuc3iIRJ3tcIJYJbRSyowycnCG0M+swo7UucJkQJfdA6VWRG4TIBI1 N2T/ofK2PC7MUUzHVuYtXJ7tUrm2t3P5nTckf3ue34CtRWr8+bjIo1XYjPCICKABND MhkJf5eWw6GKp6l5/IxlIVZnontk1tQt5SSfKX7Xi3ux36nKcRoRovGt6R31id5DPO aCdWo76On9hWYn2xw9b8ulSuqs+FFk3dBSVFTPAHNpCiXmBZbeQAyWFKUe0PIetxMu VYoIp6ZDWO2RCSo0AEv48PobjUxaT6LJ/k48xFSnQOu+GzM3in8Y1vySB+dsU0B3o4 kVNBP0OgH57rA== To: Ryan Mounce Cc: Cake List In-Reply-To: References: <87vacf3th7.fsf@toke.dk> Date: Thu, 26 Apr 2018 08:39:33 +0200 X-Clacks-Overhead: GNU Terry Pratchett Message-ID: <87po2m4gka.fsf@toke.dk> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Cake] CAKE upstreaming - testers wanted, ACK filtering rescuers needed X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2018 06:39:37 -0000 Ryan Mounce writes: > I'll investigate making the ACK filtering code safe, it is my mess after all :) > > Eric obviously understands this stuff a lot better than me, it looks > like there are two issues? > - Lack of minimum length check for TCP header, should be fairly > straight-forward to fix > - The possibility of unsafely filtering part of a split GSO > super-packet? The issue with the ACK filter in relation to GSO was just that a GSO segment can't contain pure ACKs, so there's no reason to check after splitting. I've already removed that part, so it's just the length issue. I think it's just a matter of finding the length and calling pskb_may_pull() (and aborting if that returns false). -Toke