[v1] net/ice: fix not support VXLAN RSS hash in raw flow

Message ID 20220401022343.19877-1-ting.xu@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Qi Zhang
Headers
Series [v1] net/ice: fix not support VXLAN RSS hash in raw flow |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-abi-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS

Commit Message

Xu, Ting April 1, 2022, 2:23 a.m. UTC
  When creating raw flow RSS hash rule for VXLAN tunnel type, a step to set
VXLAN tunnel config is missed. This patch adds this set to support VXLAN
in RSS hash with raw pattern.

Fixes: 1b9c68120a1c ("net/ice: enable protocol agnostic flow offloading in RSS")
Cc: stable@dpdk.org

Signed-off-by: Ting Xu <ting.xu@intel.com>
---
 drivers/net/ice/ice_hash.c | 5 +++++
 1 file changed, 5 insertions(+)
  

Patch

diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
index afbb357fa3..6b338dc3e1 100644
--- a/drivers/net/ice/ice_hash.c
+++ b/drivers/net/ice/ice_hash.c
@@ -656,6 +656,7 @@  ice_hash_parse_raw_pattern(struct ice_adapter *ad,
 	struct ice_parser *psr;
 	uint8_t *pkt_buf, *msk_buf;
 	uint8_t spec_len, pkt_len;
+	uint16_t udp_port = 0;
 	uint8_t tmp_val = 0;
 	uint8_t tmp_c = 0;
 	int i, j;
@@ -715,6 +716,10 @@  ice_hash_parse_raw_pattern(struct ice_adapter *ad,
 
 	if (ice_parser_create(&ad->hw, &psr))
 		return -rte_errno;
+
+	if (ice_get_open_tunnel_port(&ad->hw, TNL_VXLAN, &udp_port))
+		ice_parser_vxlan_tunnel_set(psr, udp_port, true);
+
 	if (ice_parser_run(psr, pkt_buf, pkt_len, &rslt))
 		return -rte_errno;
 	ice_parser_destroy(psr);