Follow-up Comment #5, bug #45204 (project grub):

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:%02xn",
+                            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.


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?45204>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/


_______________________________________________
Bug-grub mailing list
Bug-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-grub

Reply via email to