implemented more aggressive MOBIKE path probing
do not queue more than one MOBIKE task
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user