瀏覽代碼

[ipoib] Transmit multicast packets as broadcasts

Multicast MAC addresses will never have REMAC cache entries, and the
corresponding multicast IPoIB MAC address cannot be obtained simply by
issuing an ARP request.

For the trivial volume of multicast packets that we expect to send in
any realistic scenario, the simplest solution is to send them as
broadcasts instead.

Reported-by: Wissam Shoukair <wissams@mellanox.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 9 年之前
父節點
當前提交
652e5a96db
共有 1 個檔案被更改,包括 4 行新增2 行删除
  1. 4
    2
      src/drivers/net/ipoib.c

+ 4
- 2
src/drivers/net/ipoib.c 查看文件

@@ -146,8 +146,10 @@ static struct ipoib_mac * ipoib_find_remac ( struct ipoib_device *ipoib,
146 146
 					     const struct ipoib_remac *remac ) {
147 147
 	struct ipoib_peer *peer;
148 148
 
149
-	/* Check for broadcast REMAC */
150
-	if ( is_broadcast_ether_addr ( remac ) )
149
+	/* Check for broadcast or multicast REMAC.  We transmit
150
+	 * multicasts as broadcasts for simplicity.
151
+	 */
152
+	if ( is_multicast_ether_addr ( remac ) )
151 153
 		return &ipoib->broadcast;
152 154
 
153 155
 	/* Try to find via REMAC cache */

Loading…
取消
儲存