aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/netmap/netmap_freebsd.c
diff options
context:
space:
mode:
authorTom Jones <thj@FreeBSD.org>2023-01-13 15:26:55 +0000
committerTom Jones <thj@FreeBSD.org>2023-01-13 15:31:58 +0000
commit110ce09c90dc452fa5669874535e1f3984e166f9 (patch)
tree557a8a6552a90c46bbf1b6f6c15aeab4d58ceeb8 /sys/dev/netmap/netmap_freebsd.c
parent8bce8d28abe658f661962a7c9d355c1e232e8371 (diff)
downloadsrc-110ce09c90dc452fa5669874535e1f3984e166f9.tar.gz
src-110ce09c90dc452fa5669874535e1f3984e166f9.zip
if_lagg: Allow lagg interfaces to be used with netmap
Reviewed by: zlei Sponsored by: Zenarmor Sponsored by: OPNsense Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D37436
Diffstat (limited to 'sys/dev/netmap/netmap_freebsd.c')
-rw-r--r--sys/dev/netmap/netmap_freebsd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/netmap/netmap_freebsd.c b/sys/dev/netmap/netmap_freebsd.c
index 7a3f2ceacdbb..0f7372e959bb 100644
--- a/sys/dev/netmap/netmap_freebsd.c
+++ b/sys/dev/netmap/netmap_freebsd.c
@@ -351,6 +351,8 @@ nm_os_catch_rx(struct netmap_generic_adapter *gna, int intercept)
ret = EBUSY; /* already set */
goto out;
}
+
+ ifp->if_capenable |= IFCAP_NETMAP;
gna->save_if_input = ifp->if_input;
ifp->if_input = freebsd_generic_rx_handler;
} else {
@@ -360,6 +362,8 @@ nm_os_catch_rx(struct netmap_generic_adapter *gna, int intercept)
ret = EINVAL; /* not saved */
goto out;
}
+
+ ifp->if_capenable &= ~IFCAP_NETMAP;
ifp->if_input = gna->save_if_input;
gna->save_if_input = NULL;
}