From patchwork Tue Jan 17 09:32:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 716097 X-Patchwork-Delegate: shemminger@vyatta.com 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 3v2lTk5HbDz9tk5 for ; Tue, 17 Jan 2017 20:40:58 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bTTo/YR4"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751334AbdAQJkx (ORCPT ); Tue, 17 Jan 2017 04:40:53 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:35966 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751064AbdAQJkw (ORCPT ); Tue, 17 Jan 2017 04:40:52 -0500 Received: by mail-pf0-f196.google.com with SMTP id 19so5177283pfo.3 for ; Tue, 17 Jan 2017 01:40:51 -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:in-reply-to:references; bh=BEhXzifHd8QHJyuIF0r/zUk7MF6LzCVdznjeSl8hJb8=; b=bTTo/YR4aClCvpMdW87LB0r/HG9WrXjgV1qoByYVbFrLWH50Ytiwyjd+x+40NnA/Uw +p27fhzcwGdVWUVyoERneVNs7qGpTPNkAaVmukjrjtpaZxxmXKWGito06HZWZILA3PnZ y6Y5Ol70RjrAaLlRHv0mbfIDfYShqplGalctTw5ttYoJmcLQsn2NPhKaKZ9gF67vhUvz sXqQ6N2R/dFjjgGxGBXTiqP1V+oNuk4vrSHXaa1etiSvpUvZ6PDIlVIbEEJJPfWlSxz0 4VWCfGCHEDUpZ/VFYHShK7B3WaheMdj8InSfNXnJvwHGJpDg7hw/9ZOO4P+fY5MNZbAO mHOg== 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:in-reply-to :references; bh=BEhXzifHd8QHJyuIF0r/zUk7MF6LzCVdznjeSl8hJb8=; b=cu2Iy3PIU2urG71Y04q45iX/utgfWjm4Veu9UQUUP6n68wuqE9h96tCt3/s6kWQY3S HAtGe1ffzMOeonmAipoSTkJWbfw9sXZdV/LNcwsaRJd4TFa10gEqqwc9IP5K0rM4D08I favseJEc8NuOCeYBAM6F8rLkXqsHeFxCGiUJe4SvF4TOkNwbZN+y3kU5JqtUnNCq6l1N 1UaDyMXvn1PsnMfIaJ+bloRQrXoKp5MHfrO6tEX5P57NjB1c7/GNHFY5bDHfN9O8oz0p 7PMOgF0R/QGZMkIxE9waoT+rIDFaHVKrgMw1awqFBX9g49AkrxKyYYxY793SkouPr8FR W1Aw== X-Gm-Message-State: AIkVDXIoxEf7jV7sf33zx/O3UCkI/zXxDWWFH3Q7/87E3t2lWi9lc5VqwK9GEZ9CqQ9kJw== X-Received: by 10.84.232.197 with SMTP id x5mr55611527plm.111.1484645575942; Tue, 17 Jan 2017 01:32:55 -0800 (PST) Received: from leo.usersys.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id t3sm53856726pfb.60.2017.01.17.01.32.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Jan 2017 01:32:55 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Stephen Hemminger , Hangbin Liu Subject: [PATCH iproute2 net-next 3/5] iplink: bridge: add support for IFLA_BR_MCAST_STATS_ENABLED Date: Tue, 17 Jan 2017 17:32:30 +0800 Message-Id: <1484645552-29440-4-git-send-email-liuhangbin@gmail.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1484645552-29440-1-git-send-email-liuhangbin@gmail.com> References: <1484645552-29440-1-git-send-email-liuhangbin@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch implements support for the IFLA_BR_MCAST_STATS_ENABLED attribute in iproute2 so it can change the mcast state. Signed-off-by: Hangbin Liu --- ip/iplink_bridge.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c index 8caf53a..622bd07 100644 --- a/ip/iplink_bridge.c +++ b/ip/iplink_bridge.c @@ -49,6 +49,7 @@ static void print_explain(FILE *f) " [ mcast_query_interval QUERY_INTERVAL ]\n" " [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ]\n" " [ mcast_startup_query_interval STARTUP_QUERY_INTERVAL ]\n" + " [ mcast_state MCAST_STATE ]\n" " [ nf_call_iptables NF_CALL_IPTABLES ]\n" " [ nf_call_ip6tables NF_CALL_IP6TABLES ]\n" " [ nf_call_arptables NF_CALL_ARPTABLES ]\n" @@ -299,6 +300,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv, addattr64(n, 1024, IFLA_BR_MCAST_STARTUP_QUERY_INTVL, mcast_startup_query_intvl); + } else if (matches(*argv, "mcast_state") == 0) { + __u8 mcast_state; + + NEXT_ARG(); + if (get_u8(&mcast_state, *argv, 0)) + invarg("invalid mcast_state", *argv); + addattr8(n, 1024, IFLA_BR_MCAST_STATS_ENABLED, + mcast_state); } else if (matches(*argv, "nf_call_iptables") == 0) { __u8 nf_call_ipt; @@ -524,6 +533,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) fprintf(f, "mcast_startup_query_interval %llu ", rta_getattr_u64(tb[IFLA_BR_MCAST_STARTUP_QUERY_INTVL])); + if (tb[IFLA_BR_MCAST_STATS_ENABLED]) + fprintf(f, "mcast_state %u ", + rta_getattr_u8(tb[IFLA_BR_MCAST_STATS_ENABLED])); + if (tb[IFLA_BR_NF_CALL_IPTABLES]) fprintf(f, "nf_call_iptables %u ", rta_getattr_u8(tb[IFLA_BR_NF_CALL_IPTABLES]));