summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/mac_provider.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/mac_provider.h')
-rw-r--r--usr/src/uts/common/sys/mac_provider.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/usr/src/uts/common/sys/mac_provider.h b/usr/src/uts/common/sys/mac_provider.h
index fc3b3892bd..04c20d6aac 100644
--- a/usr/src/uts/common/sys/mac_provider.h
+++ b/usr/src/uts/common/sys/mac_provider.h
@@ -120,10 +120,15 @@ typedef struct lso_basic_tcp_ipv4_s {
t_uscalar_t lso_max; /* maximum payload */
} lso_basic_tcp_ipv4_t;
+typedef struct lso_basic_tcp_ipv6_s {
+ t_uscalar_t lso_max; /* maximum payload */
+} lso_basic_tcp_ipv6_t;
+
/*
* Currently supported flags for LSO.
*/
-#define LSO_TX_BASIC_TCP_IPV4 0x01 /* TCP LSO capability */
+#define LSO_TX_BASIC_TCP_IPV4 0x01 /* TCPv4 LSO capability */
+#define LSO_TX_BASIC_TCP_IPV6 0x02 /* TCPv6 LSO capability */
/*
* Future LSO capabilities can be added at the end of the mac_capab_lso_t.
@@ -136,6 +141,7 @@ typedef struct lso_basic_tcp_ipv4_s {
typedef struct mac_capab_lso_s {
t_uscalar_t lso_flags;
lso_basic_tcp_ipv4_t lso_basic_tcp_ipv4;
+ lso_basic_tcp_ipv6_t lso_basic_tcp_ipv6;
/* Add future lso capabilities here */
} mac_capab_lso_t;
@@ -647,6 +653,31 @@ extern void mac_transceiver_info_set_usable(
mac_transceiver_info_t *,
boolean_t);
+/*
+ * This represents a provisional set of currently illumos-private APIs to get
+ * information about a mblk_t chain's type. This is an evolving interface.
+ */
+typedef enum mac_ether_offload_flags {
+ MEOI_L2INFO_SET = 1 << 0,
+ MEOI_VLAN_TAGGED = 1 << 1,
+ MEOI_L3INFO_SET = 1 << 2,
+ MEOI_L4INFO_SET = 1 << 3
+} mac_ether_offload_flags_t;
+
+typedef struct mac_ether_offload_info {
+ mac_ether_offload_flags_t meoi_flags; /* What's valid? */
+ size_t meoi_len; /* Total message length */
+ uint8_t meoi_l2hlen; /* How long is the Ethernet header? */
+ uint16_t meoi_l3proto; /* What's the Ethertype */
+ uint8_t meoi_l3hlen; /* How long is the header? */
+ uint8_t meoi_l4proto; /* What is the payload type? */
+ uint8_t meoi_l4hlen; /* How long is the L4 header */
+} mac_ether_offload_info_t;
+
+extern int mac_ether_offload_info(mblk_t *,
+ mac_ether_offload_info_t *);
+
+
#endif /* _KERNEL */
#ifdef __cplusplus