git: cb808de400c7 - main - rc.conf.5: modernise network_interfaces

From: Warner Losh <imp_at_FreeBSD.org>
Date: Sat, 04 May 2024 16:45:49 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=cb808de400c798302177ea2b8ef6d1c7870baf57

commit cb808de400c798302177ea2b8ef6d1c7870baf57
Author:     Lexi Winter <lexi@le-Fay.ORG>
AuthorDate: 2024-05-04 16:42:40 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-05-04 16:43:22 +0000

    rc.conf.5: modernise network_interfaces
    
    It's not 1996 anymore, and we use CIDR nowadays.  Update the various
    ifconfig_ examples to use CIDR notation instead of netmasks, and also
    add an example of a basic ifconfig_ entry that most users will be
    interested in.
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1217
---
 share/man/man5/rc.conf.5 | 57 +++++++++++++++++++++++++++++++-----------------
 1 file changed, 37 insertions(+), 20 deletions(-)

diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5
index ad84bcbd576c..91da91691756 100644
--- a/share/man/man5/rc.conf.5
+++ b/share/man/man5/rc.conf.5
@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd November 13, 2023
+.Dd May 4, 2024
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -1420,13 +1420,18 @@ variables as described below.
 .Pp
 An
 .Va ifconfig_ Ns Aq Ar interface
-variable is also assumed to exist for each value of
+variable is assumed to exist for each value of
 .Ar interface .
 When an interface name contains any of the characters
 .Dq Li .-/+
 they are translated to
 .Dq Li _
 before lookup.
+For example, the interface
+.Va em0.102
+would be configured using the variable
+.Va ifconfig_em0_102 .
+.Pp
 The variable can contain arguments to
 .Xr ifconfig 8 ,
 as well as special case-insensitive keywords described below.
@@ -1434,6 +1439,18 @@ Such keywords are removed before passing the value to
 .Xr ifconfig 8
 while the order of the other arguments is preserved.
 .Pp
+For example, to assign the IPv4 address 192.0.2.1/24 to the interface em0:
+.Bd -literal
+ifconfig_em0="inet 192.0.2.1/24 up"
+.Ed
+.Pp
+If the variable
+.Va ifconfig_ Ns Ao Ar interface Ac Ns Pa _ipv6
+is set, then
+.Va ifconfig_ Ns Aq Ar interface
+does not need to be set unless an IPv4 address should also be assigned to
+the interface.
+.Pp
 It is possible to add IP alias entries using
 .Xr ifconfig 8
 syntax with the address family keyword such as
@@ -1442,8 +1459,8 @@ Assuming that the interface in question was
 .Li em0 ,
 it might look something like this:
 .Bd -literal
-ifconfig_em0_alias0="inet 127.0.0.253 netmask 0xffffffff"
-ifconfig_em0_alias1="inet 127.0.0.254 netmask 0xffffffff"
+ifconfig_em0_alias0="inet 127.0.0.253/32"
+ifconfig_em0_alias1="inet 127.0.0.254/32"
 .Ed
 .Pp
 It also possible to configure multiple IP addresses in Classless
@@ -1472,12 +1489,12 @@ netif_ipexpand_max="4096"
 .Pp
 In the case of
 .Li 192.0.2.5-23/24 ,
-the address 192.0.2.5 will be configured with the
-netmask /24 and the addresses 192.0.2.6 to 192.0.2.23 with
-the non-conflicting netmask /32 as explained in the
+the address 192.0.2.5 will be configured with the prefix length /24 and the
+addresses 192.0.2.6 to 192.0.2.23 with the non-conflicting prefix length /32 as
+explained in the
 .Xr ifconfig 8
 alias section.
-Note that this special netmask handling is only for
+Note that this special CIDR handling is only for
 .Li inet ,
 not for the other address families such as
 .Li inet6 .
@@ -1509,10 +1526,10 @@ its contents are passed to
 Execution stops at the first unsuccessful access, so if
 something like this is present:
 .Bd -literal
-ifconfig_em0_alias0="inet 127.0.0.251 netmask 0xffffffff"
-ifconfig_em0_alias1="inet 127.0.0.252 netmask 0xffffffff"
-ifconfig_em0_alias2="inet 127.0.0.253 netmask 0xffffffff"
-ifconfig_em0_alias4="inet 127.0.0.254 netmask 0xffffffff"
+ifconfig_em0_alias0="inet 127.0.0.251/32"
+ifconfig_em0_alias1="inet 127.0.0.252/32"
+ifconfig_em0_alias2="inet 127.0.0.253/32"
+ifconfig_em0_alias4="inet 127.0.0.254/32"
 .Ed
 .Pp
 Then note that alias4 would
@@ -1529,13 +1546,13 @@ variable, which has the same functionality as
 and can have all of the entries in a variable like the following:
 .Bd -literal
 ifconfig_em0_aliases="\\
-	inet 127.0.0.251 netmask 0xffffffff \\
-	inet 127.0.0.252 netmask 0xffffffff \\
-	inet 127.0.0.253 netmask 0xffffffff \\
-	inet 127.0.0.254 netmask 0xffffffff"
+	inet 127.0.0.251/32 \\
+	inet 127.0.0.252/32 \\
+	inet 127.0.0.253/32 \\
+	inet 127.0.0.254/32"
 .Ed
 .Pp
-It also supports CIDR notation.
+It also supports netmask notation for backward compatibility.
 .Pp
 If the
 .Pa /etc/start_if . Ns Aq Ar interface
@@ -1688,7 +1705,7 @@ variable.
 It is also possible to rename an interface by doing:
 .Bd -literal
 ifconfig_em0_name="net0"
-ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00"
+ifconfig_net0="inet 192.0.2.1/24"
 .Ed
 .It Va ipv6_enable
 .Pq Vt bool
@@ -2045,9 +2062,9 @@ interfaces with:
 .Bd -literal
 gif_interfaces="gif0 gif1"
 gifconfig_gif0="100.64.0.1 100.64.0.2"
-ifconfig_gif0="inet 10.0.0.1 10.0.0.2 netmask 255.255.255.252"
+ifconfig_gif0="inet 10.0.0.1/32 10.0.0.2"
 gifconfig_gif1="inet6 2a00::1 2a01::1"
-ifconfig_gif1="inet 10.1.0.1 10.1.0.2 netmask 255.255.255.252"
+ifconfig_gif1="inet 10.1.0.1/32 10.1.0.2"
 .Ed
 .It Va ppp_enable
 .Pq Vt bool