summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/dld
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2018-03-28 23:20:07 +0000
committerRobert Mustacchi <rm@joyent.com>2018-04-02 16:52:13 +0000
commit9dc0f5536a83ce4ef09e0009beec208ac83f0a75 (patch)
treee27546e6376142b460df5081c90a7ebd09859472 /usr/src/uts/common/io/dld
parent51e13f4784dca9f0e910f3d0fb85b659ad68ceb2 (diff)
downloadillumos-joyent-netperf.tar.gz
OS-XXXX wip vxlan lsonetperf
Diffstat (limited to 'usr/src/uts/common/io/dld')
-rw-r--r--usr/src/uts/common/io/dld/dld_proto.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/usr/src/uts/common/io/dld/dld_proto.c b/usr/src/uts/common/io/dld/dld_proto.c
index d6f57091b4..56de77bc60 100644
--- a/usr/src/uts/common/io/dld/dld_proto.c
+++ b/usr/src/uts/common/io/dld/dld_proto.c
@@ -1493,6 +1493,17 @@ dld_capab_poll(dld_str_t *dsp, void *data, uint_t flags)
return (ENOTSUP);
}
+static void
+dld_capab_lso_fill_vxlan(mac_capab_lso_t *mac, dld_capab_lso_t *lso)
+{
+ lso->lso_vxlan_cksum = mac->lso_vxlan_tcp.lso_oudp_cksum;
+
+ if (mac->lso_vxlan_tcp.lso_tcp_max > 0) {
+ lso->lso_flags |= DLD_LSO_VXLAN_TCP_IPV4 | DLD_LSO_VXLAN_TCP_IPV6;
+ lso->lso_vxlan_tcp_max = mac->lso_vxlan_tcp.lso_tcp_max;
+ }
+}
+
static int
dld_capab_lso(dld_str_t *dsp, void *data, uint_t flags)
{
@@ -1514,14 +1525,9 @@ dld_capab_lso(dld_str_t *dsp, void *data, uint_t flags)
/* translate the flag for mac clients */
if ((mac_lso.lso_flags & LSO_TX_BASIC_TCP_IPV4) != 0)
lso->lso_flags |= DLD_LSO_BASIC_TCP_IPV4;
- /* XXX We should probably not rely on equality */
- if ((mac_lso.lso_flags & LSO_TX_VXLAN_TCP) != 0 &&
- mac_lso.lso_vxlan_tcp.lso_tcpv4_max == lso->lso_max) {
- lso->lso_flags |= DLD_LSO_VXLAN_TCP_IPV4;
- }
- if ((mac_lso.lso_flags & LSO_TX_VXLAN_TCP) != 0 &&
- mac_lso.lso_vxlan_tcp.lso_tcpv6_max == lso->lso_max) {
- lso->lso_flags |= DLD_LSO_VXLAN_TCP_IPV6;
+
+ if ((mac_lso.lso_flags & LSO_TX_VXLAN_TCP) != 0) {
+ dld_capab_lso_fill_vxlan(&mac_lso, lso);
}
dsp->ds_lso = B_TRUE;
dsp->ds_lso_max = lso->lso_max;