From patchwork Thu Jan 17 21:18:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 1027002 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="BmYS2oQe"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43gcQQ4lHdz9s9G for ; Fri, 18 Jan 2019 08:19:10 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728510AbfAQVTJ (ORCPT ); Thu, 17 Jan 2019 16:19:09 -0500 Received: from mail-pg1-f171.google.com ([209.85.215.171]:34379 "EHLO mail-pg1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726932AbfAQVTI (ORCPT ); Thu, 17 Jan 2019 16:19:08 -0500 Received: by mail-pg1-f171.google.com with SMTP id j10so5006481pga.1 for ; Thu, 17 Jan 2019 13:19:08 -0800 (PST) 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=BdXjQO/w+DOynVl2cIZhhAWZJQLu/9GB5ppr1LHCZ/w=; b=BmYS2oQe/b+Qm7G1POuwRUKyxTJADctJ1ANLCt9qW9E94PkxAgjqV+hKaAFUbaQvyb 6nt0NtBZHPLNtKjO8PZDs6uenmuO2Rw6YNrXc2DGC3v0nYEPHgMCQ9kvVfCbnlfiTBy8 O6GwIQegAJroK0+kpqvJZotmuAsTL9GW2GLXVGNbGClEX/N5oI9GZpDkFA2Mss9Mjn7s nYOOMYzMz6InIj0WmyZqAubWrFum6ANsbazw7KH0XCrXqogJmcmgMbODQIVVbGHBD/Ww nwPgWrYeTPHO7ujnXQYmKXR/Orp796mTnIONRLz+h+OHvLACNwHT3AXlgJ82I57U65B9 3mnQ== 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=BdXjQO/w+DOynVl2cIZhhAWZJQLu/9GB5ppr1LHCZ/w=; b=ulA7nBTLbh1F/qcSMmWMufGZsq0qHGCBZxI/YYa3i8RmHQeLrSdmNXnad8azhrayMM aYmAtzYjs4hWHknY+cXKTFU98e9vgKQ10HAPGZ0J/5IcVJnJfXFfRKgRt3myliiqXZjs wrndb0eJTa3c92nISEftzSGMvqe4C9SYRijMiBgRgzWrFDXE0G5XmFEi44OH/DdaH1Qf 5vrX7+kJBXAw3jNV8BXkN/0mP91eL5YB6Ya+5yWEk1hT+lYROZMKoxqsFsllMfHPIflt Dz7etZWt4/R/r5DKsoVJEFa+Oe/9vsahMM3pDjrme8+2baN8ViKIDv2ryEJs40NW/y53 CeZQ== X-Gm-Message-State: AJcUukdpCEDE+wFT1CQD1v0o471z6NztLhf3BoeQpnsdcDTCnty4w+f8 EeC2SgROgQFvUOvE1TiBp3JnJZJf X-Google-Smtp-Source: ALg8bN7sPzq+owfioXnPitzGBsiZEVNTTbm54pVJCwHVvgLqXq6WVMnrUUmasTXIDnJMJFqTe/PChA== X-Received: by 2002:a63:5c22:: with SMTP id q34mr14880419pgb.417.1547759947488; Thu, 17 Jan 2019 13:19:07 -0800 (PST) Received: from tw-172-25-17-123.office.twttr.net ([8.25.197.27]) by smtp.gmail.com with ESMTPSA id v184sm3690628pfb.182.2019.01.17.13.19.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 Jan 2019 13:19:06 -0800 (PST) From: Cong Wang To: netdev@vger.kernel.org Cc: Cong Wang , Martin Olsson , Jamal Hadi Salim , Jiri Pirko , David Ahern Subject: [Patch iproute2] tc: add hit counter for matchall Date: Thu, 17 Jan 2019 13:18:55 -0800 Message-Id: <20190117211855.31030-1-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Cc: Martin Olsson Cc: Jamal Hadi Salim Cc: Jiri Pirko Cc: David Ahern Signed-off-by: Cong Wang --- tc/f_matchall.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tc/f_matchall.c b/tc/f_matchall.c index 5ebd0415..03dd51de 100644 --- a/tc/f_matchall.c +++ b/tc/f_matchall.c @@ -114,6 +114,7 @@ static int matchall_print_opt(struct filter_util *qu, FILE *f, struct rtattr *opt, __u32 handle) { struct rtattr *tb[TCA_MATCHALL_MAX+1]; + struct tc_matchall_pcnt *pf = NULL; if (opt == NULL) return 0; @@ -143,6 +144,19 @@ static int matchall_print_opt(struct filter_util *qu, FILE *f, print_bool(PRINT_ANY, "not_in_hw", "\n not_in_hw", true); } + if (tb[TCA_MATCHALL_PCNT]) { + if (RTA_PAYLOAD(tb[TCA_MATCHALL_PCNT]) < sizeof(*pf)) { + print_string(PRINT_FP, NULL, "Broken perf counters\n", NULL); + return -1; + } + pf = RTA_DATA(tb[TCA_MATCHALL_PCNT]); + } + + if (show_stats && NULL != pf) + print_u64(PRINT_ANY, "rule_hit", " (rule hit %llu)", + (unsigned long long) pf->rhit); + + if (tb[TCA_MATCHALL_ACT]) tc_print_action(f, tb[TCA_MATCHALL_ACT], 0);