implemented more aggressive MOBIKE path probing

do not queue more than one MOBIKE task
This commit is contained in:
Martin Willi
2007-09-28 08:22:37 +00:00
parent 052d58feaf
commit f215e91999
4 changed files with 100 additions and 24 deletions
+9
View File
@@ -447,6 +447,14 @@ static void roam(private_ike_mobike_t *this, bool address)
this->ike_sa->get_pending_updates(this->ike_sa) + 1);
}
/**
* Implementation of ike_mobike_t.is_probing.
*/
static bool is_probing(private_ike_mobike_t *this)
{
return this->check;
}
/**
* Implementation of task_t.get_type
*/
@@ -490,6 +498,7 @@ ike_mobike_t *ike_mobike_create(ike_sa_t *ike_sa, bool initiator)
this->public.roam = (void(*)(ike_mobike_t*,bool))roam;
this->public.transmit = (void(*)(ike_mobike_t*,packet_t*))transmit;
this->public.is_probing = (bool(*)(ike_mobike_t*))is_probing;
this->public.task.get_type = (task_type_t(*)(task_t*))get_type;
this->public.task.migrate = (void(*)(task_t*,ike_sa_t*))migrate;
this->public.task.destroy = (void(*)(task_t*))destroy;
+8
View File
@@ -71,6 +71,14 @@ struct ike_mobike_t {
* @param packet the packet to transmit
*/
void (*transmit)(ike_mobike_t *this, packet_t *packet);
/**
* @brief Check if this task is probing for routability.
*
* @param this calling object
* @return TRUE if task is probing
*/
bool (*is_probing)(ike_mobike_t *this);
};
/**