First off: I've never used mpe(4), mpw(4) or mpip(4); this occured to
me while looking at ifconfig.{c,8} in general.
1. bug: ifconfig(8) forgets to document both `-tunneldomain' and
`-mplslabel' in the first place, diff below fixes that.
2. bug: mpe(4) supports SIOCDELLABEL it but the driver manual's list
does not list it as such; instead of adding it, remove the rather
useless list completely (neither of the other two drivers lists ioctls
as most manuals do not). diff below fixes that.
3. bug?: mpe(4) does not delete the label upon SIOCDELLABEL:
# ifconfig mpe
mpe: no such interface
# ifconfig mpe0 create
# ifconfig mpe0
mpe0: flags=10<POINTOPOINT> mtu 1500
index 39 priority 0 llprio 3
encap: txprio 0 rxprio packet
mpls: label (unset)
groups: mpe
# ifconfig mpe0 mplslabel 42
# ifconfig mpe0 -mplslabel
# ifconfig mpe0 | grep label
mpls: label 42
dlg added SIOCDELLABEL to /sys/net/if_mpe.c "recently":
revision 1.87
date: 2019/03/18 03:21:20; author: dlg; state: Exp; lines: +14 -1;
ommitid: RJvZtoWufUaT5EUw;
tweak SIOCGETLABEL and add SIOCDELLABEL
makes mpe consistent with mpw and mpip
4. bug?: mpip(4) does implement SIOCDELLABEL at all (contrary to what
the commit message implies, to me at least):
# ifconfig mpw
mpw: no such interface
# ifconfig mpw0 create
# ifconfig mpw0 mplslabel 43
# ifconfig mpw0
mpw0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr fe:e1:ba:d9:f1:9f
index 41 priority 0 llprio 3
encap: txprio 0 rxprio packet
mpls: label 43 pwe3 remote label (unset) nocw nofat
groups: mpw
# ifconfig mpw0 -mplslabel
ifconfig: -mplslabel: Inappropriate ioctl for device
mpip(4) is the only driver amongst those three that properly sets *and*
deletes a label.
Feedback/OK/Objections to the pure manual updates?
I'm happy to help with the rest if those turn out to be code bugs.
Index: share/man/man4/mpe.4
===================================================================
RCS file: /cvs/src/share/man/man4/mpe.4,v
retrieving revision 1.10
diff -u -p -r1.10 mpe.4
--- share/man/man4/mpe.4 12 Jan 2018 04:36:44 -0000 1.10
+++ share/man/man4/mpe.4 13 Mar 2021 22:12:26 -0000
@@ -39,18 +39,6 @@ configuration file for
The interface itself can be configured with
.Xr ifconfig 8 ;
see its manual page for more information.
-.Pp
-.Nm
-interfaces support the following unique ioctls:
-.Bl -tag -width "SIOCSETLABEL" -offset 3n
-.It SIOCSETLABEL
-Encapsulate packets entering this interface in MPLS using
-the specified label.
-.It SIOCGETLABEL
-Report the label that packets entering this interface will be
-tagged with.
-.El
-.\"
.Sh SEE ALSO
.Xr sysctl 2 ,
.Xr hostname.if 5 ,
Index: sbin/ifconfig/ifconfig.8
===================================================================
RCS file: /cvs/src/sbin/ifconfig/ifconfig.8,v
retrieving revision 1.369
diff -u -p -r1.369 ifconfig.8
--- sbin/ifconfig/ifconfig.8 11 Mar 2021 21:07:16 -0000 1.369
+++ sbin/ifconfig/ifconfig.8 13 Mar 2021 22:11:14 -0000
@@ -1433,11 +1433,11 @@ is omitted, it is decreased by 1.
.Bk -words
.Nm ifconfig
.Ar mpls-interface
-.Op Cm mplslabel Ar mpls-label
+.Op Oo Fl Oc Ns Cm mplslabel Ar mpls-label
.Op Oo Fl Oc Ns Cm pwecw
.Op Oo Fl Oc Ns Cm pwefat
.Op Cm pweneighbor Ar mpls-label Ar neighbor
-.Op Cm tunneldomain Ar rdomain
+.Op Oo Fl Oc Ns Cm tunneldomain Ar rdomain
.Ek
.nr nS 0
.Pp
@@ -1455,12 +1455,16 @@ MPLS packets sent to this label on the l
decapsulated for input.
An MPLS label is a 20-bit number.
Labels 0 to 15 inclusive are reserved labels and cannot be used.
+.It Cm -mplslabel
+Unset the local MPLS label.
.It Cm tunneldomain Ar rdomain
-Use the route domain
+Use the routing domain
.Ar rdomain
for MPLS transit.
The MPLS encapsulated traffic does not need to terminate in the same
routing domain as the interface itself.
+.It Cm -tunneldomain
+Use the default routing domain 0 for MPLS transit.
.El
.Pp
The following options are available for the