OpenCloudOS-Kernel/net/ethtool
Michal Kubecek ba33d06ec7 ethtool: default handlers for GET requests
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@suse.cz>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
2024-06-12 13:17:06 +08:00
..
Makefile ethtool: netlink bitset handling 2024-06-12 13:17:06 +08:00
bitset.c ethtool: netlink bitset handling 2024-06-12 13:17:06 +08:00
bitset.h ethtool: netlink bitset handling 2024-06-12 13:17:06 +08:00
common.c ethtool: provide link mode names as a string set 2024-06-12 13:17:03 +08:00
common.h ethtool: provide link mode names as a string set 2024-06-12 13:17:03 +08:00
ioctl.c net: ethtool: Use the PHY time stamping interface. 2024-06-12 13:17:04 +08:00
netlink.c ethtool: default handlers for GET requests 2024-06-12 13:17:06 +08:00
netlink.h ethtool: default handlers for GET requests 2024-06-12 13:17:06 +08:00