summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Duncan <leeman.duncan@gmail.com>2018-01-18 15:25:10 -0800
committerGitHub <noreply@github.com>2018-01-18 15:25:10 -0800
commit1335ac2346d0d2a49340b905ec05eb5815f8aca4 (patch)
tree1347973477822bb309a529b85905945c2580d130
parent0a8fcf64c09e1e2808ae87df70a184b33cf12da8 (diff)
parenteb4fc984297ec4b5c64173ffd09544d518ebf62c (diff)
downloadopen-iscsi-1335ac2346d0d2a49340b905ec05eb5815f8aca4.tar.gz
Merge pull request #84 from gonzoleeman/fixes/add_ip_prefix
Add in tracking IP prefix length, in addition to mask.
-rw-r--r--include/fw_context.h1
-rw-r--r--usr/config.h1
-rw-r--r--usr/idbm.c3
-rw-r--r--usr/idbm_fields.h1
-rw-r--r--utils/fwparam_ibft/fw_entry.c2
-rw-r--r--utils/fwparam_ibft/fwparam_sysfs.c1
6 files changed, 9 insertions, 0 deletions
diff --git a/include/fw_context.h b/include/fw_context.h
index 44053d8..88c6a02 100644
--- a/include/fw_context.h
+++ b/include/fw_context.h
@@ -60,6 +60,7 @@ struct boot_context {
/* network settings */
int nic_flags;
enum ibft_ip_prefix_origin origin;
+ int prefix;
char dhcp[NI_MAXHOST];
char iface[IF_NAMESIZE];
char mac[18];
diff --git a/usr/config.h b/usr/config.h
index 3bcb93f..250879d 100644
--- a/usr/config.h
+++ b/usr/config.h
@@ -226,6 +226,7 @@ typedef struct iface_rec {
char ipv6_autocfg[NI_MAXHOST];
char linklocal_autocfg[NI_MAXHOST];
char router_autocfg[NI_MAXHOST];
+ uint8_t prefix_len;
uint16_t vlan_id;
uint8_t vlan_priority;
char vlan_state[ISCSI_MAX_STR_LEN];
diff --git a/usr/idbm.c b/usr/idbm.c
index 68e4246..5532202 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -264,6 +264,8 @@ idbm_recinfo_node(node_rec_t *r, recinfo_t *ri)
__recinfo_str(IFACE_NETNAME, ri, r, iface.netdev, IDBM_SHOW, num, 1);
__recinfo_str(IFACE_GATEWAY, ri, r, iface.gateway, IDBM_SHOW, num, 1);
__recinfo_str(IFACE_SUBNET_MASK, ri, r, iface.subnet_mask, IDBM_SHOW, num, 1);
+ __recinfo_uint8(IFACE_PREFIX_LEN, ri, r, iface.prefix_len,
+ IDBM_SHOW, num, 1);
/*
* svn 780 compat: older versions used node.transport_name and
* rec->transport_name
@@ -534,6 +536,7 @@ void idbm_recinfo_iface(iface_rec_t *r, recinfo_t *ri)
__recinfo_str(IFACE_ISCSINAME, ri, r, name, IDBM_SHOW, num, 0);
__recinfo_str(IFACE_NETNAME, ri, r, netdev, IDBM_SHOW, num, 1);
__recinfo_str(IFACE_IPADDR, ri, r, ipaddress, IDBM_SHOW, num, 1);
+ __recinfo_uint8(IFACE_PREFIX_LEN, ri, r, prefix_len, IDBM_SHOW, num, 1);
__recinfo_str(IFACE_HWADDR, ri, r, hwaddress, IDBM_SHOW, num, 1);
__recinfo_str(IFACE_TRANSPORTNAME, ri, r, transport_name,
IDBM_SHOW, num, 1);
diff --git a/usr/idbm_fields.h b/usr/idbm_fields.h
index 4a92758..f73febc 100644
--- a/usr/idbm_fields.h
+++ b/usr/idbm_fields.h
@@ -74,6 +74,7 @@
#define IFACE_ISID "iface.isid"
#define IFACE_BOOT_PROTO "iface.bootproto"
#define IFACE_IPADDR "iface.ipaddress"
+#define IFACE_PREFIX_LEN "iface.prefix_len"
#define IFACE_SUBNET_MASK "iface.subnet_mask"
#define IFACE_GATEWAY "iface.gateway"
#define IFACE_PRIMARY_DNS "iface.primary_dns"
diff --git a/utils/fwparam_ibft/fw_entry.c b/utils/fwparam_ibft/fw_entry.c
index 42d1a55..b49e53f 100644
--- a/utils/fwparam_ibft/fw_entry.c
+++ b/utils/fwparam_ibft/fw_entry.c
@@ -215,6 +215,8 @@ static void dump_network(struct boot_context *context)
printf("%s = STATIC\n", IFACE_BOOT_PROTO);
if (strlen(context->ipaddr))
printf("%s = %s\n", IFACE_IPADDR, context->ipaddr);
+ if (context->prefix)
+ printf("%s = %d\n", IFACE_PREFIX_LEN, context->prefix);
if (strlen(context->mask))
printf("%s = %s\n", IFACE_SUBNET_MASK, context->mask);
if (strlen(context->gateway))
diff --git a/utils/fwparam_ibft/fwparam_sysfs.c b/utils/fwparam_ibft/fwparam_sysfs.c
index a0a9364..a0cd1c7 100644
--- a/utils/fwparam_ibft/fwparam_sysfs.c
+++ b/utils/fwparam_ibft/fwparam_sysfs.c
@@ -221,6 +221,7 @@ static int fill_nic_context(char *subsys, char *id,
sizeof(context->vlan));
sysfs_get_str(id, subsys, "subnet-mask", context->mask,
sizeof(context->mask));
+ sysfs_get_int(id, subsys, "prefix-len", &context->prefix);
sysfs_get_str(id, subsys, "gateway", context->gateway,
sizeof(context->gateway));
sysfs_get_str(id, subsys, "primary-dns", context->primary_dns,