continue;\r
}\r
\r
- len = p_wc->length;\r
+ len = p_wc->length - sizeof(ib_grh_t);\r
\r
- if( len < (sizeof(ib_grh_t) + sizeof(ipoib_hdr_t)) )\r
+ if( len < sizeof(ipoib_hdr_t) )\r
{\r
IPOIB_TRACE( IPOIB_DBG_ERROR,\r
("Received ETH packet < min size\n") );\r
switch( p_ipoib->hdr.type )\r
{\r
case ETH_PROT_TYPE_IP:\r
- if( len <\r
- (sizeof(ib_grh_t) + sizeof(ipoib_hdr_t) + sizeof(ip_hdr_t)) )\r
+ if( len < (sizeof(ipoib_hdr_t) + sizeof(ip_hdr_t)) )\r
{\r
IPOIB_TRACE( IPOIB_DBG_ERROR,\r
("Received IP packet < min size\n") );\r
}\r
\r
/* First packet of a UDP transfer. */\r
- if( len < (sizeof(ib_grh_t) + sizeof(ipoib_hdr_t) +\r
- sizeof(ip_hdr_t) + sizeof(udp_hdr_t)) )\r
+ if( len <\r
+ (sizeof(ipoib_hdr_t) + sizeof(ip_hdr_t) + sizeof(udp_hdr_t)) )\r
{\r
IPOIB_TRACE( IPOIB_DBG_ERROR,\r
("Received UDP packet < min size\n") );\r
(p_ipoib->type.ip.prot.udp.hdr.dst_port == DHCP_PORT_CLIENT &&\r
p_ipoib->type.ip.prot.udp.hdr.src_port == DHCP_PORT_SERVER) )\r
{\r
- if( len < (sizeof(ib_grh_t) + sizeof(ipoib_hdr_t) +\r
- sizeof(ip_hdr_t) + sizeof(udp_hdr_t) + DHCP_MIN_SIZE ))\r
+ if( len < (sizeof(ipoib_hdr_t) + sizeof(ip_hdr_t) +\r
+ sizeof(udp_hdr_t) + DHCP_MIN_SIZE) )\r
{\r
IPOIB_TRACE( IPOIB_DBG_ERROR,\r
("Received DHCP < min size\n") );\r
{\r
p_desc->len =\r
len + sizeof(eth_hdr_t) - sizeof(ipoib_hdr_t);\r
- if( p_dst )\r
+ if( p_dst->h_mcast)\r
{\r
if( p_dst->dgid.multicast.raw_group_id[10] == 0xFF &&\r
p_dst->dgid.multicast.raw_group_id[11] == 0xFF &&\r
ib_wc_t wc[MAX_SEND_WC], *p_wc, *p_free;\r
cl_qlist_t done_list;\r
NDIS_PACKET *p_packet;\r
+ uint32_t length;\r
ipoib_endpt_t *p_endpt;\r
send_buf_t *p_send_buf;\r
ip_stat_sel_t type;\r
{\r
type = IP_STAT_UCAST_BYTES;\r
}\r
- ipoib_inc_send_stat( p_port->p_adapter, type,\r
- p_wc->length - sizeof(ipoib_hdr_t) + sizeof(eth_hdr_t) );\r
+ NdisQueryPacketLength( p_packet, &length );\r
+ ipoib_inc_send_stat( p_port->p_adapter, type, length );\r
NdisMSendComplete( p_port->p_adapter->h_adapter,\r
p_packet, NDIS_STATUS_SUCCESS );\r
break;\r