Bug 942 - i40e: condition in `i40e_flow_parse_fdir_pattern()` is always false
Summary: i40e: condition in `i40e_flow_parse_fdir_pattern()` is always false
Status: RESOLVED FIXED
Alias: None
Product: DPDK
Classification: Unclassified
Component: ethdev (show other bugs)
Version: 21.11
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: dev
URL:
Depends on:
Blocks:
 
Reported: 2022-03-01 07:59 CET by Stepan Repin
Modified: 2024-04-02 04:26 CEST (History)
2 users (show)



Attachments
Proposed fix (869 bytes, patch)
2022-03-02 09:47 CET, Stepan Repin
Details | Diff

Description Stepan Repin 2022-03-01 07:59:18 CET
`i40e_flow.c` contains the following code processing `RTE_FLOW_ITEM_TYPE_ETH` in the function
`i40e_flow_parse_fdir_pattern()` [1]:

	if (eth_spec && eth_mask && next_type == RTE_FLOW_ITEM_TYPE_END) {
		...
		if (next_type == RTE_FLOW_ITEM_TYPE_VLAN || ...) {
			...
		}
	}

Clearly, that condition in the inner "if" is always "false". Before commit
ea0c22fd [2] outer "if" was:

if (eth_spec && eth_mask && eth_mask->type) { ...

Please clarify,  is there really an error?

[1]: http://git.dpdk.org/dpdk/tree/drivers/net/i40e/i40e_flow.c#n2448
[2]: http://git.dpdk.org/dpdk/commit/drivers/net/i40e?id=ea0c22fd8227a3ac3507984ff766d66355a3651e
Comment 1 Stepan Repin 2022-03-02 09:47:42 CET
Created attachment 192 [details]
Proposed fix

This patch reverts the old behavior. Otherwise, EtherType isn't set for any flow where ETH isn't a last item.
Comment 2 dengkaiwen 2024-04-02 04:26:29 CEST
Close this ticket.

Note You need to log in before you can comment on or make changes to this bug.