ETHER_GEN_ADDR(9)      FreeBSD Kernel Developer's Manual     ETHER_GEN_ADDR(9)

NAME

     ether_gen_addr - generate an arbitrary MAC address for use

SYNOPSIS

     #include <sys/types.h>
     #include <sys/socket.h>
     #include <net/if.h>
     #include <net/if_var.h>
     #include <net/ethernet.h>

     void
     ether_gen_addr(struct ifnet *ifp, struct ether_addr *hwaddr);

DESCRIPTION

     The ether_gen_addr() function generates an arbitrary MAC address for use
     by an ethernet interface that does not have an assigned address.

     By default, ether_gen_addr attempts to generate a stable MAC address
     using the hostid of the jail that the ifp is being added to.  During
     early boot, the hostid may not be set on machines that haven't yet
     populated /etc/hostid, or on machines that do not use loader(8).

     ether_gen_addr can fail to derive a MAC address due to memory allocation
     failure, or because the hostid has not been populated.  In these cases, a
     locally-administered unicast MAC address will be randomly generated and
     returned via the hwaddr parameter.

     If ether_gen_addr succeeds, then it will return a MAC address in the
     FreeBSD Foundation OUI, "58:9c:fc", via the hwaddr parameter.

AUTHORS

     This manual page was written by Kyle Evans <kevans@FreeBSD.org>.

FreeBSD 15.1-STABLE-HBSD         June 1, 2021                ETHER_GEN_ADDR(9)