Re: [PATCH net-next v8 05/14] ethtool: default handlers for GET requests

From: Florian Fainelli
Date: Mon Dec 23 2019 - 23:23:52 EST




On 12/22/2019 3:45 PM, Michal Kubecek wrote:
> Significant part of GET request processing is common for most request
> types but unfortunately it cannot be easily separated from type specific
> code as we need to alternate between common actions (parsing common request
> header, allocating message and filling netlink/genetlink headers etc.) and
> specific actions (querying the device, composing the reply). The processing
> also happens in three different situations: "do" request, "dump" request
> and notification, each doing things in slightly different way.
>
> The request specific code is implemented in four or five callbacks defined
> in an instance of struct get_request_ops:
>
> parse_request() - parse incoming message
> prepare_data() - retrieve data from driver or NIC
> reply_size() - estimate reply message size
> fill_reply() - compose reply message
> cleanup_data() - (optional) clean up additional data
>
> Other members of struct get_request_ops describe the data structure holding
> information from client request and data used to compose the message. The
> default handlers ethnl_default_doit(), ethnl_default_dumpit(),
> ethnl_default_start() and ethnl_default_done() can be then used in genl_ops
> handler. Notification handler will be introduced in a later patch.
>
> Signed-off-by: Michal Kubecek <mkubecek@xxxxxxx>

Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
--
Florian