Applied at 7085
From: Alex Naslednikov
Sent: Wednesday, January 26, 2011 4:06 PM
To: Alex Naslednikov; [email protected]
Subject: RE: [ofw][patch][IPoIB_NDIS6_CM]
[IPoIB_NDIS6_CM]
If the packet is fragmented, don't check for UDP header.
This bug reappeared because of IPv6 commit and its fixes
Signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)
Index: ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
===================================================================
--- ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision 3080)
+++ ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (working copy)
@@ -5409,6 +5409,14 @@
PERF_DECLARE( FilterDhcp );
XIPOIB_ENTER( IPOIB_DBG_SEND );
+ if ( (ethertype == ETH_PROT_TYPE_IP) &&
((ip_hdr_t*)p_ip_hdr)->offset > 0 )
+ {
+ /* This is a fragmented part of UDP packet
+ * Only first packet will contain UDP header in
such case
+ * So, return if offset > 0
+ */
+ return NDIS_STATUS_PENDING;
+ }
if( !buf_len )
{
@@ -5438,13 +5446,7 @@
else //IPv4
{
p_udp_hdr =
(udp_hdr_t*)GetIpPayloadPtr((ip_hdr_t*)p_ip_hdr);
- if
(((ip_hdr_t*)p_ip_hdr)->offset > 0) {
- /* This is a
fragmented part of UDP packet
- * Only first
packet will contain UDP header in such case
- * So, return if
offset > 0
- */
- return
NDIS_STATUS_PENDING;
- }
+
}
}
/* Get the UDP header and check the destination port numbers. */
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw