* efinet SNP issue affects iscsi boot
@ 2018-09-14  0:06 Micah Parrish
  2018-09-20 10:38 ` Michael Chang
  0 siblings, 1 reply; 8+ messages in thread
From: Micah Parrish @ 2018-09-14  0:06 UTC (permalink / raw)
  To: grub-devel; +Cc: sriram-s
Hi, new subscriber here.  We have a problem with Grub 2 and its use of 
SNP instead of MNP.  Our UEFI driver for a network card parses the 
relevant DHCP options for iSCSI boot, generates an iBFT table, then gets 
closed by Grub when it opens the SNP interface. The driver removes the 
iBFT table as part of normal unload cleanup.  I think this should happen 
with the Tianocore UEFI reference driver as well.  The problem is often 
masked or does not occur when there are multiple network ports enabled.  
It occurs with several different vendors NICs.
Possible solutions I see:
1. Grub parses the DHCP options and creates its own iBFT.
2. Grub copies the already generated iBFT before destroying the interface.
3. Grub opens the network interface MNP instead of SNP.
Although I am a neophyte at grub and UEFI development, I would like to 
start a discussion on possible solutions.  Has anyone else seen this?
Micah Parrish
micah.parrish@hpe.com
Linux OS Engineer
Hewlett-Packard Enterprise
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
  2018-09-14  0:06 efinet SNP issue affects iscsi boot Micah Parrish
@ 2018-09-20 10:38 ` Michael Chang
  2018-09-20 12:01   ` Daniel Kiper
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Chang @ 2018-09-20 10:38 UTC (permalink / raw)
  To: The development of GNU GRUB; +Cc: sriram-s
On Thu, Sep 13, 2018 at 06:06:15PM -0600, Micah Parrish wrote:
> Hi, new subscriber here.  We have a problem with Grub 2 and its use of SNP
> instead of MNP.  Our UEFI driver for a network card parses the relevant DHCP
> options for iSCSI boot, generates an iBFT table, then gets closed by Grub
> when it opens the SNP interface. The driver removes the iBFT table as part
> of normal unload cleanup.  I think this should happen with the Tianocore
> UEFI reference driver as well.  The problem is often masked or does not
> occur when there are multiple network ports enabled.  It occurs with several
> different vendors NICs.
> 
> Possible solutions I see:
> 
> 1. Grub parses the DHCP options and creates its own iBFT.
> 
> 2. Grub copies the already generated iBFT before destroying the interface.
> 
> 3. Grub opens the network interface MNP instead of SNP.
> 
> Although I am a neophyte at grub and UEFI development, I would like to start
> a discussion on possible solutions.  Has anyone else seen this?
For possible solution 3, I managed to work out patch to use MNP but is not
polished, although it survived my testing. If you don't mind and willing to
give it go I will post it here as RFC patch for review.
Thanks,
Michael
> 
> 
> Micah Parrish
> micah.parrish@hpe.com
> Linux OS Engineer
> Hewlett-Packard Enterprise
> 
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
  2018-09-20 10:38 ` Michael Chang
@ 2018-09-20 12:01   ` Daniel Kiper
  2018-09-27 10:15     ` Michael Chang
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Kiper @ 2018-09-20 12:01 UTC (permalink / raw)
  To: mchang; +Cc: grub-devel, sriram-s
On Thu, Sep 20, 2018 at 06:38:07PM +0800, Michael Chang wrote:
> On Thu, Sep 13, 2018 at 06:06:15PM -0600, Micah Parrish wrote:
> > Hi, new subscriber here.? We have a problem with Grub 2 and its use of SNP
> > instead of MNP.? Our UEFI driver for a network card parses the relevant DHCP
> > options for iSCSI boot, generates an iBFT table, then gets closed by Grub
> > when it opens the SNP interface. The driver removes the iBFT table as part
> > of normal unload cleanup.? I think this should happen with the Tianocore
> > UEFI reference driver as well.? The problem is often masked or does not
> > occur when there are multiple network ports enabled.? It occurs with several
> > different vendors NICs.
> >
> > Possible solutions I see:
> >
> > 1. Grub parses the DHCP options and creates its own iBFT.
> >
> > 2. Grub copies the already generated iBFT before destroying the interface.
> >
> > 3. Grub opens the network interface MNP instead of SNP.
> >
> > Although I am a neophyte at grub and UEFI development, I would like to start
> > a discussion on possible solutions.? Has anyone else seen this?
>
> For possible solution 3, I managed to work out patch to use MNP but is not
> polished, although it survived my testing. If you don't mind and willing to
> give it go I will post it here as RFC patch for review.
That would be perfect. However, there are a few things worth mentioning here.
The issue is never ending story. So, please look for relevant discussions
in grub-devel archives and take them into account if it is possible/make sense.
If you have any difficulties with finding them drop me a line.
Please do not drop SNP driver. I think that we should make MNP driver a new
default and SNP should stay as a backup. Just in case.
Additionally, a few days ago I have started looking for people interested
in the project. There are some. Hence, if you are going to take a stab at
it I will ask them to do some reviews of your work. I will drop you their
emails if they are happy to do so.
Daniel
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
       [not found] <mailman.6307.1537451267.1283.grub-devel@gnu.org>
@ 2018-09-20 19:26 ` Micah Parrish
  2018-09-27 10:22   ` Michael Chang
  0 siblings, 1 reply; 8+ messages in thread
From: Micah Parrish @ 2018-09-20 19:26 UTC (permalink / raw)
  To: grub-devel
[-- Attachment #1: Type: text/plain, Size: 2591 bytes --]
On 09/20/2018 07:47 AM, grub-devel-request@gnu.org wrote:
> On Thu, Sep 20, 2018 at 06:38:07PM +0800, Michael Chang wrote:
>> On Thu, Sep 13, 2018 at 06:06:15PM -0600, Micah Parrish wrote:
>>> Hi, new subscriber here.? We have a problem with Grub 2 and its use of SNP
>>> instead of MNP.? Our UEFI driver for a network card parses the relevant DHCP
>>> options for iSCSI boot, generates an iBFT table, then gets closed by Grub
>>> when it opens the SNP interface. The driver removes the iBFT table as part
>>> of normal unload cleanup.? I think this should happen with the Tianocore
>>> UEFI reference driver as well.? The problem is often masked or does not
>>> occur when there are multiple network ports enabled.? It occurs with several
>>> different vendors NICs.
>>>
>>> Possible solutions I see:
>>>
>>> 1. Grub parses the DHCP options and creates its own iBFT.
>>>
>>> 2. Grub copies the already generated iBFT before destroying the interface.
>>>
>>> 3. Grub opens the network interface MNP instead of SNP.
>>>
>>> Although I am a neophyte at grub and UEFI development, I would like to start
>>> a discussion on possible solutions.? Has anyone else seen this?
>> For possible solution 3, I managed to work out patch to use MNP but is not
>> polished, although it survived my testing. If you don't mind and willing to
>> give it go I will post it here as RFC patch for review.
> That would be perfect. However, there are a few things worth mentioning here.
>
> The issue is never ending story. So, please look for relevant discussions
> in grub-devel archives and take them into account if it is possible/make sense.
> If you have any difficulties with finding them drop me a line.
>
> Please do not drop SNP driver. I think that we should make MNP driver a new
> default and SNP should stay as a backup. Just in case.
>
> Additionally, a few days ago I have started looking for people interested
> in the project. There are some. Hence, if you are going to take a stab at
> it I will ask them to do some reviews of your work. I will drop you their
> emails if they are happy to do so.
Thank you for the context.  I read through the archives, searching for 
SNP.  I'm willing to test whatever we come up with.
I also read through the efinet.c from OpenSolaris.  It is quite 
different from the current SNP efinet.c, since it uses a ring buffer and 
filters.  I assume a naive switch over to MNP might run into the same 
lost packet problem seen before.  Was it seen across many platforms, or 
specific to a few?
-Micah
[-- Attachment #2: Type: text/html, Size: 3312 bytes --]
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
  2018-09-20 12:01   ` Daniel Kiper
@ 2018-09-27 10:15     ` Michael Chang
  2018-09-27 16:29       ` Daniel Kiper
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Chang @ 2018-09-27 10:15 UTC (permalink / raw)
  To: Daniel Kiper; +Cc: grub-devel, sriram-s
On Thu, Sep 20, 2018 at 02:01:08PM +0200, Daniel Kiper wrote:
> On Thu, Sep 20, 2018 at 06:38:07PM +0800, Michael Chang wrote:
> > On Thu, Sep 13, 2018 at 06:06:15PM -0600, Micah Parrish wrote:
> > > Hi, new subscriber here.? We have a problem with Grub 2 and its use of SNP
> > > instead of MNP.? Our UEFI driver for a network card parses the relevant DHCP
> > > options for iSCSI boot, generates an iBFT table, then gets closed by Grub
> > > when it opens the SNP interface. The driver removes the iBFT table as part
> > > of normal unload cleanup.? I think this should happen with the Tianocore
> > > UEFI reference driver as well.? The problem is often masked or does not
> > > occur when there are multiple network ports enabled.? It occurs with several
> > > different vendors NICs.
> > >
> > > Possible solutions I see:
> > >
> > > 1. Grub parses the DHCP options and creates its own iBFT.
> > >
> > > 2. Grub copies the already generated iBFT before destroying the interface.
> > >
> > > 3. Grub opens the network interface MNP instead of SNP.
> > >
> > > Although I am a neophyte at grub and UEFI development, I would like to start
> > > a discussion on possible solutions.? Has anyone else seen this?
> >
> > For possible solution 3, I managed to work out patch to use MNP but is not
> > polished, although it survived my testing. If you don't mind and willing to
> > give it go I will post it here as RFC patch for review.
> 
> That would be perfect. However, there are a few things worth mentioning here.
> 
> The issue is never ending story. So, please look for relevant discussions
> in grub-devel archives and take them into account if it is possible/make sense.
> If you have any difficulties with finding them drop me a line.
Thanks. I'm able to find those discussions in my mailbox. They are indeed very
helpful for me in catching up the problems.
Moreover I found that Laszlo Ersek <lersek@redhat.com> already proposed an
approach which is very close to what I was working on,
- identify NIC handles the same way you do now (I guess by enumerating
  SNP interfaces)
- for each handle found, look for MNPSB *first*.
- If there is no MNPSB, then stick with the current strategy -- open
  the SNP with exclusive access
- However, if there *is* an MNPSB, call the CreateChild() function to
  extract a new MNP instance
- Use this MNP instance to send and receive packets. This MNP instance
  will peacefully coexist with other (sibling) MNP clients.
> Please do not drop SNP driver. I think that we should make MNP driver a new
> default and SNP should stay as a backup. Just in case.
Yes. The patch has been worked the way you asked.
> Additionally, a few days ago I have started looking for people interested
> in the project. There are some. Hence, if you are going to take a stab at
> it I will ask them to do some reviews of your work. I will drop you their
> emails if they are happy to do so.
Please feel free to CC them to the discussion.
Thanks,
Michael
> 
> Daniel
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
  2018-09-20 19:26 ` Micah Parrish
@ 2018-09-27 10:22   ` Michael Chang
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Chang @ 2018-09-27 10:22 UTC (permalink / raw)
  To: The development of GNU GRUB
On Thu, Sep 20, 2018 at 01:26:47PM -0600, Micah Parrish wrote:
> 
> 
> On 09/20/2018 07:47 AM, grub-devel-request@gnu.org wrote:
> > On Thu, Sep 20, 2018 at 06:38:07PM +0800, Michael Chang wrote:
> > > On Thu, Sep 13, 2018 at 06:06:15PM -0600, Micah Parrish wrote:
> > > > Hi, new subscriber here.? We have a problem with Grub 2 and its use of SNP
> > > > instead of MNP.? Our UEFI driver for a network card parses the relevant DHCP
> > > > options for iSCSI boot, generates an iBFT table, then gets closed by Grub
> > > > when it opens the SNP interface. The driver removes the iBFT table as part
> > > > of normal unload cleanup.? I think this should happen with the Tianocore
> > > > UEFI reference driver as well.? The problem is often masked or does not
> > > > occur when there are multiple network ports enabled.? It occurs with several
> > > > different vendors NICs.
> > > > 
> > > > Possible solutions I see:
> > > > 
> > > > 1. Grub parses the DHCP options and creates its own iBFT.
> > > > 
> > > > 2. Grub copies the already generated iBFT before destroying the interface.
> > > > 
> > > > 3. Grub opens the network interface MNP instead of SNP.
> > > > 
> > > > Although I am a neophyte at grub and UEFI development, I would like to start
> > > > a discussion on possible solutions.? Has anyone else seen this?
> > > For possible solution 3, I managed to work out patch to use MNP but is not
> > > polished, although it survived my testing. If you don't mind and willing to
> > > give it go I will post it here as RFC patch for review.
> > That would be perfect. However, there are a few things worth mentioning here.
> > 
> > The issue is never ending story. So, please look for relevant discussions
> > in grub-devel archives and take them into account if it is possible/make sense.
> > If you have any difficulties with finding them drop me a line.
> > 
> > Please do not drop SNP driver. I think that we should make MNP driver a new
> > default and SNP should stay as a backup. Just in case.
> > 
> > Additionally, a few days ago I have started looking for people interested
> > in the project. There are some. Hence, if you are going to take a stab at
> > it I will ask them to do some reviews of your work. I will drop you their
> > emails if they are happy to do so.
> 
> Thank you for the context.  I read through the archives, searching for SNP. 
> I'm willing to test whatever we come up with.
I have posted the RFC patch to the list. If you don't see it please let me know.
> I also read through the efinet.c from OpenSolaris.  It is quite different
> from the current SNP efinet.c, since it uses a ring buffer and filters.  I
> assume a naive switch over to MNP might run into the same lost packet
> problem seen before.  Was it seen across many platforms, or specific to a
> few?
I did not experience any packet loss problem. But neverthelast I would like to
have a look on the OpenSolaris patch. Where can I find it ?
Thanks,
Michael
> 
> -Micah
> 
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
  2018-09-27 10:15     ` Michael Chang
@ 2018-09-27 16:29       ` Daniel Kiper
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Kiper @ 2018-09-27 16:29 UTC (permalink / raw)
  To: mchang; +Cc: dkiper, grub-devel, sriram-s
On Thu, Sep 27, 2018 at 06:15:45PM +0800, Michael Chang wrote:
> On Thu, Sep 20, 2018 at 02:01:08PM +0200, Daniel Kiper wrote:
> > On Thu, Sep 20, 2018 at 06:38:07PM +0800, Michael Chang wrote:
> > > On Thu, Sep 13, 2018 at 06:06:15PM -0600, Micah Parrish wrote:
> > > > Hi, new subscriber here.? We have a problem with Grub 2 and its use of SNP
> > > > instead of MNP.? Our UEFI driver for a network card parses the relevant DHCP
> > > > options for iSCSI boot, generates an iBFT table, then gets closed by Grub
> > > > when it opens the SNP interface. The driver removes the iBFT table as part
> > > > of normal unload cleanup.? I think this should happen with the Tianocore
> > > > UEFI reference driver as well.? The problem is often masked or does not
> > > > occur when there are multiple network ports enabled.? It occurs with several
> > > > different vendors NICs.
> > > >
> > > > Possible solutions I see:
> > > >
> > > > 1. Grub parses the DHCP options and creates its own iBFT.
> > > >
> > > > 2. Grub copies the already generated iBFT before destroying the interface.
> > > >
> > > > 3. Grub opens the network interface MNP instead of SNP.
> > > >
> > > > Although I am a neophyte at grub and UEFI development, I would like to start
> > > > a discussion on possible solutions.? Has anyone else seen this?
> > >
> > > For possible solution 3, I managed to work out patch to use MNP but is not
> > > polished, although it survived my testing. If you don't mind and willing to
> > > give it go I will post it here as RFC patch for review.
> >
> > That would be perfect. However, there are a few things worth mentioning here.
> >
> > The issue is never ending story. So, please look for relevant discussions
> > in grub-devel archives and take them into account if it is possible/make sense.
> > If you have any difficulties with finding them drop me a line.
>
> Thanks. I'm able to find those discussions in my mailbox. They are indeed very
> helpful for me in catching up the problems.
>
> Moreover I found that Laszlo Ersek <lersek@redhat.com> already proposed an
> approach which is very close to what I was working on,
>
> - identify NIC handles the same way you do now (I guess by enumerating
>   SNP interfaces)
> - for each handle found, look for MNPSB *first*.
> - If there is no MNPSB, then stick with the current strategy -- open
>   the SNP with exclusive access
> - However, if there *is* an MNPSB, call the CreateChild() function to
>   extract a new MNP instance
> - Use this MNP instance to send and receive packets. This MNP instance
>   will peacefully coexist with other (sibling) MNP clients.
More or less LGTM.
> > Please do not drop SNP driver. I think that we should make MNP driver a new
> > default and SNP should stay as a backup. Just in case.
>
> Yes. The patch has been worked the way you asked.
I will try to take a look at it next week.
> > Additionally, a few days ago I have started looking for people interested
> > in the project. There are some. Hence, if you are going to take a stab at
> > it I will ask them to do some reviews of your work. I will drop you their
> > emails if they are happy to do so.
>
> Please feel free to CC them to the discussion.
Will do.
Daniel
^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: efinet SNP issue affects iscsi boot
       [not found] <mailman.31.1538064006.6859.grub-devel@gnu.org>
@ 2018-09-27 18:58 ` Micah Parrish
  0 siblings, 0 replies; 8+ messages in thread
From: Micah Parrish @ 2018-09-27 18:58 UTC (permalink / raw)
  To: grub-devel
On Thu, Sep 27, 2018 at 06:15:45PM +0800, Michael Chang wrote:
> I have posted the RFC patch to the list. If you don't see it please let me know.
>
I will give it a try, thanks!
>
>> I also read through the efinet.c from OpenSolaris.? It is quite different
>> from the current SNP efinet.c, since it uses a ring buffer and filters.? I
>> assume a naive switch over to MNP might run into the same lost packet
>> problem seen before.? Was it seen across many platforms, or specific to a
>> few?
> I did not experience any packet loss problem. But neverthelast I would like to
> have a look on the OpenSolaris patch. Where can I find it ?
Its buried in a big tarball. 
https://www.oracle.com/technetwork/opensource/systems-solaris-1562786.html
It is in the part1 source code tarball, under osnet/usr/src/grub/
-Micah
^ permalink raw reply	[flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-09-27 19:02 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-14  0:06 efinet SNP issue affects iscsi boot Micah Parrish
2018-09-20 10:38 ` Michael Chang
2018-09-20 12:01   ` Daniel Kiper
2018-09-27 10:15     ` Michael Chang
2018-09-27 16:29       ` Daniel Kiper
     [not found] <mailman.6307.1537451267.1283.grub-devel@gnu.org>
2018-09-20 19:26 ` Micah Parrish
2018-09-27 10:22   ` Michael Chang
     [not found] <mailman.31.1538064006.6859.grub-devel@gnu.org>
2018-09-27 18:58 ` Micah Parrish
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).