From: Jakub Kicinski <kuba@kernel.org>
To: "Keller, Jacob E" <jacob.e.keller@intel.com>
Cc: Jiri Pirko <jiri@resnulli.us>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [net-next PATCH 1/2] devlink: add dry run attribute to flash update
Date: Mon, 25 Jul 2022 18:13:31 -0700 [thread overview]
Message-ID: <20220725181331.2603bd26@kernel.org> (raw)
In-Reply-To: <SA2PR11MB510047D98AFFDEE572B375E0D6959@SA2PR11MB5100.namprd11.prod.outlook.com>
On Mon, 25 Jul 2022 20:46:01 +0000 Keller, Jacob E wrote:
> There are two problems, and only one of them is solved by strict
> validation right now:
>
> 1) Does the kernel know this attribute?
>
> This is the question of whether the kernel is new enough to have the
> attribute, i.e. does the DEVLINK_ATTR_DRY_RUN even exist in the
> kernel's uapi yet.
>
> This is straight forward, and usually good enough for most
> attributes. This is what is solved by not setting
> GENL_DONT_VALIDATE_STRICT.
>
> However, consider what happens once we add DEVLINK_ATTR_DRY_RUN and
> support it in flash update, in version X. This leads us to the next
> problem.
>
> 2) does the *command* recognize and support DEVLINK_ATTR_DRY_RUN
>
> Since the kernel in this example already supports
> DEVLINK_ATTR_DRY_RUN, it will be recognized and the current setup the
> policy for attributes is the same for every command. Thus the kernel
> will accept DEVLINK_ATTR_DRY_RUN for any command, strict or not.
>
> But if the command itself doesn't honor DEVLINK_ATTR_DRY_RUN, it will
> once again be silently ignored.
>
> We currently use the same policy and the same attribute list for
> every command, so we already silently ignore unexpected attributes,
> even in strict validation, at least as far as I can tell when
> analyzing the code. You could try to send an attribute for the wrong
> command. Obviously existing iproute2 user space doesn't' do this..
> but nothing stops it.
>
> For some attributes, its not a problem. I.e. all flash update
> attributes are only used for DEVLINK_CMD_FLASH_UPDATE, and passing
> them to another command is meaningless and will likely stay
> meaningless forever. Obviously I think we would prefer if the kernel
> rejected the input anyways, but its at least not that surprising and
> a smaller problem.
>
> But for something generic like DRY_RUN, this is problematic because
> we might want to add support for dry run in the future for other
> commands. I didn't really analyze every existing command today to see
> which ones make sense. We could minimize this problem for now by
> checking DRY_RUN for every command that might want to support it in
> the future...
Hm, yes. Don't invest too much effort into rendering per-cmd policies
right now, tho. I've started working on putting the parsing policies
in YAML last Friday. This way we can auto-gen the policy for the kernel
and user space can auto-gen the parser/nl TLV writer. Long story short
we can kill two birds with one stone if you hold off until I have the
format ironed out. For now maybe just fork the policies into two -
with and without dry run attr. We'll improve the granularity later
when doing the YAML conversion.
next prev parent reply other threads:[~2022-07-26 1:13 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-20 18:34 [net-next PATCH 0/2] devlink: implement dry run support for flash update Jacob Keller
2022-07-20 18:34 ` [net-next PATCH 1/2] devlink: add dry run attribute to " Jacob Keller
2022-07-21 5:54 ` Jiri Pirko
2022-07-21 20:32 ` Keller, Jacob E
2022-07-22 6:18 ` Jiri Pirko
2022-07-22 21:12 ` Keller, Jacob E
2022-07-23 15:42 ` Jiri Pirko
2022-07-25 19:15 ` Keller, Jacob E
2022-07-25 19:39 ` Jakub Kicinski
2022-07-25 20:27 ` Keller, Jacob E
2022-07-25 20:32 ` Jakub Kicinski
2022-07-25 20:46 ` Keller, Jacob E
2022-07-26 1:13 ` Jakub Kicinski [this message]
2022-07-26 17:23 ` Keller, Jacob E
2022-07-26 18:48 ` Jakub Kicinski
2022-07-26 18:49 ` Keller, Jacob E
2022-07-26 18:21 ` Keller, Jacob E
2022-08-05 16:32 ` Keller, Jacob E
2022-08-05 18:51 ` Jakub Kicinski
2022-08-05 19:50 ` Keller, Jacob E
2022-07-25 20:33 ` Keller, Jacob E
2022-07-21 16:47 ` Jakub Kicinski
2022-07-21 18:57 ` Keller, Jacob E
2022-07-21 16:48 ` Jakub Kicinski
2022-07-21 18:57 ` Keller, Jacob E
2022-07-20 18:34 ` [net-next PATCH 2/2] ice: support dry run of a flash update to validate firmware file Jacob Keller
2022-07-21 5:56 ` Jiri Pirko
2022-07-21 18:57 ` Keller, Jacob E
2022-07-21 7:53 ` Leon Romanovsky
2022-07-21 5:57 ` [net-next PATCH 0/2] devlink: implement dry run support for flash update Jiri Pirko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220725181331.2603bd26@kernel.org \
--to=kuba@kernel.org \
--cc=jacob.e.keller@intel.com \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).