mos(4) doesn't set IFF_BROADCAST, which prevents hostapd(8) from using it. hostapd tries a SIOCGIFBRDADDR ioctl which fails with EINVAL in netinet/in.c:
case SIOCGIFBRDADDR: if ((ifp->if_flags & IFF_BROADCAST) == 0) return (EINVAL); Index: if_mos.c =================================================================== RCS file: /cvs/src/sys/dev/usb/if_mos.c,v retrieving revision 1.13 diff -u -p -r1.13 if_mos.c --- if_mos.c 25 Jan 2011 20:03:35 -0000 1.13 +++ if_mos.c 20 Feb 2011 21:46:53 -0000 @@ -719,7 +719,7 @@ mos_attach(struct device *parent, struct /* Initialize interface info.*/ ifp = GET_IFP(sc); ifp->if_softc = sc; - ifp->if_flags = IFF_SIMPLEX | IFF_MULTICAST; + ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = mos_ioctl; ifp->if_start = mos_start; ifp->if_watchdog = mos_watchdog;