From 4647503ce7e8dcaab8d047404f59856bb2736393 Mon Sep 17 00:00:00 2001 From: gallatin Date: Fri, 15 Sep 2006 15:41:28 +0000 Subject: - Added TSO support. This entailed increasing the number of send descriptors in the transmit busdma tag, so I moved the segment list off the stack. - Fixed transmit routine to ensure it doesn't read past the end of an mbuf when parsing headers. - Corrected handling of odd length segments. Setting MXGEFW_FLAGS_ALIGN_ODD is required only when offloading the checksum of that frame. Sponsored by: Myricom Inc. --- sys/dev/mxge/if_mxge_var.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sys/dev/mxge/if_mxge_var.h') diff --git a/sys/dev/mxge/if_mxge_var.h b/sys/dev/mxge/if_mxge_var.h index 35b78b2..cc1acf1 100644 --- a/sys/dev/mxge/if_mxge_var.h +++ b/sys/dev/mxge/if_mxge_var.h @@ -43,7 +43,8 @@ $FreeBSD$ #define MXGE_FW_OFFSET 1024*1024 #define MXGE_EEPROM_STRINGS_SIZE 256 -#define MXGE_MAX_SEND_DESC 12 +#define MXGE_MAX_SEND_DESC 64 /* should be large enough for + any TSO packet */ typedef struct { void *addr; @@ -97,6 +98,7 @@ typedef struct volatile uint8_t *wc_fifo; /* w/c send fifo address */ mcp_kreq_ether_send_t *req_list; /* host shadow of sendq */ char *req_bytes; + bus_dma_segment_t *seg_list; struct mxge_tx_buffer_state *info; bus_dma_tag_t dmat; int req; /* transmits submitted */ @@ -104,6 +106,7 @@ typedef struct int done; /* transmits completed */ int pkt_done; /* packets completed */ int boundary; /* boundary transmits cannot cross*/ + } mxge_tx_buf_t; typedef struct { @@ -155,7 +158,7 @@ typedef struct { char *mac_addr_string; char product_code_string[64]; char serial_number_string[64]; - + char scratch[256]; } mxge_softc_t; #define MXGE_PCI_VENDOR_MYRICOM 0x14c1 -- cgit v1.1