You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am working in an MSc project regarding RPL attacks. I am trying to implement the rank decrease attack. To do so, I reduce in one unit the rank of the malicious node modifying the file rpl-dag.c in the function rpl_dag_update_state(void). The original code is:
[...]
curr_instance.dag.rank = rpl_neighbor_rank_via_nbr(curr_instance.dag.preferred_parent);
[...]
My modification is:
[...]
if (select) {
curr_instance.dag.rank = rpl_neighbor_rank_via_nbr(curr_instance.dag.preferred_parent) - 1;
}
else curr_instance.dag.rank = rpl_neighbor_rank_via_nbr(curr_instance.dag.preferred_parent);
[...]
The "select" boolean is used to identify the malicious node.
Checking the output I can realize that the rank is decreased correctly, but the children nodes are not changing their parent to the malicious node although it has a lower rank.
Is this the way to perform this attack or I should modify something else? Is there a way to force the children to select this parent or to decide the best parent after this modification?
Thank you in advance,
Brian
The text was updated successfully, but these errors were encountered:
By default, rpl-lite uses an Objective Function called MRHOF (rpl-mrhof.c), which has hysteresis behavior. Maybe the rank decrease was not big enough for other nodes to switch parents.
Hello,
I am working in an MSc project regarding RPL attacks. I am trying to implement the rank decrease attack. To do so, I reduce in one unit the rank of the malicious node modifying the file rpl-dag.c in the function rpl_dag_update_state(void). The original code is:
[...]
curr_instance.dag.rank = rpl_neighbor_rank_via_nbr(curr_instance.dag.preferred_parent);
[...]
My modification is:
[...]
if (select) {
curr_instance.dag.rank = rpl_neighbor_rank_via_nbr(curr_instance.dag.preferred_parent) - 1;
}
else curr_instance.dag.rank = rpl_neighbor_rank_via_nbr(curr_instance.dag.preferred_parent);
[...]
The "select" boolean is used to identify the malicious node.
Checking the output I can realize that the rank is decreased correctly, but the children nodes are not changing their parent to the malicious node although it has a lower rank.
Is this the way to perform this attack or I should modify something else? Is there a way to force the children to select this parent or to decide the best parent after this modification?
Thank you in advance,
Brian
The text was updated successfully, but these errors were encountered: