diff --git a/sys/net/if_epair.c b/sys/net/if_epair.c --- a/sys/net/if_epair.c +++ b/sys/net/if_epair.c @@ -351,6 +351,10 @@ return (E2BIG); } + if ((ifp->if_capenable & IFCAP_MEXTPG) == 0) { + M_ASSERTMAPPED(m); + } + /* * We are not going to use the interface en/dequeue mechanism * on the TX side. We are called from ether_output_frame() @@ -632,7 +636,8 @@ ifp->if_capabilities = IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING | IFCAP_TXCSUM | IFCAP_RXCSUM | - IFCAP_TXCSUM_IPV6 | IFCAP_RXCSUM_IPV6; + IFCAP_TXCSUM_IPV6 | IFCAP_RXCSUM_IPV6 | + IFCAP_MEXTPG; ifp->if_capenable = ifp->if_capabilities; epair_caps_changed(ifp); ifp->if_transmit = epair_transmit; diff --git a/tests/sys/common/vnet.subr b/tests/sys/common/vnet.subr --- a/tests/sys/common/vnet.subr +++ b/tests/sys/common/vnet.subr @@ -46,7 +46,9 @@ # compute checksums, it just marks packets that this computation still # needs to be done. However, some test cases verify the checksum. # Therefore disable this for IPv4 and IPv6. - ifconfig ${ifname} -txcsum -txcsum6 + # Also disable MEXTPG support, so the tests can verify that the network + # stack don't pass MEXTPG mbufs to interfaces that don't support it. + ifconfig ${ifname} -txcsum -txcsum6 -mextpg list_interface $ifname list_interface ${ifname%a}b echo ${ifname%a}