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) 2013 by Delphix. All rights reserved.
+ * Copyright (c) 2016, Chris Fraire <cfraire@me.com>.
  */
 
 #ifndef _LIBIPADM_IMPL_H
 #define _LIBIPADM_IMPL_H
 

@@ -85,10 +86,11 @@
                         boolean_t               ipadm_stateful;
                 } ipadm_ipv6_intfid_s;
                 struct {
                         boolean_t               ipadm_primary;
                         int32_t                 ipadm_wait;
+                        char                    ipadm_reqhost[MAXNAMELEN];
                 } ipadm_dhcp_s;
         } ipadm_addr_u;
 };
 
 #define ipadm_static_addr       ipadm_addr_u.ipadm_static_addr_s.ipadm_addr

@@ -100,10 +102,11 @@
 #define ipadm_intfidlen         ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_intfidlen
 #define ipadm_stateless         ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_stateless
 #define ipadm_stateful          ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_stateful
 #define ipadm_primary           ipadm_addr_u.ipadm_dhcp_s.ipadm_primary
 #define ipadm_wait              ipadm_addr_u.ipadm_dhcp_s.ipadm_wait
+#define ipadm_reqhost   ipadm_addr_u.ipadm_dhcp_s.ipadm_reqhost
 
 /*
  * Data structures and callback functions related to property management
  */
 struct ipadm_prop_desc;

@@ -143,11 +146,11 @@
                             nvlist_t **);
 extern ipadm_status_t   i_ipadm_init_ifobj(ipadm_handle_t, const char *,
                             nvlist_t *);
 extern ipadm_status_t   i_ipadm_init_addrobj(ipadm_handle_t, nvlist_t *);
 extern ipadm_status_t   i_ipadm_addr_persist(ipadm_handle_t,
-                            const ipadm_addrobj_t, boolean_t, uint32_t);
+                            const ipadm_addrobj_t, boolean_t, uint32_t, const char *);
 extern ipadm_status_t   i_ipadm_delete_addr(ipadm_handle_t, ipadm_addrobj_t);
 extern int              i_ipadm_strioctl(int, int, char *, int);
 extern boolean_t        i_ipadm_is_loopback(const char *);
 extern boolean_t        i_ipadm_is_vni(const char *);
 extern boolean_t        i_ipadm_is_ipmp(ipadm_handle_t, const char *);

@@ -183,11 +186,11 @@
                             const void *);
 
 /* ipadm_addr.c */
 extern void             i_ipadm_init_addr(ipadm_addrobj_t, const char *,
                             const char *, ipadm_addr_type_t);
-extern ipadm_status_t   i_ipadm_merge_prefixlen_from_nvl(nvlist_t *, nvlist_t *,
+extern ipadm_status_t   i_ipadm_merge_addrprops_from_nvl(nvlist_t *, nvlist_t *,
                             const char *);
 extern ipadm_status_t   i_ipadm_get_addrobj(ipadm_handle_t, ipadm_addrobj_t);
 extern ipadm_status_t   i_ipadm_enable_static(ipadm_handle_t, const char *,
                             nvlist_t *, sa_family_t);
 extern ipadm_status_t   i_ipadm_enable_dhcp(ipadm_handle_t, const char *,