Signed-off-by: Pravin B Shelar <[email protected]>
---
datapath/linux/compat/gso.c | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/datapath/linux/compat/gso.c b/datapath/linux/compat/gso.c
index 8368c6a..de9c8e1 100644
--- a/datapath/linux/compat/gso.c
+++ b/datapath/linux/compat/gso.c
@@ -266,17 +266,13 @@ static int output_ip(struct sk_buff *skb)
int rpl_ip_local_out(struct net *net, struct sock *sk, struct sk_buff *skb)
{
int ret = NETDEV_TX_OK;
- int id = -1;
+ int id;
if (!OVS_GSO_CB(skb)->fix_segment)
return output_ip(skb);
skb->encapsulation = false;
if (skb_is_gso(skb)) {
- struct iphdr *iph;
-
- iph = ip_hdr(skb);
- id = ntohs(iph->id);
skb = tnl_skb_gso_segment(skb, 0, false, AF_INET);
if (!skb || IS_ERR(skb))
return 0;
@@ -286,17 +282,15 @@ int rpl_ip_local_out(struct net *net, struct sock *sk,
struct sk_buff *skb)
err = skb_checksum_help(skb);
if (unlikely(err))
return 0;
+ return output_ip(skb);
}
+ id = ntohs(ip_hdr(skb)->id);
while (skb) {
struct sk_buff *next_skb = skb->next;
- struct iphdr *iph;
skb->next = NULL;
-
- iph = ip_hdr(skb);
- if (id >= 0)
- iph->id = htons(id++);
+ ip_hdr(skb)->id = htons(id++);
ret = output_ip(skb);
skb = next_skb;
--
1.9.1
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev