From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf0-f180.google.com (mail-pf0-f180.google.com [209.85.192.180]) by dpdk.org (Postfix) with ESMTP id E5C37C5BC for ; Sat, 20 Feb 2016 08:38:22 +0100 (CET) Received: by mail-pf0-f180.google.com with SMTP id q63so63715695pfb.0 for ; Fri, 19 Feb 2016 23:38:22 -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=xZWm8fTu3X4mpYbock2OENzRPfBwwM+9fZFF4TIP/ZE=; b=X51KKDKMy7nUyYjCR1ZLOyAnIMqVr2vSe/9DNAzG1Cl2tidWiH8PlXurG0NmW/JHVr ZPTlyb1oc7pmIfa7rNabTndpVk48UBv8EVwP7xb6spL7VXcCL9T13t9MoS1oWXcddkGw CaaOsA2PRT/uLO5SlFn3t4a81+XbTnYNDtccf11fm96ZE05fKiPS28qdRo7tDolWEIWz zzYIWS5O9wyjw8U9FiL352Agvi1FsYzKU3t3qLaeQ1NGAXrdEJCVHx8+z1e0N4F5ocMl BYhP7BS3wuardT7ldEOrIHDSZPm6uxS7GC39DNx4F2ikTZkV5y8zNI5NF2cWik5dFIwq KPqw== 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=xZWm8fTu3X4mpYbock2OENzRPfBwwM+9fZFF4TIP/ZE=; b=bkeVj0xg34estY5PsnCeay4O/eAA79NqBrGDgsfx/MwMYBWFDUEzABxEUFC2zECIq+ pv6aHu8owK+ksR1bGMEjAdgF3CJF+8WnSF3s7NigNRjV1nrD221FBqQp1N9guOff63C4 ToAZ8E9Jee1D86zyTeSRbdBLKb5gdfQEevkfqkjrZ60qKgWR882vITtBPz4K6yJybfyA NdKoek43q5Y9QcU3h/rpzdJkoTuvaMwgOwziiYSEuCPJG9f4gvtWBrCiATHp6+ZVhtE2 JNsvztwJ9AMG8Abz/UTOwb486Qu2ACJ4tevQckejd0zfGsfNBwqNeqWkqwRsh+noxom7 cC0w== X-Gm-Message-State: AG10YORPwQ75NesoEFgi4HawsjBktHYFccDQFik4QgJqsxKb0H7gg0gN7u53C48xKyJ9qw== X-Received: by 10.98.75.196 with SMTP id d65mr20450521pfj.96.1455909498079; Fri, 19 Feb 2016 11:18:18 -0800 (PST) Received: from buildhost2.vyatta.com. ([144.49.132.22]) by smtp.gmail.com with ESMTPSA id tp6sm19670555pab.25.2016.02.19.11.18.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Feb 2016 11:18:17 -0800 (PST) From: Eric Kinzie To: dev@dpdk.org Date: Fri, 19 Feb 2016 11:17:50 -0800 Message-Id: <1455909473-13539-4-git-send-email-ehkinzie@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1455909473-13539-1-git-send-email-ehkinzie@gmail.com> References: <8CEF83825BEC744B83065625E567D7C219FB2C51@IRSMSX108.ger.corp.intel.com> <1455909473-13539-1-git-send-email-ehkinzie@gmail.com> Cc: Eric Kinzie Subject: [dpdk-dev] [PATCH v2 3/6] 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: Sat, 20 Feb 2016 07:38:23 -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 2f193db..b938a68 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) { -- 1.7.10.4