Subversion Repositories HelenOS

Rev

Rev 4750 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4750 Rev 4756
Line 31... Line 31...
31
 */
31
 */
32
 
32
 
33
/** @file
33
/** @file
34
 *  TCP module implementation.
34
 *  TCP module implementation.
35
 *  @see tcp.h
35
 *  @see tcp.h
36
 *  \todo
-
 
37
 */
36
 */
38
 
37
 
39
#include <assert.h>
38
#include <assert.h>
40
#include <async.h>
39
#include <async.h>
41
#include <fibril_sync.h>
40
#include <fibril_sync.h>
Line 79... Line 78...
79
 
78
 
80
/** The TCP window default value.
79
/** The TCP window default value.
81
 */
80
 */
82
#define NET_DEFAULT_TCP_WINDOW  10240
81
#define NET_DEFAULT_TCP_WINDOW  10240
83
 
82
 
84
/** \todo
83
/** Initial timeout for new connections.
85
 */
84
 */
86
#define NET_DEFAULT_TCP_INITIAL_TIMEOUT 3000000L
85
#define NET_DEFAULT_TCP_INITIAL_TIMEOUT 3000000L
87
 
86
 
88
/** \todo
87
/** Default timeout for closing.
89
 */
88
 */
90
#define NET_DEFAULT_TCP_TIME_WAIT_TIMEOUT   2000L
89
#define NET_DEFAULT_TCP_TIME_WAIT_TIMEOUT   2000L
91
 
90
 
92
/** The initial outgoing sequence number.
91
/** The initial outgoing sequence number.
93
 */
92
 */
Line 103... Line 102...
103
 
102
 
104
/** Free ports pool end.
103
/** Free ports pool end.
105
 */
104
 */
106
#define TCP_FREE_PORTS_END      65535
105
#define TCP_FREE_PORTS_END      65535
107
 
106
 
108
/** \todo
107
/** Timeout for connection initialization, SYN sent.
109
 */
108
 */
110
#define TCP_SYN_SENT_TIMEOUT    1000000L
109
#define TCP_SYN_SENT_TIMEOUT    1000000L
111
 
110
 
112
/** The maximum number of timeouts in a row before singaling connection lost.
111
/** The maximum number of timeouts in a row before singaling connection lost.
113
 */
112
 */
Line 115... Line 114...
115
 
114
 
116
/** The number of acknowledgements before retransmit.
115
/** The number of acknowledgements before retransmit.
117
 */
116
 */
118
#define TCP_FAST_RETRANSMIT_COUNT   3
117
#define TCP_FAST_RETRANSMIT_COUNT   3
119
 
118
 
-
 
119
/** Returns a value indicating whether the value is in the interval respecting the possible overflow.
-
 
120
 *  The high end and/or the value may overflow, be lower than the low value.
-
 
121
 *  @param[in] lower The last value before the interval.
120
/** \todo
122
 *  @param[in] value The value to be checked.
-
 
123
 *  @param[in] high_equal The last value in the interval.
121
 */
124
 */
122
#define IS_IN_INTERVAL_OVERFLOW( lower, value, higher_equal )   (((( lower ) < ( value )) && ((( value ) <= ( higher_equal )) || (( higher_equal ) < ( lower )))) || ((( value ) <= ( higher_equal )) && (( higher_equal ) < ( lower ))))
125
#define IS_IN_INTERVAL_OVERFLOW( lower, value, higher_equal )   (((( lower ) < ( value )) && ((( value ) <= ( higher_equal )) || (( higher_equal ) < ( lower )))) || ((( value ) <= ( higher_equal )) && (( higher_equal ) < ( lower ))))
123
 
126
 
124
/** Type definition of the TCP timeout.
127
/** Type definition of the TCP timeout.
125
 *  @see tcp_timeout
128
 *  @see tcp_timeout
Line 164... Line 167...
164
     */
167
     */
165
    size_t              key_length;
168
    size_t              key_length;
166
};
169
};
167
 
170
 
168
/** Releases the packet and returns the result.
171
/** Releases the packet and returns the result.
169
 *  @param packet The packet queue to be released. Input parameter.
172
 *  @param[in] packet The packet queue to be released.
170
 *  @param result The result to be returned. Input parameter.
173
 *  @param[in] result The result to be returned.
171
 *  @return The result parameter.
174
 *  @return The result parameter.
172
 */
175
 */
173
int tcp_release_and_return( packet_t packet, int result );
176
int tcp_release_and_return( packet_t packet, int result );
174
 
177
 
175
void    tcp_prepare_operation_header( socket_core_ref socket, tcp_socket_data_ref socket_data, tcp_header_ref header, int synchronize, int finalize );
178
void    tcp_prepare_operation_header( socket_core_ref socket, tcp_socket_data_ref socket_data, tcp_header_ref header, int synchronize, int finalize );