Bug #3339
vmware e1000 emulation does not support multiple mac addresses
Start date:
2012-11-04
Due date:
% Done:
100%
Estimated time:
1.00 h
Difficulty:
Medium
Tags:
Gerrit CR:
Description
Apparently the e1000 emulated hardware under VMware does not properly support multiple mac addresses. It silently discards the request to program multiple unicast addresses in the receive filter.
This makes this emulated hardware unusable with vnics.
The solution is to limit the driver to just a single mac address when it discovers that it is on VMware emulated hardware (trivially determined by the 0x15ad subsystem id.)
Updated by Garrett D'Amore over 8 years ago
Code for this:
--- a/usr/src/uts/common/io/e1000g/e1000g_main.c
+++ b/usr/src/uts/common/io/e1000g/e1000g_main.c
@@ -24,6 +24,7 @@
/*
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2012 DEY Storage Systems, Inc. All rights reserved.
*/
/*
@@ -2444,6 +2445,10 @@ e1000g_init_unicst(struct e1000g *Adapter)
(e1000_get_laa_state_82571(hw) == B_TRUE))
Adapter->unicst_total--;
+ /* VMware doesn't support multiple mac addresses properly */
+ if (hw->subsystem_vendor_id == 0x15ad)
+ Adapter->unicst_total = 1;
+
Adapter->unicst_avail = Adapter->unicst_total;
Updated by Garrett D'Amore over 8 years ago
Lets try that again.
--- a/usr/src/uts/common/io/e1000g/e1000g_main.c +++ b/usr/src/uts/common/io/e1000g/e1000g_main.c @@ -24,6 +24,7 @@ /* * Copyright 2011 Nexenta Systems, Inc. All rights reserved. + * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. */ /* @@ -2444,6 +2445,10 @@ e1000g_init_unicst(struct e1000g *Adapter) (e1000_get_laa_state_82571(hw) == B_TRUE)) Adapter->unicst_total--; + /* VMware doesn't support multiple mac addresses properly */ + if (hw->subsystem_vendor_id == 0x15ad) + Adapter->unicst_total = 1; + Adapter->unicst_avail = Adapter->unicst_total;
Updated by Garrett D'Amore over 8 years ago
- Status changed from In Progress to Resolved
- % Done changed from 90 to 100
Fixed in:
commit 59e72b15ed15fd97bf66c1d27ea667d363efffac
Author: Garrett D'Amore <garrett@damore.org>
Date: Sat Nov 3 14:41:42 2012 -0700
3339 vmware e1000 emulation does not support multiple mac addresses
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Approved by: Richard Lowe <richlowe@richlowe.net>