\r
IPOIB_ENTER( IPOIB_DBG_SEND );\r
\r
+ if (p_ip_hdr->offset > 0) {\r
+ /* This is a fragmented part of UDP packet\r
+ * Only first packet will contain UDP header in such case\r
+ * So, return if offset > 0\r
+ */\r
+ cl_perf_start( SendUdp );\r
+ status = __send_gen( p_port, p_desc,0 );\r
+ cl_perf_stop( &p_port->p_adapter->perf, SendUdp );\r
+ IPOIB_EXIT( IPOIB_DBG_SEND );\r
+ return status;\r
+ }\r
+ \r
if( !buf_len )\r
{\r
cl_perf_start( QueryUdp );\r
{\r
p_udp_hdr = (udp_hdr_t*)GetIpPayloadPtr(p_ip_hdr);\r
}\r
- /* Get the UDP header and check the destination port numbers. */\r
+ \r
if( buf_len < sizeof(udp_hdr_t) )\r
{\r
IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,\r
return NDIS_STATUS_BUFFER_TOO_SHORT;\r
}\r
\r
+ /* Get the UDP header and check the destination port numbers. */\r
if( (p_udp_hdr->src_port != DHCP_PORT_CLIENT ||\r
p_udp_hdr->dst_port != DHCP_PORT_SERVER) &&\r
(p_udp_hdr->src_port != DHCP_PORT_SERVER ||\r