On 04/12/2013 12:41 PM, Eddie Wai wrote:
> This patch does the work to extract the corresponding
> <boot_root>->ethernetN net params as specified from the kernel
> session boot_nic sysfs entry based on the transport param
> use_boot_info.
> 
> This is only populated for iscsi_tcp and bnx2i.
> 
> Signed-off-by: Eddie Wai <eddie....@broadcom.com>
> ---
>  usr/iscsi_sysfs.c |   40 ++++++++++++++++++++++++++++++++++++++++
>  usr/transport.c   |    2 ++
>  usr/transport.h   |    1 +
>  3 files changed, 43 insertions(+), 0 deletions(-)
> 
> diff --git a/usr/iscsi_sysfs.c b/usr/iscsi_sysfs.c
> index 4015b35..91c3989 100644
> --- a/usr/iscsi_sysfs.c
> +++ b/usr/iscsi_sysfs.c
> @@ -439,6 +439,43 @@ uint32_t iscsi_sysfs_get_host_no_from_hwinfo(struct 
> iface_rec *iface, int *rc)
>       return host_no;
>  }
>  
> +static int iscsi_sysfs_read_boot(struct iface_rec *iface, char *session)
> +{
> +     char boot_root[BOOT_NAME_MAXLEN], boot_nic[BOOT_NAME_MAXLEN];
> +     char boot_name[BOOT_NAME_MAXLEN], boot_content[BOOT_NAME_MAXLEN];
> +
> +     /* Extract boot info */
> +     strlcpy(boot_name, "boot_target", sizeof(boot_name));
> +     if (sysfs_get_str(session, ISCSI_SESSION_SUBSYS, boot_name,
> +                       boot_content, BOOT_NAME_MAXLEN))
> +             return -1;
> +     strlcpy(boot_name, "boot_nic", sizeof(boot_name));
> +     if (sysfs_get_str(session, ISCSI_SESSION_SUBSYS, boot_name, boot_nic,
> +                       BOOT_NAME_MAXLEN))
> +             return -1;
> +     strlcpy(boot_name, "boot_root", sizeof(boot_name));
> +     if (sysfs_get_str(session, ISCSI_SESSION_SUBSYS, boot_name, boot_root,
> +                       BOOT_NAME_MAXLEN))
> +             return -1;
> +
> +     /* If all boot_root/boot_target/boot_nic exist, then extract the
> +        info from the boot nic */
> +     if (sysfs_get_str(boot_nic, boot_root, "vlan", boot_content,
> +                       BOOT_NAME_MAXLEN))
> +             log_debug(5, "could not read %s/%s/vlan", boot_root, boot_nic);
> +     else
> +             iface->vlan_id = atoi(boot_content);
> +
> +     if (sysfs_get_str(boot_nic, boot_root, "subnet-mask",
> +                       iface->subnet_mask, NI_MAXHOST))
> +             log_debug(5, "could not read %s/%s/subnet", boot_root,
> +                       boot_nic);
> +
> +     log_debug(5, "sysfs read boot returns %s/%s/ vlan = %d subnet = %s",
> +               boot_root, boot_nic, iface->vlan_id, iface->subnet_mask);
> +     return 0;
> +}
> +
>  /*
>   * Read in iface settings based on host and session values. If
>   * session is not passed in, then the ifacename will not be set. And
> @@ -567,6 +604,9 @@ static int iscsi_sysfs_read_iface(struct iface_rec 
> *iface, int host_no,
>               }
>       }
>  
> +     if (t->template->use_boot_info)
> +             iscsi_sysfs_read_boot(iface, session);
> +

I forgot what we were saying for this. For the running boot session is
it possible to change the network settings while the session is running?
If so then this would print the old info (info used for boot that might
not be currently used) right? Was this ok?

-- 
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 http://groups.google.com/group/open-iscsi?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to