Debian: Add ${misc:Depends} dependency to python-openvswitch
[sliver-openvswitch.git] / datapath / actions.c
index 8939377..a2a572e 100644 (file)
@@ -84,11 +84,8 @@ static struct sk_buff *strip_vlan(struct sk_buff *skb)
        return skb;
 }
 
-static struct sk_buff *modify_vlan_tci(struct datapath *dp, struct sk_buff *skb,
-                                      const struct sw_flow_key *key,
-                                      const struct nlattr *a, u32 actions_len)
+static struct sk_buff *modify_vlan_tci(struct sk_buff *skb, __be16 tci)
 {
-       __be16 tci = nla_get_be16(a);
        struct vlan_ethhdr *vh;
        __be16 old_tci;
 
@@ -158,6 +155,8 @@ static struct sk_buff *set_nw_addr(struct sk_buff *skb,
                inet_proto_csum_replace4(check, skb, *nwaddr, new_nwaddr, 1);
        csum_replace4(&nh->check, *nwaddr, new_nwaddr);
 
+       skb_clear_rxhash(skb);
+
        *nwaddr = new_nwaddr;
 
        return skb;
@@ -217,6 +216,7 @@ static struct sk_buff *set_tp_port(struct sk_buff *skb,
        port = nla_type(a) == ODP_ACTION_ATTR_SET_TP_SRC ? &th->source : &th->dest;
        inet_proto_csum_replace2(check, skb, *port, nla_get_be16(a), 0);
        *port = nla_get_be16(a);
+       skb_clear_rxhash(skb);
 
        return skb;
 }
@@ -324,7 +324,7 @@ static int do_execute_actions(struct datapath *dp, struct sk_buff *skb,
                        break;
 
                case ODP_ACTION_ATTR_SET_DL_TCI:
-                       skb = modify_vlan_tci(dp, skb, key, a, rem);
+                       skb = modify_vlan_tci(skb, nla_get_be16(a));
                        break;
 
                case ODP_ACTION_ATTR_STRIP_VLAN: