From patchwork Fri Jul 27 21:48:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dave Taht X-Patchwork-Id: 950391 X-Patchwork-Delegate: dsahern@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="AjPmecSC"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41cjKM581fz9ryt for ; Sat, 28 Jul 2018 07:49:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389845AbeG0XM6 (ORCPT ); Fri, 27 Jul 2018 19:12:58 -0400 Received: from mail-pf1-f176.google.com ([209.85.210.176]:35737 "EHLO mail-pf1-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389728AbeG0XM6 (ORCPT ); Fri, 27 Jul 2018 19:12:58 -0400 Received: by mail-pf1-f176.google.com with SMTP id q7-v6so2157484pff.2 for ; Fri, 27 Jul 2018 14:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=t1D2fUrlnuePPubtYf+hy+QSDcQlK7X257bgFLr3LbI=; b=AjPmecSC8FOAe3sNXYGbzO12Hf443lyx3GNcsFeaTXb8kguz1731iDC2rjAeJavNDZ jECXsuTA5DKI7mjRrSd5RnXhwzNi3b8PWmFgIM4Z8pgPDiWmcjSznAqYOcUrpAoaO+NA PZy/2xhv1yXmcLnbmrfol5hwqN0/UVHxKRZeg0jZhX8Wvmbv0fP2LpQTXPz+8N+nwXnR wkr1cL5VsE28ezpIrbXJR38C97ZW10NrD7Mj9xWoQc1bg/psJK+H/nWfzG2tjUphj5uL /tRnDKaMnvR97zbNlwwllHlnapqWTZSQOgIOR3PmMJbGjgvU8RhOYmfbTMgZZZlBo+Ig NiWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=t1D2fUrlnuePPubtYf+hy+QSDcQlK7X257bgFLr3LbI=; b=X4BxDpS6G0jprvvpr9/23pFVD2d7S2qBbssiE7x840r133czaKpV1SgnXRPRQgcMCj ImLNvZAS6LMfBrTe6yQsoWBcpzrGE4im/FiFKUzORk6V1oiNTE4+8qcVu2LhV+/BbJ4Z CUpZ4vi7kUR3JNSFTQYuz9e2GZMBfJiUVn79t5hGZ1vviW73xusG+54zX/gNvHWTv+o/ lTOyU1SWVFfho3XaSUi1fqdJjMZitQxkIi1BDDzPw9XFJjowR5ytEwmf/NuFUy39RcTq AdYwWJzRbaE7GcOqTTQr0XU8yyHGnRumHGlh0/Yh6elJ8yAGDoNDe9U9O0YbBuWQbNLa Po+g== X-Gm-Message-State: AOUpUlGm+5gj3ZTpHkbOmOX68VGBmZd5fTM0uqOuyUjNjVNzqjG3HLmy uJeJ5Vjt2sF+eZ796yL2TEKoLFmg X-Google-Smtp-Source: AAOMgpeaG/JTzex+vUL2LAD6+j1Ri7WEMOLK/V2w827SJdx0O5m3wmFaI/DSN5Azmn3l4WcjCTfiNQ== X-Received: by 2002:a63:ae02:: with SMTP id q2-v6mr7436852pgf.189.1532728149073; Fri, 27 Jul 2018 14:49:09 -0700 (PDT) Received: from spaceheater.lab.teklibre.com ([2603:3024:1536:86f0:225:90ff:fec1:6252]) by smtp.gmail.com with ESMTPSA id 16-v6sm7563389pfp.6.2018.07.27.14.49.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 27 Jul 2018 14:49:07 -0700 (PDT) From: Dave Taht To: netdev@vger.kernel.org Cc: Dave Taht , =?utf-8?q?Toke_H=C3=B8iland-J=C3=B8rg?= =?utf-8?q?ensen?= Subject: [PATCH iproute2-next] sch_cake: Make gso-splitting configurable Date: Fri, 27 Jul 2018 14:48:52 -0700 Message-Id: <1532728132-21081-1-git-send-email-dave.taht@gmail.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch makes sch_cake's gso/gro splitting configurable from userspace. To disable breaking apart superpackets in sch_cake: tc qdisc replace dev whatever root cake no-split-gso to enable: tc qdisc replace dev whatever root cake split-gso Signed-off-by: Toke Høiland-Jørgensen Signed-off-by: Dave Taht --- tc/q_cake.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tc/q_cake.c b/tc/q_cake.c index f1e232a..727d673 100644 --- a/tc/q_cake.c +++ b/tc/q_cake.c @@ -79,6 +79,7 @@ static void explain(void) " dual-srchost | dual-dsthost | triple-isolate* ]\n" " [ nat | nonat* ]\n" " [ wash | nowash* ]\n" +" [ split-gso* | no-split-gso ]\n" " [ ack-filter | ack-filter-aggressive | no-ack-filter* ]\n" " [ memlimit LIMIT ]\n" " [ ptm | atm | noatm* ] [ overhead N | conservative | raw* ]\n" @@ -108,6 +109,7 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv, int nat = -1; int atm = -1; int mpu = 0; + int split_gso = -1; while (argc > 0) { if (strcmp(*argv, "bandwidth") == 0) { @@ -155,6 +157,10 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv, wash = 0; } else if (strcmp(*argv, "wash") == 0) { wash = 1; + } else if (strcmp(*argv, "split-gso") == 0) { + split_gso = 1; + } else if (strcmp(*argv, "no-split-gso") == 0) { + split_gso = 0; } else if (strcmp(*argv, "flowblind") == 0) { flowmode = CAKE_FLOW_NONE; } else if (strcmp(*argv, "srchost") == 0) { @@ -374,6 +380,9 @@ static int cake_parse_opt(struct qdisc_util *qu, int argc, char **argv, addattr_l(n, 1024, TCA_CAKE_NAT, &nat, sizeof(nat)); if (wash != -1) addattr_l(n, 1024, TCA_CAKE_WASH, &wash, sizeof(wash)); + if (split_gso != -1) + addattr_l(n, 1024, TCA_CAKE_SPLIT_GSO, &split_gso, + sizeof(split_gso)); if (ingress != -1) addattr_l(n, 1024, TCA_CAKE_INGRESS, &ingress, sizeof(ingress)); if (ack_filter != -1)