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

*** 19,28 **** --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, Chris Fraire <cfraire@me.com>. */ #ifndef _IPMGMT_IMPL_H #define _IPMGMT_IMPL_H
*** 101,112 **** * - address family * - `am_nextnum' identifies the next number to use to generate user part * of `aobjname'. * - address type (static, dhcp or addrconf) * - `am_flags' indicates if this addrobj in active and/or persist config ! * - if `am_atype' is IPADM_ADDR_IPV6_ADDRCONF then `am_ifid' holds the ! * interface-id used to configure auto-configured addresses */ typedef struct ipmgmt_aobjmap_s { struct ipmgmt_aobjmap_s *am_next; char am_aobjname[IPADM_AOBJSIZ]; char am_ifname[LIFNAMSIZ]; --- 102,117 ---- * - address family * - `am_nextnum' identifies the next number to use to generate user part * of `aobjname'. * - address type (static, dhcp or addrconf) * - `am_flags' indicates if this addrobj in active and/or persist config ! * - other, ipadm_addr_type_t-specific values are cached in ! * am_addr_cache (see type ipmgmt_addr_cache_u): ! * - ipv6: ipmgmt_am_linklocal (macro) ! * - ipv6: ipmgmt_am_ifid (macro) ! * - dhcp: ipmgmt_am_primary (macro) ! * - dhcp: ipmgmt_am_reqhost (macro) */ typedef struct ipmgmt_aobjmap_s { struct ipmgmt_aobjmap_s *am_next; char am_aobjname[IPADM_AOBJSIZ]; char am_ifname[LIFNAMSIZ];
*** 113,126 **** int32_t am_lnum; sa_family_t am_family; ipadm_addr_type_t am_atype; uint32_t am_nextnum; uint32_t am_flags; ! boolean_t am_linklocal; ! struct sockaddr_storage am_ifid; } ipmgmt_aobjmap_t; /* linked list of `aobjmap' nodes, protected by RW lock */ typedef struct ipmgmt_aobjmap_list_s { ipmgmt_aobjmap_t *aobjmap_head; pthread_rwlock_t aobjmap_rwlock; } ipmgmt_aobjmap_list_t; --- 118,135 ---- int32_t am_lnum; sa_family_t am_family; ipadm_addr_type_t am_atype; uint32_t am_nextnum; uint32_t am_flags; ! ipmgmt_addr_type_cache_u am_atype_cache; } ipmgmt_aobjmap_t; + #define ipmgmt_am_linklocal am_atype_cache.ipmgmt_ipv6_cache_s.ipmgmt_linklocal + #define ipmgmt_am_ifid am_atype_cache.ipmgmt_ipv6_cache_s.ipmgmt_ifid + #define ipmgmt_am_primary am_atype_cache.ipmgmt_dhcp_cache_s.ipmgmt_primary + #define ipmgmt_am_reqhost am_atype_cache.ipmgmt_dhcp_cache_s.ipmgmt_reqhost + /* linked list of `aobjmap' nodes, protected by RW lock */ typedef struct ipmgmt_aobjmap_list_s { ipmgmt_aobjmap_t *aobjmap_head; pthread_rwlock_t aobjmap_rwlock; } ipmgmt_aobjmap_list_t;