From b8917ef0a8274a4dd89a66bdc6310e6ba9b64755 Mon Sep 17 00:00:00 2001 From: Cong Wang Date: Fri, 22 Mar 2013 00:31:31 +0000 Subject: [PATCH] --- yaml --- r: 368601 b: refs/heads/master c: 10c0d7ed32b7c273970a20e211c08ab46fea3c26 h: refs/heads/master i: 368599: b1abacbb0ab67c4ed08d79b909ab4b663dcd7455 v: v3 --- [refs] | 2 +- trunk/net/ipv4/gre.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 9e59d1971aa0..9c7c04a38673 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e287a75c6806892c0180005c462cd3be5cf93611 +refs/heads/master: 10c0d7ed32b7c273970a20e211c08ab46fea3c26 diff --git a/trunk/net/ipv4/gre.c b/trunk/net/ipv4/gre.c index 7a4c710c4cdd..e20631cb4185 100644 --- a/trunk/net/ipv4/gre.c +++ b/trunk/net/ipv4/gre.c @@ -125,8 +125,9 @@ static struct sk_buff *gre_gso_segment(struct sk_buff *skb, netdev_features_t enc_features; int ghl = GRE_HEADER_SECTION; struct gre_base_hdr *greh; + struct iphdr *iph; int mac_len = skb->mac_len; - int tnl_hlen; + int tnl_hlen, id; bool csum; if (unlikely(skb_shinfo(skb)->gso_type & @@ -170,6 +171,8 @@ static struct sk_buff *gre_gso_segment(struct sk_buff *skb, skb_set_network_header(skb, skb_inner_network_offset(skb)); skb->mac_len = skb_inner_network_offset(skb); + iph = ip_hdr(skb); + id = ntohs(iph->id); /* segment inner packet. */ enc_features = skb->dev->hw_enc_features & netif_skb_features(skb); segs = skb_mac_gso_segment(skb, enc_features); @@ -179,6 +182,8 @@ static struct sk_buff *gre_gso_segment(struct sk_buff *skb, skb = segs; tnl_hlen = skb_tnl_header_len(skb); do { + iph = (struct iphdr *)skb->data; + iph->id = htons(id++); __skb_push(skb, ghl); if (csum) { __be32 *pcsum;