Messages in this thread | ![/](/images/icornerl.gif) | | From | Sriharsha Basavapatna <> | Date | Mon, 22 Apr 2024 22:51:21 +0530 | Subject | Re: [PATCH net-next] bnxt_en: flower: validate control flags |
| |
On Mon, Apr 22, 2024 at 8:58 PM Asbjørn Sloth Tønnesen <ast@fiberby.net> wrote: > > This driver currently doesn't support any control flags. > > Use flow_rule_match_has_control_flags() to check for control flags, > such as can be set through `tc flower ... ip_flags frag`. > > In case any control flags are masked, flow_rule_match_has_control_flags() > sets a NL extended error message, and we return -EOPNOTSUPP. > > Only compile-tested. > > Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net> > --- > drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c > index 273c9ba48f09..d2ca90407cce 100644 > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c > @@ -370,6 +370,7 @@ static int bnxt_tc_parse_flow(struct bnxt *bp, > struct bnxt_tc_flow *flow) > { > struct flow_rule *rule = flow_cls_offload_flow_rule(tc_flow_cmd); > + struct netlink_ext_ack *extack = tc_flow_cmd->common.extack; > struct flow_dissector *dissector = rule->match.dissector; > > /* KEY_CONTROL and KEY_BASIC are needed for forming a meaningful key */ > @@ -380,6 +381,9 @@ static int bnxt_tc_parse_flow(struct bnxt *bp, > return -EOPNOTSUPP; > } > > + if (flow_rule_match_has_control_flags(rule, extack)) > + return -EOPNOTSUPP; > + > if (flow_rule_match_key(rule, FLOW_DISSECTOR_KEY_BASIC)) { > struct flow_match_basic match; > > -- > 2.43.0 > >
Thanks for this fix, it looks good. I need some time to test this; I will get back to you in a few days. -Harsha [unhandled content-type:application/pkcs7-signature] | ![\](/images/icornerr.gif) |