What steps will reproduce the problem?
1. Obtain an address lease via DHCPv6 on the mote.
2. Invalidate the lease on the DHCPv6 server.
3. Wait for the mote to attempt to renew the lease.
4. See that the DHCPv6 server sends a reply containing the IA_NA with only a
Status option inside, with a non-zero code.
5. Watch the mote not notice the error, and instead retry the renew again, all
the while until the lease expiry on the mote.
What is the expected output? What do you see instead?
The DHCPv6 client should immediately stop using the address, and instead issue
a request for a new address.
What version of the product are you using? On what operating system?
TinyOS-2.x trunk
Please provide any additional information below.
The cause of this misbehavior is a length miscalculation. The dh6_ia.len member
contains the number of bytes following, but not including the type/len field
themselves. The attached patch compensates by adding sizeof(dh6_opt_header),
which is the struct containing only the type/len fields.
Additionally, the patch changes the behavior to better comply with RFC3315
section 18.1 by falling back to a REQUEST message rather than SOLICIT if the
non-zero status code was encountered in response to a renew.
Original issue reported on code.google.com by jmatts...@dius.com.au on 9 Sep 2011 at 5:01
Original issue reported on code.google.com by
jmatts...@dius.com.au
on 9 Sep 2011 at 5:01Attachments: