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