diff mbox

[net] ipv4: Fix ip-header identification for gso packets.

Message ID 1364098248-1766-1-git-send-email-pshelar@nicira.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Pravin B Shelar March 24, 2013, 4:10 a.m. UTC
For TCP protocol ip-header id needs to be incremented even if
IP_DF flag is set. This behaviour was changed in commit
490ab08127cebc25e3a26 (IP_GRE: Fix IP-Identification).

Following patch fixes it so that identification is always
incremented for TCP.

Reported-by: Cong Wang <amwang@redhat.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>

---
 net/ipv4/af_inet.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

David Miller March 24, 2013, 9:13 p.m. UTC | #1
From: Pravin B Shelar <pshelar@nicira.com>
Date: Sat, 23 Mar 2013 21:10:48 -0700

> For TCP protocol ip-header id needs to be incremented even if
> IP_DF flag is set. This behaviour was changed in commit
> 490ab08127cebc25e3a26 (IP_GRE: Fix IP-Identification).
> 
> Following patch fixes it so that identification is always
> incremented for TCP.
> 
> Reported-by: Cong Wang <amwang@redhat.com>
> Signed-off-by: Pravin B Shelar <pshelar@nicira.com>

We should do this increment for all protocols when DF is set,
not just TCP.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 9e5882c..4958b9d 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1334,7 +1334,7 @@  static struct sk_buff *inet_gso_segment(struct sk_buff *skb,
 				iph->frag_off |= htons(IP_MF);
 			offset += (skb->len - skb->mac_len - iph->ihl * 4);
 		} else  {
-			if (!(iph->frag_off & htons(IP_DF)))
+			if (proto == IPPROTO_TCP || !(iph->frag_off & htons(IP_DF)))
 				iph->id = htons(id++);
 		}
 		iph->tot_len = htons(skb->len - skb->mac_len);