Add support for vlans to rc.d startup scripts
John Baldwin
jhb at freebsd.org
Tue Dec 29 18:54:41 UTC 2009
This patch takes the work done for VAP devices for wireless and extends it to
support adding VLAN interfaces to network devices more easily. A list of vlan
interfaces is specified via 'vlans_<foo>'. If the vlan name is just a number,
then that number is taken to be a tag and a '<foo>.<tag>' vlan interface
device is created. Otherwise, a 'create_args_<vlan>' variable must be defined
that includes the 'vlan <tag>' in order for the vlan to be successfully
created. If one had the following lines in rc.conf for example:
vlans_foo="101 bar vlan100"
create_args_bar="vlan 102"
create_args_vlan100="vlan 104"
Then this would result in the following vlan devices being created during
boot:
foo.101: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:24:81:40:e3:ef
media: Ethernet autoselect
vlan: 101 parent interface: foo
bar: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:24:81:40:e3:ef
media: Ethernet autoselect
vlan: 102 parent interface: foo
vlan100: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:24:81:40:e3:ef
media: Ethernet autoselect
vlan: 104 parent interface: foo
If one uses 'sh /etc/rc.d/netif start foo' then the vlan devices will be
created, and if one does 'sh /etc/rc.d/netif stop foo' then the vlan devices
will be destroyed.
One downside is that similar to the wlan interfaces, the ifconfig output for
these devices is not displayed as part of the normal boot messages. Doing so
would require some way for ifn_start and ifn_stop to communicate their list of
child interfaces along with create/fail status for each back to the main loop
in /etc/rc.d/netif.
The patch is at http://www.FreeBSD.org/~jhb/patches/vlans_head.patch and is
included below.
--
John Baldwin
More information about the freebsd-net
mailing list