[bug #58551] mDNS: incorrect probe timings during rate limiting

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[bug #58551] mDNS: incorrect probe timings during rate limiting

Ashley Duncan
URL:
  <https://savannah.nongnu.org/bugs/?58551>

                 Summary: mDNS: incorrect probe timings during rate limiting
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: jasperv
            Submitted on: Fri 12 Jun 2020 12:07:17 PM CEST
                Category: apps
                Severity: 3 - Normal
              Item Group: Faulty Behaviour
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None
            lwIP version: git head

    _______________________________________________________

Details:

Commit:6302423d mdns: handle tiebreaking loose like conflict, introduces a bug
in the probing part of mDNS.

Most changes in this commit are valid, except the following:

   @@ -2294,8 +2307,13 @@ mdns_probe_and_announce(void* arg)
            mdns->sent_num = 0;
          }
   
   -      sys_timeout(MDNS_PROBE_DELAY_MS, mdns_probe_and_announce, netif);
   -
   +      if (mdns->sent_num && mdns->rate_limit_activated == 1) {
   +        /* delay second probe if rate limiting activated */
   +        sys_timeout(MDNS_PROBE_MAX_CONFLICTS_TIMEOUT,
mdns_probe_and_announce, netif);
   +      }
   +      else {
   +        sys_timeout(MDNS_PROBE_DELAY_MS, mdns_probe_and_announce, netif);
   +      }
          break;
        case MDNS_STATE_ANNOUNCE_WAIT:
        case MDNS_STATE_ANNOUNCING:


This changes the time in between probes to 5 seconds in case of rate
limiting.
This is against RFC, the RFC only specifies to wait 5 seconds before
restarting.
RFC6762 section 8.1 Probing:

   If fifteen conflicts occur within any ten-second period, then the
   host MUST wait at least five seconds before each successive
   additional probe attempt.  This is to help ensure that, in the event
   of software bugs or other unanticipated problems, errant hosts do not
   flood the network with a continuous stream of multicast traffic.  For
   very simple devices, a valid way to comply with this requirement is
   to always wait five seconds after any failed probe attempt before
   trying again.

So it states that we should wait 5 seconds before we try probing again.
It doesn't specify that we need to change our probing timings from 250 ms to 5
seconds.

This particular change should be reverted.
Attached a patch can be found.

Kind regards,
Jasper



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Fri 12 Jun 2020 12:07:17 PM CEST  Name:
0001-mDNS-fix-bug-with-probe-timing-during-rate-limiting.patch  Size: 1KiB  
By: jasperv

<http://savannah.nongnu.org/bugs/download.php?file_id=49246>

    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?58551>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/


_______________________________________________
lwip-devel mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/lwip-devel