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

Reply via email to