docs: def _ntp_dispatcher(payload):
      """
      Returns the right class for a given NTP packet.
      """
      # By default, calling NTP() will build a NTP packet as defined in RFC 5905
      # (see the code of NTPHeader). Use NTPHeader for extension fields and MAC.
      if payload is None:
          return NTPHeader
      else:
          length = len(payload)
          if length >= _NTP_PACKET_MIN_SIZE:
              first_byte = orb(payload[0])
              # Extract NTP mode
              mode = first_byte & 7
              return {6: NTPControl, 7: NTPPrivate}.get(mode, NTPHeader)
      return conf.raw_layer