RE: [PATCH net-next] octeontx2-pf: flower: check for unsupported control flags

From: Sunil Kovvuri Goutham
Date: Tue Apr 23 2024 - 00:54:30 EST




> -----Original Message-----
> From: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
> Sent: Monday, April 22, 2024 8:58 PM
> To: netdev@xxxxxxxxxxxxxxx
> Cc: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx;
> David S. Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet
> <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
> <pabeni@xxxxxxxxxx>; Sunil Kovvuri Goutham <sgoutham@xxxxxxxxxxx>;
> Geethasowjanya Akula <gakula@xxxxxxxxxxx>; Subbaraya Sundeep Bhatta
> <sbhatta@xxxxxxxxxxx>; Hariprasad Kelam <hkelam@xxxxxxxxxxx>; Suman
> Ghosh <sumang@xxxxxxxxxxx>
> Subject: [EXTERNAL] [PATCH net-next] octeontx2-pf: flower: check for
> unsupported control flags
>
> Use flow_rule_is_supp_control_flags() to reject filters with unsupported
> control flags.
>
> In case any unsupported control flags are masked,
> flow_rule_is_supp_control_flags() sets a NL extended error message, and we
> return -EOPNOTSUPP.
>
> Remove FLOW_DIS_FIRST_FRAG specific error message, and treat it as any
> other unsupported control flag.
>
> Only compile-tested.
>
> Signed-off-by: Asbjørn Sloth Tønnesen <ast@xxxxxxxxxxx>
> ---
> drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
> b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
> index 6d4ce2ece8d0..e63cc1eb6d89 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c
> @@ -700,10 +700,6 @@ static int otx2_tc_prepare_flow(struct otx2_nic *nic,
> struct otx2_tc_flow *node,
> u32 val;
>
> flow_rule_match_control(rule, &match);
> - if (match.mask->flags & FLOW_DIS_FIRST_FRAG) {
> - NL_SET_ERR_MSG_MOD(extack, "HW doesn't
> support frag first/later");
> - return -EOPNOTSUPP;
> - }
>
> if (match.mask->flags & FLOW_DIS_IS_FRAGMENT) {
> val = match.key->flags & FLOW_DIS_IS_FRAGMENT;
> @@ -721,6 +717,10 @@ static int otx2_tc_prepare_flow(struct otx2_nic *nic,
> struct otx2_tc_flow *node,
> return -EOPNOTSUPP;
> }
> }
> +
> + if
> (!flow_rule_is_supp_control_flags(FLOW_DIS_IS_FRAGMENT,
> + match.mask->flags,
> extack))
> + return -EOPNOTSUPP;
> }
>
> if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_ETH_ADDRS)) {
> --
> 2.43.0

Reviewed-by: Sunil Goutham <sgoutham@xxxxxxxxxxx>