summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Mooney <pmooney@pfmooney.com>2020-05-13 21:43:04 +0000
committerPatrick Mooney <pmooney@pfmooney.com>2020-05-14 17:22:39 +0000
commit97f11506b8e20d03ac8f60ff1b6c7e38a3326df3 (patch)
tree09e72ef70f50ae6e1e261b38fe334873dc00761d
parent91a7ed35601b9dac7c03b16025b401dc9f7a6bbd (diff)
downloadillumos-joyent-97f11506b8e20d03ac8f60ff1b6c7e38a3326df3.tar.gz
12731 disable IPv6 LSO until emulation is available
Reviewed by: Ryan Zezeski <ryan@zinascii.com> Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
-rw-r--r--usr/src/uts/common/io/mac/mac_client.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/usr/src/uts/common/io/mac/mac_client.c b/usr/src/uts/common/io/mac/mac_client.c
index 6563d51069..7ff05f2ab6 100644
--- a/usr/src/uts/common/io/mac/mac_client.c
+++ b/usr/src/uts/common/io/mac/mac_client.c
@@ -4243,12 +4243,27 @@ i_mac_capab_get(mac_handle_t mh, mac_capab_t cap, void *cap_data)
{
mac_impl_t *mip = (mac_impl_t *)mh;
- if (mip->mi_bridge_link != NULL)
+ if (mip->mi_bridge_link != NULL) {
return (cap == MAC_CAPAB_NO_ZCOPY);
- else if (mip->mi_callbacks->mc_callbacks & MC_GETCAPAB)
- return (mip->mi_getcapab(mip->mi_driver, cap, cap_data));
- else
+ } else if (mip->mi_callbacks->mc_callbacks & MC_GETCAPAB) {
+ boolean_t res;
+
+ res = mip->mi_getcapab(mip->mi_driver, cap, cap_data);
+ /*
+ * Until we have suppport for TSOv6 emulation in the MAC
+ * loopback path, do not allow the TSOv6 capability to be
+ * advertised to consumers.
+ */
+ if (res && cap == MAC_CAPAB_LSO) {
+ mac_capab_lso_t *cap_lso = cap_data;
+
+ cap_lso->lso_flags &= ~LSO_TX_BASIC_TCP_IPV6;
+ cap_lso->lso_basic_tcp_ipv6.lso_max = 0;
+ }
+ return (res);
+ } else {
return (B_FALSE);
+ }
}
/*