GPLization banner introduced to *.[hc] files
[sip-router] / modules / tm / config.h
1 /*
2  * $Id$
3  *
4  *
5  * Copyright (C) 2001-2003 Fhg Fokus
6  *
7  * This file is part of ser, a free SIP server.
8  *
9  * ser is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version
13  *
14  * For a license to use the ser software under conditions
15  * other than those described here, or to purchase support for this
16  * software, please contact iptel.org by e-mail at the following addresses:
17  *    info@iptel.org
18  *
19  * ser is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22  * GNU General Public License for more details.
23  *
24  * You should have received a copy of the GNU General Public License 
25  * along with this program; if not, write to the Free Software 
26  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
27  */
28
29
30 #ifndef _TM_CONFIG_H
31 #define _TM_CONFIG_H
32
33 /* always use a power of 2 for hash table size */
34 #define T_TABLE_POWER    12
35 #define TABLE_ENTRIES    (1 << (T_TABLE_POWER))
36
37 /* this is where table size is defined now -- sort of
38    ugly, core should not be bothered by TM table size,
39    but on the other, core's stateless forwarding should 
40    have consistent branch generation with stateful mode
41    and needs to calculate branch/hash, for which table size
42    is needed 
43 */
44 #include "../../hash_func.h"
45
46 /* maximumum length of localy generated acknowledgement */
47 #define MAX_ACK_LEN   1024
48
49 /* FINAL_RESPONSE_TIMER ... tells how long should the transaction engine
50    wait if no final response comes back*/
51 #define FR_TIME_OUT       30
52 #define INV_FR_TIME_OUT   120
53
54 /* WAIT timer ... tells how long state should persist in memory after
55    a transaction was finalized*/
56 #define WT_TIME_OUT       5
57
58 /* DELETE timer ... tells how long should the transaction persist in memory
59    after it was removed from the hash table and before it will be deleted */
60 #define DEL_TIME_OUT      2
61  
62 /* retransmission timers */
63 #define RETR_T1           1
64 #define RETR_T2           4
65
66 /* when first reply is sent, this additional space is allocated so that
67    one does not have to reallocate share memory when the message is
68    replaced by a subsequent, longer message
69 */
70 #define REPLY_OVERBUFFER_LEN 160
71 #define TAG_OVERBUFFER_LEN 32
72
73 /* dimensions of FIFO server */
74 #define MAX_METHOD      64
75 #define MAX_HEADER      1024
76 #define MAX_BODY        1024
77 #define MAX_DST 512
78 #define MAX_FROM 512
79
80 /* messages generated by server */
81 #define CANCELLING "cancelling"
82 #define CANCEL_DONE "ok -- no more pending branches"
83 #define CANCELLED "Request cancelled"
84
85 /* ACKnowledgement forking hack -- that is good for phones
86    which send ACKs to the same outbound proxy; if forking is
87    enabled, the proxy wouldn't know to which branch to forward;
88    without forking, it could forward to other branch than from
89    which a reply came back, resulting in UAS never seeing it;
90    this hack has not been tested yet
91 */
92 #undef ACK_FORKING_HACK
93
94 #endif