corosync 3.1.7
Functions
totemsrp.h File Reference

Totem Single Ring Protocol. More...

#include <corosync/totem/totem.h>
#include <qb/qbloop.h>
Include dependency graph for totemsrp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int totemsrp_initialize (qb_loop_t *poll_handle, void **srp_context, 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))
 Create a protocol instance. More...
 
void totemsrp_finalize (void *srp_context)
 
int totemsrp_mcast (void *srp_context, struct iovec *iovec, unsigned int iov_len, int priority)
 Multicast a message. More...
 
int totemsrp_avail (void *srp_context)
 Return number of available messages that can be queued. More...
 
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_callback_token_destroy (void *srp_context, void **handle_out)
 
void totemsrp_event_signal (void *srp_context, enum totem_event_type type, int value)
 
void totemsrp_net_mtu_adjust (struct totem_config *totem_config)
 
int totemsrp_nodestatus_get (void *srp_context, unsigned int nodeid, struct totem_node_status *node_status)
 
int totemsrp_ifaces_get (void *srp_context, unsigned int nodeid, unsigned int *interface_id, struct totem_ip_address *interfaces, unsigned int interfaces_size, char ***status, unsigned int *iface_count)
 
unsigned int totemsrp_my_nodeid_get (void *srp_context)
 
int totemsrp_my_family_get (void *srp_context)
 
int totemsrp_crypto_set (void *srp_context, const char *cipher_type, const char *hash_type)
 
void totemsrp_service_ready_register (void *srp_context, void(*totem_service_ready)(void))
 
int totemsrp_iface_set (void *srp_context, const struct totem_ip_address *interface_addr, unsigned short ip_port, unsigned int iface_no)
 
int totemsrp_member_add (void *srp_context, const struct totem_ip_address *member, int ring_no)
 
int totemsrp_member_remove (void *srp_context, const struct totem_ip_address *member, int ring_no)
 
void totemsrp_threaded_mode_enable (void *srp_context)
 
void totemsrp_trans_ack (void *srp_context)
 
int totemsrp_reconfigure (void *context, struct totem_config *totem_config)
 
int totemsrp_crypto_reconfigure_phase (void *context, struct totem_config *totem_config, cfg_message_crypto_reconfig_phase_t phase)
 
void totemsrp_stats_clear (void *srp_context, int flags)
 
void totemsrp_force_gather (void *context)
 

Detailed Description

Totem Single Ring Protocol.

depends on poll abstraction, POSIX, IPV4

Definition in file totemsrp.h.

Function Documentation

◆ totemsrp_avail()

int totemsrp_avail ( void *  srp_context)

Return number of available messages that can be queued.

Definition at line 2569 of file totemsrp.c.

References totemsrp_instance::new_message_queue, totemsrp_instance::new_message_queue_trans, and totemsrp_instance::waiting_trans_ack.

◆ totemsrp_callback_token_create()

int totemsrp_callback_token_create ( void *  srp_context,
void **  handle_out,
enum totem_callback_token_type  type,
int  delete,
int(*)(enum totem_callback_token_type type, const void *)  callback_fn,
const void *  data 
)

Definition at line 3496 of file totemsrp.c.

◆ totemsrp_callback_token_destroy()

void totemsrp_callback_token_destroy ( void *  srp_context,
void **  handle_out 
)

Definition at line 3531 of file totemsrp.c.

References token_callback_instance::list.

◆ totemsrp_crypto_reconfigure_phase()

int totemsrp_crypto_reconfigure_phase ( void *  context,
struct totem_config totem_config,
cfg_message_crypto_reconfig_phase_t  phase 
)

◆ totemsrp_crypto_set()

int totemsrp_crypto_set ( void *  srp_context,
const char *  cipher_type,
const char *  hash_type 
)

Definition at line 1109 of file totemsrp.c.

References totemsrp_instance::totemnet_context, and totemnet_crypto_set().

Referenced by totempg_crypto_set().

◆ totemsrp_event_signal()

void totemsrp_event_signal ( void *  srp_context,
enum totem_event_type  type,
int  value 
)

Definition at line 2489 of file totemsrp.c.

Referenced by totempg_event_signal().

◆ totemsrp_finalize()

void totemsrp_finalize ( void *  srp_context)

Definition at line 1027 of file totemsrp.c.

◆ totemsrp_force_gather()

void totemsrp_force_gather ( void *  context)

Definition at line 5247 of file totemsrp.c.

Referenced by totempg_force_gather().

◆ totemsrp_iface_set()

int totemsrp_iface_set ( void *  srp_context,
const struct totem_ip_address interface_addr,
unsigned short  ip_port,
unsigned int  iface_no 
)

◆ totemsrp_ifaces_get()

int totemsrp_ifaces_get ( void *  srp_context,
unsigned int  nodeid,
unsigned int *  interface_id,
struct totem_ip_address interfaces,
unsigned int  interfaces_size,
char ***  status,
unsigned int *  iface_count 
)

◆ totemsrp_initialize()

int totemsrp_initialize ( qb_loop_t *  poll_handle,
void **  srp_context,
struct totem_config totem_config,
totempg_stats_t stats,
void(*)(unsigned int nodeid, const void *msg, unsigned int msg_len, int endian_conversion_required)  deliver_fn,
void(*)(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 confchg_fn,
void(*)(int waiting_trans_ack)  waiting_trans_ack_cb_fn 
)

Create a protocol instance.

Definition at line 819 of file totemsrp.c.

◆ totemsrp_mcast()

int totemsrp_mcast ( void *  srp_context,
struct iovec *  iovec,
unsigned int  iov_len,
int  priority 
)

◆ totemsrp_member_add()

int totemsrp_member_add ( void *  srp_context,
const struct totem_ip_address member,
int  ring_no 
)

◆ totemsrp_member_remove()

int totemsrp_member_remove ( void *  srp_context,
const struct totem_ip_address member,
int  ring_no 
)

Definition at line 5190 of file totemsrp.c.

References totemsrp_instance::totemnet_context, and totemnet_member_remove().

Referenced by totempg_member_remove().

◆ totemsrp_my_family_get()

int totemsrp_my_family_get ( void *  srp_context)

◆ totemsrp_my_nodeid_get()

unsigned int totemsrp_my_nodeid_get ( void *  srp_context)

Definition at line 1123 of file totemsrp.c.

References totemsrp_instance::my_id, and srp_addr::nodeid.

Referenced by totempg_my_nodeid_get().

◆ totemsrp_net_mtu_adjust()

void totemsrp_net_mtu_adjust ( struct totem_config totem_config)

Definition at line 5164 of file totemsrp.c.

References totem_config::net_mtu.

◆ totemsrp_nodestatus_get()

int totemsrp_nodestatus_get ( void *  srp_context,
unsigned int  nodeid,
struct totem_node_status node_status 
)

◆ totemsrp_reconfigure()

int totemsrp_reconfigure ( void *  context,
struct totem_config totem_config 
)

Definition at line 5219 of file totemsrp.c.

References totemsrp_instance::totemnet_context, and totemnet_reconfigure().

Referenced by totempg_reconfigure().

◆ totemsrp_service_ready_register()

void totemsrp_service_ready_register ( void *  srp_context,
void(*)(void)  totem_service_ready 
)

Definition at line 5168 of file totemsrp.c.

References totemsrp_instance::totemsrp_service_ready_fn.

Referenced by totempg_service_ready_register().

◆ totemsrp_stats_clear()

void totemsrp_stats_clear ( void *  srp_context,
int  flags 
)

◆ totemsrp_threaded_mode_enable()

void totemsrp_threaded_mode_enable ( void *  srp_context)

Definition at line 5203 of file totemsrp.c.

References totemsrp_instance::threaded_mode_enabled.

◆ totemsrp_trans_ack()

void totemsrp_trans_ack ( void *  srp_context)