The following is a patch that adds support for vlan creation and destruction within rcNG. Using the patch it's possible, for example, to create a vlan, `vlan0' with the following directives in rc.conf: vlan_interfaces="vlan0" ifconfig_vlan0="DHCP" ifconfig_vlan0_vlan_dev="xl0" ifconfig_vlan0_vlan_tag="2" Is this patch of general interest? Should I submit a PR? The patch (also attached): --- etc/network.subr.orig Sat Apr 17 16:13:28 2004 +++ etc/network.subr Sat Apr 17 16:03:04 2004 _at__at_ -250,6 +250,47 _at__at_ return $_ret } +# Create vlan interfaces. +# +vlan_up() +{ + _prefix= + _list= + for ifn in ${vlan_interfaces}; do + ifconfig ${ifn} create + if [ $? -eq 0 ]; then + _list="${_list}${_prefix}${ifn}" + [ -z "$_prefix" ] && _prefix=' ' + eval local _v_dev=\$ifconfig_${ifn}_vlan_dev + eval local _v_tag=\$ifconfig_${ifn}_vlan_tag + if [ -n "${_v_dev}" -a -n "${_v_tag}" ]; then + ifconfig ${ifn} vlan ${_v_tag} vlandev ${_v_dev}+ if [ $? -ne 0 ]; then + debug "Vlan: cannot set vlan dev/tag." + fi + fi + fi + done + debug "Vlan created: ${_list}" +} + +# Destroy vlan interfaces. Destroyed interfaces are echoed +# to standard output. +# +vlan_down() +{ + _prefix= + _list= + for ifn in ${vlan_interfaces}; do + ifconfig ${ifn} destroy + if [ $? -eq 0 ]; then + _list="${_list}${_prefix}${ifn}" + [ -z "$_prefix" ] && _prefix=' ' + fi + done + debug "Destroyed vlans: ${_list}" +} + # # list_net_interfaces type # List all network interfaces. The type of interface returned --- etc/rc.d/netif.orig Sat Apr 17 15:57:48 2004 +++ etc/rc.d/netif Sat Apr 17 15:57:40 2004 _at__at_ -50,6 +50,9 _at__at_ # Create cloned interfaces clone_up + # Create cloned interfaces + vlan_up + # Create IPv6<-->IPv4 tunnels gif_up fi --- etc/defaults/rc.conf.orig Sat Apr 17 16:06:53 2004 +++ etc/defaults/rc.conf Sat Apr 17 16:11:49 2004 _at__at_ -108,6 +108,10 _at__at_ network_interfaces="auto" # List of network interfaces (or "auto"). cloned_interfaces="" # List of cloned network interfaces to create. #cloned_interfaces="gif0 gif1 gif2 gif3" # Pre-cloning GENERIC config. +vlan_interfaces="" # List of vlan network interfaces to create. +#vlan_interfaces="vlan0" # Sample vlan entry. +#ifconfig_vlan0_vlan_dev="" # Physical interface associated with this vlan. +#ifconfig_vlan0_vlan_tag="" # Vlan tag associated with this vlan. ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. #ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. #ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry. -- Adam C. Migus -- http://people.migus.org/~adam/
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:51 UTC