((struct arpcom *)ifp)->ac_enaddr[5] = (u_char)arc4random();
((struct arpcom *)ifp)->ac_enaddr[5] = (u_char)random() & 0xff;
ether_ifattach(ifp)	register struct ifnet *ifp;{	register struct ifaddr *ifa;	register struct sockaddr_dl *sdl;	/*	 * Any interface which provides a MAC address which is obviously	 * invalid gets whacked, so that users will notice.	 */	if (ETHER_IS_MULTICAST(((struct arpcom *)ifp)->ac_enaddr)) {		((struct arpcom *)ifp)->ac_enaddr[0] = 0x00;		((struct arpcom *)ifp)->ac_enaddr[1] = 0xfe;		((struct arpcom *)ifp)->ac_enaddr[2] = 0xe1;		((struct arpcom *)ifp)->ac_enaddr[3] = 0xba;		((struct arpcom *)ifp)->ac_enaddr[4] = 0xd0;		((struct arpcom *)ifp)->ac_enaddr[5] = (u_char)arc4random();	}			ifp->if_type = IFT_ETHER;	ifp->if_addrlen = 6;	ifp->if_hdrlen = 14;	ifp->if_mtu = ETHERMTU;	ifp->if_output = ether_output;	TAILQ_FOREACH(ifa, &ifp->if_addrlist, ifa_list) {		if ((sdl = (struct sockaddr_dl *)ifa->ifa_addr) &&		    sdl->sdl_family == AF_LINK) {			sdl->sdl_type = IFT_ETHER;			sdl->sdl_alen = ifp->if_addrlen;			bcopy((caddr_t)((struct arpcom *)ifp)->ac_enaddr,			    LLADDR(sdl), ifp->if_addrlen);			break;		}	}	LIST_INIT(&((struct arpcom *)ifp)->ac_multiaddrs);#if NBPFILTER > 0	bpfattach(&ifp->if_bpf, ifp, DLT_EN10MB, sizeof(struct ether_header));#endif}