From patchwork Fri Dec 4 17:14:15 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 9354 X-Patchwork-Delegate: bruce.richardson@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id D8DA691B4; Fri, 4 Dec 2015 18:14:17 +0100 (CET) Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by dpdk.org (Postfix) with ESMTP id A33BB91A0 for ; Fri, 4 Dec 2015 18:14:14 +0100 (CET) Received: by pacdm15 with SMTP id dm15so89551235pac.3 for ; Fri, 04 Dec 2015 09:14:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=KPiuni1m6CYn6iDXJJkb5d6V7/W4wyg5QHF2cUw2TDo=; b=kp+6KiYytHa63heQGwernufNBI+mXfcj6chWcKUMIYE6MzUnFULguU+IxNBh85a18w tSsMnkYyZPCQS+dM5T6b1o3tRnzDAXpAQJkOluBdD8lEBrt+MAZxFfhT58uAWsTmQPaS 42hNxZqFgnMw6QEFifQtQmABQP7zTzdesnK9ejaOL9Hx+crZOGNdm5S9Tgg/zykMixKL cq2+iaB8BvZAPGQedPKJl7kHJC1yYtWmNDhbE3mB83ZrXrH0VPTs0pTPEPSvkYYBBdLK yTAvxr3cwuE6HaGlaMFRhkc+GZu3ju2DHeAbq1Ib/s1VTvjmZ22LEbsWZLPABoDPe3NR pR5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=KPiuni1m6CYn6iDXJJkb5d6V7/W4wyg5QHF2cUw2TDo=; b=BMMKbvWmX22dWoe/27dMIk3kgxmZMJujJBux9lrxX54irMybi4q/1wDndXy2Vnbjjs lV0HQoCFtYqyPg+twEuJV9ZFCZUVOOP8o894qlISZgRA00ZLHXTuJoHjnyewatkDlJZP nW0UxgD4EFvjqGKSwkLVbbQUmGtGCKvTYdVICVPVsNtXBogw4gHkRs0LXZlFmuTB8Ds9 BGtE8FVBbj8Qfo1eh2FbjWxz5q9CtsJ0WGCnrkbr096baqGK6uW/vumMavHmcAGx2t9u WE0D/q+4s6TDjHAK5q3l916vX74mEUQ+3Mifrt33n5jfOFJQfnHA8Sg2sQ8gOVwCjXgY BdAw== X-Gm-Message-State: ALoCoQmVRWniHbQPx4t9tl+XOxTvE0z/aWtMBOKDF12tiMO72WLZJ5RPaPKTGPK/f+fFquOEhBOC X-Received: by 10.66.121.110 with SMTP id lj14mr23249462pab.61.1449249254092; Fri, 04 Dec 2015 09:14:14 -0800 (PST) Received: from xeon-e3.home.lan (static-50-53-82-155.bvtn.or.frontiernet.net. [50.53.82.155]) by smtp.gmail.com with ESMTPSA id 134sm18291003pfa.30.2015.12.04.09.14.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 04 Dec 2015 09:14:13 -0800 (PST) From: Stephen Hemminger To: declan.doherty@intel.com Date: Fri, 4 Dec 2015 09:14:15 -0800 Message-Id: <1449249260-15165-4-git-send-email-stephen@networkplumber.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1449249260-15165-1-git-send-email-stephen@networkplumber.org> References: <1449249260-15165-1-git-send-email-stephen@networkplumber.org> Cc: dev@dpdk.org, Eric Kinzie Subject: [dpdk-dev] [PATCH 3/8] bond mode 4: do not ignore multicast X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Eric Kinzie The bonding PMD in mode 4 puts all enslaved interfaces into promiscuous mode in order to receive LACPDUs and must filter unwanted packets after the traffic has been "collected". Allow broadcast and multicast through so that ARP and IPv6 neighbor discovery continue to work. Fixes: 46fb43683679 ("bond: add mode 4") Signed-off-by: Eric Kinzie Signed-off-by: Stephen Hemminger Acked-by: Declan Doherty --- app/test/test_link_bonding_mode4.c | 7 +++++-- drivers/net/bonding/rte_eth_bond_pmd.c | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c index 713368d..31640cd 100644 --- a/app/test/test_link_bonding_mode4.c +++ b/app/test/test_link_bonding_mode4.c @@ -747,8 +747,11 @@ test_mode4_rx(void) rte_eth_macaddr_get(test_params.bonded_port_id, &bonded_mac); ether_addr_copy(&bonded_mac, &dst_mac); - /* Assert that dst address is not bonding address */ - dst_mac.addr_bytes[0]++; + /* Assert that dst address is not bonding address. Do not set the + * least significant bit of the zero byte as this would create a + * multicast address. + */ + dst_mac.addr_bytes[0] += 2; /* First try with promiscuous mode enabled. * Add 2 packets to each slave. First with bonding MAC address, second with diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 127b976..77582dd 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -170,6 +170,7 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs, * mode and packet address does not match. */ if (unlikely(hdr->ether_type == ether_type_slow_be || !collecting || (!promisc && + !is_multicast_ether_addr(&hdr->d_addr) && !is_same_ether_addr(&bond_mac, &hdr->d_addr)))) { if (hdr->ether_type == ether_type_slow_be) {