From patchwork Tue Jan 17 09:32:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 716101 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 3v2lZF5Nf2z9tk5 for ; Tue, 17 Jan 2017 20:44:53 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="D47Z7AzQ"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751388AbdAQJnK (ORCPT ); Tue, 17 Jan 2017 04:43:10 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:35775 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751028AbdAQJmT (ORCPT ); Tue, 17 Jan 2017 04:42:19 -0500 Received: by mail-pf0-f194.google.com with SMTP id f144so15915232pfa.2 for ; Tue, 17 Jan 2017 01:42:18 -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=op93j1KtVQgRytokPMvTmyfWQ9c8ckZCpvNVXyCoSSE=; b=D47Z7AzQhEyE5EzaTxz/nUF0U0KKzhXOkLondd31hxjR80795V4d+Wt3P5XBql+wlX orlOyHgigKkluNfPMCXxIYk9pexXpOd8MdKNBqGzSSc81HXbsTmaOe7YqCNZWobxyuMG /bREhEnZGe6oAzYhrn2QQoHUjW+Misq1GJasv8bZXwH0cPs3hjlmPKjh6yzNvXf/XsAk 9JQB2KZZJZhCtFBnowQV7UbiHZf3siXkboXb4NSjhZg1tBMfd8u8vd6xjAKvJ3mF9uCN 1YGy43nRQtdi1aPz4HbkZslPnrItM7Z6frMFx6kfz1rEfEtoNOi5Ud8GUVbn782J8n4A O9QA== 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=op93j1KtVQgRytokPMvTmyfWQ9c8ckZCpvNVXyCoSSE=; b=YhsT4cmOlnpJYUSkuOld9BUiMwf18VvbW+z3rcsw0upiy+ef8RfvLgaozSkI8y6Blk pMuYpQZyX2bre6YkU3G3AopSD/eZv1fpGQF6DTdxOXNwvZVDNJqXyfe5V+WCqNIMDNjb 4Ua9YtJ9u3G+Oi5EnXImuaESizVX0kGUyl688c6hdMfMae5fUck2oBbXXmdoFVBraS+Q O0XwWKl7t9Xd+IkfTvu7TFcOrUnB5luGBJcH6TIae+oQGGB6ie4dwFd7DzDJkLibzKSN /gx5mBIPXhqOEOamf+YXf1AKhEuPN9UQBkmj5ccN7wnorC7C6koHukbU6tIMeUdC8llJ piFA== X-Gm-Message-State: AIkVDXKq0oC4FxY2xGVOPff/fMkVQUj8P9NonMKVM+DA55foP4hxFqEqOeb4hF7Nar6hTw== X-Received: by 10.99.150.10 with SMTP id c10mr45633363pge.121.1484645578195; Tue, 17 Jan 2017 01:32:58 -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.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Jan 2017 01:32:57 -0800 (PST) From: Hangbin Liu To: netdev@vger.kernel.org Cc: Stephen Hemminger , Hangbin Liu Subject: [PATCH iproute2 net-next 4/5] iplink: bridge: add support for IFLA_BR_MCAST_IGMP_VERSION Date: Tue, 17 Jan 2017 17:32:31 +0800 Message-Id: <1484645552-29440-5-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_IGMP_VERSION attribute in iproute2 so it can change the mcast igmp version. Signed-off-by: Hangbin Liu Reviewed-by: Nikolay Aleksandrov --- ip/iplink_bridge.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ip/iplink_bridge.c b/ip/iplink_bridge.c index 622bd07..6611a85 100644 --- a/ip/iplink_bridge.c +++ b/ip/iplink_bridge.c @@ -50,6 +50,7 @@ static void print_explain(FILE *f) " [ mcast_query_response_interval QUERY_RESPONSE_INTERVAL ]\n" " [ mcast_startup_query_interval STARTUP_QUERY_INTERVAL ]\n" " [ mcast_state MCAST_STATE ]\n" + " [ mcast_igmp_version IGMP_VERSION ]\n" " [ nf_call_iptables NF_CALL_IPTABLES ]\n" " [ nf_call_ip6tables NF_CALL_IP6TABLES ]\n" " [ nf_call_arptables NF_CALL_ARPTABLES ]\n" @@ -308,6 +309,14 @@ static int bridge_parse_opt(struct link_util *lu, int argc, char **argv, invarg("invalid mcast_state", *argv); addattr8(n, 1024, IFLA_BR_MCAST_STATS_ENABLED, mcast_state); + } else if (matches(*argv, "mcast_igmp_version") == 0) { + __u8 igmp_version; + + NEXT_ARG(); + if (get_u8(&igmp_version, *argv, 0)) + invarg("invalid mcast_igmp_version", *argv); + addattr8(n, 1024, IFLA_BR_MCAST_IGMP_VERSION, + igmp_version); } else if (matches(*argv, "nf_call_iptables") == 0) { __u8 nf_call_ipt; @@ -537,6 +546,10 @@ static void bridge_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) fprintf(f, "mcast_state %u ", rta_getattr_u8(tb[IFLA_BR_MCAST_STATS_ENABLED])); + if (tb[IFLA_BR_MCAST_IGMP_VERSION]) + fprintf(f, "mcast_igmp_version %u ", + rta_getattr_u8(tb[IFLA_BR_MCAST_IGMP_VERSION])); + if (tb[IFLA_BR_NF_CALL_IPTABLES]) fprintf(f, "nf_call_iptables %u ", rta_getattr_u8(tb[IFLA_BR_NF_CALL_IPTABLES]));