
<protocol-stack name="Default probabilistic protocol stack" version="1.0.0">
	<protocol>
		<protocol-name>UDP Protocol</protocol-name>
		<description>Sends and receives messages on UDP sockets</description>
		<class-name>org.javagroups.protocols.UDP</class-name>
		<protocol-params>
			<protocol-param name="mcast_addr" value="228.8.8.8"/>
			<protocol-param name="mcast_port" value="45566"/>
			<protocol-param name="mcast_send_buf_size" value="150000"/>
			<protocol-param name="mcast_recv_buf_size" value="80000"/>
			<protocol-param name="ip_ttl" value="32"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>Ping Protocol</protocol-name>
		<description>Find the initial membership</description>
		<class-name>org.javagroups.protocols.PING</class-name>
		<protocol-params>
			<protocol-param name="timeout" value="2000"/>
			<protocol-param name="num_initial_members" value="3"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>Merge Protocol</protocol-name>
		<description>Periodically tries to detect subgroups and emits MERGE events in
		that case</description>
		<class-name>org.javagroups.protocols.MERGE2</class-name>
		<protocol-params>
			<protocol-param name="min_interval" value="5000"/>
			<protocol-param name="max_interval" value="10000"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>Failure Detection Socket</protocol-name>
		<description>Failure detection based on sockets</description>
		<class-name>org.javagroups.protocols.pbcast.FD</class-name>
	</protocol>
	<protocol>
		<protocol-name>Verify Suspect</protocol-name>
		<description>Double-checks that a suspected member is really dead</description>
		<class-name>org.javagroups.protocols.VERIFY_SUSPECT</class-name>
		<protocol-params>
			<protocol-param name="timeout" value="1500"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>PBCAST-based message transmission</protocol-name>
		<description>Mcast message transmission based
		on probabilistic broadcast (Ken Birman et al)</description>
		<class-name>org.javagroups.protocols.pbcast.PBCAST</class-name>
		<protocol-params>
			<protocol-param name="desired_avg_gossip" value="8000"/>
			<protocol-param name="mcast_gossip"  	  value="true"/>
			<protocol-param name="gc_lag" value="30"/>
			<protocol-param name="max_queue" value="20"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>Unicast Protocol</protocol-name>
		<description>Provides lossless transmission of unicast message (similar to TCP)</description>
		<class-name>org.javagroups.protocols.UNICAST</class-name>
		<protocol-params>
			<protocol-param name="timeout" value="1200,2400,3000"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>Fragmentation Protocol</protocol-name>
		<description>Divides up larger message into smaller pieces</description>
		<class-name>org.javagroups.protocols.FRAG</class-name>
		<protocol-params>
			<protocol-param name="frag_size" value="8192"/>
			<protocol-param name="down_thread" value="false"/>
			<protocol-param name="up_thread" value="false"/>
		</protocol-params>
	</protocol>
	<protocol>
		<protocol-name>PB Cast Group Membership Protocol</protocol-name>
		<description>Maintains the member ship view</description>
		<class-name>org.javagroups.protocols.pbcast.GMS</class-name>
		<protocol-params>
			<protocol-param name="join_timeout" value="3000"/>
			<protocol-param name="join_retry_timeout" value="2000"/>
			<protocol-param name="shun" value="true"/>
			<protocol-param name="print_local_addr" value="true"/>
		</protocol-params>
	</protocol>
</protocol-stack>


