Print this page
Commit IPMP changes

@@ -19,10 +19,11 @@
  * CDDL HEADER END
  */
 
 /*
  * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
  */
 
 #ifndef _IPMGMT_IMPL_H
 #define _IPMGMT_IMPL_H
 

@@ -47,38 +48,37 @@
 /* ipmgmt_util.c */
 extern void     ipmgmt_log(int, const char *, ...);
 extern int      ipmgmt_cpfile(const char *, const char *, boolean_t);
 
 /* ipmgmt_persist.c */
+extern boolean_t ipmgmt_persist_if_exists(const char *, sa_family_t);
+extern void ipmgmt_get_group_interface(const char *, char *, size_t);
 
 /*
  * following are the list of DB walker callback functions and the callback
  * arguments for each of the callback functions used by the daemon
  */
 /* following functions take 'ipmgmt_prop_arg_t' as the callback argument */
 extern db_wfunc_t       ipmgmt_db_getprop, ipmgmt_db_resetprop;
 
 /* following functions take ipadm_dbwrite_cbarg_t as callback argument */
-extern db_wfunc_t       ipmgmt_db_add, ipmgmt_db_update;
+extern db_wfunc_t       ipmgmt_db_add, ipmgmt_db_update, ipmgmt_db_update_if;
 
 typedef struct {
         char            *cb_ifname;
-        ipadm_if_info_t *cb_ifinfo;
-} ipmgmt_getif_cbarg_t;
-extern db_wfunc_t       ipmgmt_db_getif;
-
-typedef struct {
         char            *cb_aobjname;
-        char            *cb_ifname;
         nvlist_t        *cb_onvl;
         int             cb_ocnt;
-} ipmgmt_getaddr_cbarg_t;
+} ipmgmt_get_cbarg_t;
+extern db_wfunc_t       ipmgmt_db_getif;
 extern db_wfunc_t       ipmgmt_db_getaddr;
 
 typedef struct {
         sa_family_t     cb_family;
         char            *cb_ifname;
+    boolean_t   cb_ipv4exists;
+    boolean_t   cb_ipv6exists;
 } ipmgmt_if_cbarg_t;
 extern db_wfunc_t       ipmgmt_db_setif, ipmgmt_db_resetif;
 
 typedef struct {
         char            *cb_aobjname;

@@ -169,10 +169,12 @@
         scf_value_t             *sr_val;
         scf_transaction_t       *sr_tx;
         scf_transaction_entry_t *sr_ent;
 } scf_resources_t;
 
+extern int              ipmgmt_update_family_nvp(nvlist_t *,
+                            sa_family_t, uint_t);
 extern int              ipmgmt_db_walk(db_wfunc_t *, void *, ipadm_db_op_t);
 extern int              ipmgmt_aobjmap_op(ipmgmt_aobjmap_t *, uint32_t);
 extern boolean_t        ipmgmt_aobjmap_init(void *, nvlist_t *, char *,
                             size_t, int *);
 extern int              ipmgmt_persist_aobjmap(ipmgmt_aobjmap_t *,