39 #include <sys/types.h>
41 #include <sys/socket.h>
44 #include <sys/ioctl.h>
45 #include <sys/param.h>
46 #include <netinet/in.h>
47 #include <arpa/inet.h>
59 #include <qb/qbloop.h>
70 int endian_conversion_required);
74 const unsigned int *member_list,
size_t member_list_entries,
75 const unsigned int *left_list,
size_t left_list_entries,
76 const unsigned int *joined_list,
size_t joined_list_entries,
83 int endian_conversion_required) = 0;
87 const unsigned int *member_list,
size_t member_list_entries,
88 const unsigned int *left_list,
size_t left_list_entries,
89 const unsigned int *joined_list,
size_t joined_list_entries,
96 int endian_conversion_required)
98 pg_deliver_fn (nodeid, msg, msg_len, endian_conversion_required);
103 const unsigned int *member_list,
size_t member_list_entries,
104 const unsigned int *left_list,
size_t left_list_entries,
105 const unsigned int *joined_list,
size_t joined_list_entries,
109 member_list, member_list_entries,
110 left_list, left_list_entries,
111 joined_list, joined_list_entries,
119 qb_loop_t *poll_handle,
126 unsigned int msg_len,
127 int endian_conversion_required),
130 const unsigned int *member_list,
size_t member_list_entries,
131 const unsigned int *left_list,
size_t left_list_entries,
132 const unsigned int *joined_list,
size_t joined_list_entries,
134 void (*waiting_trans_ack_cb_fn) (
135 int waiting_trans_ack))
149 waiting_trans_ack_cb_fn);
164 unsigned int iov_len,
202 unsigned int interfaces_size,
204 unsigned int *iface_count)
220 const char *cipher_type,
221 const char *hash_type)
249 void (*totem_service_ready) (
void))
253 totem_service_ready);
int totemmrp_ifaces_get(unsigned int nodeid, struct totem_ip_address *interfaces, unsigned int interfaces_size, char ***status, unsigned int *iface_count)
void totemmrp_finalize(void)
Totem Single Ring Protocol.
int totemsrp_my_family_get(void *srp_context)
void totemmrp_callback_token_destroy(void *handle_out)
The totem_ip_address struct.
void(* pg_confchg_fn)(enum totem_configuration_type configuration_type, const unsigned int *member_list, size_t member_list_entries, const unsigned int *left_list, size_t left_list_entries, const unsigned int *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id)=0
int totemsrp_member_add(void *context, const struct totem_ip_address *member, int ring_no)
totem_configuration_type
The totem_configuration_type enum.
unsigned int totemsrp_my_nodeid_get(void *srp_context)
int totemmrp_initialize(qb_loop_t *poll_handle, struct totem_config *totem_config, totempg_stats_t *stats, void(*deliver_fn)(unsigned int nodeid, const void *msg, unsigned int msg_len, int endian_conversion_required), void(*confchg_fn)(enum totem_configuration_type configuration_type, const unsigned int *member_list, size_t member_list_entries, const unsigned int *left_list, size_t left_list_entries, const unsigned int *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id), void(*waiting_trans_ack_cb_fn)(int waiting_trans_ack))
Initialize the group messaging interface.
int totemsrp_crypto_set(void *srp_context, const char *cipher_type, const char *hash_type)
int totemmrp_member_add(const struct totem_ip_address *member, int ring_no)
int totemmrp_avail(void)
Return number of available messages that can be queued.
int totemsrp_ifaces_get(void *srp_context, unsigned int nodeid, struct totem_ip_address *interfaces, unsigned int interfaces_size, char ***status, unsigned int *iface_count)
int totemmrp_my_family_get(void)
void totemsrp_callback_token_destroy(void *srp_context, void **handle_out)
int totemmrp_crypto_set(const char *cipher_type, const char *hash_type)
void totemmrp_trans_ack(void)
void totemmrp_deliver_fn(unsigned int nodeid, const void *msg, unsigned int msg_len, int endian_conversion_required)
int totemsrp_callback_token_create(void *srp_context, void **handle_out, enum totem_callback_token_type type, int delete, int(*callback_fn)(enum totem_callback_token_type type, const void *), const void *data)
void totemsrp_service_ready_register(void *context, void(*totem_service_ready)(void))
int totemsrp_mcast(void *srp_context, struct iovec *iovec, unsigned int iov_len, int guarantee)
Multicast a message.
int totemmrp_member_remove(const struct totem_ip_address *member, int ring_no)
int totemsrp_ring_reenable(void *srp_context)
int totemmrp_mcast(struct iovec *iovec, unsigned int iov_len, int priority)
Multicast a message.
int totemmrp_callback_token_create(void **handle_out, enum totem_callback_token_type type, int delete, int(*callback_fn)(enum totem_callback_token_type type, const void *), const void *data)
int totemmrp_ring_reenable(void)
int totemsrp_avail(void *srp_context)
Return number of available messages that can be queued.
unsigned int totemmrp_my_nodeid_get(void)
void totemsrp_threaded_mode_enable(void *context)
int totemsrp_initialize(qb_loop_t *poll_handle, void **srp_context, struct totem_config *totem_config, totemmrp_stats_t *stats, void(*deliver_fn)(unsigned int nodeid, const void *msg, unsigned int msg_len, int endian_conversion_required), void(*confchg_fn)(enum totem_configuration_type configuration_type, const unsigned int *member_list, size_t member_list_entries, const unsigned int *left_list, size_t left_list_entries, const unsigned int *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id), void(*waiting_trans_ack_cb_fn)(int waiting_trans_ack))
Create a protocol instance.
void totemsrp_event_signal(void *srp_context, enum totem_event_type type, int value)
void totemmrp_service_ready_register(void(*totem_service_ready)(void))
void totemmrp_confchg_fn(enum totem_configuration_type configuration_type, const unsigned int *member_list, size_t member_list_entries, const unsigned int *left_list, size_t left_list_entries, const unsigned int *joined_list, size_t joined_list_entries, const struct memb_ring_id *ring_id)
void totemsrp_finalize(void *srp_context)
void totemmrp_threaded_mode_enable(void)
void totemsrp_trans_ack(void *context)
void totemmrp_event_signal(enum totem_event_type type, int value)
int totemsrp_member_remove(void *context, const struct totem_ip_address *member, int ring_no)
void(* pg_deliver_fn)(unsigned int nodeid, const void *msg, unsigned int msg_len, int endian_conversion_required)=0
struct memb_ring_id ring_id
Totem Single Ring Protocol.
totem_callback_token_type
The totem_callback_token_type enum.