This patch copies over the ibft->ethernetN name info from the boot
context to the node_rec.


Signed-off-by: Eddie Wai <eddie....@broadcom.com>
---
 include/fw_context.h               |    1 +
 usr/config.h                       |    1 +
 usr/idbm.c                         |    2 ++
 usr/initiator_common.c             |    6 +++++-
 utils/fwparam_ibft/fwparam_sysfs.c |    4 ++++
 5 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/include/fw_context.h b/include/fw_context.h
index 1640859..bf059f0 100644
--- a/include/fw_context.h
+++ b/include/fw_context.h
@@ -30,6 +30,7 @@
 
 struct boot_context {
        struct list_head list;
+       char boot_nic[TARGET_NAME_MAXLEN + 1];
 
        /* target settings */
        int target_port;
diff --git a/usr/config.h b/usr/config.h
index 998caff..c34b342 100644
--- a/usr/config.h
+++ b/usr/config.h
@@ -201,6 +201,7 @@ typedef struct session_rec {
         * allowed to be initiated on this record
         */
        unsigned char                           multiple;
+       char                            boot_nic[TARGET_NAME_MAXLEN + 1];
 } session_rec_t;
 
 #define ISCSI_TRANSPORT_NAME_MAXLEN 16
diff --git a/usr/idbm.c b/usr/idbm.c
index 4d30aa9..aba88f7 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -2569,6 +2569,8 @@ struct node_rec *idbm_create_rec_from_boot_context(struct 
boot_context *context)
                                strlen((char *)context->chap_password);
        rec->session.auth.password_in_length =
                                strlen((char *)context->chap_password_in);
+       strlcpy(rec->session.boot_nic, context->boot_nic,
+               sizeof(context->boot_nic));
 
        iface_setup_from_boot_context(&rec->iface, context);
 
diff --git a/usr/initiator_common.c b/usr/initiator_common.c
index ef6820c..28a75cc 100644
--- a/usr/initiator_common.c
+++ b/usr/initiator_common.c
@@ -324,7 +324,7 @@ int iscsi_host_set_params(struct iscsi_session *session)
        return 0;
 }
 
-#define MAX_SESSION_PARAMS 32
+#define MAX_SESSION_PARAMS 33
 
 int iscsi_session_set_params(struct iscsi_conn *conn)
 {
@@ -496,6 +496,10 @@ int iscsi_session_set_params(struct iscsi_conn *conn)
                        .param = ISCSI_PARAM_INITIATOR_NAME,
                        .value = session->initiator_name,
                        .type = ISCSI_STRING,
+               }, {
+                       .param = ISCSI_PARAM_BOOT_NIC,
+                       .value = session->nrec.session.boot_nic,
+                       .type = ISCSI_STRING,
                },
        };
 
diff --git a/utils/fwparam_ibft/fwparam_sysfs.c 
b/utils/fwparam_ibft/fwparam_sysfs.c
index 3997363..1fc485a 100644
--- a/utils/fwparam_ibft/fwparam_sysfs.c
+++ b/utils/fwparam_ibft/fwparam_sysfs.c
@@ -196,6 +196,10 @@ static int fill_nic_context(char *subsys, char *id,
                        if (rc)
                                return rc;
                }
+               /* boot_nic is only for IBFT subsys */
+               memset(&context->boot_nic, 0 , sizeof(context->boot_nic));
+               snprintf(context->boot_nic, sizeof(context->boot_nic), "%s",
+                        id);
        } else
                strlcpy(context->scsi_host_name, subsys,
                        sizeof(context->scsi_host_name));
-- 
1.7.7.4


-- 
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to open-iscsi@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to