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 */