aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mxge/if_mxge_var.h
diff options
context:
space:
mode:
authorAndrew Gallatin <gallatin@FreeBSD.org>2013-02-19 21:33:21 +0000
committerAndrew Gallatin <gallatin@FreeBSD.org>2013-02-19 21:33:21 +0000
commit0a7a780eee27bfb92b03e34899de5e1e4b82b4d5 (patch)
tree6ba5bc751c6bdaada227b5b9f5895bf891520b7a /sys/dev/mxge/if_mxge_var.h
parent8635d479c2f1e2760b46b3064d8b68309c6ef015 (diff)
downloadsrc-0a7a780eee27bfb92b03e34899de5e1e4b82b4d5.tar.gz
src-0a7a780eee27bfb92b03e34899de5e1e4b82b4d5.zip
Add support to mxge for IPv6 TX csum offload & IPv6 TSO.
Sponsored by: Myricom, Inc. MFC after: 7 days
Notes
Notes: svn path=/head/; revision=247011
Diffstat (limited to 'sys/dev/mxge/if_mxge_var.h')
-rw-r--r--sys/dev/mxge/if_mxge_var.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/sys/dev/mxge/if_mxge_var.h b/sys/dev/mxge/if_mxge_var.h
index c85a29bfb586..9393577106f3 100644
--- a/sys/dev/mxge/if_mxge_var.h
+++ b/sys/dev/mxge/if_mxge_var.h
@@ -50,6 +50,19 @@ $FreeBSD$
#define IFNET_BUF_RING 1
#endif
+#if (__FreeBSD_version < 1000020)
+#undef IF_Kbps
+#undef IF_Mbps
+#undef IF_Gbps
+#define IF_Kbps(x) ((uintmax_t)(x) * 1000) /* kilobits/sec. */
+#define IF_Mbps(x) (IF_Kbps((x) * 1000)) /* megabits/sec. */
+#define IF_Gbps(x) (IF_Mbps((x) * 1000)) /* gigabits/sec. */
+static __inline void
+if_initbaudrate(struct ifnet *ifp, uintmax_t baud)
+{
+ ifp->if_baudrate = baud;
+}
+#endif
#ifndef VLAN_CAPABILITIES
#define VLAN_CAPABILITIES(ifp)
#define mxge_vlans_active(sc) (sc)->ifp->if_nvlans
@@ -73,10 +86,33 @@ $FreeBSD$
#define IFCAP_TSO4 0
#endif
+#ifndef IFCAP_TSO6
+#define IFCAP_TSO6 0
+#endif
+
+#ifndef IFCAP_TXCSUM_IPV6
+#define IFCAP_TXCSUM_IPV6 0
+#endif
+
+#ifndef IFCAP_RXCSUM_IPV6
+#define IFCAP_RXCSUM_IPV6 0
+#endif
+
#ifndef CSUM_TSO
#define CSUM_TSO 0
#endif
+#ifndef CSUM_TCP_IPV6
+#define CSUM_TCP_IPV6 0
+#endif
+
+#ifndef CSUM_UDP_IPV6
+#define CSUM_UDP_IPV6 0
+#endif
+
+#ifndef CSUM_DELAY_DATA_IPV6
+#define CSUM_DELAY_DATA_IPV6 0
+#endif
typedef struct {
void *addr;
@@ -270,6 +306,7 @@ struct mxge_softc {
int dying;
int connector;
int current_media;
+ int max_tso6_hlen;
mxge_dma_t dmabench_dma;
struct callout co_hdl;
struct taskqueue *tq;
@@ -312,6 +349,15 @@ struct mxge_media_type
char *name;
};
+struct mxge_pkt_info {
+ int ip_off;
+ int ip_hlen;
+ struct ip *ip;
+ struct ip6_hdr *ip6;
+ struct tcphdr *tcp;
+};
+
+
/* implement our own memory barriers, since bus_space_barrier
cannot handle write-combining regions */