From: "grimlock.lw" <[email protected]>
When Recving tcp stream form LOCAL port, and flows have a dp_hash group, linux
call skb_set_hash_from_sk to set skb->hash and skb->l4_hash, ovs use skb->hash
to select group bucket.
When tcp retransmission occurs,linux call sk_rethink_txhash to rehash skb->hash
of retransmission packet, so the retransmission packet will select a different
bucket than the original package.
ovs should ignore l4_hash,and call __skb_get_hash to get hash
---
datapath/actions.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/datapath/actions.c b/datapath/actions.c
index fbf445703..381037c05 100644
--- a/datapath/actions.c
+++ b/datapath/actions.c
@@ -1100,6 +1100,7 @@ static void execute_hash(struct sk_buff *skb, struct
sw_flow_key *key,
u32 hash = 0;
/* OVS_HASH_ALG_L4 is the only possible hash algorithm. */
+ skb->l4_hash = 0;
hash = skb_get_hash(skb);
hash = jhash_1word(hash, hash_act->hash_basis);
if (!hash)
--
2.32.0 (Apple Git-132)
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev