diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c index 3d312ae2a540..dbfac38f9bfc 100644 --- a/sys/net/if_vlan.c +++ b/sys/net/if_vlan.c @@ -1590,6 +1590,16 @@ vlan_capabilities(struct ifvlan *ifv) hwa |= p->if_hwassist & CSUM_TSO; } + /* + * If the parent interface can do LRO and checksum offloading on + * VLANs, then guess it may do LRO on VLANs. False positive here + * cost nothing, while false negative may lead to some confusions. + */ + if (p->if_capabilities & IFCAP_VLAN_HWCSUM) + cap |= p->if_capabilities & IFCAP_LRO; + if (p->if_capenable & IFCAP_VLAN_HWCSUM) + ena |= p->if_capenable & IFCAP_LRO; + /* * If the parent interface can offload TCP connections over VLANs then * propagate its TOE capability to the VLAN interface.