xref: /openbmc/linux/net/core/netdev-genl-gen.c (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
14e16b6a7SJakub Kicinski // SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2d3d854fdSJakub Kicinski /* Do not edit directly, auto-generated from: */
3d3d854fdSJakub Kicinski /*	Documentation/netlink/specs/netdev.yaml */
4d3d854fdSJakub Kicinski /* YNL-GEN kernel source */
5d3d854fdSJakub Kicinski 
6d3d854fdSJakub Kicinski #include <net/netlink.h>
7d3d854fdSJakub Kicinski #include <net/genetlink.h>
8d3d854fdSJakub Kicinski 
9d3d854fdSJakub Kicinski #include "netdev-genl-gen.h"
10d3d854fdSJakub Kicinski 
11d3d854fdSJakub Kicinski #include <uapi/linux/netdev.h>
12d3d854fdSJakub Kicinski 
13d3d854fdSJakub Kicinski /* NETDEV_CMD_DEV_GET - do */
14d3d854fdSJakub Kicinski static const struct nla_policy netdev_dev_get_nl_policy[NETDEV_A_DEV_IFINDEX + 1] = {
15d3d854fdSJakub Kicinski 	[NETDEV_A_DEV_IFINDEX] = NLA_POLICY_MIN(NLA_U32, 1),
16d3d854fdSJakub Kicinski };
17d3d854fdSJakub Kicinski 
18d3d854fdSJakub Kicinski /* Ops table for netdev */
19*56c874f7SJakub Kicinski static const struct genl_split_ops netdev_nl_ops[] = {
20d3d854fdSJakub Kicinski 	{
21d3d854fdSJakub Kicinski 		.cmd		= NETDEV_CMD_DEV_GET,
22d3d854fdSJakub Kicinski 		.doit		= netdev_nl_dev_get_doit,
23d3d854fdSJakub Kicinski 		.policy		= netdev_dev_get_nl_policy,
24d3d854fdSJakub Kicinski 		.maxattr	= NETDEV_A_DEV_IFINDEX,
25d3d854fdSJakub Kicinski 		.flags		= GENL_CMD_CAP_DO,
26d3d854fdSJakub Kicinski 	},
27d3d854fdSJakub Kicinski 	{
28d3d854fdSJakub Kicinski 		.cmd	= NETDEV_CMD_DEV_GET,
29d3d854fdSJakub Kicinski 		.dumpit	= netdev_nl_dev_get_dumpit,
30d3d854fdSJakub Kicinski 		.flags	= GENL_CMD_CAP_DUMP,
31d3d854fdSJakub Kicinski 	},
32d3d854fdSJakub Kicinski };
33d3d854fdSJakub Kicinski 
34d3d854fdSJakub Kicinski static const struct genl_multicast_group netdev_nl_mcgrps[] = {
35d3d854fdSJakub Kicinski 	[NETDEV_NLGRP_MGMT] = { "mgmt", },
36d3d854fdSJakub Kicinski };
37d3d854fdSJakub Kicinski 
38d3d854fdSJakub Kicinski struct genl_family netdev_nl_family __ro_after_init = {
39d3d854fdSJakub Kicinski 	.name		= NETDEV_FAMILY_NAME,
40d3d854fdSJakub Kicinski 	.version	= NETDEV_FAMILY_VERSION,
41d3d854fdSJakub Kicinski 	.netnsok	= true,
42d3d854fdSJakub Kicinski 	.parallel_ops	= true,
43d3d854fdSJakub Kicinski 	.module		= THIS_MODULE,
44d3d854fdSJakub Kicinski 	.split_ops	= netdev_nl_ops,
45d3d854fdSJakub Kicinski 	.n_split_ops	= ARRAY_SIZE(netdev_nl_ops),
46d3d854fdSJakub Kicinski 	.mcgrps		= netdev_nl_mcgrps,
47d3d854fdSJakub Kicinski 	.n_mcgrps	= ARRAY_SIZE(netdev_nl_mcgrps),
48d3d854fdSJakub Kicinski };
49