corosync 3.1.9
|
#include <config.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/uio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <pthread.h>
#include <errno.h>
#include <limits.h>
#include <corosync/swab.h>
#include <qb/qblist.h>
#include <qb/qbloop.h>
#include <qb/qbipcs.h>
#include <corosync/totem/totempg.h>
#include <corosync/logsys.h>
#include "util.h"
#include "totemsrp.h"
Go to the source code of this file.
Data Structures | |
struct | totempg_mcast_header |
struct | totempg_mcast |
struct | assembly |
struct | totempg_group_instance |
Macros | |
#define | LOGSYS_UTILS_ONLY 1 |
#define | TOTEMPG_NEED_ALIGN 1 |
#define | TOTEMPG_PACKET_SIZE |
#define | log_printf(level, format, args...) |
#define | MESSAGE_QUEUE_MAX ((4 * MESSAGE_SIZE_MAX) / totempg_totem_config->net_mtu) |
#define | MAX_IOVECS_FROM_APP 32 |
#define | MAX_GROUPS_PER_MSG 32 |
#define | ONE_IFACE_LEN 63 |
Enumerations | |
enum | throw_away_mode { THROW_AWAY_INACTIVE , THROW_AWAY_ACTIVE } |
Variables | |
static void(*) struct totem_config | totempg_totem_config ) |
void * | callback_token_received_handle |
#define MESSAGE_QUEUE_MAX ((4 * MESSAGE_SIZE_MAX) / totempg_totem_config->net_mtu) |
#define TOTEMPG_PACKET_SIZE |
QB_LIST_DECLARE | ( | assembly_list_free | ) |
QB_LIST_DECLARE | ( | assembly_list_inuse | ) |
QB_LIST_DECLARE | ( | assembly_list_inuse_trans | ) |
QB_LIST_DECLARE | ( | totempg_groups_list | ) |
int totempg_callback_token_create | ( | 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 1099 of file totempg.c.
References nodeid, totemsrp_callback_token_create(), and type.
Definition at line 1118 of file totempg.c.
References nodeid, and totemsrp_callback_token_destroy().
Definition at line 1294 of file totempg.c.
References nodeid.
Referenced by corosync_recheck_the_q_level().
|
extern |
Definition at line 1571 of file totempg.c.
References nodeid, totempg_totem_config, and totemsrp_crypto_reconfigure_phase().
Definition at line 1489 of file totempg.c.
References nodeid, and totemsrp_crypto_set().
void totempg_event_signal | ( | enum totem_event_type | type, |
int | value | ||
) |
Definition at line 1479 of file totempg.c.
References totemsrp_event_signal(), type, and value.
Definition at line 855 of file totempg.c.
References nodeid, and totemsrp_finalize().
Referenced by main().
Definition at line 1596 of file totempg.c.
References totemsrp_force_gather().
void totempg_get_config | ( | struct totem_config * | config | ) |
Definition at line 1602 of file totempg.c.
References INTERFACE_MAX, totem_config::interfaces, nodeid, and totempg_totem_config.
int totempg_groups_initialize | ( | void ** | totempg_groups_instance, |
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 | ||
) |
Initialize a groups instance.
Definition at line 1134 of file totempg.c.
References totempg_group_instance::confchg_fn, totempg_group_instance::deliver_fn, totempg_group_instance::groups, totempg_group_instance::groups_cnt, totempg_group_instance::list, nodeid, and totempg_group_instance::q_level.
Referenced by main(), and sync_init().
int totempg_groups_join | ( | void * | totempg_groups_instance, |
const struct totempg_group * | groups, | ||
size_t | group_cnt | ||
) |
Definition at line 1182 of file totempg.c.
References totempg_group_instance::groups, totempg_group_instance::groups_cnt, and nodeid.
Referenced by main(), and sync_init().
Definition at line 1346 of file totempg.c.
References nodeid.
Referenced by corosync_sending_allowed_release().
int totempg_groups_joined_reserve | ( | void * | totempg_groups_instance, |
const struct iovec * | iovec, | ||
unsigned int | iov_len | ||
) |
Definition at line 1302 of file totempg.c.
References totempg_group::group_len, totempg_group_instance::groups, totempg_group_instance::groups_cnt, and nodeid.
Referenced by corosync_sending_allowed().
int totempg_groups_mcast_groups | ( | void * | totempg_groups_instance, |
int | guarantee, | ||
const struct totempg_group * | groups, | ||
size_t | groups_cnt, | ||
const struct iovec * | iovec, | ||
unsigned int | iov_len | ||
) |
Definition at line 1360 of file totempg.c.
References totempg_group::group_len, guarantee, MAX_GROUPS_PER_MSG, MAX_IOVECS_FROM_APP, and nodeid.
int totempg_groups_mcast_joined | ( | void * | totempg_groups_instance, |
const struct iovec * | iovec, | ||
unsigned int | iov_len, | ||
int | guarantee | ||
) |
Definition at line 1232 of file totempg.c.
References totempg_group::group, totempg_group::group_len, totempg_group_instance::groups, totempg_group_instance::groups_cnt, guarantee, MAX_GROUPS_PER_MSG, MAX_IOVECS_FROM_APP, and nodeid.
Referenced by main_mcast().
int totempg_groups_send_ok_groups | ( | void * | totempg_groups_instance, |
const struct totempg_group * | groups, | ||
size_t | groups_cnt, | ||
const struct iovec * | iovec, | ||
unsigned int | iov_len | ||
) |
Definition at line 1404 of file totempg.c.
References totempg_group::group_len, and nodeid.
int totempg_iface_set | ( | struct totem_ip_address * | interface_addr, |
unsigned short | ip_port, | ||
unsigned int | iface_no | ||
) |
Definition at line 1434 of file totempg.c.
References nodeid, and totemsrp_iface_set().
int totempg_ifaces_get | ( | unsigned int | nodeid, |
unsigned int * | interface_id, | ||
struct totem_ip_address * | interfaces, | ||
unsigned int | interfaces_size, | ||
char *** | status, | ||
unsigned int * | iface_count | ||
) |
Definition at line 1457 of file totempg.c.
References nodeid, and totemsrp_ifaces_get().
Referenced by totempg_ifaces_print().
Definition at line 1501 of file totempg.c.
References family, INTERFACE_MAX, nodeid, ONE_IFACE_LEN, totemip_print(), and totempg_ifaces_get().
int totempg_initialize | ( | qb_loop_t * | poll_handle, |
struct totem_config * | totem_config | ||
) |
Initialize the totem process groups abstraction.
Definition at line 802 of file totempg.c.
References callback_token_received_handle, 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_warning, totem_logging_configuration::log_printf, totem_logging_configuration::log_subsys_id, totem_config::net_mtu, nodeid, TOTEM_CALLBACK_TOKEN_RECEIVED, totem_config::totem_logging_configuration, TOTEMPG_PACKET_SIZE, totempg_totem_config, totemsrp_avail(), totemsrp_callback_token_create(), totemsrp_initialize(), and totemsrp_net_mtu_adjust().
Referenced by main().
|
extern |
Definition at line 1552 of file totempg.c.
References nodeid, and totemsrp_member_add().
|
extern |
Definition at line 1559 of file totempg.c.
References nodeid, and totemsrp_member_remove().
Definition at line 1537 of file totempg.c.
References totemsrp_my_family_get().
Definition at line 1532 of file totempg.c.
References totemsrp_my_nodeid_get().
Referenced by message_source_is_local(), and message_source_set().
int totempg_nodestatus_get | ( | unsigned int | nodeid, |
struct totem_node_status * | node_status | ||
) |
Definition at line 1450 of file totempg.c.
References nodeid, and totemsrp_nodestatus_get().
void totempg_put_config | ( | struct totem_config * | config | ) |
Definition at line 1612 of file totempg.c.
References INTERFACE_MAX, totem_config::interfaces, nodeid, and totempg_totem_config.
void totempg_queue_level_register_callback | ( | totem_queue_level_changed_fn | fn | ) |
Definition at line 1566 of file totempg.c.
References totempg_totem_config, and totemsrp_reconfigure().
Referenced by totemconfig_commit_new_params().
Definition at line 1541 of file totempg.c.
References nodeid, and totemsrp_service_ready_register().
Referenced by main().
Definition at line 1576 of file totempg.c.
References flags, totempg_stats_t::msg_queue_avail, totempg_stats_t::msg_reserved, TOTEMPG_STATS_CLEAR_TOTEM, and totemsrp_stats_clear().
Referenced by stats_map_set().
Definition at line 1585 of file totempg.c.
References totemsrp_threaded_mode_enable().
Definition at line 1591 of file totempg.c.
References totemsrp_trans_ack().
void* callback_token_received_handle |
Definition at line 746 of file totempg.c.
Referenced by totempg_initialize().
void(*) struct totem_config totempg_totem_config) |
Definition at line 190 of file totempg.c.
Referenced by totempg_crypto_reconfigure_phase(), totempg_get_config(), totempg_initialize(), totempg_put_config(), and totempg_reconfigure().