On Wed, 10 Apr 2024 11:09:16 +0800 Heng Qi wrote: > The point is that the driver may check whether the user has set > parameters that it does not want. > For example, virtio may not want the modification of comps, and ice/idpf > may not want the modification > of comps and pkts. If it's simply about the fields, not the range of values, flags of what's supported would suffice. If we need more complicated checks you can treat the driver callback as a validation callback, and when driver returns success - copy in the core. > But you inspired me to think from another perspective. If parameters are > placed in netdevice, the > goal of user modification is to modify the profile of netdevice, and the > driver can obtain its own > target parameters from it as needed. Do you like this? Yes, IIUC. > In addition, if the netdevice way is preferred, I would like to confirm > whether we still continue the > "ethtool -C" way, that is, complete the modification of netdevice > profile in __ethnl_set_coalesce()? That'd be great. If the driver validation is complex we can keep some form of the SET callback. But we definitely don't need to extend the GET callback since core will have the values, and can return them to the user.