|
corosync
|
#include <config.h>#include <assert.h>#include <sys/mman.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/socket.h>#include <netdb.h>#include <sys/un.h>#include <sys/ioctl.h>#include <sys/param.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <fcntl.h>#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <pthread.h>#include <sched.h>#include <time.h>#include <sys/time.h>#include <poll.h>#include <sys/uio.h>#include <limits.h>#include <qb/qbdefs.h>#include <qb/qbloop.h>#include <corosync/sq.h>#include <corosync/swab.h>#include <corosync/logsys.h>#include <corosync/icmap.h>#include <corosync/totem/totemip.h>#include "totemknet.h"#include "main.h"#include "util.h"#include <libknet.h>#include <corosync/totem/totemstats.h>
Go to the source code of this file.
Data Structures | |
| struct | totemknet_instance |
| struct | work_item |
Macros | |
| #define | MSG_NOSIGNAL 0 |
| #define | CFG_INTERFACE_STATUS_MAX_LEN 512 |
| #define | KNET_IOV_LEN_MAX KNET_MAX_PACKET_SIZE + 1 |
| #define | knet_log_printf_lock(level, subsys, function, file, line, format, args...) |
| #define | knet_log_printf(level, format, args...) |
| #define | libknet_log_printf(level, format, args...) |
| #define | KNET_LOGSYS_PERROR(err_num, level, fmt, args...) |
| #define | OWN_INDEX_NONE -1 |
Variables | |
| struct totemknet_instance * | global_instance |
| #define CFG_INTERFACE_STATUS_MAX_LEN 512 |
Definition at line 90 of file totemknet.c.
| #define KNET_IOV_LEN_MAX KNET_MAX_PACKET_SIZE + 1 |
Definition at line 95 of file totemknet.c.
Definition at line 240 of file totemknet.c.
Definition at line 231 of file totemknet.c.
Definition at line 256 of file totemknet.c.
Definition at line 248 of file totemknet.c.
| #define MSG_NOSIGNAL 0 |
Definition at line 82 of file totemknet.c.
| #define OWN_INDEX_NONE -1 |
Definition at line 488 of file totemknet.c.
Definition at line 1413 of file totemknet.c.
References nodeid.
Definition at line 1419 of file totemknet.c.
References nodeid.
Definition at line 890 of file totemknet.c.
References global_instance, totemknet_instance::knet_handle, log_printf, logsys_config_debug_get(), LOGSYS_DEBUG_OFF, LOGSYS_DEBUG_ON, LOGSYS_DEBUG_TRACE, LOGSYS_LEVEL_DEBUG, LOGSYS_LEVEL_ERROR, and nodeid.
Referenced by totemknet_initialize().
| int totemknet_crypto_reconfigure_phase | ( | void * | knet_context, |
| struct totem_config * | totem_config, | ||
| cfg_message_crypto_reconfig_phase_t | phase | ||
| ) |
Definition at line 1811 of file totemknet.c.
References totem_config::crypto_index, CRYPTO_RECONFIG_PHASE_ACTIVATE, CRYPTO_RECONFIG_PHASE_CLEANUP, totemknet_instance::knet_context, totemknet_instance::knet_handle, knet_log_printf, LOGSYS_LEVEL_DEBUG, LOGSYS_LEVEL_ERROR, and nodeid.
Definition at line 394 of file totemknet.c.
Definition at line 664 of file totemknet.c.
References CS_PRI_NODE_ID, totemknet_instance::knet_context, totemknet_instance::knet_fd, totemknet_instance::knet_handle, knet_log_printf, totemknet_instance::log_mutex, totemknet_instance::logpipes, LOGSYS_LEVEL_CRIT, LOGSYS_LEVEL_ERROR, nodeid, and totemknet_instance::poll_handle.
| int totemknet_handle_get_stats | ( | struct knet_handle_stats * | stats | ) |
Definition at line 1916 of file totemknet.c.
References CS_ERR_NOT_EXIST, CS_OK, global_instance, totemknet_instance::knet_handle, nodeid, and qb_to_cs_error().
Referenced by stats_map_get().
Definition at line 1480 of file totemknet.c.
References totemknet_instance::knet_context, knet_log_printf, and nodeid.
| int totemknet_iface_set | ( | void * | knet_context, |
| const struct totem_ip_address * | local_addr, | ||
| unsigned short | ip_port, | ||
| unsigned int | iface_no | ||
| ) |
Definition at line 1549 of file totemknet.c.
References totemknet_instance::ip_port, totemknet_instance::knet_context, knet_log_printf, totemknet_instance::my_ids, nodeid, totemip_copy(), and totemip_print().
Definition at line 569 of file totemknet.c.
References CFG_INTERFACE_STATUS_MAX_LEN, totem_interface::configured, INTERFACE_MAX, totem_config::interfaces, totemknet_instance::knet_context, totemknet_instance::knet_handle, knet_log_printf, totemknet_instance::link_status, LOGSYS_LEVEL_ERROR, nodeid, totemknet_instance::our_nodeid, OWN_INDEX_NONE, and totemknet_instance::totem_config.
| int totemknet_initialize | ( | qb_loop_t * | poll_handle, |
| void ** | knet_context, | ||
| struct totem_config * | totem_config, | ||
| totemsrp_stats_t * | stats, | ||
| void * | context, | ||
| int(*)(void *context, const void *msg, unsigned int msg_len, const struct sockaddr_storage *system_from) | deliver_fn, | ||
| int(*)(void *context, const struct totem_ip_address *iface_address, unsigned int link_no) | iface_change_fn, | ||
| void(*)(void *context, int net_mtu) | mtu_changed, | ||
| void(*)(void *context) | target_set_completed | ||
| ) |
Definition at line 1139 of file totemknet.c.
References _logsys_subsys_create(), totem_interface::bindnet, totem_interface::boundto, CFG_INTERFACE_STATUS_MAX_LEN, totemknet_instance::context, totem_config::crypto_index, CS_OK, global_instance, icmap_get_string(), INTERFACE_MAX, totem_config::interfaces, totem_config::ip_dscp, totemknet_instance::ip_port, totem_interface::ip_port, totem_config::knet_compression_model, totemknet_instance::knet_context, totemknet_instance::knet_fd, totemknet_instance::knet_handle, knet_log_printf, KNET_LOGSYS_PERROR, totem_config::knet_mtu, totem_config::knet_pmtud_interval, totemknet_instance::knet_subsys_id, totemknet_instance::link_mode, totem_config::link_mode, totemknet_instance::link_status, totem_logging_configuration::log_level_debug, totem_logging_configuration::log_level_error, totem_logging_configuration::log_level_notice, totem_logging_configuration::log_level_warning, totem_logging_configuration::log_printf, totem_logging_configuration::log_subsys_id, totemknet_instance::logpipes, LOGSYS_LEVEL_CRIT, LOGSYS_LEVEL_INFO, LOGSYS_LEVEL_WARNING, totemknet_instance::loopback_link, totemknet_instance::my_ids, totem_config::node_id, nodeid, totem_ip_address::nodeid, totemknet_instance::our_nodeid, totemknet_instance::poll_handle, stats_knet_add_handle(), totemknet_instance::timer_netif_check_timeout, totemknet_instance::totem_config, totem_config::totem_logging_configuration, totemip_copy(), totemknet_configure_log_level(), totemknet_instance::totemknet_deliver_fn, totemknet_instance::totemknet_iface_change_fn, totemknet_instance::totemknet_log_level_debug, totemknet_instance::totemknet_log_level_error, totemknet_instance::totemknet_log_level_notice, totemknet_instance::totemknet_log_level_security, totemknet_instance::totemknet_log_level_warning, totemknet_instance::totemknet_log_printf, totemknet_instance::totemknet_mtu_changed, totemknet_instance::totemknet_subsys_id, and totemknet_instance::totemknet_target_set_completed.
| int totemknet_link_get_status | ( | knet_node_id_t | node, |
| uint8_t | link_no, | ||
| struct knet_link_status * | status | ||
| ) |
Definition at line 1879 of file totemknet.c.
References CS_ERR_BUSY, CS_ERR_INVALID_PARAM, CS_ERR_LIBRARY, CS_ERR_NOT_EXIST, CS_ERR_TRY_AGAIN, CS_OK, global_instance, INTERFACE_MAX, totemknet_instance::knet_handle, and nodeid.
Referenced by stats_map_get().
Definition at line 1453 of file totemknet.c.
References totemknet_instance::knet_context, and nodeid.
Definition at line 1466 of file totemknet.c.
References totemknet_instance::knet_context, and nodeid.
| int totemknet_member_add | ( | void * | knet_context, |
| const struct totem_ip_address * | local, | ||
| const struct totem_ip_address * | member, | ||
| int | link_no | ||
| ) |
Definition at line 1566 of file totemknet.c.
References CS_PRI_NODE_ID, icmap_set_string(), totem_config::interfaces, totemknet_instance::ip_port, totemknet_instance::knet_context, totemknet_instance::knet_handle, totem_interface::knet_link_priority, knet_log_printf, KNET_LOGSYS_PERROR, totem_interface::knet_ping_interval, totem_interface::knet_ping_precision, totem_interface::knet_ping_timeout, totem_interface::knet_pong_count, totem_interface::knet_transport, totemknet_instance::link_mode, LOGSYS_LEVEL_DEBUG, LOGSYS_LEVEL_ERROR, totemknet_instance::loopback_link, nodeid, totem_ip_address::nodeid, totemknet_instance::our_nodeid, stats_knet_add_member(), totemknet_instance::totem_config, totemip_print(), and totemip_totemip_to_sockaddr_convert().
Definition at line 1751 of file totemknet.c.
| int totemknet_member_remove | ( | void * | knet_context, |
| const struct totem_ip_address * | token_target, | ||
| int | link_no | ||
| ) |
Definition at line 1705 of file totemknet.c.
References CS_PRI_NODE_ID, totemknet_instance::knet_context, totemknet_instance::knet_handle, knet_log_printf, KNET_LOGSYS_PERROR, LOGSYS_LEVEL_DEBUG, LOGSYS_LEVEL_ERROR, nodeid, totem_ip_address::nodeid, totemknet_instance::our_nodeid, stats_knet_del_member(), and totemknet_instance::token_target.
|
extern |
Definition at line 1490 of file totemknet.c.
References totemknet_instance::knet_context, knet_log_printf, totem_config::net_mtu, and nodeid.
| int totemknet_nodestatus_get | ( | void * | knet_context, |
| unsigned int | nodeid, | ||
| struct totem_node_status * | node_status | ||
| ) |
Definition at line 491 of file totemknet.c.
References totem_interface::configured, CS_ERR_INVALID_PARAM, CS_ERR_NOT_EXIST, totem_config::interfaces, totemknet_instance::knet_context, totemknet_instance::knet_handle, knet_log_printf, LOGSYS_LEVEL_WARNING, nodeid, and totemknet_instance::totem_config.
Definition at line 1424 of file totemknet.c.
| int totemknet_reconfigure | ( | void * | knet_context, |
| struct totem_config * | totem_config | ||
| ) |
Definition at line 1778 of file totemknet.c.
References totem_config::crypto_changed, totem_config::crypto_cipher_type, totem_config::crypto_hash_type, totem_config::crypto_index, totem_config::crypto_model, icmap_set_string(), totemknet_instance::knet_context, knet_log_printf, and nodeid.
Definition at line 1431 of file totemknet.c.
Definition at line 1511 of file totemknet.c.
References totemknet_instance::iov_buffer, totemknet_instance::knet_context, totemknet_instance::knet_fd, MSG_NOSIGNAL, nodeid, and system_from.
Definition at line 1436 of file totemknet.c.
Definition at line 1870 of file totemknet.c.
References totemknet_instance::knet_context, totemknet_instance::knet_handle, and nodeid.
Definition at line 1441 of file totemknet.c.
References totemknet_instance::knet_context, nodeid, and totemknet_instance::token_target.
Definition at line 1497 of file totemknet.c.
References totemknet_instance::context, totemknet_instance::knet_context, nodeid, totem_ip_address::nodeid, totemknet_instance::token_target, and totemknet_instance::totemknet_target_set_completed.
| struct totemknet_instance* global_instance |
Definition at line 194 of file totemknet.c.
Referenced by totemknet_configure_log_level(), totemknet_handle_get_stats(), totemknet_initialize(), and totemknet_link_get_status().