Bug 2073

Summary: NDisc cache entries update timer might be stuck in a loop
Product: ns-3 Reporter: Tommaso Pecorella <tommaso.pecorella>
Component: ipv6Assignee: Tommaso Pecorella <tommaso.pecorella>
Status: RESOLVED FIXED    
Severity: normal CC: ns-bugs
Priority: P5    
Version: ns-3-dev   
Hardware: All   
OS: All   
Attachments: test program
patch

Description Tommaso Pecorella 2015-02-27 03:44:56 UTC
Created attachment 1980 [details]
test program

The effect is summarized in the simple example attached. One of the nodes keeps probing the other one, even after receiving the correct reply.

The bug was reported by Julien Vaubourg here:
https://groups.google.com/forum/#!topic/ns-3-users/t_SMjHCjGh0

The problem is in the NDisc cache timers. Each state have its own timer and it's not easy to make sure that the other state timers are expired when a transition occurs.
The solution is a partial code refactoring, in order to simplifying the code and fix the error.
There should be only one timer, and it should be started/stopped by the state transition.
Comment 1 Tommaso Pecorella 2015-02-28 09:05:56 UTC
Created attachment 1981 [details]
patch

The patch simplifies the NUD timers (we just need one).
Of course it also removes the bug, as it was due to a timer not being correctly stopped.
Comment 2 Tommaso Pecorella 2015-02-28 09:20:17 UTC
Pushed in changeset 11225:750bd0fc8706