secpath_reset(skb);
vlan_set_tci(skb, 0);
- if (unlikely(compute_ip_summed(skb, false))) {
- kfree_skb(skb);
- return;
- }
-
ovs_vport_receive(vport, skb, tun_key);
}
{
int err;
- forward_ip_summed(skb, true);
-
-
if (skb_is_gso(skb)) {
struct sk_buff *nskb;
char cb[sizeof(skb->cb)];
memcpy(nskb->cb, cb, sizeof(cb));
nskb = nskb->next;
}
- } else if (get_ip_summed(skb) == OVS_CSUM_PARTIAL) {
+ } else if (skb->ip_summed == CHECKSUM_PARTIAL) {
/* Pages aren't locked and could change at any time.
* If this happens after we compute the checksum, the
* checksum will be wrong. We linearize now to avoid
goto error;
}
- set_ip_summed(skb, OVS_CSUM_NONE);
-
+ skb->ip_summed = CHECKSUM_NONE;
return skb;
error:
OVS_CB(skb)->tun_key->ipv4_dst,
ipproto,
OVS_CB(skb)->tun_key->ipv4_tos,
- skb_get_mark(skb));
+ skb->mark);
if (IS_ERR(rt)) {
err = PTR_ERR(rt);
goto error;
skb->next = NULL;
- if (unlikely(vlan_deaccel_tag(skb)))
- goto next;
+ if (vlan_tx_tag_present(skb)) {
+ if (unlikely(!__vlan_put_tag(skb,
+ skb->vlan_proto,
+ vlan_tx_tag_get(skb))))
+ goto next;
+
+ vlan_set_tci(skb, 0);
+ }
frag_len = skb->len;
skb_push(skb, tunnel_hlen);