anandmudgerikar / tinyos-main

Automatically exported from code.google.com/p/tinyos-main
0 stars 0 forks source link

[patch] Dhcp6Client fails to find Status options #64

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
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

Attachments:

GoogleCodeExporter commented 8 years ago

Original comment by philip.l...@gmail.com on 12 Sep 2011 at 12:38

GoogleCodeExporter commented 8 years ago
Accepted; applied in r5741

Original comment by sdh...@gmail.com on 16 Sep 2011 at 1:44