Print this page
OS-161: Integrate IPMP changes
        
*** 19,28 ****
--- 19,29 ----
   * CDDL HEADER END
   */
  
  /*
   * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+  * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
   * Copyright (c) 2016, Chris Fraire <cfraire@me.com>.
   */
  
  #ifndef _IPMGMT_IMPL_H
  #define _IPMGMT_IMPL_H
*** 48,85 ****
  /* ipmgmt_util.c */
  extern void     ipmgmt_log(int, const char *, ...);
  extern int      ipmgmt_cpfile(const char *, const char *, boolean_t);
  
  /* ipmgmt_persist.c */
  
  /*
   * 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;
  
  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;
  extern db_wfunc_t       ipmgmt_db_getaddr;
  
  typedef struct {
          sa_family_t     cb_family;
          char            *cb_ifname;
  } ipmgmt_if_cbarg_t;
  extern db_wfunc_t       ipmgmt_db_setif, ipmgmt_db_resetif;
  
  typedef struct {
          char            *cb_aobjname;
--- 49,85 ----
  /* 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, ipmgmt_db_update_if;
  
  typedef struct {
          char    *cb_ifname;
          char    *cb_aobjname;
          nvlist_t        *cb_onvl;
          int     cb_ocnt;
! } 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;
*** 179,188 ****
--- 179,190 ----
          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 *,