From patchwork Mon Jul 16 14:45:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= X-Patchwork-Id: 944463 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=toke.dk Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; secure) header.d=toke.dk header.i=@toke.dk header.b="x3r7j53J"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41TmSK2hHpz9s2P for ; Tue, 17 Jul 2018 00:46:09 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727531AbeGPPNv (ORCPT ); Mon, 16 Jul 2018 11:13:51 -0400 Received: from mail.toke.dk ([52.28.52.200]:44121 "EHLO mail.toke.dk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727329AbeGPPNv (ORCPT ); Mon, 16 Jul 2018 11:13:51 -0400 From: =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1531752359; bh=8zD0hJfB+jQtOL3La+IWQwgG0LKxr2n/VB1BwReAw4Q=; h=From:To:Cc:Subject:Date:From; b=x3r7j53J5cZsTE6h/RXCiUmM8CWRF0ThoawZr8jEvbLekjkvsBps08ODC90hTJPSw /a/AOWrGIv4LpZ0xxKkU8ym7d/lEQUJOobJjGo3JPPWBxhNqCEnC+V2NGDL1DjnK3f WHYHBoHrzp876TV02gRwqB4Uhlx14ETJeJ5EWE0Fmb+Z0SVwWIC2VTwektwNMLmK/f m7n9GybpmzloiikJHU25AeqKvPvOBa10BueDcznS22R9UXGUDEdHXg2/Hofg8v2aUY cbqTSqQsGRSo3GsRslYhgvJkyM3zA75q+T8pI/apZ/0Vh/MrNtI3pH/XbhKqqt2cp5 hGvsSxUvVSj7w== To: netdev@vger.kernel.org Cc: cake@lists.bufferbloat.net, =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Subject: [PATCH net-next] sch_cake: Fix tin order when set through skb->priority Date: Mon, 16 Jul 2018 16:45:09 +0200 Message-Id: <20180716144509.31121-1-toke@toke.dk> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In diffserv mode, CAKE stores tins in a different order internally than the logical order exposed to userspace. The order remapping was missing in the handling of 'tc filter' priority mappings through skb->priority, resulting in bulk and best effort mappings being reversed relative to how they are displayed. Fix this by adding the missing mapping when reading skb->priority. Fixes: 83f8fd69af4f ("sch_cake: Add DiffServ handling") Signed-off-by: Toke Høiland-Jørgensen --- net/sched/sch_cake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sched/sch_cake.c b/net/sched/sch_cake.c index 30695691e9ff..539c9490c308 100644 --- a/net/sched/sch_cake.c +++ b/net/sched/sch_cake.c @@ -1546,7 +1546,7 @@ static struct cake_tin_data *cake_select_tin(struct Qdisc *sch, if (TC_H_MAJ(skb->priority) == sch->handle && TC_H_MIN(skb->priority) > 0 && TC_H_MIN(skb->priority) <= q->tin_cnt) { - tin = TC_H_MIN(skb->priority) - 1; + tin = q->tin_order[TC_H_MIN(skb->priority) - 1]; if (q->rate_flags & CAKE_FLAG_WASH) cake_wash_diffserv(skb);