-/* $OpenBSD: if.c,v 1.708 2023/09/16 09:33:27 mpi Exp $ */
+/* $OpenBSD: if.c,v 1.709 2023/10/27 20:56:47 jan Exp $ */
/* $NetBSD: if.c,v 1.35 1996/05/07 05:26:04 thorpej Exp $ */
/*
struct ifreq ifrq;
int error = 0;
int s = splnet();
+ struct if_parent parent;
+
+ memset(&parent, 0, sizeof(parent));
+ if ((*ifp->if_ioctl)(ifp, SIOCGIFPARENT, (caddr_t)&parent) != -1) {
+ struct ifnet *ifp0 = if_unit(parent.ifp_parent);
+
+ if (ifp0 != NULL) {
+ ifsetlro(ifp0, on);
+ if_put(ifp0);
+ }
+ }
if (!ISSET(ifp->if_capabilities, IFCAP_LRO)) {
error = ENOTSUP;
-/* $OpenBSD: if_bpe.c,v 1.19 2021/11/08 04:54:44 dlg Exp $ */
+/* $OpenBSD: if_bpe.c,v 1.20 2023/10/27 20:56:47 jan Exp $ */
/*
* Copyright (c) 2018 David Gwynne <dlg@openbsd.org>
*
goto put;
}
+ ifsetlro(ifp0, 0);
+
/* commit */
sc->sc_key.k_if = ifp0->if_index;
etherbridge_flush(&sc->sc_eb, IFBF_FLUSHALL);
-/* $OpenBSD: if_gre.c,v 1.174 2023/05/13 13:35:17 bluhm Exp $ */
+/* $OpenBSD: if_gre.c,v 1.175 2023/10/27 20:56:47 jan Exp $ */
/* $NetBSD: if_gre.c,v 1.9 1999/10/25 19:18:11 drochner Exp $ */
/*
return (EPROTONOSUPPORT);
}
+ ifsetlro(ifp0, 0);
+
/* commit */
sc->sc_ifp0 = ifp0->if_index;
if_put(ifp0);
-/* $OpenBSD: if_vlan.c,v 1.215 2023/05/16 14:32:54 jan Exp $ */
+/* $OpenBSD: if_vlan.c,v 1.216 2023/10/27 20:56:47 jan Exp $ */
/*
* Copyright 1998 Massachusetts Institute of Technology
if (error != 0)
goto put;
+ if (ether_brport_isset(ifp))
+ ifsetlro(ifp0, 0);
+
/* commit */
sc->sc_ifidx0 = ifp0->if_index;
if (!ISSET(sc->sc_flags, IFVF_LLADDR))
-/* $OpenBSD: if_vxlan.c,v 1.93 2023/08/03 09:49:08 mvs Exp $ */
+/* $OpenBSD: if_vxlan.c,v 1.94 2023/10/27 20:56:48 jan Exp $ */
/*
* Copyright (c) 2021 David Gwynne <dlg@openbsd.org>
goto put;
}
+ ifsetlro(ifp0, 0);
+
/* commit */
sc->sc_if_index0 = ifp0->if_index;
etherbridge_flush(&sc->sc_eb, IFBF_FLUSHALL);