Print this page
7388 Support DHCP Client FQDN. Allow IAID/DUID for all v4.

@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 
 /*
  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, Chris Fraire <cfraire@me.com>.
  */
 
 /*
  * nwamcfg is a lex/yacc based command interpreter used to manage network
  * configurations.  The lexer (see nwamcfg_lex.l) builds up tokens, which

@@ -196,11 +197,13 @@
         NWAM_LOC_PROP_IPSECPOLICY_CONFIG_FILE,
         NWAM_KNOWN_WLAN_PROP_BSSIDS,
         NWAM_KNOWN_WLAN_PROP_PRIORITY,
         NWAM_KNOWN_WLAN_PROP_KEYNAME,
         NWAM_KNOWN_WLAN_PROP_KEYSLOT,
-        NWAM_KNOWN_WLAN_PROP_SECURITY_MODE
+        NWAM_KNOWN_WLAN_PROP_SECURITY_MODE,
+        NWAM_NCU_PROP_IP_PRIMARY,
+        NWAM_NCU_PROP_IP_REQHOST
 };
 
 /* properties table: maps PT_* constants to property names */
 typedef struct prop_table_entry {
         int                     pte_type;

@@ -224,10 +227,12 @@
         { PT_IPV4_ADDR,                 NWAM_NCU_PROP_IPV4_ADDR },
         { PT_IPV4_DEFAULT_ROUTE,        NWAM_NCU_PROP_IPV4_DEFAULT_ROUTE },
         { PT_IPV6_ADDRSRC,              NWAM_NCU_PROP_IPV6_ADDRSRC },
         { PT_IPV6_ADDR,                 NWAM_NCU_PROP_IPV6_ADDR },
         { PT_IPV6_DEFAULT_ROUTE,        NWAM_NCU_PROP_IPV6_DEFAULT_ROUTE },
+        { PT_IP_PRIMARY,                NWAM_NCU_PROP_IP_PRIMARY },
+        { PT_IP_REQHOST,                NWAM_NCU_PROP_IP_REQHOST },
         { 0, NULL }
 };
 
 /* ENM properties table */
 static prop_table_entry_t enm_prop_table[] = {

@@ -662,15 +667,19 @@
 {
         assert(prop_type >= PT_MIN && prop_type <= PT_MAX);
         return (pt_types[prop_type]);
 }
 
-/* Return B_TRUE if string starts with "t" or is 1, B_FALSE otherwise */
+/*
+ * Return B_TRUE if string starts with "t" or "on" or is 1;
+ * B_FALSE otherwise
+ */
 static boolean_t
 str_to_boolean(const char *str)
 {
-        if (strncasecmp(str, "t", 1) == 0 || atoi(str) == 1)
+        if (strncasecmp(str, "t", 1) == 0 || strncasecmp(str, "on", 2) == 0 ||
+            atoi(str) == 1)
                 return (B_TRUE);
         else
                 return (B_FALSE);
 }
 

@@ -2195,10 +2204,22 @@
         { NWAM_NCU_PROP_IPV6_ADDR, NWAM_NCU_PROP_IPV6_ADDRSRC,
             { NWAM_ADDRSRC_STATIC, -1 } },
         /* show ipv6-default-route if ip-version == ipv6 */
         { NWAM_NCU_PROP_IPV6_DEFAULT_ROUTE, NWAM_NCU_PROP_IP_VERSION,
             { IPV6_VERSION, -1 } },
+        /* show ip-primary if ipv4-addrsrc == dhcp */
+        { NWAM_NCU_PROP_IP_PRIMARY, NWAM_NCU_PROP_IPV4_ADDRSRC,
+            { NWAM_ADDRSRC_DHCP, -1 } },
+        /* show ip-primary if ipv6-addrsrc == dhcp */
+        { NWAM_NCU_PROP_IP_PRIMARY, NWAM_NCU_PROP_IPV6_ADDRSRC,
+            { NWAM_ADDRSRC_DHCP, -1 } },
+        /* show ip-reqhost if ipv4-addrsrc == dhcp */
+        { NWAM_NCU_PROP_IP_REQHOST, NWAM_NCU_PROP_IPV4_ADDRSRC,
+            { NWAM_ADDRSRC_DHCP, -1 } },
+        /* show ip-reqhost if ipv6-addrsrc == dhcp */
+        { NWAM_NCU_PROP_IP_REQHOST, NWAM_NCU_PROP_IPV6_ADDRSRC,
+            { NWAM_ADDRSRC_DHCP, -1 } },
         { NULL, NULL, { -1 } }
 };
 
 /* Rules for ENMs */
 static prop_display_entry_t enm_prop_display_entry_table[] = {