[PATCH 1/6] iscsi-tools: Remove numbers used for network parameter settings

2013-05-09 Thread vikas.chaudhary
From: Harish Zunjarrao harish.zunjar...@qlogic.com

Signed-off-by: Harish Zunjarrao harish.zunjar...@qlogic.com
Signed-off-by: Vikas Chaudhary vikas.chaudh...@qlogic.com
---
 include/iscsi_if.h | 38 +++---
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/include/iscsi_if.h b/include/iscsi_if.h
index 20f2bc2..08cfaa9 100644
--- a/include/iscsi_if.h
+++ b/include/iscsi_if.h
@@ -386,25 +386,25 @@ struct iscsi_path {
 /* iSCSI network params */
 enum iscsi_net_param {
ISCSI_NET_PARAM_IPV4_ADDR   = 1,
-   ISCSI_NET_PARAM_IPV4_SUBNET = 2,
-   ISCSI_NET_PARAM_IPV4_GW = 3,
-   ISCSI_NET_PARAM_IPV4_BOOTPROTO  = 4,
-   ISCSI_NET_PARAM_MAC = 5,
-   ISCSI_NET_PARAM_IPV6_LINKLOCAL  = 6,
-   ISCSI_NET_PARAM_IPV6_ADDR   = 7,
-   ISCSI_NET_PARAM_IPV6_ROUTER = 8,
-   ISCSI_NET_PARAM_IPV6_ADDR_AUTOCFG   = 9,
-   ISCSI_NET_PARAM_IPV6_LINKLOCAL_AUTOCFG  = 10,
-   ISCSI_NET_PARAM_IPV6_ROUTER_AUTOCFG = 11,
-   ISCSI_NET_PARAM_IFACE_ENABLE= 12,
-   ISCSI_NET_PARAM_VLAN_ID = 13,
-   ISCSI_NET_PARAM_VLAN_PRIORITY   = 14,
-   ISCSI_NET_PARAM_VLAN_ENABLED= 15,
-   ISCSI_NET_PARAM_VLAN_TAG= 16,
-   ISCSI_NET_PARAM_IFACE_TYPE  = 17,
-   ISCSI_NET_PARAM_IFACE_NAME  = 18,
-   ISCSI_NET_PARAM_MTU = 19,
-   ISCSI_NET_PARAM_PORT= 20,
+   ISCSI_NET_PARAM_IPV4_SUBNET,
+   ISCSI_NET_PARAM_IPV4_GW,
+   ISCSI_NET_PARAM_IPV4_BOOTPROTO,
+   ISCSI_NET_PARAM_MAC,
+   ISCSI_NET_PARAM_IPV6_LINKLOCAL,
+   ISCSI_NET_PARAM_IPV6_ADDR,
+   ISCSI_NET_PARAM_IPV6_ROUTER,
+   ISCSI_NET_PARAM_IPV6_ADDR_AUTOCFG,
+   ISCSI_NET_PARAM_IPV6_LINKLOCAL_AUTOCFG,
+   ISCSI_NET_PARAM_IPV6_ROUTER_AUTOCFG,
+   ISCSI_NET_PARAM_IFACE_ENABLE,
+   ISCSI_NET_PARAM_VLAN_ID,
+   ISCSI_NET_PARAM_VLAN_PRIORITY,
+   ISCSI_NET_PARAM_VLAN_ENABLED,
+   ISCSI_NET_PARAM_VLAN_TAG,
+   ISCSI_NET_PARAM_IFACE_TYPE,
+   ISCSI_NET_PARAM_IFACE_NAME,
+   ISCSI_NET_PARAM_MTU,
+   ISCSI_NET_PARAM_PORT,
 };
 
 enum iscsi_conn_state {
-- 
1.8.2.GIT


-- 
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.




[PATCH 4/6] iscsi-tools: Use single function to set integer network parameters

2013-05-09 Thread vikas.chaudhary
From: Harish Zunjarrao harish.zunjar...@qlogic.com

Signed-off-by: Harish Zunjarrao harish.zunjar...@qlogic.com
Signed-off-by: Vikas Chaudhary vikas.chaudh...@qlogic.com
---
 usr/iface.c | 154 
 1 file changed, 83 insertions(+), 71 deletions(-)

diff --git a/usr/iface.c b/usr/iface.c
index 75ed28e..b77b564 100644
--- a/usr/iface.c
+++ b/usr/iface.c
@@ -1223,60 +1223,68 @@ int iface_get_param_count(struct iface_rec *iface, int 
iface_all)
return iface_params.count;
 }
 
-/* IPv4/IPv6 Port: 3260 or User defined */
-static int iface_fill_port(struct iovec *iov, struct iface_rec *iface,
-  uint32_t iface_type)
+/* write integer parameter value */
+static int iface_fill_int_param_val(struct iovec *iov, uint32_t iface_num,
+   uint8_t iface_type, uint16_t param,
+   uint32_t param_len, uint32_t param_val)
 {
int len;
struct iscsi_iface_param_info *net_param;
-   uint16_t port = 3260;
struct nlattr *attr;
+   uint8_t val8 = 0;
+   uint16_t val16 = 0;
+   uint32_t val32 = 0;
+   char *val = NULL;
 
-   len = sizeof(struct iscsi_iface_param_info) + sizeof(port);
-   iov-iov_base = iscsi_nla_alloc(ISCSI_NET_PARAM_PORT, len);
-   if (!iov-iov_base)
-   return 1;
-   attr = iov-iov_base;
-   iov-iov_len = NLA_ALIGN(attr-nla_len);
-
-   net_param = (struct iscsi_iface_param_info *)ISCSI_NLA_DATA(attr);
-   net_param-param = ISCSI_NET_PARAM_PORT;
-   net_param-iface_type = iface_type;
-   net_param-iface_num = iface-iface_num;
-   net_param-param_type = ISCSI_NET_PARAM;
-   net_param-len = 2;
-   if (iface-port)
-   port = iface-port;
-   memcpy(net_param-value, port, net_param-len);
-   return 0;
-}
-
-static int iface_fill_mtu(struct iovec *iov, struct iface_rec *iface,
- uint32_t iface_type)
-{
-   int len;
-   struct iscsi_iface_param_info *net_param;
-   uint16_t mtu = 0;
-   struct nlattr *attr;
-
-   len = sizeof(struct iscsi_iface_param_info) + 2;
-   iov-iov_base = iscsi_nla_alloc(ISCSI_NET_PARAM_MTU, len);
+   len = sizeof(struct iscsi_iface_param_info) + param_len;
+   iov-iov_base = iscsi_nla_alloc(param, len);
if (!(iov-iov_base))
return 1;
+
attr = iov-iov_base;
iov-iov_len = NLA_ALIGN(attr-nla_len);
-
net_param = (struct iscsi_iface_param_info *)ISCSI_NLA_DATA(attr);
-   net_param-param = ISCSI_NET_PARAM_MTU;
+   net_param-iface_num = iface_num;
+   net_param-len = param_len;
+   net_param-param = param;
net_param-iface_type = iface_type;
-   net_param-iface_num = iface-iface_num;
net_param-param_type = ISCSI_NET_PARAM;
-   net_param-len = 2;
-   mtu = iface-mtu;
-   memcpy(net_param-value, mtu, net_param-len);
+   switch (param_len) {
+   case 1:
+   val8 = (uint8_t)param_val;
+   val = (char *)val8;
+   break;
+
+   case 2:
+   val16 = (uint16_t)param_val;
+   val = (char *)val16;
+   break;
+
+   case 4:
+   val32 = (uint32_t)param_val;
+   val = (char *)val32;
+   break;
+
+   default:
+   goto free;
+   }
+   memcpy(net_param-value, val, param_len);
return 0;
+free:
+   free(iov-iov_base);
+   iov-iov_base = NULL;
+   iov-iov_len = 0;
+   return 1;
 }
 
+#define IFACE_SET_NET_PARAM_INTVAL(iov, inum, itype, param, plen, ival,
\
+  gcnt, lcnt)  \
+   if (ival  !iface_fill_int_param_val(iov, inum, itype, param,  \
+ plen, ival)) {\
+   (*gcnt)++;  \
+   (*lcnt)++;  \
+   }
+
 /* IPv4/IPv6 VLAN_ID: decimal value = 4095 */
 static int iface_fill_vlan_id(struct iovec *iov, struct iface_rec *iface,
  uint32_t iface_type)
@@ -1656,22 +1664,24 @@ static int __iface_build_net_config(void *data, struct 
iface_rec *iface)
count++;
}
}
-   if (iface-mtu) {
-   if (!iface_fill_mtu(iov[net_config-count],
-   iface,
-   ISCSI_IFACE_TYPE_IPV4)) {
-   net_config-count++;
-   count++;
-   }
-   }
-   if (iface-port) {
-   if 

[PATCH 5/6] iscsi-tools: Ignore network parameter if not enabled/disabled

2013-05-09 Thread vikas.chaudhary
From: Harish Zunjarrao harish.zunjar...@qlogic.com

If iface does not contain network parameter or incorrect value is set,
do not send that network parameter value to driver.

Signed-off-by: Harish Zunjarrao harish.zunjar...@qlogic.com
Signed-off-by: Vikas Chaudhary vikas.chaudh...@qlogic.com
---
 usr/iface.c | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/usr/iface.c b/usr/iface.c
index b77b564..622c436 100644
--- a/usr/iface.c
+++ b/usr/iface.c
@@ -1346,11 +1346,18 @@ static int iface_fill_enable_disable_param(struct iovec 
*iov,
net_param-param = param;
net_param-iface_type = iface_type;
net_param-param_type = ISCSI_NET_PARAM;
-   if (strcmp(param_val, disable))
-   net_param-value[0] = ISCSI_NET_PARAM_ENABLE;
-   else /* Assume disabled */
+   if (!strcmp(param_val, disable))
net_param-value[0] = ISCSI_NET_PARAM_DISABLE;
+   else if (!strcmp(param_val, enable))
+   net_param-value[0] = ISCSI_NET_PARAM_ENABLE;
+   else
+   goto free;
return 0;
+free:
+   free(iov-iov_base);
+   iov-iov_base = NULL;
+   iov-iov_len = 0;
+   return 1;
 }
 
 #define IFACE_SET_NET_PARAM_EN(iov, inum, itype, param, ival, gcnt,\
-- 
1.8.2.GIT


-- 
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.




[PATCH 3/6] iscsi-tools: Use single function to enable/disable network parameters

2013-05-09 Thread vikas.chaudhary
From: Harish Zunjarrao harish.zunjar...@qlogic.com

Signed-off-by: Harish Zunjarrao harish.zunjar...@qlogic.com
Signed-off-by: Vikas Chaudhary vikas.chaudh...@qlogic.com
---
 include/iscsi_if.h |  10 ++--
 usr/iface.c| 143 ++---
 2 files changed, 72 insertions(+), 81 deletions(-)

diff --git a/include/iscsi_if.h b/include/iscsi_if.h
index 08cfaa9..b34a91a 100644
--- a/include/iscsi_if.h
+++ b/include/iscsi_if.h
@@ -352,9 +352,9 @@ struct iscsi_path {
uint16_tpmtu;
 } __attribute__ ((aligned (sizeof(uint64_t;
 
-/* iscsi iface enabled/disabled setting */
-#define ISCSI_IFACE_DISABLE0x01
-#define ISCSI_IFACE_ENABLE 0x02
+/* iscsi generic enable/disable setting for various features */
+#define ISCSI_NET_PARAM_DISABLE0x01
+#define ISCSI_NET_PARAM_ENABLE 0x02
 
 /* ipv4 bootproto */
 #define ISCSI_BOOTPROTO_STATIC 0x01
@@ -379,10 +379,6 @@ struct iscsi_path {
 #define ISCSI_MAX_VLAN_ID  4095
 #define ISCSI_MAX_VLAN_PRIORITY7
 
-/* iscsi vlan enable/disabled setting */
-#define ISCSI_VLAN_DISABLE 0x01
-#define ISCSI_VLAN_ENABLE  0x02
-
 /* iSCSI network params */
 enum iscsi_net_param {
ISCSI_NET_PARAM_IPV4_ADDR   = 1,
diff --git a/usr/iface.c b/usr/iface.c
index d3bada4..75ed28e 100644
--- a/usr/iface.c
+++ b/usr/iface.c
@@ -1311,62 +1311,48 @@ static int iface_fill_vlan_id(struct iovec *iov, struct 
iface_rec *iface,
return 0;
 }
 
-/* IPv4/IPv6 VLAN state: disable/enable */
-static int iface_fill_vlan_state(struct iovec *iov, struct iface_rec *iface,
-uint32_t iface_type)
+/* disable/enable parameters */
+static int iface_fill_enable_disable_param(struct iovec *iov,
+  uint32_t iface_num,
+  uint8_t iface_type,
+  uint16_t param,
+  char *param_val)
 {
int len;
struct iscsi_iface_param_info *net_param;
struct nlattr *attr;
 
-   len = sizeof(struct iscsi_iface_param_info) + 1;
-   iov-iov_base = iscsi_nla_alloc(ISCSI_NET_PARAM_VLAN_ENABLED, len);
-   if (!(iov-iov_base))
+   if (!param_val[0])
return 1;
 
-   attr = iov-iov_base;
-   iov-iov_len = NLA_ALIGN(attr-nla_len);
-   net_param = (struct iscsi_iface_param_info *)ISCSI_NLA_DATA(attr);
-   net_param-param = ISCSI_NET_PARAM_VLAN_ENABLED;
-   net_param-iface_type = iface_type;
-   net_param-iface_num = iface-iface_num;
-   net_param-param_type = ISCSI_NET_PARAM;
-   net_param-len = 1;
-   if (strcmp(iface-vlan_state, disable)  iface-vlan_id)
-   net_param-value[0] = ISCSI_VLAN_ENABLE;
-   else /* Assume disabled */
-   net_param-value[0] = ISCSI_VLAN_DISABLE;
-   return 0;
-}
-
-/* IPv4/IPv6 Network state: disable/enable */
-static int iface_fill_net_state(struct iovec *iov, struct iface_rec *iface,
-   uint32_t iface_type)
-{
-   int len;
-   struct iscsi_iface_param_info *net_param;
-   struct nlattr *attr;
-
len = sizeof(struct iscsi_iface_param_info) + 1;
-   iov-iov_base = iscsi_nla_alloc(ISCSI_NET_PARAM_IFACE_ENABLE, len);
+   iov-iov_base = iscsi_nla_alloc(param, len);
if (!(iov-iov_base))
return 1;
 
attr = iov-iov_base;
iov-iov_len = NLA_ALIGN(attr-nla_len);
net_param = (struct iscsi_iface_param_info *)ISCSI_NLA_DATA(attr);
-   net_param-param = ISCSI_NET_PARAM_IFACE_ENABLE;
+   net_param-iface_num = iface_num;
+   net_param-len = 1;
+   net_param-param = param;
net_param-iface_type = iface_type;
-   net_param-iface_num = iface-iface_num;
net_param-param_type = ISCSI_NET_PARAM;
-   net_param-len = 1;
-   if (!strcmp(iface-state, disable))
-   net_param-value[0] = ISCSI_IFACE_DISABLE;
-   else /* Assume enabled */
-   net_param-value[0] = ISCSI_IFACE_ENABLE;
+   if (strcmp(param_val, disable))
+   net_param-value[0] = ISCSI_NET_PARAM_ENABLE;
+   else /* Assume disabled */
+   net_param-value[0] = ISCSI_NET_PARAM_DISABLE;
return 0;
 }
 
+#define IFACE_SET_NET_PARAM_EN(iov, inum, itype, param, ival, gcnt,\
+  lcnt)\
+   if (!iface_fill_enable_disable_param(iov, inum, itype, param,   \
+ival)) {   \
+   (*gcnt)++;  \
+   (*lcnt)++;  \
+   }
+
 /* IPv4 Bootproto: DHCP/static */
 static int iface_fill_net_bootproto(struct iovec *iov, struct iface_rec *iface)
 {
@@ -1596,13 +1582,13 @@ static int 

[PATCH 2/6] iscsi-tools: Use macro to set IPv4/IPv6 IP addresses

2013-05-09 Thread vikas.chaudhary
From: Harish Zunjarrao harish.zunjar...@qlogic.com

Signed-off-by: Harish Zunjarrao harish.zunjar...@qlogic.com
Signed-off-by: Vikas Chaudhary vikas.chaudh...@qlogic.com
---
 usr/iface.c | 152 +++-
 1 file changed, 67 insertions(+), 85 deletions(-)

diff --git a/usr/iface.c b/usr/iface.c
index c86892e..d3bada4 100644
--- a/usr/iface.c
+++ b/usr/iface.c
@@ -1484,8 +1484,8 @@ static int iface_fill_router_autocfg(struct iovec *iov, 
struct iface_rec *iface)
 }
 
 /* IPv4 IPAddress/Subnet Mask/Gateway: 4 bytes */
-static int iface_fill_net_ipv4_addr(struct iovec *iov, struct iface_rec *iface,
-   uint32_t param)
+static int iface_fill_net_ipv4_addr(struct iovec *iov, uint32_t iface_num,
+   uint16_t param, char *param_val)
 {
int rc = 1;
int len;
@@ -1502,29 +1502,12 @@ static int iface_fill_net_ipv4_addr(struct iovec *iov, 
struct iface_rec *iface,
net_param = (struct iscsi_iface_param_info *)ISCSI_NLA_DATA(attr);
net_param-param = param;
net_param-iface_type = ISCSI_IFACE_TYPE_IPV4;
-   net_param-iface_num = iface-iface_num;
+   net_param-iface_num = iface_num;
net_param-len = 4;
net_param-param_type = ISCSI_NET_PARAM;
-
-   switch (param) {
-   case ISCSI_NET_PARAM_IPV4_ADDR:
-   rc = inet_pton(AF_INET, iface-ipaddress, net_param-value);
-   if (rc = 0)
-   goto free;
-   break;
-   case ISCSI_NET_PARAM_IPV4_SUBNET:
-   rc = inet_pton(AF_INET, iface-subnet_mask, net_param-value);
-   if (rc = 0)
-   goto free;
-   break;
-   case ISCSI_NET_PARAM_IPV4_GW:
-   rc = inet_pton(AF_INET, iface-gateway, net_param-value);
-   if (rc = 0)
-   goto free;
-   break;
-   default:
+   rc = inet_pton(AF_INET, param_val, net_param-value);
+   if (rc = 0)
goto free;
-   }
 
/* validate */
if (!net_param-value[0]  !net_param-value[1] 
@@ -1539,9 +1522,18 @@ free:
return 1;
 }
 
+#define IFACE_SET_NET_PARAM_IPV4_ADDR(iov, inum, param, ival, gcnt,\
+ lcnt) \
+   if (strstr(ival, .)) {\
+   if (!iface_fill_net_ipv4_addr(iov, inum, param, ival)) {\
+   (*gcnt)++;  \
+   (*lcnt)++;  \
+   }   \
+   }
+
 /* IPv6 IPAddress/LinkLocal/Router: 16 bytes */
-static int iface_fill_net_ipv6_addr(struct iovec *iov, struct iface_rec *iface,
-   uint32_t param)
+static int iface_fill_net_ipv6_addr(struct iovec *iov, uint32_t iface_num,
+   uint16_t param, char *param_val)
 {
int rc;
int len;
@@ -1558,30 +1550,12 @@ static int iface_fill_net_ipv6_addr(struct iovec *iov, 
struct iface_rec *iface,
net_param = (struct iscsi_iface_param_info *)ISCSI_NLA_DATA(attr);
net_param-param = param;
net_param-iface_type = ISCSI_IFACE_TYPE_IPV6;
-   net_param-iface_num = iface-iface_num;
+   net_param-iface_num = iface_num;
net_param-param_type = ISCSI_NET_PARAM;
net_param-len = 16;
-
-   switch (param) {
-   case ISCSI_NET_PARAM_IPV6_ADDR:
-   rc = inet_pton(AF_INET6, iface-ipaddress, net_param-value);
-   if (rc = 0)
-   goto free;
-   break;
-   case ISCSI_NET_PARAM_IPV6_LINKLOCAL:
-   rc = inet_pton(AF_INET6, iface-ipv6_linklocal,
-  net_param-value);
-   if (rc = 0)
-   goto free;
-   break;
-   case ISCSI_NET_PARAM_IPV6_ROUTER:
-   rc = inet_pton(AF_INET6, iface-ipv6_router, net_param-value);
-   if (rc = 0)
-   goto free;
-   break;
-   default:
+   rc = inet_pton(AF_INET6, param_val, net_param-value);
+   if (rc = 0)
goto free;
-   }
 
return 0;
 free:
@@ -1591,6 +1565,15 @@ free:
return 1;
 }
 
+#define IFACE_SET_NET_PARAM_IPV6_ADDR(iov, inum, param, ival, gcnt,\
+ lcnt) \
+   if (strstr(ival, :)) {\
+   if (!iface_fill_net_ipv6_addr(iov, inum, param, ival)) {\
+   (*gcnt)++;  \
+   (*lcnt)++;  \
+   }   \
+   }
+
 struct iface_net_config {

[PATCH 6/6] iscsi-tools: Additional parameters for network settings

2013-05-09 Thread vikas.chaudhary
From: Harish Zunjarrao harish.zunjar...@qlogic.com

Signed-off-by: Harish Zunjarrao harish.zunjar...@qlogic.com
Signed-off-by: Vikas Chaudhary vikas.chaudh...@qlogic.com
---
 include/iscsi_if.h |   75 
 usr/config.h   |   52 +++
 usr/idbm.c |   91 
 usr/idbm_fields.h  |   53 +++
 usr/iface.c| 1234 +++-
 5 files changed, 1405 insertions(+), 100 deletions(-)

diff --git a/include/iscsi_if.h b/include/iscsi_if.h
index b34a91a..af33b84 100644
--- a/include/iscsi_if.h
+++ b/include/iscsi_if.h
@@ -401,6 +401,81 @@ enum iscsi_net_param {
ISCSI_NET_PARAM_IFACE_NAME,
ISCSI_NET_PARAM_MTU,
ISCSI_NET_PARAM_PORT,
+   ISCSI_NET_PARAM_IPADDR_STATE,
+   ISCSI_NET_PARAM_IPV6_LINKLOCAL_STATE,
+   ISCSI_NET_PARAM_IPV6_ROUTER_STATE,
+   ISCSI_NET_PARAM_DELAYED_ACK_EN,
+   ISCSI_NET_PARAM_ISNS_EN,
+   ISCSI_NET_PARAM_ISNS_ADDR,
+   ISCSI_NET_PARAM_ISNS_PORT,
+   ISCSI_NET_PARAM_NAGLE_EN,
+   ISCSI_NET_PARAM_TCP_WIN_SCALE_EN,
+   ISCSI_NET_PARAM_TCP_WIN_SCALE,
+   ISCSI_NET_PARAM_TCP_TIMER_SCALE,
+   ISCSI_NET_PARAM_TCP_TIMESTAMP_EN,
+   ISCSI_NET_PARAM_CACHE_ID,
+   ISCSI_NET_PARAM_IPV4_DHCP_DNS_ADDR_EN,
+   ISCSI_NET_PARAM_IPV4_DHCP_SLP_DA_EN,
+   ISCSI_NET_PARAM_IPV4_DHCP_REQ_ISNS_INFO_EN,
+   ISCSI_NET_PARAM_IPV4_TOS_EN,
+   ISCSI_NET_PARAM_IPV4_TOS,
+   ISCSI_NET_PARAM_IPV4_GRAT_ARP_EN,
+   ISCSI_NET_PARAM_IPV4_DHCP_ALT_CLIENT_ID_EN,
+   ISCSI_NET_PARAM_IPV4_DHCP_ALT_CLIENT_ID,
+   ISCSI_NET_PARAM_IPV4_DHCP_REQ_VENDOR_ID_EN,
+   ISCSI_NET_PARAM_IPV4_DHCP_USE_VENDOR_ID_EN,
+   ISCSI_NET_PARAM_IPV4_DHCP_VENDOR_ID,
+   ISCSI_NET_PARAM_IPV4_DHCP_LEARN_IQN_EN,
+   ISCSI_NET_PARAM_IPV4_FRAGMENT_EN,
+   ISCSI_NET_PARAM_IPV4_IN_FORWARD_EN,
+   ISCSI_NET_PARAM_IPV4_TTL,
+   ISCSI_NET_PARAM_IPV6_GRAT_NEIGHBOR_ADV_EN,
+   ISCSI_NET_PARAM_IPV6_MLD_EN,
+   ISCSI_NET_PARAM_IPV6_FLOW_LABEL,
+   ISCSI_NET_PARAM_IPV6_TRAFFIC_CLASS,
+   ISCSI_NET_PARAM_IPV6_HOP_LIMIT,
+   ISCSI_NET_PARAM_IPV6_ND_REACHABLE_TMO,
+   ISCSI_NET_PARAM_IPV6_ND_REXMIT_TIME,
+   ISCSI_NET_PARAM_IPV6_ND_STALE_TMO,
+   ISCSI_NET_PARAM_IPV6_DUP_ADDR_DET_CNT,
+   ISCSI_NET_PARAM_IPV6_RTR_ADV_LINK_MTU,
+   ISCSI_NET_PARAM_REDIRECT_EN,
+   ISCSI_NET_PARAM_DEF_TMF_TMO,
+   ISCSI_NET_PARAM_DEF_HDRDGST_EN,
+   ISCSI_NET_PARAM_DEF_DATADGST_EN,
+   ISCSI_NET_PARAM_DEF_IMM_DATA_EN,
+   ISCSI_NET_PARAM_DEF_INITIAL_R2T_EN,
+   ISCSI_NET_PARAM_DEF_DATASEQ_INORDER_EN,
+   ISCSI_NET_PARAM_DEF_PDU_INORDER_EN,
+   ISCSI_NET_PARAM_DEF_ERL,
+   ISCSI_NET_PARAM_DEF_MAX_RECV_DLENGTH,
+   ISCSI_NET_PARAM_DEF_FIRST_BURST,
+   ISCSI_NET_PARAM_DEF_MAX_R2T,
+   ISCSI_NET_PARAM_DEF_MAX_BURST,
+   ISCSI_NET_PARAM_DEF_CHAP_AUTH_EN,
+   ISCSI_NET_PARAM_DEF_BIDI_CHAP_EN,
+   ISCSI_NET_PARAM_DEF_STRICT_LOGIN_COMP_EN,
+   ISCSI_NET_PARAM_DEF_DISCOVERY_AUTH_EN,
+   ISCSI_NET_PARAM_DEF_DISCOVERY_LOGOUT_EN,
+   ISCSI_NET_PARAM_DEF_ISCSI_NAME,
+   ISCSI_NET_PARAM_MAX,
+};
+
+enum iscsi_ipaddress_state {
+   ISCSI_IPDDRESS_STATE_UNCONFIGURED,
+   ISCSI_IPDDRESS_STATE_ACQUIRING,
+   ISCSI_IPDDRESS_STATE_TENTATIVE,
+   ISCSI_IPDDRESS_STATE_VALID,
+   ISCSI_IPDDRESS_STATE_DISABLING,
+   ISCSI_IPDDRESS_STATE_INVALID,
+   ISCSI_IPDDRESS_STATE_DEPRECATED,
+};
+
+enum iscsi_router_state {
+   ISCSI_ROUTER_STATE_UNKNOWN,
+   ISCSI_ROUTER_STATE_ADVERTISED,
+   ISCSI_ROUTER_STATE_MANUAL,
+   ISCSI_ROUTER_STATE_STALE,
 };
 
 enum iscsi_conn_state {
diff --git a/usr/config.h b/usr/config.h
index 998caff..80d97c8 100644
--- a/usr/config.h
+++ b/usr/config.h
@@ -229,6 +229,58 @@ typedef struct iface_rec {
   * 1 = enable */
uint16_tmtu;
uint16_tport;
+   chardelayed_ack[ISCSI_MAX_STR_LEN];
+   charisns[ISCSI_MAX_STR_LEN];
+   charisns_ipaddress[ISCSI_MAX_STR_LEN];
+   uint16_tisns_port;
+   charnagle[ISCSI_MAX_STR_LEN];
+   chartcp_win_scale_state[ISCSI_MAX_STR_LEN];
+   uint8_t tcp_win_scale;
+   uint8_t tcp_timer_scale;
+   chartcp_timestamp[ISCSI_MAX_STR_LEN];
+   chardhcp_dns[ISCSI_MAX_STR_LEN];
+   chardhcp_slp_da[ISCSI_MAX_STR_LEN];
+   chardhcp_isns_info[ISCSI_MAX_STR_LEN];
+   chartos_state[ISCSI_MAX_STR_LEN];
+   uint8_t tos;
+   chargratuitous_arp[ISCSI_MAX_STR_LEN];
+   chardhcp_alt_client_id_state[ISCSI_MAX_STR_LEN];
+   char

RE: [PATCH 1/3] iscsiadm: Add flash node mgmt support.

2013-05-09 Thread Adheer Chandravanshi
 -Original Message-
 From: Mike Christie [mailto:micha...@cs.wisc.edu]
 Sent: Thursday, May 09, 2013 7:31 AM
 To: open-iscsi@googlegroups.com
 Cc: The Lee-Man; Vikas Chaudhary; Lalit Chandivade; Ravi Anand; Poornima
 Vonti; Manish Rangankar; Adheer Chandravanshi
 Subject: Re: [PATCH 1/3] iscsiadm: Add flash node mgmt support.

 On 05/08/2013 05:52 PM, The Lee-Man wrote:
 
  -if (name  value) {
  +if ((mode == MODE_IFACE ||
  + (mode == MODE_HOST  sub_mode ==
  MODE_FLASHNODE)) 
  +name  value) {
   param = idbm_alloc_user_param(name, value);
   if (!param) {
   log_error(Cannot allocate memory
  for params.);
 
 
  I believe this is incorrect. After your patch, name and value will
  not be set in MODE_NODE.
 
  Should that be if (mode == MOD_IFACE || mode == MODE_NODE || ?
 
  @@ -2603,7 +3007,7 @@ main(int argc, char **argv)

 Thank you so much for helping to review! You are right.

Mike,

Please find the patch attached herewith that fixes the issue reported by Lee.

Thanks,
Adheer






This message and any attached documents contain information from QLogic 
Corporation or its wholly-owned subsidiaries that may be confidential. If you 
are not the intended recipient, you may not read, copy, distribute, or use this 
information. If you have received this transmission in error, please notify the 
sender immediately by reply e-mail and then delete this message.

-- 
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.




0001-iscsiadm-Check-for-mode-is-not-required-when-creatin.patch
Description: 0001-iscsiadm-Check-for-mode-is-not-required-when-creatin.patch


Re: [PATCH 1/3] iscsiadm: Add flash node mgmt support.

2013-05-09 Thread The Lee-Man
On Thursday, May 9, 2013 5:03:44 AM UTC-7, Adheer Chandravanshi wrote:

  -Original Message- 
  From: Mike Christie [mailto:mich...@cs.wisc.edu javascript:] 
  Sent: Thursday, May 09, 2013 7:31 AM 
  To: open-...@googlegroups.com javascript: 
  Cc: The Lee-Man; Vikas Chaudhary; Lalit Chandivade; Ravi Anand; Poornima 
  Vonti; Manish Rangankar; Adheer Chandravanshi 
  Subject: Re: [PATCH 1/3] iscsiadm: Add flash node mgmt support. 
  
  On 05/08/2013 05:52 PM, The Lee-Man wrote: 
   
   -if (name  value) { 
   +if ((mode == MODE_IFACE || 
   + (mode == MODE_HOST  sub_mode == 
   MODE_FLASHNODE))  
   +name  value) { 
param = idbm_alloc_user_param(name, 
 value); 
if (!param) { 
log_error(Cannot allocate memory 
   for params.); 
   
   
   I believe this is incorrect. After your patch, name and value will 
   not be set in MODE_NODE. 
   
   Should that be if (mode == MOD_IFACE || mode == MODE_NODE || ? 
   
   @@ -2603,7 +3007,7 @@ main(int argc, char **argv) 
  
  Thank you so much for helping to review! You are right. 

 Mike, 

 Please find the patch attached herewith that fixes the issue reported by 
 Lee. 

 Thanks, 
 Adheer 



Looks good to me, and tested as well.

Acked-by: Lee Duncan leeman.dun...@mail.com 



  

 This message and any attached documents contain information from QLogic 
 Corporation or its wholly-owned subsidiaries that may be confidential. If 
 you are not the intended recipient, you may not read, copy, distribute, or 
 use this information. If you have received this transmission in error, 
 please notify the sender immediately by reply e-mail and then delete this 
 message. 


-- 
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.