<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><DIV>I am trying to figure out the behaviour of the DHCP server when replying to unicast DHCP Requests from clients at remote subnets (RENEWING state). At that moment, no DHCP Relay is being used.</DIV>
<DIV>I have looked for the subject in previous posts related to this topic and in the source code too, but I have not found it coherent.</DIV>
<DIV> </DIV>
<DIV>Let me copy a comment from the code at dhcprequest( ):</DIV>
<DIV> </DIV>
<DIV>    If ciaddr was specified and Requested Address was not, then<BR>    we really only know for sure what network a packet came from<BR>    if it came through a BOOTP gateway - if it came through an<BR>    IP router, we'll just have to assume that it's cool.<BR></DIV>
<DIV>The comment continues, but I understand that this paragraph is not contradicted.</DIV>
<DIV> </DIV>
<DIV>It is said that the ciaddr will be assumed to be ok if there is no giaddr (it comes from an IP router). However, after the comments it is required that  "packet -> shared_network"  is not null to answer with a DHCPACK. I am not using advanced options such as link-selection or subnet-selection, and giaddr is empty, so in locate_network( ) it is assigned (when possible): </DIV>
<DIV>packet -> shared_network = packet -> interface -> shared_network</DIV>
<DIV> </DIV>
<DIV>The interface at which my server is receiving the DHCPREQUEST does not belong to any shared_network, so the unicast packet is not being answered with the DHCPACK I am waiting and the client has to enter REBINDING state to extend its lease.</DIV>
<DIV> </DIV>
<DIV>Am I missing something?</DIV>
<DIV> </DIV>
<DIV>Regards,</DIV>
<DIV>Paul</DIV></td></tr></table>