Message ID | tencent_DEAEC17D718B1A0928CA959CAD113E724105@qq.com |
---|---|
State | Rejected |
Headers | show |
Series | [ovs-dev] ignore l4_hash | expand |
Context | Check | Description |
---|---|---|
ovsrobot/apply-robot | warning | apply and check: warning |
ovsrobot/github-robot-_Build_and_Test | success | github build: passed |
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)
From: "grimlock.lw" <realbaseball2008@gmail.com> 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(+)