From patchwork Tue Apr 16 13:19:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikolay Aleksandrov X-Patchwork-Id: 1086319 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=cumulusnetworks.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b="Bqzq6qe6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44k5Yh6fV6z9s3l for ; Tue, 16 Apr 2019 23:19:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726918AbfDPNTS (ORCPT ); Tue, 16 Apr 2019 09:19:18 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:39633 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726796AbfDPNTS (ORCPT ); Tue, 16 Apr 2019 09:19:18 -0400 Received: by mail-wm1-f65.google.com with SMTP id n25so25423654wmk.4 for ; Tue, 16 Apr 2019 06:19:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=OiapRk22uz2RdWxz5kDcM7PvI18vJdl2xMBNfM7lJz8=; b=Bqzq6qe6IaVzNpLRjfCm3PPRiFfck8lWI1bPqjlaq5d6bIL70hRTJoGlnNoSG/1Oe1 SmiXYB35oSL6D2SFiBwAYsP+rc+2fsPBiXXuMeycLlWNQTNtI3Y/57v8x6CIk9wtlRuB yUETzv+ZlX9jUY96B3YYJ4u+8vkbD4o40bNwo= 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=OiapRk22uz2RdWxz5kDcM7PvI18vJdl2xMBNfM7lJz8=; b=oxbTRYL3Zf6Suwb63ckcWFC5xQcXxbl5/0YnHSUvcfK5VRs7VlY8Zf/VCKFrs6M90V hfc5OGVjd1fSky3yHlwTBep0tDZWWIL/GVG9Egh9XYNz204RqjLNv5dyxvwHIyxXvye9 dgH8UQO+2CRJBBLu2oToHrZqu3gwJ7PjLpu4gF5MbAHUlKd5V9+cMhs3zgpY94Lt+8vu mPXw9ROu+YRV9negcGpzkoqejxUzSCxhaBbGjq8D6Qi/tBlMpdVWXy8uQBCJm5EJu3QV Ocq+YhXPg3ePb/1scKTLiV4T3bBqPUQpYf7D33fdZEvRrPb2ufkfxNSDhtWE4lu1C731 vL5A== X-Gm-Message-State: APjAAAVjY3EmUPyrtwN3SnCG62eSDPp252m6SyrcpKyax+RJfrtx/P4u LdqFvz8b2XwBxWj/F8hGNRFaP/Tna3A= X-Google-Smtp-Source: APXvYqx29l7ohYe1kLRchJdo25IfGJQN8qRe1i2sB9JRzhdxSBNUjVGJoFi7MhT9FLbsZaPxAk8+2A== X-Received: by 2002:a1c:b782:: with SMTP id h124mr27096505wmf.5.1555420756789; Tue, 16 Apr 2019 06:19:16 -0700 (PDT) Received: from localhost.localdomain ([93.152.141.58]) by smtp.gmail.com with ESMTPSA id g10sm47062324wrq.2.2019.04.16.06.19.15 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 16 Apr 2019 06:19:16 -0700 (PDT) From: Nikolay Aleksandrov To: netdev@vger.kernel.org Cc: dsa@cumulusnetworks.com, roopa@cumulusnetworks.com, Nikolay Aleksandrov Subject: [PATCH iproute2-next] iplink: bridge: add support for vlan_stats_per_port Date: Tue, 16 Apr 2019 16:19:10 +0300 Message-Id: <20190416131910.27379-1-nikolay@cumulusnetworks.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 Add support for manipulating and showing the vlan_stats_per_port bridge option which can be toggled only when there are no port VLANs configured. Also update the man page with the new option. Signed-off-by: Nikolay Aleksandrov --- ip/iplink_bridge.c | 15 +++++++++++++++ man/man8/ip-link.8.in | 9 +++++++++ 2 files changed, 24 insertions(+) diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c index e9b77fdfe377..10ba85f6f1fe 100644 --- a/ip/iplink_bridge.c +++ b/ip/iplink_bridge.c @@ -41,6 +41,7 @@ static void print_explain(FILE *f) " [ vlan_protocol VLAN_PROTOCOL ]\n" " [ vlan_default_pvid VLAN_DEFAULT_PVID ]\n" " [ vlan_stats_enabled VLAN_STATS_ENABLED ]\n" + " [ vlan_stats_per_port VLAN_STATS_PER_PORT ]\n" " [ mcast_snooping MULTICAST_SNOOPING ]\n" " [ mcast_router MULTICAST_ROUTER ]\n" " [ mcast_query_use_ifaddr MCAST_QUERY_USE_IFADDR ]\n" @@ -175,6 +176,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv, invarg("invalid vlan_stats_enabled", *argv); addattr8(n, 1024, IFLA_BR_VLAN_STATS_ENABLED, vlan_stats_enabled); + } else if (matches(*argv, "vlan_stats_per_port") == 0) { + __u8 vlan_stats_per_port; + + NEXT_ARG(); + if (get_u8(&vlan_stats_per_port, *argv, 0)) + invarg("invalid vlan_stats_per_port", *argv); + addattr8(n, 1024, IFLA_BR_VLAN_STATS_PER_PORT, + vlan_stats_per_port); } else if (matches(*argv, "mcast_router") == 0) { __u8 mcast_router; @@ -521,6 +530,12 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) "vlan_stats_enabled %u ", rta_getattr_u8(tb[IFLA_BR_VLAN_STATS_ENABLED])); + if (tb[IFLA_BR_VLAN_STATS_PER_PORT]) + print_uint(PRINT_ANY, + "vlan_stats_per_port", + "vlan_stats_per_port %u ", + rta_getattr_u8(tb[IFLA_BR_VLAN_STATS_PER_PORT])); + if (tb[IFLA_BR_GROUP_FWD_MASK]) print_0xhex(PRINT_ANY, "group_fwd_mask", diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in index 6f31453cbd0e..da12ad6e6d76 100644 --- a/man/man8/ip-link.8.in +++ b/man/man8/ip-link.8.in @@ -1380,6 +1380,8 @@ the following additional arguments are supported: ] [ .BI vlan_stats_enabled " VLAN_STATS_ENABLED " ] [ +.BI vlan_stats_per_port " VLAN_STATS_PER_PORT " +] [ .BI mcast_snooping " MULTICAST_SNOOPING " ] [ .BI mcast_router " MULTICAST_ROUTER " @@ -1473,6 +1475,13 @@ or disable .RI ( VLAN_STATS_ENABLED " == 0) " per-VLAN stats accounting. +.BI vlan_stats_per_port " VLAN_STATS_PER_PORT " +- enable +.RI ( VLAN_STATS_PER_PORT " == 1) " +or disable +.RI ( VLAN_STATS_PER_PORT " == 0) " +per-VLAN per-port stats accounting. Can be changed only when there are no port VLANs configured. + .BI mcast_snooping " MULTICAST_SNOOPING " - turn multicast snooping on .RI ( MULTICAST_SNOOPING " > 0) "