From 0a07fe11e53b0acd8f06e38b4bbab7f5c7d90528 Mon Sep 17 00:00:00 2001
From: Our Air Quality <info@ourairquality.org>
Date: Tue, 12 Dec 2017 11:36:40 +1100
Subject: [PATCH] softap: allow output of multicast frames.

Multicast frames were being dropped by ieee80211_output_pbuf. It appears to look
up the destination address using cnx_node_search which only has an entry for the
broadcast address (all ones). This patch modifies cnx_node_search to return the
broadcast cnx_node for the multicast addresses too.

This is needed to support services such as mDNS on the softap interface.
---
 open_esplibs/libnet80211/wl_cnx.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/open_esplibs/libnet80211/wl_cnx.c b/open_esplibs/libnet80211/wl_cnx.c
index 3b49c5d..2d29960 100644
--- a/open_esplibs/libnet80211/wl_cnx.c
+++ b/open_esplibs/libnet80211/wl_cnx.c
@@ -192,6 +192,11 @@ struct sdk_cnx_node *sdk_cnx_node_search(uint8_t mac[6])
 
     struct sdk_cnx_node **cnx_nodes = sdk_g_ic.v.softap_netif_info->cnx_nodes;
 
+    /* Multicast addresses */
+    if (mac[0] & 0x01) {
+        return cnx_nodes[0];
+    }
+
     int i = 0;
     do {
         struct sdk_cnx_node *cnx_node = cnx_nodes[i];