net/mlx5: fix call to modify action without init item
The item is being set according to the attribute value, whether it is
udp/tcp or ipv4/6.
Also, there are two condition calls.
If the attribute is neither udp/tcp or ipv4/6 the item is not
initialized at all, but the call to the flow_dv_convert_modify_action is
still being done.
Also, even if the attribute is tcp/udp or ipv4/6, we still have two
conditions.
This patch changes the conditions, so the item will always be set.
By doing this, there is also a save in the number of condition calls.
Fixes: 4bb14c83df
("net/mlx5: support modify header using Direct Verbs")
Cc: stable@dpdk.org
Signed-off-by: Asaf Penso <asafp@mellanox.com>
Reviewed-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
This commit is contained in:
parent
9c4971e523
commit
7c2062c451
@ -702,8 +702,8 @@ flow_dv_convert_action_modify_tp
|
||||
item.spec = &udp;
|
||||
item.mask = &udp_mask;
|
||||
field = modify_udp;
|
||||
}
|
||||
if (attr->tcp) {
|
||||
} else {
|
||||
MLX5_ASSERT(attr->tcp);
|
||||
memset(&tcp, 0, sizeof(tcp));
|
||||
memset(&tcp_mask, 0, sizeof(tcp_mask));
|
||||
if (action->type == RTE_FLOW_ACTION_TYPE_SET_TP_SRC) {
|
||||
@ -773,8 +773,8 @@ flow_dv_convert_action_modify_ttl
|
||||
item.spec = &ipv4;
|
||||
item.mask = &ipv4_mask;
|
||||
field = modify_ipv4;
|
||||
}
|
||||
if (attr->ipv6) {
|
||||
} else {
|
||||
MLX5_ASSERT(attr->ipv6);
|
||||
memset(&ipv6, 0, sizeof(ipv6));
|
||||
memset(&ipv6_mask, 0, sizeof(ipv6_mask));
|
||||
ipv6.hdr.hop_limits = conf->ttl_value;
|
||||
@ -834,8 +834,8 @@ flow_dv_convert_action_modify_dec_ttl
|
||||
item.spec = &ipv4;
|
||||
item.mask = &ipv4_mask;
|
||||
field = modify_ipv4;
|
||||
}
|
||||
if (attr->ipv6) {
|
||||
} else {
|
||||
MLX5_ASSERT(attr->ipv6);
|
||||
memset(&ipv6, 0, sizeof(ipv6));
|
||||
memset(&ipv6_mask, 0, sizeof(ipv6_mask));
|
||||
ipv6.hdr.hop_limits = 0xFF;
|
||||
|
Loading…
Reference in New Issue
Block a user