Hi,
On WAN side of a router we send a DHCPv6 Reconfigure message with Type set to Renew, but the router with OpenWRT is not responding to Reconfigure message and is sending a Renew message only when T1 time expired (60 sec).
You can observe the results on following log:
Mon Jan 30 13:10:53 2017 daemon.notice odhcp6c[970]: (re)starting transaction on eth0
Mon Jan 30 13:10:53 2017 daemon.notice odhcp6c[970]: Starting SOLICIT transaction (timeout 4294967295s, max rc 0)
Mon Jan 30 13:10:55 2017 daemon.notice odhcp6c[1024]: (re)starting transaction on eth0
Mon Jan 30 13:10:55 2017 daemon.notice odhcp6c[1024]: Starting SOLICIT transaction (timeout 4294967295s, max rc 0)
Mon Jan 30 13:10:56 2017 daemon.notice odhcp6c[1024]: Got a valid reply after 1444ms
Mon Jan 30 13:10:56 2017 daemon.notice odhcp6c[1024]: Starting REQUEST transaction (timeout 4294967295s, max rc 10)
Mon Jan 30 13:10:56 2017 daemon.notice odhcp6c[1024]: Send REQUEST message (elapsed 0ms, rc 0)
Mon Jan 30 13:10:57 2017 daemon.notice odhcp6c[1024]: Send REQUEST message (elapsed 909ms, rc 1)
Mon Jan 30 13:10:58 2017 daemon.notice odhcp6c[1024]: Got a valid reply after 1325ms
Mon Jan 30 13:10:58 2017 daemon.notice odhcp6c[1024]: entering stateful-mode on eth0
Mon Jan 30 13:10:58 2017 daemon.notice odhcp6c[1024]: Starting <POLL> transaction (timeout 60s, max rc 0)
Mon Jan 30 13:11:58 2017 daemon.notice odhcp6c[1024]: Starting RENEW transaction (timeout 20s, max rc 0)
Mon Jan 30 13:11:58 2017 daemon.notice odhcp6c[1024]: Send RENEW message (elapsed 0ms, rc 0)
Mon Jan 30 13:12:18 2017 daemon.notice odhcp6c[1024]: Send RENEW message (elapsed 20000ms, rc 2)
Mon Jan 30 13:12:18 2017 daemon.notice odhcp6c[1024]: Starting REBIND transaction (timeout 120s, max rc 0)
Mon Jan 30 13:12:18 2017 daemon.notice odhcp6c[1024]: Send REBIND message (elapsed 0ms, rc 0)
Mon Jan 30 13:12:28 2017 daemon.notice odhcp6c[1024]: Send REBIND message (elapsed 10490ms, rc 1)
We took a look on odhcp6c.c file, on line 354, has the method:
int res = dhcpv6_poll_reconfigure();
this method is defined in dhcpv6.c file:
int dhcpv6_poll_reconfigure(void)
{
int ret = dhcpv6_request(DHCPV6_MSG_UNKNOWN);
if (ret != -1)
ret = dhcpv6_request(ret);
return ret;
}
We think that the method dhcpv6_request is suppost to return DHCPV6_MSG_RENEW on first call and then call it again a 2nd time to send a Renew message, but the method dhcpv6_request does not responding to reconfigure message.
Please help!
Regards.