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