Page MenuHomeFreeBSD

D59060.id185170.diff
No OneTemporary

D59060.id185170.diff

diff --git a/sbin/ifconfig/Makefile b/sbin/ifconfig/Makefile
--- a/sbin/ifconfig/Makefile
+++ b/sbin/ifconfig/Makefile
@@ -43,6 +43,10 @@
LIBADD+= 80211
.endif
+.if ${MK_USB} != "no"
+SRCS+= ifue.c
+.endif
+
SRCS+= carp.c # SIOC[GS]VH support
SRCS+= ifgroup.c # ...
.if ${MK_PF} != "no"
diff --git a/sbin/ifconfig/ifue.c b/sbin/ifconfig/ifue.c
new file mode 100644
--- /dev/null
+++ b/sbin/ifconfig/ifue.c
@@ -0,0 +1,62 @@
+/*-
+ * Copyright (c) 2026 The FreeBSD Foundation
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * This software was developed by Li-Wen Hsu <lwhsu@FreeBSD.org>
+ * under sponsorship from the FreeBSD Foundation.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sysctl.h>
+
+#include <net/if.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "ifconfig.h"
+
+#define UE_DRIVER_NAME "ue"
+
+static void
+ue_status(if_ctx *ctx)
+{
+ char mibname[32]; /* "net.ue.<unit>.%parent" */
+ char parent[IFNAMSIZ];
+ char *drivername;
+ size_t parentlen;
+ u_int unit;
+ char c;
+
+ /* Use the orig name so it keeps working after interface renaming. */
+ if (ifconfig_get_orig_name(lifh, ctx->ifname, &drivername) != 0)
+ return;
+ if (sscanf(drivername, UE_DRIVER_NAME "%u%c", &unit, &c) != 1)
+ goto out;
+
+ if (snprintf(mibname, sizeof(mibname),
+ "net." UE_DRIVER_NAME ".%u.%%parent", unit) >= (int)sizeof(mibname))
+ goto out;
+
+ parentlen = sizeof(parent);
+ if (sysctlbyname(mibname, parent, &parentlen, NULL, 0) != 0)
+ goto out;
+
+ printf("\tparent interface: %s\n", parent);
+out:
+ free(drivername);
+}
+
+static struct afswtch af_ue = {
+ .af_name = "af_ue",
+ .af_af = AF_UNSPEC,
+ .af_other_status = ue_status,
+};
+
+static __constructor void
+ue_ctor(void)
+{
+ af_register(&af_ue);
+}

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 2, 1:48 AM (12 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37545995
Default Alt Text
D59060.id185170.diff (1 KB)

Event Timeline