On a Raspberry Pi 4 running a recent snapshot, I found that the built-in bwfm interface would fail to receive non-broadcast traffic after changing the MAC address with ifconfig (for example by having "lladdr random" in hostname.bwfm0).
It looks like this was happening because the new MAC address was set in the kernel network stack but the bwfm driver wasn't doing anything to write the address to the device. The below diff fixes it for me. I don't have any other bwfm devices to test. diff /usr/src commit - 6c24eb55e021991196003dc7f0a643e806b14295 path + /usr/src blob - dfa7a1973d2ab6be7e4b2fbd869b38c441d4eae0 file + sys/dev/ic/bwfm.c --- sys/dev/ic/bwfm.c +++ sys/dev/ic/bwfm.c @@ -827,6 +827,17 @@ bwfm_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data error = 0; } break; + case SIOCSIFLLADDR: + ifr = (struct ifreq *)data; + error = 0; + if (bwfm_fwvar_var_set_data(sc, "cur_etheraddr", + ifr->ifr_addr.sa_data, ETHER_ADDR_LEN)) { + error = EIO; + } else { + memcpy(ic->ic_myaddr, ifr->ifr_addr.sa_data, + sizeof(ic->ic_myaddr)); + } + break; case SIOCGIFMEDIA: case SIOCG80211NODE: case SIOCG80211ALLNODES: