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

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) 2016, Chris Fraire <cfraire@me.com>.
  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>
↓ open down ↓ 46 lines elided ↑ open up ↑
  80   81                  } ipadm_static_addr_s;
  81   82                  struct {
  82   83                          struct sockaddr_in6     ipadm_intfid;
  83   84                          uint32_t                ipadm_intfidlen;
  84   85                          boolean_t               ipadm_stateless;
  85   86                          boolean_t               ipadm_stateful;
  86   87                  } ipadm_ipv6_intfid_s;
  87   88                  struct {
  88   89                          boolean_t               ipadm_primary;
  89   90                          int32_t                 ipadm_wait;
       91 +                        char                    ipadm_reqhost[MAXNAMELEN];
  90   92                  } ipadm_dhcp_s;
  91   93          } ipadm_addr_u;
  92   94  };
  93   95  
  94   96  #define ipadm_static_addr       ipadm_addr_u.ipadm_static_addr_s.ipadm_addr
  95   97  #define ipadm_static_aname      ipadm_addr_u.ipadm_static_addr_s.ipadm_ahname
  96   98  #define ipadm_static_prefixlen  ipadm_addr_u.ipadm_static_addr_s.ipadm_prefixlen
  97   99  #define ipadm_static_dst_addr   ipadm_addr_u.ipadm_static_addr_s.ipadm_dstaddr
  98  100  #define ipadm_static_dname      ipadm_addr_u.ipadm_static_addr_s.ipadm_dhname
  99  101  #define ipadm_intfid            ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_intfid
 100  102  #define ipadm_intfidlen         ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_intfidlen
 101  103  #define ipadm_stateless         ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_stateless
 102  104  #define ipadm_stateful          ipadm_addr_u.ipadm_ipv6_intfid_s.ipadm_stateful
 103  105  #define ipadm_primary           ipadm_addr_u.ipadm_dhcp_s.ipadm_primary
 104  106  #define ipadm_wait              ipadm_addr_u.ipadm_dhcp_s.ipadm_wait
      107 +#define ipadm_reqhost   ipadm_addr_u.ipadm_dhcp_s.ipadm_reqhost
 105  108  
 106  109  /*
 107  110   * Data structures and callback functions related to property management
 108  111   */
 109  112  struct ipadm_prop_desc;
 110  113  typedef struct ipadm_prop_desc ipadm_prop_desc_t;
 111  114  
 112  115  /* property set() callback */
 113  116  typedef ipadm_status_t  ipadm_pd_setf_t(ipadm_handle_t, const void *,
 114  117      ipadm_prop_desc_t *, const void *, uint_t, uint_t);
↓ open down ↓ 23 lines elided ↑ open up ↑
 138  141  extern ipadm_status_t   i_ipadm_get_flags(ipadm_handle_t, const char *,
 139  142                              sa_family_t, uint64_t *);
 140  143  extern ipadm_status_t   i_ipadm_set_flags(ipadm_handle_t, const char *,
 141  144                              sa_family_t, uint64_t, uint64_t);
 142  145  extern ipadm_status_t   i_ipadm_init_ifs(ipadm_handle_t, const char *,
 143  146                              nvlist_t **);
 144  147  extern ipadm_status_t   i_ipadm_init_ifobj(ipadm_handle_t, const char *,
 145  148                              nvlist_t *);
 146  149  extern ipadm_status_t   i_ipadm_init_addrobj(ipadm_handle_t, nvlist_t *);
 147  150  extern ipadm_status_t   i_ipadm_addr_persist(ipadm_handle_t,
 148      -                            const ipadm_addrobj_t, boolean_t, uint32_t);
      151 +                            const ipadm_addrobj_t, boolean_t, uint32_t, const char *);
 149  152  extern ipadm_status_t   i_ipadm_delete_addr(ipadm_handle_t, ipadm_addrobj_t);
 150  153  extern int              i_ipadm_strioctl(int, int, char *, int);
 151  154  extern boolean_t        i_ipadm_is_loopback(const char *);
 152  155  extern boolean_t        i_ipadm_is_vni(const char *);
 153  156  extern boolean_t        i_ipadm_is_ipmp(ipadm_handle_t, const char *);
 154  157  extern boolean_t        i_ipadm_is_under_ipmp(ipadm_handle_t, const char *);
 155  158  extern boolean_t        i_ipadm_is_6to4(ipadm_handle_t, char *);
 156  159  extern boolean_t        i_ipadm_validate_ifname(ipadm_handle_t, const char *);
 157  160  extern ipadm_status_t   ipadm_errno2status(int);
 158  161  extern int              ipadm_door_call(ipadm_handle_t, void *, size_t, void **,
↓ open down ↓ 19 lines elided ↑ open up ↑
 178  181  extern ipadm_status_t   i_ipadm_persist_propval(ipadm_handle_t,
 179  182                              ipadm_prop_desc_t *, const char *, const void *,
 180  183                              uint_t);
 181  184  extern ipadm_status_t   i_ipadm_get_persist_propval(ipadm_handle_t,
 182  185                              ipadm_prop_desc_t *, char *, uint_t *,
 183  186                              const void *);
 184  187  
 185  188  /* ipadm_addr.c */
 186  189  extern void             i_ipadm_init_addr(ipadm_addrobj_t, const char *,
 187  190                              const char *, ipadm_addr_type_t);
 188      -extern ipadm_status_t   i_ipadm_merge_prefixlen_from_nvl(nvlist_t *, nvlist_t *,
      191 +extern ipadm_status_t   i_ipadm_merge_addrprops_from_nvl(nvlist_t *, nvlist_t *,
 189  192                              const char *);
 190  193  extern ipadm_status_t   i_ipadm_get_addrobj(ipadm_handle_t, ipadm_addrobj_t);
 191  194  extern ipadm_status_t   i_ipadm_enable_static(ipadm_handle_t, const char *,
 192  195                              nvlist_t *, sa_family_t);
 193  196  extern ipadm_status_t   i_ipadm_enable_dhcp(ipadm_handle_t, const char *,
 194  197                              nvlist_t *);
 195  198  extern ipadm_status_t   i_ipadm_enable_addrconf(ipadm_handle_t, const char *,
 196  199                              nvlist_t *);
 197  200  extern void             i_ipadm_addrobj2lifname(ipadm_addrobj_t, char *, int);
 198  201  extern ipadm_status_t   i_ipadm_nvl2in6_addr(nvlist_t *, char *,
↓ open down ↓ 35 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX