X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Ftunnel.c;h=cf742125e3618e08ea995d4f9713d76e1a35da86;hb=309eaa2bc4f9367cb1ca6ec91b583a7a6cabf079;hp=ad45228087e65b6cab5d84b549399431b1e721cb;hpb=4bee421f3ab28492aebc32b8b13e41ca5d12a936;p=openvswitch diff --git a/datapath/tunnel.c b/datapath/tunnel.c index ad452280..cf742125 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -1266,15 +1266,16 @@ 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 (is_internal_dev(rt_dst(rt).dev)) { + if (cache_vport) { OVS_CB(skb)->flow = cache->flow; compute_ip_summed(skb, true); - vport_receive(internal_dev_get_vport(rt_dst(rt).dev), skb); + vport_receive(cache_vport, skb); sent_len += orig_len; } else { int err;