Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Apr 2026 09:59:35 +0000
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Cc:        Timo =?utf-8?Q?V=C3=B6lker?= <timo.voelker@fh-muenster.de>
Subject:   git: 28932dc425e1 - main - tuntap: add SIOCGIFCAP and SIOCSIFCAP ioctls
Message-ID:  <69ede207.3b818.6c0b6b11@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=28932dc425e19267313d221c26d10d3638e1cc4b

commit 28932dc425e19267313d221c26d10d3638e1cc4b
Author:     Timo Völker <timo.voelker@fh-muenster.de>
AuthorDate: 2026-04-26 09:48:36 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2026-04-26 09:48:36 +0000

    tuntap: add SIOCGIFCAP and SIOCSIFCAP ioctls
    
    Add SIOCGIFCAP ioctl-command for tun/tap character device to be used
    by bhyve for offloading in the future.
    Add SIOCSIFCAP for symmetry.
    
    Reviewed by:            markj, pouria, tuexen
    MFC after:              1 week
    Event:                  Wiesbaden Hackathon 2026
    Differential Revision:  https://reviews.freebsd.org/D51289
---
 sys/net/if_tuntap.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/sys/net/if_tuntap.c b/sys/net/if_tuntap.c
index 3f8a96311725..a1ef2541ffba 100644
--- a/sys/net/if_tuntap.c
+++ b/sys/net/if_tuntap.c
@@ -1802,6 +1802,23 @@ tunioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag,
 	case FIOGETOWN:
 		*(int *)data = fgetown(&tp->tun_sigio);
 		return (0);
+	case SIOCGIFCAP:
+		ifrp = (struct ifreq *)data;
+		TUN_LOCK(tp);
+		ifrp->ifr_reqcap = ifp->if_capabilities;
+		ifrp->ifr_curcap = ifp->if_capenable;
+		TUN_UNLOCK(tp);
+		break;
+	case SIOCSIFCAP:
+		ifrp = (struct ifreq *)data;
+		if (ifrp->ifr_reqcap & ~ifp->if_capabilities)
+			return (EINVAL);
+		TUN_LOCK(tp);
+		ifp->if_capenable = ifrp->ifr_reqcap;
+		tun_caps_changed(ifp);
+		TUN_UNLOCK(tp);
+		VLAN_CAPABILITIES(ifp);
+		break;
 
 	/* This is deprecated, FIOSETOWN should be used instead. */
 	case TIOCSPGRP:


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ede207.3b818.6c0b6b11>