I'd like to commit something like the following patch to create clonable
interfaces at boot so they can be configured the normal way.  Any one
have comments or suggestions?

-- Brooks

Index: etc/rc.network
===================================================================
RCS file: /usr/cvs/src/etc/rc.network,v
retrieving revision 1.102
diff -u -r1.102 rc.network
--- etc/rc.network      30 Jul 2001 23:12:02 -0000      1.102
+++ etc/rc.network      14 Sep 2001 02:54:15 -0000
@@ -127,6 +127,11 @@
                ;;
        esac
 
+       # Attempt to create cloned interfaces.
+       for ifn in ${cloned_interfaces}; do
+               ifconfig ${ifn} create
+       done
+
        # Special options for sppp(4) interfaces go here.  These need
        # to go _before_ the general ifconfig section, since in the case
        # of hardwired (no link1 flag) but required authentication, you
@@ -151,6 +156,9 @@
        [Aa][Uu][Tt][Oo])
                network_interfaces="`ifconfig -l`"
                ;;
+       *)
+               network_interfaces="${network_interfaces} ${cloned_interfaces}"
+               ;;
        esac
 
        dhcp_interfaces=""
@@ -796,7 +804,8 @@
                                continue
                                ;;
                        *)
-                               ifconfig $i create tunnel ${peers}
+                               ifconfig $i create >/dev/null 2>&1
+                               ifconfig $i tunnel ${peers}
                                ;;
                        esac
                done
Index: etc/defaults/rc.conf
===================================================================
RCS file: /usr/cvs/src/etc/defaults/rc.conf,v
retrieving revision 1.122
diff -u -r1.122 rc.conf
--- etc/defaults/rc.conf        2 Sep 2001 23:34:19 -0000       1.122
+++ etc/defaults/rc.conf        12 Sep 2001 20:54:50 -0000
@@ -85,6 +85,8 @@
 icmp_drop_redirect="NO"                # Set to YES to ignore ICMP REDIRECT packets
 icmp_log_redirect="NO"         # Set to YES to log ICMP REDIRECT packets
 network_interfaces="auto"      # List of network interfaces (or "auto").
+cloned_interfaces=""           # List of cloned network interfaces to create.
+#cloned_interfaces="gif0"      # Restore pre-cloning GENERIC config.
 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.
Index: share/man/man5/rc.conf.5
===================================================================
RCS file: /usr/cvs/src/share/man/man5/rc.conf.5,v
retrieving revision 1.133
diff -u -r1.133 rc.conf.5
--- share/man/man5/rc.conf.5    29 Aug 2001 05:39:06 -0000      1.133
+++ share/man/man5/rc.conf.5    14 Sep 2001 02:45:31 -0000
@@ -598,6 +598,14 @@
 .Bd -literal
 ifconfig_ed0="DHCP"
 .Ed
+.It Va cloned_interfaces
+.Pq Vt str
+Set to the list of clonable network interfaces to create on this host.
+Entries in
+.Va cloned_interfaces
+are automaticly appended to
+.Va network_interfaces
+for configuration.
 .It Va ppp_enable
 .Pq Vt bool
 If set to

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

PGP signature

Reply via email to