there seems to be more magic than supposed to within FreeBSD ...
I just wanted to configure a new VLAN on one of my FreeBSD gateways. So, to not forget I entered the configuration for it in /etc/rc.conf:
cloned_interfaces="... vlan42"
ifconfig_vlan42="inet 1.1.1.1 netmask 255.255.255.224 vlan 42 vlandev fxp0"
after this I started to set up and configure the new vlan-interface manually:
ifconfig vlan42 create
a quick check with
ifconfig if the interface was created the right way and I was very surprised: not only the interface was created but also set up with its complete configuration, the ip, vlan-id and assignment to the physical interface. These configuration details are
only available within rc.conf and normally ifconfig should not refer to this file. Additional tests without the configuration details for this interface in rc.conf are showing the expected results, and every time the config-details are present in rc.conf they where used during an
ifconfig create call.
Also I do not find any reference to this behaviour in the sourcecode of ifconfig and also a ktrace logging delivers only one ioctl call for creating the new interface. It stays to be mysterioous... at least at the moment.
Oh, not to forget: the test where done with FreeBSD 6.2-p3.