<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>I've encountered this issue as well, I ended up working around it
      by creating bridges that have those vlans as their bridge port.
      This way the bridge stays up to dnsmasq even when I take one of
      these vlans down.<br>
    </p>
    <div class="moz-cite-prefix">On 8/4/23 09:24, shashikumar Shashi
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAK-w1hAXcg_0Fo9LLY2gAFq68Tzr4GdvaQyEts15UQ+sU2aNzg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hi,
        <div><br>
        </div>
        <div>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">Observing
              that dnsmasq (version 2.80) is offering DHCP IP to the
              client from a vlan pool
              which is in DOWN state.</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">E.g. If
              there are 3 dhcp pools</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">vlan9
              (State UP) : Range: 192.168.9.1-192.168.9.254</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">vlan19
              (State UP): Range: 192.168.19.1-192.168.19.254</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">vlan99
              (State DOWN): Range: 192.168.99.1-192.168.99.254</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">1) Client
              on vlan9 gets IP from vlan9 pool</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">2) Client
              moves to vlan19, releases IP</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">3) Client
              on vlan19 requests IP --> dnsmasq offers IP
              192.168.99.xx from vlan99 pool
              (incorrect pool), instead of vlan19 pool.</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">If the
              vlan99 is in UP state, then dnsmasq offers the IP from the
              vlan19 pool (the
              correct pool).</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">If dnsmasq
              is rebuilt by commenting out the following code block from
              dhcp_reply function,
              then in the above case, dnsmasq offers IP from the vlan19
              pool (the correct
              pool) even if vlan99 is DOWN.</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">code block
              --></span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">/* guess
              the netmask for relayed networks */</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                        if (!(context_tmp->flags &
              CONTEXT_NETMASK) && context_tmp->netmask.s_addr
              == 0)</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                          {</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                            if
              (IN_CLASSA(ntohl(context_tmp->start.s_addr))
              && IN_CLASSA(ntohl(context_tmp->end.s_addr)))</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                              netmask.s_addr =
              htonl(0xff000000);</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                            else if
              (IN_CLASSB(ntohl(context_tmp->start.s_addr)) &&
              IN_CLASSB(ntohl(context_tmp->end.s_addr)))</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                              netmask.s_addr =
              htonl(0xffff0000);</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                            else if
              (IN_CLASSC(ntohl(context_tmp->start.s_addr)) &&
              IN_CLASSC(ntohl(context_tmp->end.s_addr)))</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                              netmask.s_addr =
              htonl(0xffffff00); </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> 
                          }</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"> </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">Has anyone
              come across such an issue?</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"><br>
            </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN"><br>
            </span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">Thanks,</span></p>
          <p class="MsoNormal"
            style="margin:0in;font-size:11pt;font-family:Calibri,sans-serif"><span
              lang="EN-IN">Shashi</span></p>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Dnsmasq-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk">Dnsmasq-discuss@lists.thekelleys.org.uk</a>
<a class="moz-txt-link-freetext" href="https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss">https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss</a>
</pre>
    </blockquote>
  </body>
</html>