Some pseudo interfaces have missing `IFXF_CLONED' flag. Diff below fixes
this.
Index: sys/net/if_ppp.c
===================================================================
RCS file: /cvs/src/sys/net/if_ppp.c,v
retrieving revision 1.114
diff -u -p -r1.114 if_ppp.c
--- sys/net/if_ppp.c 24 Jun 2020 22:03:42 -0000 1.114
+++ sys/net/if_ppp.c 10 Jul 2020 11:57:39 -0000
@@ -220,6 +220,7 @@ ppp_clone_create(struct if_clone *ifc, i
sc->sc_if.if_output = pppoutput;
sc->sc_if.if_start = ppp_ifstart;
sc->sc_if.if_rtrequest = p2p_rtrequest;
+ sc->sc_if.if_xflags = IFXF_CLONED;
IFQ_SET_MAXLEN(&sc->sc_if.if_snd, IFQ_MAXLEN);
mq_init(&sc->sc_inq, IFQ_MAXLEN, IPL_NET);
ppp_pkt_list_init(&sc->sc_rawq, IFQ_MAXLEN);
Index: sys/net/if_pppoe.c
===================================================================
RCS file: /cvs/src/sys/net/if_pppoe.c,v
retrieving revision 1.68
diff -u -p -r1.68 if_pppoe.c
--- sys/net/if_pppoe.c 16 Jun 2019 00:10:37 -0000 1.68
+++ sys/net/if_pppoe.c 10 Jul 2020 11:57:39 -0000
@@ -210,6 +210,7 @@ pppoe_clone_create(struct if_clone *ifc,
sc->sc_sppp.pp_if.if_ioctl = pppoe_ioctl;
sc->sc_sppp.pp_if.if_start = pppoe_start;
sc->sc_sppp.pp_if.if_rtrequest = p2p_rtrequest;
+ sc->sc_sppp.pp_if.if_xflags = IFXF_CLONED;
sc->sc_sppp.pp_tls = pppoe_tls;
sc->sc_sppp.pp_tlf = pppoe_tlf;
IFQ_SET_MAXLEN(&sc->sc_sppp.pp_if.if_snd, IFQ_MAXLEN);
Index: sys/net/if_switch.c
===================================================================
RCS file: /cvs/src/sys/net/if_switch.c,v
retrieving revision 1.30
diff -u -p -r1.30 if_switch.c
--- sys/net/if_switch.c 6 Nov 2019 03:51:26 -0000 1.30
+++ sys/net/if_switch.c 10 Jul 2020 11:57:39 -0000
@@ -159,6 +159,7 @@ switch_clone_create(struct if_clone *ifc
ifp->if_start = NULL;
ifp->if_type = IFT_BRIDGE;
ifp->if_hdrlen = ETHER_HDR_LEN;
+ ifp->if_xflags = IFXF_CLONED;
TAILQ_INIT(&sc->sc_swpo_list);
sc->sc_unit = unit;
Index: sys/net/if_trunk.c
===================================================================
RCS file: /cvs/src/sys/net/if_trunk.c,v
retrieving revision 1.146
diff -u -p -r1.146 if_trunk.c
--- sys/net/if_trunk.c 17 Jun 2020 06:45:22 -0000 1.146
+++ sys/net/if_trunk.c 10 Jul 2020 11:57:39 -0000
@@ -184,6 +184,7 @@ trunk_clone_create(struct if_clone *ifc,
ifp->if_ioctl = trunk_ioctl;
ifp->if_flags = IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST;
ifp->if_capabilities = trunk_capabilities(tr);
+ ifp->if_xflags = IFXF_CLONED;
snprintf(ifp->if_xname, sizeof(ifp->if_xname), "%s%d",
ifc->ifc_name, unit);
Index: sys/net/if_tun.c
===================================================================
RCS file: /cvs/src/sys/net/if_tun.c,v
retrieving revision 1.222
diff -u -p -r1.222 if_tun.c
--- sys/net/if_tun.c 13 May 2020 00:48:06 -0000 1.222
+++ sys/net/if_tun.c 10 Jul 2020 11:57:39 -0000
@@ -236,6 +236,7 @@ tun_create(struct if_clone *ifc, int uni
ifp->if_hardmtu = TUNMRU;
ifp->if_link_state = LINK_STATE_DOWN;
IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
+ ifp->if_xflags = IFXF_CLONED;
if_counters_alloc(ifp);
Index: sys/net/if_vether.c
===================================================================
RCS file: /cvs/src/sys/net/if_vether.c,v
retrieving revision 1.30
diff -u -p -r1.30 if_vether.c
--- sys/net/if_vether.c 9 Jan 2018 15:24:24 -0000 1.30
+++ sys/net/if_vether.c 10 Jul 2020 11:57:39 -0000
@@ -88,6 +88,7 @@ vether_clone_create(struct if_clone *ifc
ifp->if_hardmtu = ETHER_MAX_HARDMTU_LEN;
ifp->if_capabilities = IFCAP_VLAN_MTU;
+ ifp->if_xflags = IFXF_CLONED;
ifmedia_init(&sc->sc_media, 0, vether_media_change,
vether_media_status);
Index: sys/net/if_vxlan.c
===================================================================
RCS file: /cvs/src/sys/net/if_vxlan.c,v
retrieving revision 1.77
diff -u -p -r1.77 if_vxlan.c
--- sys/net/if_vxlan.c 12 Apr 2020 11:56:52 -0000 1.77
+++ sys/net/if_vxlan.c 10 Jul 2020 11:57:39 -0000
@@ -155,6 +155,7 @@ vxlan_clone_create(struct if_clone *ifc,
ifp->if_hardmtu = ETHER_MAX_HARDMTU_LEN;
ifp->if_capabilities = IFCAP_VLAN_MTU;
+ ifp->if_xflags = IFXF_CLONED;
ifmedia_init(&sc->sc_media, 0, vxlan_media_change,
vxlan_media_status);