Hi,
On 20/05/2026 4:25 PM, Adrian Schollmeyer wrote:
From: Michael Pfeiffer <[email protected]> For a MODIFY_FIELD action, flow_hw_validate_action_modify_field() is invoked and enforces class_id == 0 in the action's source and destination, if the modified field is none of RTE_FLOW_FIELD_GENEVE_OPT_*, as the value is used solely for GENEVE fields. However, this check is flawed due to the way rte_flow_field_data is initialized. As it consists of unions and anonymous structs as members, empty initialization of this struct or initializing just the tag_index only guarantees initialization of the first union member, while the remaining member's default initialization behavior is unspecified. Therefore, depending on the compiler type, version and configuration, the remaining members may either be default-initialized as well or contain bytes from uninitialized memory. This causes the check to fail depending on how the struct is initialized wherever it is used. For example, rte_flow_configure() sometimes fails on mlx5 under these circumstances with an error "destination class id is not supported" during creation of representor tagging rules, as these internally use MODIFY_FIELD actions in the following call stack: 1. rte_flow_configure 2. mlx5_flow_port_configure 3. flow_hw_configure 4. __flow_hw_configure 5. flow_hw_setup_tx_repr_tagging 6. flow_hw_create_tx_repr_tag_jump_acts_tmpl --> various rte_flow_action_modify_field are initialized here, but class_id remains uninitialized 7. __flow_hw_actions_template_create 8. mlx5_flow_hw_actions_validate 9. flow_hw_validate_action_modify_field --> invoked with class_id containing uninitialized bytes and non-GENEVE field type Remove the two checks for class_id in the non-GENEVE case, as this field is unused for these actions and avoids additional implicit dependencies on the correct ordering of union members. Fixes: 1caa89ec1891 ("net/mlx5: support GENEVE options modification") Cc: [email protected] Signed-off-by: Michael Pfeiffer <[email protected]> Signed-off-by: Adrian Schollmeyer <[email protected]>
Patch applied to next-net-mlx, Kindest regards Raslan Darawsheh

