GComm  0.2.3
Static Public Member Functions | Static Public Attributes | List of all members
gcomm::Conf Struct Reference

#include <conf.hpp>

Static Public Member Functions

static void register_params (gu::Config &)
 

Static Public Attributes

static std::string const ProtonetBackend
 
static std::string const ProtonetVersion
 
static std::string const TcpNonBlocking
 TCP non-blocking flag ("socket.non_blocking") More...
 
static std::string const SocketUseSsl
 Use SSL sockets for communication. More...
 
static std::string const SocketSslVerifyFile
 File containing CA certificates in PEM format ("socket.ssl_verify_file")
 
static std::string const SocketSslCertificateFile
 File containing certificate to use in PEM format ("socket.ssl_certificate_file")
 
static std::string const SocketSslPrivateKeyFile
 File containing private key associated with certificate ("socket.ssl_private_key_file") More...
 
static std::string const SocketSslPasswordFile
 File containing password used to protect private key file ("socket.ssl_password_file")
 
static std::string const SocketSslCipherList
 Cipher list for SSL connections (socket.ssl_cipher_list)
 
static std::string const SocketSslCompression
 Disable compression boolean (socket.ssl_disable_compression)
 
static std::string const SocketChecksum
 Algorithm for message checksums: 0 - none (backward compatible) 1 - CRC-32 (backward compatible) 2 - CRC-32C (optimized and potentially HW-accelerated on Intel CPUs)
 
static std::string const GMCastScheme
 GMCast scheme for transport URI ("gmcast")
 
static std::string const GMCastVersion
 GMCast protocol version.
 
static std::string const GMCastGroup
 GMCast group name ("gmcast.group") More...
 
static std::string const GMCastListenAddr
 GMCast listening address ("gmcast.listen_addr") More...
 
static std::string const GMCastMCastAddr
 GMCast multicast address ("gmcast.mcast_addr") More...
 
static std::string const GMCastMCastPort
 GMCast multicast port ("gmcast.mcast_port") More...
 
static std::string const GMCastMCastTTL
 GMCast multicast TTL ("gmcast.mcast_ttl") More...
 
static std::string const GMCastTimeWait
 
static std::string const GMCastPeerTimeout
 
static std::string const GMCastMaxInitialReconnectAttempts
 Maximum initial reconnect attempts. More...
 
static std::string const GMCastPeerAddr
 Add or remove peer address. More...
 
static std::string const GMCastIsolate
 Isolate node from peers. More...
 
static std::string const GMCastSegment
 Segment identifier for segmentation.
 
static std::string const EvsScheme
 EVS scheme for transport URI ("evs")
 
static std::string const EvsVersion
 EVS protocol version.
 
static std::string const EvsViewForgetTimeout
 EVS view forget timeout ("evs.view_forget_timeout") More...
 
static std::string const EvsSuspectTimeout
 EVS suspect timeout ("evs.suspect_timeout") More...
 
static std::string const EvsInactiveTimeout
 EVS inactive timeout ("evs.inactive_timeout") More...
 
static std::string const EvsInactiveCheckPeriod
 EVS inactive check period ("evs.inactive_check_period") More...
 
static std::string const EvsInstallTimeout
 
static std::string const EvsKeepalivePeriod
 EVS keepalive period ("evs.keepalive_period") More...
 
static std::string const EvsJoinRetransPeriod
 EVS join retransmission period ("evs.join_retrans_period") More...
 
static std::string const EvsStatsReportPeriod
 EVS statistics reporting period ("evs.stats_report_period") More...
 
static std::string const EvsDebugLogMask
 EVS debug log mask ("evs.debug_log_mask") More...
 
static std::string const EvsInfoLogMask
 EVS info log mask ("evs.info_log_mask") More...
 
static std::string const EvsSendWindow
 EVS send window ("evs.send_window") More...
 
static std::string const EvsUserSendWindow
 EVS user send window ("evs.user_send_window") More...
 
static std::string const EvsUseAggregate
 EVS message aggregation mode ("evs.use_aggregate") More...
 
static std::string const EvsCausalKeepalivePeriod
 Period to generate keepalives for causal messages.
 
static std::string const EvsMaxInstallTimeouts
 EVS maximum install timeouts ("evs.max_install_timeouts") More...
 
static std::string const PcScheme
 PC scheme for transport URI ("pc")
 
static std::string const PcVersion
 PC protocol version.
 
static std::string const PcIgnoreSb
 PC split-brain mode. More...
 
static std::string const PcIgnoreQuorum
 PC quorum mode. More...
 
static std::string const PcChecksum
 PC message checksumming. More...
 
static std::string const PcAnnounceTimeout
 PC starup announce timeout.
 
static std::string const PcLinger
 PC close linger timeout.
 
static std::string const PcNpvo
 PC newer prim view overrides.
 
static std::string const PcBootstrap
 If set during runtime bootstraps new PC.
 
static std::string const PcWaitPrim
 Wait for prim comp unconditionally if set to true.
 
static std::string const PcWaitPrimTimeout
 Timeout on waiting for primary component.
 
static std::string const PcWeight
 Node weight in prim comp voting.
 

Detailed Description

Configuration parameter definitions.

Transport definition and configuration parameters are passed to Transport::create() in the URI form. URI scheme part defines which transport is returned. Currently recognized are "tcp", "gmcast" and "pc". This will change in the future.

URI format is the following: gcomm://[<peer_host>[:<peer_port>]][?<key1>=<val1>&<key2>=<val2>]... The key/value pairs can be used to pass configuration parameters to gcomm layers.

Time periods as parameter values follow ISO8601 duration representation (as represented in http://en.wikipedia.org/wiki/ISO_8601#Durations). Examples:

To get subsecond resolution, second part can be represented as decimal number, but currently it is not recommended due to bug in Period parsing routine (rounding errors can result inaccurate boundary value checking).

Member Data Documentation

std::string const gcomm::Conf::EvsDebugLogMask
static

EVS debug log mask ("evs.debug_log_mask")

This mask controls what debug information is printed in the logs if debug logging is turned on. Mask value is bitwise-or from values gcomm::evs::Proto::DebugFlags. By default only state information is printed.

std::string const gcomm::Conf::EvsInactiveCheckPeriod
static

EVS inactive check period ("evs.inactive_check_period")

This period controls how often node liveness is checked. Default is 1 second and there is no need to change this unless Conf::EvsSuspectTimeout or Conf::EvsInactiveTimeout is adjusted to smaller value. Default value is 1 second, minimum is 0.1 seconds and maximum is Conf::EvsSuspectTimeout/2.

std::string const gcomm::Conf::EvsInactiveTimeout
static

EVS inactive timeout ("evs.inactive_timeout")

This timeout control how long node can remain completely silent until it is discarded from the group. This is hard limit, unlike Conf::EvsSuspectTimeout, and the node is discarded even if it becomes live during the formation of the new group. Default value is 15 seconds.

std::string const gcomm::Conf::EvsInfoLogMask
static

EVS info log mask ("evs.info_log_mask")

This mask controls what info log is printed in the logs. Mask value is bitwise-or from values gcomm::evs::Proto::InfoFlags.

std::string const gcomm::Conf::EvsJoinRetransPeriod
static

EVS join retransmission period ("evs.join_retrans_period")

This parameter controls how often join messages are retransmitted during group formation. There is usually no need to adjust this value. Default value is 0.3 seconds, minimum is 0.1 seconds and maximum is Conf::EvsSuspectTimeout/3.

std::string const gcomm::Conf::EvsKeepalivePeriod
static

EVS keepalive period ("evs.keepalive_period")

This timeout controls how often keepalive messages are sent into network. Node liveness is determined with these keepalives, so the value sould be significantly smaller than Conf::EvsSuspectTimeout. Default value is 1 second, minimum is 0.1 seconds and maximum is Conf::EvsSuspectTimeout/3.

std::string const gcomm::Conf::EvsMaxInstallTimeouts
static

EVS maximum install timeouts ("evs.max_install_timeouts")

This parameter controls how many install attempts are done before declaring other nodes as inactive and trying to re-establish group via singleton views.

std::string const gcomm::Conf::EvsSendWindow
static

EVS send window ("evs.send_window")

This parameter controls how many messages protocol layer is allowed to send without getting all acknowledgements for any of them. Default value is 32.

std::string const gcomm::Conf::EvsStatsReportPeriod
static

EVS statistics reporting period ("evs.stats_report_period")

This parameters controls how often statistics information is printed in the log. This parameter has effect only if statistics reporting is enabled via Conf::EvsInfoLogMask. Default value is 1 minute.

std::string const gcomm::Conf::EvsSuspectTimeout
static

EVS suspect timeout ("evs.suspect_timeout")

This timeout controls how long node can remain silent until it is put under suspicion. If majority of the current group agree that the node is under suspicion, it is discarded from group and new group view is formed immediately. If majority of the group does not agree about suspicion, Conf::EvsInactiveTimeout is waited until forming of new group will be attempted. Default value is 5 seconds.

std::string const gcomm::Conf::EvsUseAggregate
static

EVS message aggregation mode ("evs.use_aggregate")

This parameter controls whether EVS is allowed to aggregate several user messages into one message. By default this option is enabled and there should be no need to disable it unless adviced so.

std::string const gcomm::Conf::EvsUserSendWindow
static

EVS user send window ("evs.user_send_window")

Like Conf::EvsSendWindow, but for messages for which sending is initiated by call from upper layer. Default value is 16.

std::string const gcomm::Conf::EvsViewForgetTimeout
static

EVS view forget timeout ("evs.view_forget_timeout")

This timeout controls how long information about known group views is maintained. This information is needed to filter out delayed messages from previous views that are not live anymore. Default value is 5 minutes and there is usually not need to change it.

std::string const gcomm::Conf::GMCastGroup
static

GMCast group name ("gmcast.group")

String denoting group name. Max length of string is 16. Peer nodes accept GMCast connection only if the group names match.

std::string const gcomm::Conf::GMCastIsolate
static

Isolate node from peers.

Setting this value to 'true' closes all conections and will prevent forming of new connections until value is set again to 'false'. This parameter should be used for testing purposes only and it will not be visible in global configuration array.

std::string const gcomm::Conf::GMCastListenAddr
static

GMCast listening address ("gmcast.listen_addr")

Listening address for GMCast. Address is currently passed in URI format (for example tcp://192.168.3.1:4567) and it should be passed as the last configuration parameter in order to avoid confusion. If parameter value is undefined, GMCast starts listening all interfaces at default port 4567.

std::string const gcomm::Conf::GMCastMaxInitialReconnectAttempts
static

Maximum initial reconnect attempts.

Maximum initial reconnect attempts for address reported by peer.

std::string const gcomm::Conf::GMCastMCastAddr
static

GMCast multicast address ("gmcast.mcast_addr")

Multicast address for GMCast. By default multicast socket is bound to the same interface as conf::GMCastListenAddr. If multicast interface must be specified, the only way to do it is currently via listening address configuration.

std::string const gcomm::Conf::GMCastMCastPort
static

GMCast multicast port ("gmcast.mcast_port")

Multicast port for GMCast. By default multicast uses the same port as GMCast TCP connections.

std::string const gcomm::Conf::GMCastMCastTTL
static

GMCast multicast TTL ("gmcast.mcast_ttl")

This parameter controls multicast packet TTL. By default it is set to 1 and usually it should not be changed unless adviced so. This means that multicast is limited to single LAN segment.

std::string const gcomm::Conf::GMCastPeerAddr
static

Add or remove peer address.

Setting value to add:<scheme>://<ip>:<port> will inject new peer address in address list. Setting value to del:<scheme>://<ip>:<port> will remove peer address from list (via forget procedure).

std::string const gcomm::Conf::PcChecksum
static

PC message checksumming.

This parameter controls whether PC layer does message checksumming.

std::string const gcomm::Conf::PcIgnoreQuorum
static

PC quorum mode.

This parameter controls whether PC is allowed to continue operation despite of quorum loss.

std::string const gcomm::Conf::PcIgnoreSb
static

PC split-brain mode.

This parameter controls whether PC is allowed to continue operation despite of possible split brain condition.

std::string const gcomm::Conf::SocketSslPrivateKeyFile
static

File containing private key associated with certificate ("socket.ssl_private_key_file")

If private key file is protected with password, SocketSslPasswordFile ("socket.ssl_password_file") must also be set.

std::string const gcomm::Conf::SocketUseSsl
static

Use SSL sockets for communication.

Boolean describing whether underlying transport should use SSL connections.

std::string const gcomm::Conf::TcpNonBlocking
static

TCP non-blocking flag ("socket.non_blocking")

Parameter value is boolean (passed 0 or 1) denoting whether the socket should or should not be in non-blocking state.


The documentation for this struct was generated from the following file: