1 /*
2  * The Spread Toolkit.
3  *
4  * The contents of this file are subject to the Spread Open-Source
5  * License, Version 1.0 (the ``License''); you may not use
6  * this file except in compliance with the License.  You may obtain a
7  * copy of the License at:
8  *
9  * http://www.spread.org/license/
10  *
11  * or in the file ``license.txt'' found in this distribution.
12  *
13  * Software distributed under the License is distributed on an AS IS basis,
14  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
15  * for the specific language governing rights and limitations under the
16  * License.
17  *
18  * The Creators of Spread are:
19  *  Yair Amir, Michal Miskin-Amir, Jonathan Stanton, John Schultz.
20  *
21  *  Copyright (C) 1993-2012 Spread Concepts LLC <info@spreadconcepts.com>
22  *
23  *  All Rights Reserved.
24  *
25  * Major Contributor(s):
26  * ---------------
27  *    Ryan Caudy           rcaudy@gmail.com - contributions to process groups.
28  *    Claudiu Danilov      claudiu@acm.org - scalable wide area support.
29  *    Cristina Nita-Rotaru crisn@cs.purdue.edu - group communication security.
30  *    Theo Schlossnagle    jesus@omniti.com - Perl, autoconf, old skiplist.
31  *    Dan Schoenblum       dansch@cnds.jhu.edu - Java interface.
32  *
33  */
34 
35 
36 #ifndef	INC_SPREAD_PARAMS
37 #define INC_SPREAD_PARAMS
38 
39 #define		SP_MAJOR_VERSION	4
40 #define         SP_MINOR_VERSION        2
41 #define         SP_PATCH_VERSION        0
42 #define         SPREAD_PROTOCOL         3
43 
44 #define         SPREAD_BUILD_DATE       "18/June/2012"
45 
46 #define		DEFAULT_SPREAD_PORT	4803
47 
48 #ifndef SP_RUNTIME_DIR
49 #define         SP_RUNTIME_DIR          "/var/run/spread"
50 #endif
51 #ifndef SP_GROUP
52 #define         SP_GROUP                "spread"
53 #endif
54 #ifndef SP_USER
55 #define         SP_USER                 "spread"
56 #endif
57 #ifndef SP_UNIX_SOCKET
58 #define         SP_UNIX_SOCKET          "/tmp"
59 #endif
60 
61 #define		MAX_PROC_NAME		 20     /* including the null, so actually max 19, look for it if changed */
62 
63 #define		MAX_PROCS_SEGMENT	128
64 #define		MAX_SEGMENTS		 20
65 #define		MAX_PROCS_RING		128
66 #define         MAX_INTERFACES_PROC      10
67 
68 #define         MAX_REPS                 25
69 #define         MAX_FORM_REPS            20
70 
71 #define		MAX_PACKETS_IN_STRUCT 	8192
72 #define		PACKET_MASK		0x00001fff
73 
74 #define		MAX_SEQ_GAP		1600	/* used in flow control to limit difference between highest_seq and aru */
75 
76 #define		MAX_EVS_ROUNDS		500 	/* used in EVS state to limit total # of rounds to complete EVS */
77 
78 #define		WATER_MARK		500	/* used to limit incoming user messages */
79 
80 #define		MAX_PRIVATE_NAME	 10     /* not including the null, look for it if changed */
81 
82 #define		MAX_GROUP_NAME		 (1+MAX_PRIVATE_NAME+1+MAX_PROC_NAME)
83 					/* #private_name#proc_name  including the null */
84 #include        "spu_events.h"
85 #define		MAX_SESSIONS		( ( MAX_FD_EVENTS-5 ) / 2 ) /* reserves 2 for each connection */
86 
87 #define		DEFAULT_MAX_SESSION_MESSAGES	1000
88 #define         MAX_GROUPS_PER_MESSAGE  100     /* Each multicast can't send to more groups then this */
89 
90 #define         MAX_WRAP_SEQUENCE_VALUE (1<<30) /* Maximum value for token->seq before reseting to zero with membership */
91 
92 #endif /* INC_SPREAD_PARAMS */
93