From patchwork Thu Sep 15 19:12:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 670548 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3sZp5H4ZBtz9sC4 for ; Fri, 16 Sep 2016 05:14:59 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b=Wha6X6DK; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754875AbcIOTOz (ORCPT ); Thu, 15 Sep 2016 15:14:55 -0400 Received: from mail-wm0-f42.google.com ([74.125.82.42]:34955 "EHLO mail-wm0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754094AbcIOTOT (ORCPT ); Thu, 15 Sep 2016 15:14:19 -0400 Received: by mail-wm0-f42.google.com with SMTP id l132so1033320wmf.0 for ; Thu, 15 Sep 2016 12:14:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=9BeLz3FcwaBRrd63Me0BFcbcPp2VGuOMT1hiPucrbzs=; b=Wha6X6DKQKAv25ItLDey7iSmoG3Vqp86vSBW6pruDky+ePEd6l4TbCpULNJPL+b5nq o5VnlsYXYA9H5vZEMVGng2CFY4Hk/aQ/kPJYpxwecBtHYDdQMV40+SkNaWC1f4JjK0Wz EEEbMH62p8jhekFWs6VKKjgD1lowPlMMsFEZPgHLkBz4l3hqhbOjtu0ouExL5LRhVNUE EHKnyUAor6WBjmGN6EVRaNhlDSWVtS2XGxQ3jjadpf9fZHQzZjSPVww+iGvIMRueUgBP zvYTBuUtmhxJcIyk0PQ9JnaO9GIcIUd6RLWacWfYjrE+Nz0V59FYUxqMStEhXQsmMvgw ey7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=9BeLz3FcwaBRrd63Me0BFcbcPp2VGuOMT1hiPucrbzs=; b=ArBhCwlsXTkmhGha8H2D75Q4y1Xr72T2mtIdfo8vrZJo0O1hgqUYgSRwoWiNjmykew L6iMJPTGjtwsBM8eFo7TO22KVQ/DBkA3GRqA6Wy3VXhvNUZThxGSvxPeaTctyXAwaEwB WdsJdnrkCdSNkM/RGRtWLtVWZdXKWf1avzmRe2Ks9A8z0MSTmTErhbbGf+XIjXF9psvF U+uybURsxOOD5Ev14+8MnH4Pj2BdkSE6p4Zf8Udy+G2cEqjS0FJXpoCRPFdZTXZ0JfH1 1slf0scpiDS4lGsROxQxUjeqnQngZ3EqZDZaT9HT96glF5ICn5NmQJ8aGUEW1wtkarco MCWQ== X-Gm-Message-State: AE9vXwPLaA8tCcz2b/bkpJfkTCN1Dl6gHsN9NFELiPvBV2aUQ0hcExnkFIGHj/fCmL0BWEZf X-Received: by 10.28.210.5 with SMTP id j5mr4274270wmg.67.1473966857396; Thu, 15 Sep 2016 12:14:17 -0700 (PDT) Received: from jkicinski-Precision-T1700.netronome.com (host-79-78-33-110.static.as9105.net. [79.78.33.110]) by smtp.gmail.com with ESMTPSA id pm1sm4752406wjb.40.2016.09.15.12.14.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 15 Sep 2016 12:14:16 -0700 (PDT) From: Jakub Kicinski To: netdev@vger.kernel.org Cc: ast@kernel.org, daniel@iogearbox.net, jiri@resnulli.us, john.fastabend@gmail.com, kubakici@wp.pl, Jakub Kicinski Subject: [PATCHv4 net-next 10/15] net: cls_bpf: allow offloaded filters to update stats Date: Thu, 15 Sep 2016 20:12:30 +0100 Message-Id: <1473966755-30106-11-git-send-email-jakub.kicinski@netronome.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1473966755-30106-1-git-send-email-jakub.kicinski@netronome.com> References: <1473966755-30106-1-git-send-email-jakub.kicinski@netronome.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Call into offloaded filters to update stats. Signed-off-by: Jakub Kicinski Acked-by: Daniel Borkmann --- include/net/pkt_cls.h | 1 + net/sched/cls_bpf.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index 57af9f3032ff..5ccaa4be7d96 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h @@ -490,6 +490,7 @@ enum tc_clsbpf_command { TC_CLSBPF_ADD, TC_CLSBPF_REPLACE, TC_CLSBPF_DESTROY, + TC_CLSBPF_STATS, }; struct tc_cls_bpf_offload { diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index 1aad314089e9..86ef331f78e8 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c @@ -223,6 +223,15 @@ static void cls_bpf_stop_offload(struct tcf_proto *tp, prog->offloaded = false; } +static void cls_bpf_offload_update_stats(struct tcf_proto *tp, + struct cls_bpf_prog *prog) +{ + if (!prog->offloaded) + return; + + cls_bpf_offload_cmd(tp, prog, TC_CLSBPF_STATS); +} + static int cls_bpf_init(struct tcf_proto *tp) { struct cls_bpf_head *head; @@ -578,6 +587,8 @@ static int cls_bpf_dump(struct net *net, struct tcf_proto *tp, unsigned long fh, tm->tcm_handle = prog->handle; + cls_bpf_offload_update_stats(tp, prog); + nest = nla_nest_start(skb, TCA_OPTIONS); if (nest == NULL) goto nla_put_failure;