From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f193.google.com (mail-pf0-f193.google.com [209.85.192.193]) by dpdk.org (Postfix) with ESMTP id A8657A874 for ; Tue, 1 Mar 2016 18:32:24 +0100 (CET) Received: by mail-pf0-f193.google.com with SMTP id w128so11266166pfb.2 for ; Tue, 01 Mar 2016 09:32:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=WeSBoPjaoOWXhR8qg+KifrXMH/z3HOV+HeXZxhFBdtg=; b=FJQ5TwwLDMg9D9S4TwUAaRZ1hAJ7KX78BAIBDHS+i7hYvzMzBJMJmjyv/3B0Z+I3Bd /LlpSLoekZWQSl7+zBdmL4YFmyyh774IrXjYEYBW7d5gBZ3yr3ZjKXXZiqO9mQ3k4KU4 OahZdWjXrsS84AoLA3o7yBumQvR3pxHjm0vVAFABcDxN3qI+mVh3XdlOuuSQvDBXEEDS lXl2Yyzupx7luINw+kAEaTKIR9t3c3NEiZhCNBLyQM3RBWoRyIZWGmpvSHKhu0CiljOp ftqGnHtsZBMApRWPsoD1JongHMSbQJJyg1G73M4kHdk+lnDQ28KGunZYUX7UfKSgSi38 E7JQ== 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=WeSBoPjaoOWXhR8qg+KifrXMH/z3HOV+HeXZxhFBdtg=; b=O6QBQE3ADtFVLThnZuCrQU0ottqHJmxCz42EIVn3MO9L4uah28t9i8MzKEbz2ss6Va cJMTJSvfao0IfkoWZgaB/wdbXFEmrPJ4olwK71DGl4MIppREWt0IYRrnVFGDZ2L5YZ68 XQxnBNXcB8ZgdS9sId0jDx20sSSRQuJBaU3v3Zafr30W3E///m7Kj4riU1AYX7R5yk9a zZKF3ZVQa+ibOVcSn9zlEs0cs5n8uCZjETUkYct0NuniRCqLQfg+T4kJaVIBVoHyJIaU Q0hivIyAu9fH75zwcZ3If2uNY5n5GP0ZkDtl4CnM2WLAQgTcGj43azsi2GYDxZPAyhFD ziaA== X-Gm-Message-State: AD7BkJKlm7IzkIRVqPEi6lyna/qL6CY2MIGPjSi0cOhwsLyG/foLceLO+J31O3WoOiu7KQ== X-Received: by 10.98.66.75 with SMTP id p72mr32296438pfa.50.1456853544119; Tue, 01 Mar 2016 09:32:24 -0800 (PST) Received: from buildhost2.vyatta.com. ([144.49.132.22]) by smtp.gmail.com with ESMTPSA id y27sm46938069pfi.82.2016.03.01.09.32.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Mar 2016 09:32:23 -0800 (PST) From: Eric Kinzie To: dev@dpdk.org Date: Tue, 1 Mar 2016 09:32:00 -0800 Message-Id: <1456853522-4864-3-git-send-email-ehkinzie@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1456853522-4864-1-git-send-email-ehkinzie@gmail.com> References: <8CEF83825BEC744B83065625E567D7C219FB4852@IRSMSX108.ger.corp.intel.com> <1456853522-4864-1-git-send-email-ehkinzie@gmail.com> Cc: Eric Kinzie Subject: [dpdk-dev] [PATCH V3 2/4] 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: , X-List-Received-Date: Tue, 01 Mar 2016 17:32:25 -0000 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 b63c886..011150a 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -171,6 +171,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) { -- 2.1.4