From patchwork Mon Aug 14 15:55:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jon Maloy X-Patchwork-Id: 801233 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xWKwT2NsTz9s76 for ; Tue, 15 Aug 2017 01:56:25 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753652AbdHNP4W (ORCPT ); Mon, 14 Aug 2017 11:56:22 -0400 Received: from sesbmg22.ericsson.net ([193.180.251.48]:61542 "EHLO sesbmg22.ericsson.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753000AbdHNP4V (ORCPT ); Mon, 14 Aug 2017 11:56:21 -0400 X-AuditID: c1b4fb30-96f7a9c000005897-6d-5991c8234058 Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.183.51]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 3C.97.22679.328C1995; Mon, 14 Aug 2017 17:56:20 +0200 (CEST) Received: from tipsy.lab.linux.ericsson.se (10.35.28.120) by ESESSHC011.ericsson.se (153.88.183.51) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 14 Aug 2017 17:56:04 +0200 From: Jon Maloy To: , CC: , , Subject: [net 1/1] tipc: accept PACKET_MULTICAST packets Date: Mon, 14 Aug 2017 17:55:56 +0200 Message-ID: <1502726156-5536-1-git-send-email-jon.maloy@ericsson.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 X-Originating-IP: [10.35.28.120] X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrALMWRmVeSWpSXmKPExsUyM2K7sa7KiYmRBi/OsFnMOd/CYnFsgZjF lvNZFo+vX2d2YPHYsvImk8fuBZ+ZPD5vkvNYv2UrUwBLFJdNSmpOZllqkb5dAlfG4p1nWAvu clZMeLCGqYHxP3sXIyeHhICJxNpbXWwgtpDAEUaJ07eNIeztjBL3llSC2GwCGhIvp3Uwgtgi AsYSr1Z2MoHYzAIFEk8n/mMFsYUFLCRmTpsFZrMIqErMe7oHzOYVcJWYuPszK8QuOYnzx38y Q8QFJU7OfMICMUdC4uCLF8wQe5Ul5n6YxgRRryDxbWY30wRGvllIWmYhaVnAyLSKUbQ4tTgp N93ISC+1KDO5uDg/Ty8vtWQTIzDcDm75bbCD8eVzx0OMAhyMSjy8C49NjBRiTSwrrsw9xCjB wawkwpvUDhTiTUmsrEotyo8vKs1JLT7EKM3BoiTO67jvQoSQQHpiSWp2ampBahFMlomDU6qB 0WFFPP/J5RFRGR8zPDi7a2/833m/y+WVfVrXuxfB7rIXA+s6AlhnWaeWXLtwZvGMsi2+cVdv X3P0VxHtD438fCmp8ViA68KjTjuqFtRaXddi3qwoz94lezZqfvgr7qzd2rc15ArnqIUueHbw aovFhslbpG7fsI4N2Nrd9vnNeovVcXvfy0cvUmIpzkg01GIuKk4EAGLJnAkzAgAA Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On L2 bearers, the TIPC broadcast function is sending out packets using the corresponding L2 broadcast address. At reception, we filter such packets under the assumption that they will also be delivered as broadcast packets. This assumption doesn't always hold true. Under high load, we have seen that a switch may convert the destination address and deliver the packet as a PACKET_MULTICAST, something leading to inadvertently dropped packets and a stale and reset broadcast link. We fix this by extending the reception filtering to accept packets of type PACKET_MULTICAST. Signed-off-by: Jon Maloy --- net/tipc/bearer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index d174ee3..767e053 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c @@ -596,7 +596,7 @@ static int tipc_l2_rcv_msg(struct sk_buff *skb, struct net_device *dev, rcu_read_lock(); b = rcu_dereference_rtnl(dev->tipc_ptr); if (likely(b && test_bit(0, &b->up) && - (skb->pkt_type <= PACKET_BROADCAST))) { + (skb->pkt_type <= PACKET_MULTICAST))) { skb->next = NULL; tipc_rcv(dev_net(dev), skb, b); rcu_read_unlock();