This page is no more maintained, the current one is at http://www.tiian.org/flom/Deep_Diving/Network_Options.html
Inside Network section of [Configuration] files you can activate some non standard options related to TCP/IP keepalive and UDP/IP auto-discovery feature.
This additional options are available starting with release 0.3.1
Linux kernel allows you to set TCP/IP keepalive parameters on a per socket basis, other UNIX-like systems does not.
Keepalive is useful in many situation, you may read this good article to understand what it is and why it should be used: TCP Keepalive HOWTO.
FLoM aggressively uses TCP keepalive to detect disappeared clients: without this protection an abruptely closed system could keep a resource locked for a long time.
FLoM allows you to specify all the three parameters supplied by keepalive functionality: time, intvl, probes.
Default values can be easily retrieved running it with verbose mode activated:
tiian@mojan:~$ flom --verbose -- true [...] [Network]/TcpKeepaliveTime=60 [Network]/TcpKeepaliveIntvl=10 [Network]/TcpKeepaliveProbes=6 tiian@mojan:~$
These options can be changed using a [Configuration] file or using these command line options:
--tcp-keepalive-time Local override for SO_KEEPALIVE feature --tcp-keepalive-intvl Local override for SO_KEEPALIVE feature --tcp-keepalive-probes Local override for SO_KEEPALIVE feature
The meaning of the above options is not explained here because I will not be able to make something better than this document http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO
Inside a [Configuration] file you can specify three options that normally have these default values:
tiian@mojan:~$ flom --verbose -- true [...] [Network]/DiscoveryAttempts=2 [Network]/DiscoveryTimeout=500 [Network]/DiscoveryTTL=1 tiian@mojan:~$
Command line option: "-D", "--discovery-attempts"
Meaning: maximum number of UDP/IP multicast request a FLOM command (client) performs to discover a FLoM daemon (server).
This example shows what happens if a daemon is not available specifying 7 discovery attempts:
tiian@mojan:~$ export FLOM_TRACE_MASK=0x8 tiian@mojan:~$ flom -A 239.255.0.1 -d 0 -D 7 -- true 2014-03-20 22:13:43.517029 [2623/0x9ffa130] flom_client_connect 2014-03-20 22:13:43.517274 [2623/0x9ffa130] flom_client_discover_udp 2014-03-20 22:13:43.517304 [2623/0x9ffa130] flom_client_discover_udp: using address '239.255.0.1' and port 28015 2014-03-20 22:13:43.517494 [2623/0x9ffa130] flom_client_discover_udp/getaddrinfo(): [ai_flags=2,ai_family=2,ai_socktype=2,ai_protocol=17,ai_addrlen=16,ai_canonname='239.255.0.1'] 2014-03-20 22:13:43.517580 [2623/0x9ffa130] flom_client_discover_udp: ai_addr 02 00 6d 6f ef ff 00 01 00 00 00 00 00 00 00 00 2014-03-20 22:13:43.517732 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 0... 2014-03-20 22:13:43.517879 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:44.015698 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:44.015755 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 1... 2014-03-20 22:13:44.015860 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:44.515686 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:44.515748 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 2... 2014-03-20 22:13:44.515849 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:45.015690 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:45.015752 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 3... 2014-03-20 22:13:45.015861 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:45.515691 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:45.515750 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 4... 2014-03-20 22:13:45.515859 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:46.015692 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:46.015751 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 5... 2014-03-20 22:13:46.015854 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:46.515744 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:46.515835 [2623/0x9ffa130] flom_client_discover_udp: sending discovery message number 6... 2014-03-20 22:13:46.515933 [2623/0x9ffa130] flom_client_discover_udp: waiting reply... 2014-03-20 22:13:47.015690 [2623/0x9ffa130] flom_client_discover_udp: no answer from UDP/IP multicast discovery 2014-03-20 22:13:47.015843 [2623/0x9ffa130] flom_client_discover_udp/excp=5/ret_cod=4/errno=11 ('Resource temporarily unavailable') 2014-03-20 22:13:47.015906 [2623/0x9ffa130] flom_client_connect: connection failed, a new daemon can not be started because daemon lifespan is 0 2014-03-20 22:13:47.015930 [2623/0x9ffa130] flom_client_connect/excp=4/ret_cod=-104/errno=11 flom_client_connect: ret_cod=-104 (ERROR: 'connect' function returned an error condition) tiian@mojan:~/src/flom$
Command line option: "-I", "--discovery-timeout"
Meaning: how long a FLoM command (client) waits for an answer UDP datagram after it sent a request UDP multicast datagram.
Shorter timeouts can be used in presence of low latency networks while longer timeouts should be used when FLOM is used with high latency networks. Timeout is expressed in milliseconds.
Command line option: "--discovery-ttl"
Meaning: TTL associated to datagrams sent during auto-discovery UDP multicast query; this option can be useful if your datagrams has to cross some routers (a typical usage is inside a WAN scenario).
Some Linux distributions set a default firewall configuration that stops IP 4 multicast traffic and does not allow FLoM network dynamic modes.
You have to properly configure internal Linux firewall to allow multicast if you want to use it.
Sometimes firewalling is not needed at all and you can disable it completely; here are some hints:
Your attention please: I'm NOT telling you that you have to disable your firewalling policy, I'm only telling you have to fix them if you want to use UDP/IP multicast.