corosync
2.4.1
|
Totem Single Ring Protocol. More...
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, 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. 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_ifaces_get (void *srp_context, unsigned int nodeid, 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) |
int | totemsrp_ring_reenable (void *srp_context) |
void | totemsrp_service_ready_register (void *srp_context, void(*totem_service_ready)(void)) |
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_avail | ( | void * | srp_context | ) |
Return number of available messages that can be queued.
Definition at line 2556 of file totemsrp.c.
References totemsrp_instance::new_message_queue, totemsrp_instance::new_message_queue_trans, and totemsrp_instance::waiting_trans_ack.
Referenced by totemmrp_avail().
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 3455 of file totemsrp.c.
References token_callback_instance::callback_fn, token_callback_instance::callback_type, token_callback_instance::data, token_callback_instance::delete, token_callback_instance::list, totemsrp_instance::token_callback_received_listhead, totemsrp_instance::token_callback_sent_listhead, TOTEM_CALLBACK_TOKEN_RECEIVED, TOTEM_CALLBACK_TOKEN_SENT, and type.
Referenced by totemmrp_callback_token_create(), and totemsrp_initialize().
void totemsrp_callback_token_destroy | ( | void * | srp_context, |
void ** | handle_out | ||
) |
Definition at line 3490 of file totemsrp.c.
References token_callback_instance::list.
Referenced by totemmrp_callback_token_destroy().
int totemsrp_crypto_set | ( | void * | srp_context, |
const char * | cipher_type, | ||
const char * | hash_type | ||
) |
Definition at line 1120 of file totemsrp.c.
References totemsrp_instance::totemrrp_context, and totemrrp_crypto_set().
Referenced by totemmrp_crypto_set().
void totemsrp_event_signal | ( | void * | srp_context, |
enum totem_event_type | type, | ||
int | value | ||
) |
Definition at line 2478 of file totemsrp.c.
Referenced by totemmrp_event_signal().
void totemsrp_finalize | ( | void * | srp_context | ) |
Definition at line 1038 of file totemsrp.c.
References totemsrp_instance::new_message_queue, totemsrp_instance::new_message_queue_trans, totemsrp_instance::recovery_sort_queue, totemsrp_instance::regular_sort_queue, totemsrp_instance::retrans_message_queue, totemsrp_instance::totemrrp_context, and totemrrp_finalize().
Referenced by totemmrp_finalize().
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 | ||
) |
Definition at line 1062 of file totemsrp.c.
References srp_addr::addr, totem_config::interface_count, totemsrp_instance::my_left_memb_entries, totemsrp_instance::my_left_memb_list, totemsrp_instance::my_memb_entries, totemsrp_instance::my_memb_list, totem_ip_address::nodeid, totemsrp_instance::totem_config, totemsrp_instance::totemrrp_context, and totemrrp_ifaces_get().
Referenced by totemmrp_ifaces_get().
int totemsrp_initialize | ( | qb_loop_t * | poll_handle, |
void ** | srp_context, | ||
struct totem_config * | totem_config, | ||
totemmrp_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 832 of file totemsrp.c.
References totem_config::consensus_timeout, totem_config::downcheck_timeout, totemsrp_stats_t::earliest_token, totem_config::fail_to_recv_const, totem_config::heartbeat_failures_allowed, totemsrp_instance::heartbeat_timeout, totem_config::interfaces, totem_config::join_timeout, totemsrp_stats_t::latest_token, totem_logging_configuration::log_level_debug, totem_logging_configuration::log_level_error, totem_logging_configuration::log_level_notice, totem_logging_configuration::log_level_security, totem_logging_configuration::log_level_trace, totem_logging_configuration::log_level_warning, totem_logging_configuration::log_printf, log_printf, totem_logging_configuration::log_subsys_id, main_deliver_fn(), main_iface_change_fn(), totem_config::max_messages, totem_config::max_network_delay, totem_interface::mcast_addr, totemsrp_instance::mcast_address, totemsrp_instance::memb_ring_id_create_or_load, totemsrp_instance::memb_ring_id_store, totem_config::merge_timeout, MESSAGE_QUEUE_MAX, totem_config::miss_count_const, totem_config::net_mtu, totemsrp_instance::new_message_queue, totemsrp_instance::new_message_queue_trans, QUEUE_RTR_ITEMS_SIZE_MAX, totemsrp_instance::recovery_sort_queue, totemsrp_instance::regular_sort_queue, totemsrp_instance::retrans_message_queue, RETRANS_MESSAGE_QUEUE_SIZE_MAX, totem_config::rrp_autorecovery_check_timeout, totem_config::rrp_mode, totem_config::rrp_problem_count_mcast_threshold, totem_config::rrp_problem_count_threshold, totem_config::rrp_problem_count_timeout, totem_config::rrp_token_expired_timeout, totem_config::send_join_timeout, totem_config::seqno_unchanged_const, totemmrp_stats_t::srp, totemsrp_instance::stats, totemsrp_instance::threaded_mode_enabled, totem_config::threads, totem_config::token_hold_timeout, totemsrp_instance::token_recv_event_handle, totem_config::token_retransmit_timeout, totem_config::token_retransmits_before_loss_const, totemsrp_instance::token_sent_event_handle, totem_config::token_timeout, TOTEM_CALLBACK_TOKEN_RECEIVED, TOTEM_CALLBACK_TOKEN_SENT, totemsrp_instance::totem_config, totem_config::totem_logging_configuration, totem_config::totem_memb_ring_id_create_or_load, totem_config::totem_memb_ring_id_store, totemip_copy(), totemsrp_instance::totemrrp_context, totemrrp_initialize(), totemsrp_callback_token_create(), totemsrp_instance::totemsrp_confchg_fn, totemsrp_instance::totemsrp_deliver_fn, totemsrp_instance::totemsrp_log_level_debug, totemsrp_instance::totemsrp_log_level_error, totemsrp_instance::totemsrp_log_level_notice, totemsrp_instance::totemsrp_log_level_security, totemsrp_instance::totemsrp_log_level_trace, totemsrp_instance::totemsrp_log_level_warning, totemsrp_instance::totemsrp_log_printf, totemsrp_instance::totemsrp_poll_handle, totemsrp_instance::totemsrp_subsys_id, totemsrp_instance::totemsrp_waiting_trans_ack_cb_fn, totemsrp_instance::use_heartbeat, and totem_config::window_size.
Referenced by totemmrp_initialize().
int totemsrp_mcast | ( | void * | srp_context, |
struct iovec * | iovec, | ||
unsigned int | iov_len, | ||
int | priority | ||
) |
Multicast a message.
Definition at line 2487 of file totemsrp.c.
References srp_addr::addr, addr, message_header::encapsulated, message_header::endian_detector, ENDIAN_LOCAL, guarantee, mcast::guarantee, mcast::header, log_printf, message_item::mcast, totemsrp_stats_t::mcast_tx, MESSAGE_NOT_ENCAPSULATED, MESSAGE_TYPE_MCAST, message_item::msg_len, totemsrp_instance::my_id, totemsrp_instance::new_message_queue, totemsrp_instance::new_message_queue_trans, totem_ip_address::nodeid, message_header::nodeid, totemsrp_instance::stats, mcast::system_from, totemsrp_instance::totemsrp_log_level_debug, totemsrp_instance::totemsrp_log_level_trace, message_header::type, and totemsrp_instance::waiting_trans_ack.
Referenced by totemmrp_mcast().
int totemsrp_member_add | ( | void * | srp_context, |
const struct totem_ip_address * | member, | ||
int | ring_no | ||
) |
Definition at line 4810 of file totemsrp.c.
References totemsrp_instance::totemrrp_context, and totemrrp_member_add().
Referenced by main_iface_change_fn(), and totemmrp_member_add().
int totemsrp_member_remove | ( | void * | srp_context, |
const struct totem_ip_address * | member, | ||
int | ring_no | ||
) |
Definition at line 4823 of file totemsrp.c.
References totemsrp_instance::totemrrp_context, and totemrrp_member_remove().
Referenced by totemmrp_member_remove().
int totemsrp_my_family_get | ( | void * | srp_context | ) |
Definition at line 1145 of file totemsrp.c.
References totem_interface::boundto, totem_ip_address::family, totem_config::interfaces, and totemsrp_instance::totem_config.
Referenced by totemmrp_my_family_get().
unsigned int totemsrp_my_nodeid_get | ( | void * | srp_context | ) |
Definition at line 1134 of file totemsrp.c.
References totem_interface::boundto, totem_config::interfaces, totem_ip_address::nodeid, and totemsrp_instance::totem_config.
Referenced by totemmrp_my_nodeid_get().
void totemsrp_net_mtu_adjust | ( | struct totem_config * | totem_config | ) |
Definition at line 4797 of file totemsrp.c.
References totem_config::net_mtu.
Referenced by totempg_initialize().
int totemsrp_ring_reenable | ( | void * | srp_context | ) |
Definition at line 1157 of file totemsrp.c.
References totem_config::interface_count, totemsrp_instance::totem_config, totemsrp_instance::totemrrp_context, and totemrrp_ring_reenable().
Referenced by totemmrp_ring_reenable().
void totemsrp_service_ready_register | ( | void * | srp_context, |
void(*)(void) | totem_service_ready | ||
) |
Definition at line 4801 of file totemsrp.c.
References totemsrp_instance::totemsrp_service_ready_fn.
Referenced by totemmrp_service_ready_register().
void totemsrp_threaded_mode_enable | ( | void * | srp_context | ) |
Definition at line 4836 of file totemsrp.c.
References totemsrp_instance::threaded_mode_enabled.
Referenced by totemmrp_threaded_mode_enable().
void totemsrp_trans_ack | ( | void * | srp_context | ) |
Definition at line 4843 of file totemsrp.c.
References totemsrp_instance::totemsrp_waiting_trans_ack_cb_fn, and totemsrp_instance::waiting_trans_ack.
Referenced by totemmrp_trans_ack().