From 1f8197cf4d1485f4ae8a7381c0a286b47b61caf6 Mon Sep 17 00:00:00 2001 From: Pawel Jakub Dawidek Date: Sat, 30 Oct 2004 13:44:06 +0000 Subject: [PATCH] Allow to change interfaces name on boot time. Now, one should be able to put something like this into /etc/rc.conf: ifconfig_fxp0_name="net0" ifconfig_net0="inet 10.0.0.1/16" Reviewed by: green --- etc/defaults/rc.conf | 1 + etc/network.subr | 21 +++++++++++++++++++++ etc/rc.d/netif | 3 +++ share/man/man5/rc.conf.5 | 6 ++++++ 4 files changed, 31 insertions(+) diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf index 29ba08c64912..0916c3498a0d 100644 --- a/etc/defaults/rc.conf +++ b/etc/defaults/rc.conf @@ -129,6 +129,7 @@ cloned_interfaces="" # List of cloned network interfaces to create. 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. +#ifconfig_fxp0_name="net0" # Change interface name from fxp0 to net0. # # If you have any sppp(4) interfaces above, you might also want to set # the following parameters. Refer to spppcontrol(8) for their meaning. diff --git a/etc/network.subr b/etc/network.subr index b413e014331d..090f847374e7 100644 --- a/etc/network.subr +++ b/etc/network.subr @@ -250,6 +250,23 @@ ipx_down() return $_ret } +# ifnet_rename +# Rename all requested interfaces. +# +ifnet_rename() +{ + + _ifn_list="`list_net_interfaces all`" + [ -z "$_ifn_list" ] && return 0 + for _if in ${_ifn_list} ; do + eval _ifname=\$ifconfig_${_if}_name + if [ ! -z "$_ifname" ]; then + ifconfig $_if name $_ifname + fi + done + return 0 +} + # # list_net_interfaces type # List all network interfaces. The type of interface returned @@ -257,6 +274,7 @@ ipx_down() # argument can be any of the following: # nodhcp - all interfaces, excluding DHCP configured interfaces # dhcp - list only DHCP configured interfaces +# all - all interfaces # If no argument is specified all network interfaces are output. # Note that the list will include cloned interfaces if applicable. # Cloned interfaces must already exist to have a chance to appear @@ -325,6 +343,9 @@ list_net_interfaces() dhcp) echo $_dhcplist ;; + all) + echo $_nodhcplist $_dhcplist + ;; esac return 0 } diff --git a/etc/rc.d/netif b/etc/rc.d/netif index 029076c1dd96..58a9476b3a83 100644 --- a/etc/rc.d/netif +++ b/etc/rc.d/netif @@ -56,6 +56,9 @@ network_start() # Create IPv6<-->IPv4 tunnels gif_up + + # Rename interfaces. + ifnet_rename fi # Configure the interface(s). diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 index 1db6f84d8f68..ca5ffa3aeede 100644 --- a/share/man/man5/rc.conf.5 +++ b/share/man/man5/rc.conf.5 @@ -928,6 +928,12 @@ it is possible to use something like: .Bd -literal ifconfig_ed0="DHCP" .Ed +.Pp +It is also possible to rename interface by doing: +.Bd -literal +ifconfig_ed0_name="net0" +ifconfig_net0="inet 10.0.0.1 netmask 0xffff0000" +.Ed .It Va ipv6_network_interfaces .Pq Vt str This is the IPv6 equivalent of