From patchwork Fri Jul 22 17:47:09 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: stephen hemminger X-Patchwork-Id: 106364 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 EF041B6F62 for ; Sat, 23 Jul 2011 03:51:03 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754325Ab1GVRu4 (ORCPT ); Fri, 22 Jul 2011 13:50:56 -0400 Received: from suva.vyatta.com ([76.74.103.44]:46802 "EHLO suva.vyatta.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754149Ab1GVRus (ORCPT ); Fri, 22 Jul 2011 13:50:48 -0400 Received: from suva.vyatta.com (suva [127.0.0.1]) by suva.vyatta.com (8.13.7/8.13.7) with ESMTP id p6MHlXOB020939; Fri, 22 Jul 2011 10:47:33 -0700 Received: (from shemminger@localhost) by suva.vyatta.com (8.13.7/8.13.7/Submit) id p6MHlXXa020938; Fri, 22 Jul 2011 10:47:33 -0700 Message-Id: <20110722174758.196506941@vyatta.com> User-Agent: quilt/0.48-1 Date: Fri, 22 Jul 2011 10:47:09 -0700 From: Stephen Hemminger To: "David S. Miller" Cc: netdev@vger.kernel.org Subject: [PATCH 4/5] [PATCH] bridge: add notification over netlink when STP changes state References: <20110722174705.144993799@vyatta.com> Content-Disposition: inline; filename=bridge-notify-on-stp-change.patch Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When STP changes state of interface need to send a new link message to reflect that change. Signed-off-by: Stephen Hemminger --- This is a revised version of earlier patch. net/bridge/br_netlink.c | 2 ++ net/bridge/br_stp.c | 4 +++- net/bridge/br_stp_if.c | 3 +++ net/bridge/br_stp_timer.c | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- a/net/bridge/br_stp.c 2011-07-21 20:13:31.651989371 -0700 +++ b/net/bridge/br_stp.c 2011-07-21 20:23:14.123989044 -0700 @@ -363,6 +363,8 @@ static void br_make_blocking(struct net_ p->state = BR_STATE_BLOCKING; br_log_state(p); + br_ifinfo_notify(RTM_NEWLINK, p); + del_timer(&p->forward_delay_timer); } } @@ -386,8 +388,8 @@ static void br_make_forwarding(struct ne p->state = BR_STATE_LEARNING; br_multicast_enable_port(p); - br_log_state(p); + br_ifinfo_notify(RTM_NEWLINK, p); if (br->forward_delay != 0) mod_timer(&p->forward_delay_timer, jiffies + br->forward_delay); --- a/net/bridge/br_stp_if.c 2011-07-20 09:06:24.491997816 -0700 +++ b/net/bridge/br_stp_if.c 2011-07-21 20:23:14.123989044 -0700 @@ -88,6 +88,7 @@ void br_stp_enable_port(struct net_bridg br_init_port(p); br_port_state_selection(p->br); br_log_state(p); + br_ifinfo_notify(RTM_NEWLINK, p); } /* called under bridge lock */ @@ -104,6 +105,8 @@ void br_stp_disable_port(struct net_brid p->topology_change_ack = 0; p->config_pending = 0; + br_ifinfo_notify(RTM_NEWLINK, p); + del_timer(&p->message_age_timer); del_timer(&p->forward_delay_timer); del_timer(&p->hold_timer); --- a/net/bridge/br_stp_timer.c 2011-07-20 09:06:24.507997816 -0700 +++ b/net/bridge/br_stp_timer.c 2011-07-21 20:23:14.123989044 -0700 @@ -97,6 +97,7 @@ static void br_forward_delay_timer_expir netif_carrier_on(br->dev); } br_log_state(p); + br_ifinfo_notify(RTM_NEWLINK, p); spin_unlock(&br->lock); } --- a/net/bridge/br_netlink.c 2011-07-20 09:06:24.499997816 -0700 +++ b/net/bridge/br_netlink.c 2011-07-21 20:23:14.123989044 -0700 @@ -188,6 +188,8 @@ static int br_rtm_setlink(struct sk_buff p->state = new_state; br_log_state(p); + br_ifinfo_notify(RTM_NEWLINK, p); + return 0; }