totemconfig.c File Reference
`#include <config.h>`
`#include <stdio.h>`
`#include <string.h>`
`#include <stdlib.h>`
`#include <errno.h>`
`#include <unistd.h>`
`#include <sys/socket.h>`
`#include <sys/types.h>`
`#include <sys/stat.h>`
`#include <fcntl.h>`
`#include <ifaddrs.h>`
`#include <netdb.h>`
`#include <netinet/in.h>`
`#include <arpa/inet.h>`
`#include <sys/param.h>`
`#include <sys/utsname.h>`
`#include <corosync/swab.h>`
`#include <qb/qblist.h>`
`#include <qb/qbdefs.h>`
`#include <libknet.h>`
`#include <corosync/totem/totem.h>`
`#include <corosync/logsys.h>`
`#include <corosync/icmap.h>`
`#include "util.h"`
`#include "totemconfig.h"`
Include dependency graph for totemconfig.c:

Go to the source code of this file.

## Macros

#define | TOKEN_RETRANSMITS_BEFORE_LOSS_CONST 4
#define | TOKEN_TIMEOUT 3000
#define | TOKEN_WARNING 75
#define | TOKEN_COEFFICIENT 650
#define | JOIN_TIMEOUT 50
#define | MERGE_TIMEOUT 200
#define | DOWNCHECK_TIMEOUT 1000
#define | FAIL_TO_RECV_CONST 2500
#define | SEQNO_UNCHANGED_CONST 30
#define | MINIMUM_TIMEOUT (int)(1000/HZ)*3
#define | MINIMUM_TIMEOUT_HOLD (int)(MINIMUM_TIMEOUT * 0.8 - (1000/HZ))
#define | MAX_NETWORK_DELAY 50
#define | WINDOW_SIZE 50
#define | MAX_MESSAGES 17
#define | MISS_COUNT_CONST 5
#define | BLOCK_UNLISTED_IPS 1
#define | CANCEL_TOKEN_HOLD_ON_RETRANSMIT 0
#define | UDP_NETMTU 1500
#define | KNET_PING_INTERVAL 1000
#define | KNET_PING_TIMEOUT 2000
#define | KNET_PING_PRECISION 2048
#define | KNET_PONG_COUNT 2
#define | KNET_PMTUD_INTERVAL 30
#define | KNET_MTU 0
#define | KNET_DEFAULT_TRANSPORT KNET_TRANSPORT_UDP
#define | DEFAULT_PORT 5405

## Functions

void | totem_volatile_config_read (struct totem_config *totem_config, icmap_map_t temp_map, const char *deleted_key)
int | totem_volatile_config_validate (struct totem_config *totem_config, icmap_map_t temp_map, const char **error_string)
int | totem_config_read (struct totem_config *totem_config, const char **error_string, uint64_t *warnings)
int | totem_config_validate (struct totem_config *totem_config, const char **error_string)
int | totem_config_keyread (struct totem_config *totem_config, icmap_map_t map, const char **error_string)
int | totem_reread_crypto_config (struct totem_config *totem_config, icmap_map_t map, const char **error_string)
int | totemconfig_configure_new_params (struct totem_config *totem_config, icmap_map_t map, const char **error_string)
int | totemconfig_commit_new_params (struct totem_config *totem_config, icmap_map_t map)

## Macro Definition Documentation

## BLOCK_UNLISTED_IPS

#define BLOCK_UNLISTED_IPS 1

Definition at line 83 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## CANCEL_TOKEN_HOLD_ON_RETRANSMIT

#define CANCEL_TOKEN_HOLD_ON_RETRANSMIT 0

Definition at line 84 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## DEFAULT_PORT

#define DEFAULT_PORT 5405

Definition at line 97 of file totemconfig.c.

## DOWNCHECK_TIMEOUT

#define DOWNCHECK_TIMEOUT 1000

Definition at line 74 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## FAIL_TO_RECV_CONST

#define FAIL_TO_RECV_CONST 2500

Definition at line 75 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## JOIN_TIMEOUT

#define JOIN_TIMEOUT 50

Definition at line 72 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## KNET_DEFAULT_TRANSPORT

#define KNET_DEFAULT_TRANSPORT KNET_TRANSPORT_UDP

Definition at line 95 of file totemconfig.c.

## KNET_MTU

#define KNET_MTU 0

Definition at line 94 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## KNET_PING_INTERVAL

#define KNET_PING_INTERVAL 1000

Definition at line 89 of file totemconfig.c.

## KNET_PING_PRECISION

#define KNET_PING_PRECISION 2048

Definition at line 91 of file totemconfig.c.

## KNET_PING_TIMEOUT

#define KNET_PING_TIMEOUT 2000

Definition at line 90 of file totemconfig.c.

## KNET_PMTUD_INTERVAL

#define KNET_PMTUD_INTERVAL 30

Definition at line 93 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## KNET_PONG_COUNT

#define KNET_PONG_COUNT 2

Definition at line 92 of file totemconfig.c.

## MAX_MESSAGES

#define MAX_MESSAGES 17

Definition at line 81 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## MAX_NETWORK_DELAY

#define MAX_NETWORK_DELAY 50

Definition at line 79 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## MERGE_TIMEOUT

#define MERGE_TIMEOUT 200

Definition at line 73 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## MINIMUM_TIMEOUT

#define MINIMUM_TIMEOUT (int)(1000/HZ)*3

Definition at line 77 of file totemconfig.c.

Referenced by totem_volatile_config_validate().

## MINIMUM_TIMEOUT_HOLD

#define MINIMUM_TIMEOUT_HOLD (int)(MINIMUM_TIMEOUT * 0.8 - (1000/HZ))

Definition at line 78 of file totemconfig.c.

Referenced by totem_volatile_config_validate().

## MISS_COUNT_CONST

#define MISS_COUNT_CONST 5

Definition at line 82 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## SEQNO_UNCHANGED_CONST

#define SEQNO_UNCHANGED_CONST 30

Definition at line 76 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## TOKEN_COEFFICIENT

#define TOKEN_COEFFICIENT 650

Definition at line 71 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## TOKEN_RETRANSMITS_BEFORE_LOSS_CONST

#define TOKEN_RETRANSMITS_BEFORE_LOSS_CONST 4

Definition at line 68 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## TOKEN_TIMEOUT

#define TOKEN_TIMEOUT 3000

Definition at line 69 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## TOKEN_WARNING

#define TOKEN_WARNING 75

Definition at line 70 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## UDP_NETMTU

#define UDP_NETMTU 1500

Definition at line 86 of file totemconfig.c.

Referenced by totem_config_validate().

## WINDOW_SIZE

#define WINDOW_SIZE 50

Definition at line 80 of file totemconfig.c.

Referenced by totem_volatile_config_read().

## Function Documentation

## totem_config_keyread()

int totem_config_keyread | ( | struct totem_config * | totem_config,
|  | icmap_map_t | map,
|  | const char ** | error_string )

Definition at line 2244 of file totemconfig.c.

References COROSYSCONFDIR, totem_config::crypto_changed, totem_config::crypto_cipher_type, totem_config::crypto_hash_type, CS_OK, icmap_get_r(), icmap_get_string_r(), totem_config::private_key, totem_config::private_key_len, TOTEM_PRIVATE_KEY_LEN_MAX, and TOTEM_PRIVATE_KEY_LEN_MIN.

Referenced by totem_config_read(), and totem_reread_crypto_config().

## totem_config_read()

int totem_config_read | ( | struct totem_config * | totem_config,
|  | const char ** | error_string,
|  | uint64_t * | warnings )

extern

Definition at line 1796 of file totemconfig.c.

References totem_config::broadcast_use, totem_config::clear_node_high_bit, totem_interface::configured, totem_config::crypto_changed, totem_config::crypto_index, CS_OK, icmap_get_global_map(), icmap_get_string(), icmap_get_uint16(), icmap_get_uint32(), icmap_get_uint8(), ICMAP_KEYNAME_MAXLEN, icmap_set_ro_access(), icmap_set_string(), icmap_set_uint16(), INTERFACE_MAX, totem_config::interfaces, totem_config::ip_dscp, totem_interface::ip_port, totem_config::ip_version, totem_config::link_mode, totem_interface::mcast_addr, totem_interface::member_list, totem_config::net_mtu, totem_config::node_id, totem_ip_address::nodeid, totem_config::threads, TOTEM_CONFIG_BINDNETADDR_NODELIST_SET, totem_config_keyread(), TOTEM_CONFIG_WARNING_TOTEM_NODEID_SET, TOTEM_IP_VERSION_4, TOTEM_LINK_MODE_BYTES, TOTEM_TRANSPORT_KNET, TOTEM_TRANSPORT_UDP, TOTEM_TRANSPORT_UDPU, totem_volatile_config_read(), totemip_parse(), totemip_print(), totem_config::transport_number, and totem_config::version.

Referenced by main().

## totem_config_validate()

int totem_config_validate | ( | struct totem_config * | totem_config,
|  | const char ** | error_string )

Definition at line 2028 of file totemconfig.c.

References totem_interface::bindnet, totem_config::broadcast_use, totem_interface::configured, totem_config::crypto_cipher_type, totem_config::crypto_hash_type, CS_OK, totem_ip_address::family, icmap_get_global_map(), icmap_get_uint32(), INTERFACE_MAX, totem_config::interfaces, totem_interface::ip_port, totem_interface::knet_link_priority, totem_config::link_mode, totem_interface::mcast_addr, totem_config::net_mtu, totem_config::node_id, TOTEM_TRANSPORT_KNET, TOTEM_TRANSPORT_UDP, totem_volatile_config_validate(), totemip_is_mcast(), totem_config::transport_number, totem_interface::ttl, UDP_NETMTU, and totem_config::version.

Referenced by main().

## totem_reread_crypto_config()

int totem_reread_crypto_config | ( | struct totem_config * | totem_config,
|  | icmap_map_t | map,
|  | const char ** | error_string )

Definition at line 2316 of file totemconfig.c.

References totem_config_keyread().

## totem_volatile_config_read()

void totem_volatile_config_read | ( | struct totem_config * | totem_config,
|  | icmap_map_t | temp_map,
|  | const char * | deleted_key )

Definition at line 311 of file totemconfig.c.

References BLOCK_UNLISTED_IPS, CANCEL_TOKEN_HOLD_ON_RETRANSMIT, DOWNCHECK_TIMEOUT, FAIL_TO_RECV_CONST, icmap_get_uint32_r(), icmap_set_uint32_r(), totem_config::interfaces, JOIN_TIMEOUT, KNET_MTU, KNET_PMTUD_INTERVAL, MAX_MESSAGES, MAX_NETWORK_DELAY, totem_interface::member_count, MERGE_TIMEOUT, MISS_COUNT_CONST, SEQNO_UNCHANGED_CONST, TOKEN_COEFFICIENT, totem_config::token_retransmit_timeout, TOKEN_RETRANSMITS_BEFORE_LOSS_CONST, totem_config::token_retransmits_before_loss_const, TOKEN_TIMEOUT, totem_config::token_timeout, TOKEN_WARNING, and WINDOW_SIZE.

Referenced by totem_config_read().

## totem_volatile_config_validate()

int totem_volatile_config_validate | ( | struct totem_config * | totem_config,
|  | icmap_map_t | temp_map,
|  | const char ** | error_string )

Definition at line 380 of file totemconfig.c.

References totem_interface::configured, totem_config::consensus_timeout, CS_OK, totem_config::downcheck_timeout, totem_ip_address::family, icmap_get_string_r(), icmap_get_uint32_r(), ICMAP_KEYNAME_MAXLEN, INTERFACE_MAX, totem_config::interfaces, totem_config::join_timeout, totem_config::max_network_delay, totem_interface::member_count, totem_interface::member_list, totem_config::merge_timeout, MINIMUM_TIMEOUT, MINIMUM_TIMEOUT_HOLD, totem_config::token_hold_timeout, totem_config::token_retransmit_timeout, totem_config::token_timeout, totem_config::token_warning, and totemip_print().

Referenced by totem_config_validate().

## totemconfig_commit_new_params()

int totemconfig_commit_new_params | ( | struct totem_config * | totem_config,
|  | icmap_map_t | map )

Definition at line 2444 of file totemconfig.c.

References INTERFACE_MAX, totem_config::interfaces, totem_config::orig_interfaces, and totempg_reconfigure().

Referenced by main_iface_change_fn().

## totemconfig_configure_new_params()

int totemconfig_configure_new_params | ( | struct totem_config * | totem_config,
|  | icmap_map_t | map,
|  | const char ** | error_string )

Definition at line 2421 of file totemconfig.c.

References log_printf, and LOGSYS_LEVEL_DEBUG.