Thu 28 May 2015 07:35:36 PM UTC, comment #5:
I added code to dump the filter info:
+static void dump_snp_filter(grub_efi_simple_network_t *net)
+{
+ struct grub_efi_simple_network_mode *m = net->mode;
+ int i;
+
+ grub_dprintf("efi", "FilterMask[%x] FilterSetting[%x] McastCount[%x]\n",
+ m->receive_filter_mask,
+ m->receive_filter_setting,
+ m->mcast_filter_count
+ );
+ for (i = 0; i < m->mcast_filter_count; i++) {
+ grub_dprintf("efi", " %d: %02x:%02x:%02x:%02x:%02x:%02x\n",
+ i,
+ m->mcast_filter[i][0],
+ m->mcast_filter[i][1],
+ m->mcast_filter[i][2],
+ m->mcast_filter[i][3],
+ m->mcast_filter[i][4],
+ m->mcast_filter[i][5]);
+
+ }
+}
+
Using my patch to save/restore values, I see:
From grub_efinet_findcards():
net/drivers/efi/efinet.c:42: FilterMask[1f] FilterSetting[7] McastCount[3]
net/drivers/efi/efinet.c:51: 0: 01:005e:00:00:01
net/drivers/efi/efinet.c:51: 1: 33:33:00:00:00:01
net/drivers/efi/efinet.c:51: 2: 33:33:ff:57:3f:62
After open exclusive, before calling receive_filters():
net/drivers/efi/efinet.c:42: FilterMask[1f] FilterSetting[0] McastCount[0]
net/drivers/efi/efinet.c:186: receive_filters returned 0
After receive_filters() using values saved in grub_efinet_findcards():
net/drivers/efi/efinet.c:42: FilterMask[1f] FilterSetting[7] McastCount[3]
net/drivers/efi/efinet.c:51: 0: 01:00:5e:00:00:01
net/drivers/efi/efinet.c:51: 1: 33:33:00:00:00:01
net/drivers/efi/efinet.c:51: 2: 33:33:ff:57:3f:62
Using your suggesting values:
From grub_efinet_findcards():
net/drivers/efi/efinet.c:42: FilterMask[1f] FilterSetting[7] McastCount[3]
net/drivers/efi/efinet.c:51: 0: 01:00:5e:00:00:01
net/drivers/efi/efinet.c:51: 1: 33:33:00:00:00:01
net/drivers/efi/efinet.c:51: 2: 33:33:ff:57:3f:62
After open exclusive, before calling receive_filters():
net/drivers/efi/efinet.c:42: FilterMask[1f] FilterSetting[0] McastCount[0]
After receive_filters() using your suggested values in grub_efinet_findcards():
net/drivers/efi/efinet.c:199: receive_filters returned 0
net/drivers/efi/efinet.c:42: FilterMask[1f] FilterSetting[15] McastCount[0]
The subsequent pxe boot worked fine both ways.
|