On early BSD systems, network interfaces were static objects created
at kernel compile time. Today the situation has changed dramatically.
PCCard, USB, and other removable buses allow hardware interfaces to
arrive and depart at runtime. Pseudo-device cloning also allows
pseudo-devices to be created dynamically. Additionally, in FreeBSD
and DragonFly, interfaces can be renamed by the administrator. With
these changes, interfaces are now dynamic objects which may appear,
change, or disappear at any time. This dynamism invalidates a number of
assumptions that have been made, in the kernel, in external programs,
and even in major standards such as SNMP. This paper explores the
history of the transition of network interfaces from static to dynamic.
Issues raised by this change are discussed and possible solutions