Skip to content
  • Huy Nguyen's avatar
    93b3586e
    net/mlx5: Support inner header match criteria for non decap flow action · 93b3586e
    Huy Nguyen authored
    
    
    We have an issue that OVS application creates an offloaded drop rule
    that drops VXLAN traffic with both inner and outer header match
    criteria. mlx5_core driver detects correctly the inner and outer
    header match criteria but does not enable the inner header match criteria
    due to an incorrect assumption in mlx5_eswitch_add_offloaded_rule that
    only decap rule needs inner header criteria.
    
    Solution:
    Remove mlx5_esw_flow_attr's match_level and tunnel_match_level and add
    two new members: inner_match_level and outer_match_level.
    inner/outer_match_level is set to NONE if the inner/outer match criteria
    is not specified in the tc rule creation request. The decap assumption is
    removed and the code just needs to check for inner/outer_match_level to
    enable the corresponding bit in firmware's match_criteria_enable value.
    
    Fixes: 6363651d ("net/mlx5e: Properly set steering match levels for offloaded TC decap rules")
    Signed-off-by: default avatarHuy Nguyen <huyn@mellanox.com>
    Reviewed-by: default avatarRoi Dayan <roid@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    93b3586e
    net/mlx5: Support inner header match criteria for non decap flow action
    Huy Nguyen authored
    
    
    We have an issue that OVS application creates an offloaded drop rule
    that drops VXLAN traffic with both inner and outer header match
    criteria. mlx5_core driver detects correctly the inner and outer
    header match criteria but does not enable the inner header match criteria
    due to an incorrect assumption in mlx5_eswitch_add_offloaded_rule that
    only decap rule needs inner header criteria.
    
    Solution:
    Remove mlx5_esw_flow_attr's match_level and tunnel_match_level and add
    two new members: inner_match_level and outer_match_level.
    inner/outer_match_level is set to NONE if the inner/outer match criteria
    is not specified in the tc rule creation request. The decap assumption is
    removed and the code just needs to check for inner/outer_match_level to
    enable the corresponding bit in firmware's match_criteria_enable value.
    
    Fixes: 6363651d ("net/mlx5e: Properly set steering match levels for offloaded TC decap rules")
    Signed-off-by: default avatarHuy Nguyen <huyn@mellanox.com>
    Reviewed-by: default avatarRoi Dayan <roid@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
Loading