Print this page
Commit IPMP changes

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libipadm/common/libipadm_impl.h
          +++ new/usr/src/lib/libipadm/common/libipadm_impl.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
  23   23   * Copyright (c) 2013 by Delphix. All rights reserved.
       24 + * Copyright (c) 2014 Nexenta Systems, Inc. All rights reserved.
  24   25   */
  25   26  
  26   27  #ifndef _LIBIPADM_IMPL_H
  27   28  #define _LIBIPADM_IMPL_H
  28   29  
  29   30  #ifdef  __cplusplus
  30   31  extern "C" {
  31   32  #endif
  32   33  
  33   34  #include <sys/socket.h>
       35 +#include <sys/list.h>
  34   36  #include <net/if.h>
  35   37  #include <libipadm.h>
  36   38  #include <libdladm.h>
  37   39  #include <ipadm_ipmgmt.h>
  38   40  #include <inet/tunables.h>
  39   41  #include <netinet/in.h>
  40   42  #include <pthread.h>
  41   43  #include <libinetutil.h>
  42   44  #include <libsocket_priv.h>
  43   45  
  44   46  #define IPADM_STRSIZE           256
  45   47  #define IPADM_ONSTR             "on"
  46   48  #define IPADM_OFFSTR            "off"
  47   49  #define ARP_MOD_NAME            "arp"
  48   50  #define IPADM_LOGICAL_SEP       ':'
  49   51  #define IPV6_MIN_MTU            1280    /* rfc2460 */
  50   52  
  51   53  /* mask for flags accepted by libipadm functions */
  52   54  #define IPADM_COMMON_OPT_MASK   (IPADM_OPT_ACTIVE | IPADM_OPT_PERSIST)
  53   55  
       56 +typedef enum {
       57 +    IPADM_ADD_IPMP_MEMBER,
       58 +    IPADM_REMOVE_IPMP_MEMBER
       59 +} ipadm_ipmp_operation_t;
       60 +
  54   61  /* Opaque library handle */
  55   62  struct ipadm_handle {
  56   63          int             iph_sock;       /* socket to interface */
  57   64          int             iph_sock6;      /* socket to interface */
  58   65          int             iph_door_fd;    /* door descriptor to ipmgmtd */
  59   66          int             iph_rtsock;     /* routing socket */
  60   67          dladm_handle_t  iph_dlh;        /* handle to libdladm library */
  61   68          uint32_t        iph_flags;      /* internal flags */
  62   69          pthread_mutex_t iph_lock;       /* lock to set door_fd */
  63   70          zoneid_t        iph_zoneid;     /* zoneid where handle was opened */
↓ open down ↓ 79 lines elided ↑ open up ↑
 143  150                              nvlist_t **);
 144  151  extern ipadm_status_t   i_ipadm_init_ifobj(ipadm_handle_t, const char *,
 145  152                              nvlist_t *);
 146  153  extern ipadm_status_t   i_ipadm_init_addrobj(ipadm_handle_t, nvlist_t *);
 147  154  extern ipadm_status_t   i_ipadm_addr_persist(ipadm_handle_t,
 148  155                              const ipadm_addrobj_t, boolean_t, uint32_t);
 149  156  extern ipadm_status_t   i_ipadm_delete_addr(ipadm_handle_t, ipadm_addrobj_t);
 150  157  extern int              i_ipadm_strioctl(int, int, char *, int);
 151  158  extern boolean_t        i_ipadm_is_loopback(const char *);
 152  159  extern boolean_t        i_ipadm_is_vni(const char *);
 153      -extern boolean_t        i_ipadm_is_ipmp(ipadm_handle_t, const char *);
 154      -extern boolean_t        i_ipadm_is_under_ipmp(ipadm_handle_t, const char *);
 155  160  extern boolean_t        i_ipadm_is_6to4(ipadm_handle_t, char *);
 156  161  extern boolean_t        i_ipadm_validate_ifname(ipadm_handle_t, const char *);
 157  162  extern ipadm_status_t   ipadm_errno2status(int);
 158  163  extern int              ipadm_door_call(ipadm_handle_t, void *, size_t, void **,
 159  164                              size_t, boolean_t);
 160  165  extern boolean_t        ipadm_if_enabled(ipadm_handle_t, const char *,
 161  166                              sa_family_t);
      167 +extern ipadm_status_t i_ipadm_call_ipmgmtd(ipadm_handle_t, void *,
      168 +            size_t, nvlist_t **);
 162  169  
 163  170  /* ipadm_ndpd.c */
 164  171  extern  ipadm_status_t  i_ipadm_create_ipv6addrs(ipadm_handle_t,
 165  172                              ipadm_addrobj_t, uint32_t);
 166  173  extern ipadm_status_t   i_ipadm_delete_ipv6addrs(ipadm_handle_t,
 167  174                              ipadm_addrobj_t);
 168  175  extern ipadm_status_t   i_ipadm_disable_autoconf(const char *);
 169  176  extern ipadm_status_t   i_ipadm_enable_autoconf(const char *);
 170  177  
 171  178  /* ipadm_persist.c */
↓ open down ↓ 47 lines elided ↑ open up ↑
 219  226  extern ipadm_status_t   i_ipadm_plumb_if(ipadm_handle_t, char *, sa_family_t,
 220  227                              uint32_t);
 221  228  extern ipadm_status_t   i_ipadm_unplumb_if(ipadm_handle_t, const char *,
 222  229                              sa_family_t);
 223  230  extern ipadm_status_t   i_ipadm_if_pexists(ipadm_handle_t, const char *,
 224  231                              sa_family_t, boolean_t *);
 225  232  extern ipadm_status_t   i_ipadm_delete_ifobj(ipadm_handle_t, const char *,
 226  233                              sa_family_t, boolean_t);
 227  234  extern int              i_ipadm_get_lnum(const char *);
 228  235  
      236 +extern ipadm_status_t i_ipadm_set_groupname_active(ipadm_handle_t,
      237 +            const char *, const char *);
      238 +extern ipadm_status_t i_ipadm_get_groupname_active(ipadm_handle_t,
      239 +            const char *, char *, size_t);
      240 +extern boolean_t i_ipadm_is_under_ipmp(ipadm_handle_t, const char *);
      241 +extern boolean_t i_ipadm_is_ipmp(ipadm_handle_t, const char *);
 229  242  #ifdef  __cplusplus
 230  243  }
 231  244  #endif
 232  245  
 233  246  #endif  /* _LIBIPADM_IMPL_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX