reuse reqid when a ROUTED child_sa gets INSTALLED

fixed a bug in retransmission code
added support for the "keyingtries" ipsec.conf parameter
added support for the "dpddelay" ipsec.conf parameter
done some work for "dpdaction" behavior
some other cleanups and fixes
This commit is contained in:
Martin Willi
2006-09-05 14:07:25 +00:00
parent da8ab11e91
commit a655f5c09c
35 changed files with 552 additions and 477 deletions
+14 -26
View File
@@ -36,34 +36,33 @@ typedef struct configuration_t configuration_t;
*
* @ingroup config
*/
struct configuration_t {
struct configuration_t {
/**
* @brief Returns the retransmit timeout.
*
* A return value of zero means the request should not retransmitted again.
* The timeout values are managed by the configuration, so
* another backoff algorithm may be implemented here.
* A return value of zero means the request should not be retransmitted again.
* The retransmission algorithm uses sequences of retransmits, in which
* every sequence contains exponential delayed retransmits. These
* sequences are compareable to the keyingtries mechanism used in pluto.
*
* @param this calling object
* @param retransmit_count number of times a message was retransmitted so far
* @param retransmitted number of times a message was retransmitted so far
* @param max_sequences maximum number of retransmission sequences to allow
* @return time in milliseconds, when to schedule next retransmit
*/
u_int32_t (*get_retransmit_timeout) (configuration_t *this, u_int32_t retransmit_count);
u_int32_t (*get_retransmit_timeout) (configuration_t *this,
u_int32_t retransmitted,
u_int32_t max_sequences);
/**
* @brief Returns the timeout for an half open IKE_SA in ms.
*
* Half open means that the IKE_SA is still in one of the following states:
* - INITIATOR_INIT
* - RESPONDER_INIT
* - IKE_SA_INIT_REQUESTED
* - IKE_SA_INIT_RESPONDED
* - IKE_AUTH_REQUESTED
*
*
* Half open means that the IKE_SA is still on a not established state
*
* @param this calling object
* @return timeout in milliseconds (ms)
*/
*/
u_int32_t (*get_half_open_ike_sa_timeout) (configuration_t *this);
/**
@@ -77,17 +76,6 @@ struct configuration_t {
*/
u_int32_t (*get_keepalive_interval) (configuration_t *this);
/**
* @brief Returns the DPD interval in ms.
*
* The DPD interval defines the time after which a
* DPD request packet should be sent.
*
* @param this calling object
* @return interval in seconds
*/
u_int32_t (*get_dpd_interval) (configuration_t *this);
/**
* @brief Destroys a configuration_t object.
*