X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Ftunnel.c;fp=datapath%2Ftunnel.c;h=ad45228087e65b6cab5d84b549399431b1e721cb;hb=4bee421f3ab28492aebc32b8b13e41ca5d12a936;hp=77f976fdc531aae6f2b4a40d3235ec6ff2d2ebdd;hpb=eedc0097f475a15297375a2aba39313c0f98f330;p=sliver-openvswitch.git diff --git a/datapath/tunnel.c b/datapath/tunnel.c index 77f976fdc..ad4522808 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -1266,17 +1266,15 @@ int tnl_send(struct vport *vport, struct sk_buff *skb) if (likely(cache)) { int orig_len = skb->len - cache->len; - struct vport *cache_vport = internal_dev_get_vport(rt_dst(rt).dev); skb->protocol = htons(ETH_P_IP); - iph->tot_len = htons(skb->len - skb_network_offset(skb)); ip_send_check(iph); - if (likely(cache_vport)) { + if (is_internal_dev(rt_dst(rt).dev)) { OVS_CB(skb)->flow = cache->flow; compute_ip_summed(skb, true); - vport_receive(cache_vport, skb); + vport_receive(internal_dev_get_vport(rt_dst(rt).dev), skb); sent_len += orig_len; } else { int err;