Print this page
Commit IPMP changes

*** 19,28 **** --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013 by Delphix. All rights reserved. + * Copyright (c) 2014 Nexenta Systems, Inc. All rights reserved. */ #ifndef _LIBIPADM_IMPL_H #define _LIBIPADM_IMPL_H
*** 29,38 **** --- 30,40 ---- #ifdef __cplusplus extern "C" { #endif #include <sys/socket.h> + #include <sys/list.h> #include <net/if.h> #include <libipadm.h> #include <libdladm.h> #include <ipadm_ipmgmt.h> #include <inet/tunables.h>
*** 49,58 **** --- 51,65 ---- #define IPV6_MIN_MTU 1280 /* rfc2460 */ /* mask for flags accepted by libipadm functions */ #define IPADM_COMMON_OPT_MASK (IPADM_OPT_ACTIVE | IPADM_OPT_PERSIST) + typedef enum { + IPADM_ADD_IPMP_MEMBER, + IPADM_REMOVE_IPMP_MEMBER + } ipadm_ipmp_operation_t; + /* Opaque library handle */ struct ipadm_handle { int iph_sock; /* socket to interface */ int iph_sock6; /* socket to interface */ int iph_door_fd; /* door descriptor to ipmgmtd */
*** 148,166 **** const ipadm_addrobj_t, boolean_t, uint32_t); extern ipadm_status_t i_ipadm_delete_addr(ipadm_handle_t, ipadm_addrobj_t); extern int i_ipadm_strioctl(int, int, char *, int); extern boolean_t i_ipadm_is_loopback(const char *); extern boolean_t i_ipadm_is_vni(const char *); - extern boolean_t i_ipadm_is_ipmp(ipadm_handle_t, const char *); - extern boolean_t i_ipadm_is_under_ipmp(ipadm_handle_t, const char *); extern boolean_t i_ipadm_is_6to4(ipadm_handle_t, char *); extern boolean_t i_ipadm_validate_ifname(ipadm_handle_t, const char *); extern ipadm_status_t ipadm_errno2status(int); extern int ipadm_door_call(ipadm_handle_t, void *, size_t, void **, size_t, boolean_t); extern boolean_t ipadm_if_enabled(ipadm_handle_t, const char *, sa_family_t); /* ipadm_ndpd.c */ extern ipadm_status_t i_ipadm_create_ipv6addrs(ipadm_handle_t, ipadm_addrobj_t, uint32_t); extern ipadm_status_t i_ipadm_delete_ipv6addrs(ipadm_handle_t, --- 155,173 ---- const ipadm_addrobj_t, boolean_t, uint32_t); extern ipadm_status_t i_ipadm_delete_addr(ipadm_handle_t, ipadm_addrobj_t); extern int i_ipadm_strioctl(int, int, char *, int); extern boolean_t i_ipadm_is_loopback(const char *); extern boolean_t i_ipadm_is_vni(const char *); extern boolean_t i_ipadm_is_6to4(ipadm_handle_t, char *); extern boolean_t i_ipadm_validate_ifname(ipadm_handle_t, const char *); extern ipadm_status_t ipadm_errno2status(int); extern int ipadm_door_call(ipadm_handle_t, void *, size_t, void **, size_t, boolean_t); extern boolean_t ipadm_if_enabled(ipadm_handle_t, const char *, sa_family_t); + extern ipadm_status_t i_ipadm_call_ipmgmtd(ipadm_handle_t, void *, + size_t, nvlist_t **); /* ipadm_ndpd.c */ extern ipadm_status_t i_ipadm_create_ipv6addrs(ipadm_handle_t, ipadm_addrobj_t, uint32_t); extern ipadm_status_t i_ipadm_delete_ipv6addrs(ipadm_handle_t,
*** 224,233 **** --- 231,246 ---- sa_family_t, boolean_t *); extern ipadm_status_t i_ipadm_delete_ifobj(ipadm_handle_t, const char *, sa_family_t, boolean_t); extern int i_ipadm_get_lnum(const char *); + extern ipadm_status_t i_ipadm_set_groupname_active(ipadm_handle_t, + const char *, const char *); + extern ipadm_status_t i_ipadm_get_groupname_active(ipadm_handle_t, + const char *, char *, size_t); + extern boolean_t i_ipadm_is_under_ipmp(ipadm_handle_t, const char *); + extern boolean_t i_ipadm_is_ipmp(ipadm_handle_t, const char *); #ifdef __cplusplus } #endif #endif /* _LIBIPADM_IMPL_H */