Print this page
Commit IPMP changes
@@ -19,10 +19,11 @@
* 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,10 +30,11 @@
#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,10 +51,15 @@
#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,19 +155,19 @@
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);
+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,10 +231,16 @@
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 */