On 12/08/2016 10:55 AM, andrew.patter...@hpe.com wrote:
> I am trying to get iSCSI boot working on a debian-based system
> using built-in uEFI iSCSI initiator firmware and broadcom
> NICs (bnx2x).
> 
> The debian initramfs uses the ibft support in iscsistart to log
> into the root volume. The initramfs script uses iscsistart -N to
> bring up the NICs before logging in with iscsstart -b. This
> process works fine when using non-offload NICs, but fails when
> using NICs using the bnx2, bnx2x, cxgb3, and cxgb4 drivers due to
> the following code in
> utils/fwparam_ibft/fw_entry.c:fw_setup_nics():
> 
>         list_for_each_entry(context, &targets, list) {           
>             /* if it is a offload nic ignore it */
>             if (!net_get_transport_name_from_netdev(context->iface,
>                                 transport))
>                 continue
> 
> 
> Which does a lookup in the table in usr/iscsi_net_util.c
> 
>         static struct iscsi_net_driver net_drivers[] = {
>             {"cxgb3", "cxgb3i" },
>             {"cxgb4", "cxgb4i" },
>             {"bnx2", "bnx2i" },
>             {"bnx2x", "bnx2i"},
>             {NULL, NULL}
>         };
> 
> 
> to see if -N should skip this NIC.  I cannot determine the reason
> for this check. Do iscsi offload NICs not need to be configured
> for boot? The current code causes iscsi boots to fail. I removed the
> check and booting works fine.
> 

If you use the ibft net info for the nic, what do you use for the iscsi
offload engine? Do they both have the same IP, and are you creating boot
iscsi sessions through the offload engine?

cxgb*i is able to share the net info. The normal old nic engine and
iscsi engine are able to use the same IP. That originally was not
supposed to be allowed upstream, but it got in.

bnx2* is (or at least was when we wrote that code) not able to share the
net info. The nic and iscsi engines need different IPs.

So to cover both types we just use the ibft net info for the iscsi
offload engines.

In the version of the code you are using is OFFLOAD_BOOT_SUPPORTED
defined in open-iscsi/usr/iface.c or not?

If it's not defined and you modified the code like you described, then I
think you would use the ibft info to setup the normal old nic, and then
you would end up creating a boot session using software iscsi. I am not
100% sure about this last statement. I cannot remember and just looked
at the code for a couple minutes.

-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to open-iscsi+unsubscr...@googlegroups.com.
To post to this group, send email to open-iscsi@googlegroups.com.
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.

Reply via email to