summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/dlpi.h
diff options
context:
space:
mode:
authoryl150051 <none@none>2006-11-13 20:44:19 -0800
committeryl150051 <none@none>2006-11-13 20:44:19 -0800
commit8347601bcb0a439f6e50fc36b4039a73d08700e1 (patch)
tree91c7b38a0f362892987099abe649246d234437b0 /usr/src/uts/common/sys/dlpi.h
parentfa52d01bb7e683bd3f348e8daeacb561fc8b0a52 (diff)
downloadillumos-gate-8347601bcb0a439f6e50fc36b4039a73d08700e1.tar.gz
PSARC/2006/190 Large Send Offload (LSO)
6390838 XGE need to support adaptive TX by switching COPY/DMA according to MBLKL(mp) 6394197 Solaris need to support LSO (Large Send Offload) 6466394 Minor logic error in tcp_send_data() 6467558 Need to integrate HAL 2.0.6765 to improve rx performance
Diffstat (limited to 'usr/src/uts/common/sys/dlpi.h')
-rw-r--r--usr/src/uts/common/sys/dlpi.h33
1 files changed, 29 insertions, 4 deletions
diff --git a/usr/src/uts/common/sys/dlpi.h b/usr/src/uts/common/sys/dlpi.h
index b6f3715289..3ffb8b5762 100644
--- a/usr/src/uts/common/sys/dlpi.h
+++ b/usr/src/uts/common/sys/dlpi.h
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -580,6 +579,8 @@ union DL_qos_types {
/* dl_data is dl_capab_dls_t */
#define DL_CAPAB_SOFT_RING 0x07 /* Soft ring capable */
/* dl_data is dl_capab_dls_t */
+#define DL_CAPAB_LSO 0x08 /* Large Send Offload capability */
+ /* dl_data is dl_capab_lso_t */
typedef struct {
t_uscalar_t dl_cap; /* capability type */
@@ -774,6 +775,30 @@ typedef struct {
#define DL_CAPAB_VMSAFE_MEM 0x01 /* Driver is zero-copy safe */
/* wrt VM named buffers on */
/* transmit */
+
+/*
+ * Large Send Offload sub-capability (follows dl_capability_sub_t)
+ */
+typedef struct {
+ t_uscalar_t lso_version; /* interface version */
+ t_uscalar_t lso_flags; /* capability flags */
+ t_uscalar_t lso_max; /* maximum payload */
+ t_uscalar_t reserved[1]; /* reserved fields */
+ dl_mid_t lso_mid; /* module ID */
+} dl_capab_lso_t;
+
+/*
+ * Large Send Offload revision definition history
+ */
+#define LSO_CURRENT_VERSION 0x01
+#define LSO_VERSION_1 0x01
+
+/*
+ * Currently supported values of lso_flags
+ */
+#define LSO_TX_ENABLE 0x01 /* to enable LSO */
+#define LSO_TX_BASIC_TCP_IPV4 0x02 /* TCP LSO capability */
+
/*
* DLPI interface primitive definitions.
*